// File: /workspace/github_cpp_makefile_star2_O3/rossy[P]crossc/SPIRV-Cross/spirv_hlsl.cpp
// Function: spirv_cross::CompilerHLSL::require_texture_query_variant(spirv_cross::SPIRType const&)
void CompilerHLSL::require_texture_query_variant(const SPIRType &type)
{
	uint32_t bit = 0;
	switch (type.image.dim)
	{
	case Dim1D:
		bit = type.image.arrayed ? Query1DArray : Query1D;
		break;

	case Dim2D:
		if (type.image.ms)
			bit = type.image.arrayed ? Query2DMSArray : Query2DMS;
		else
			bit = type.image.arrayed ? Query2DArray : Query2D;
		break;

	case Dim3D:
		bit = Query3D;
		break;

	case DimCube:
		bit = type.image.arrayed ? QueryCubeArray : QueryCube;
		break;

	case DimBuffer:
		bit = QueryBuffer;
		break;

	default:
		SPIRV_CROSS_THROW("Unsupported query type.");
	}

	switch (get<SPIRType>(type.image.type).basetype)
	{
	case SPIRType::Float:
		bit += QueryTypeFloat;
		break;

	case SPIRType::Int:
		bit += QueryTypeInt;
		break;

	case SPIRType::UInt:
		bit += QueryTypeUInt;
		break;

	default:
		SPIRV_CROSS_THROW("Unsupported query type.");
	}

	uint64_t mask = 1ull << bit;
	if ((required_textureSizeVariants & mask) == 0)
	{
		force_recompile = true;
		required_textureSizeVariants |= mask;
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x28, %rsp
movl 0x84(%rsi), %eax
cmpq $0x5, %rax
ja 0x72d74
movq %rdi, %rbx
leaq 0x489aa(%rip), %rcx     # 0xbb608
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movzbl 0x89(%rsi), %r14d
jmp 0x72cb0
movl $0x5, %r14d
jmp 0x72cb0
movl $0x4, %r14d
jmp 0x72cb0
movzbl 0x89(%rsi), %r14d
orl $0x6, %r14d
jmp 0x72cb0
movb 0x89(%rsi), %al
cmpb $0x1, 0x8a(%rsi)
jne 0x72ca8
movzbl %al, %r14d
orl $0x8, %r14d
jmp 0x72cb0
movzbl %al, %r14d
orl $0x2, %r14d
movl 0x80(%rsi), %esi
movq %rbx, %rdi
callq 0xa3ea
movl 0xc(%rax), %eax
cmpl $0xa, %eax
je 0x72cda
cmpl $0x5, %eax
je 0x72cd6
cmpl $0x4, %eax
jne 0x72d0e
orl $0x10, %r14d
jmp 0x72cda
orl $0x20, %r14d
movl $0x1, %eax
movl %r14d, %ecx
shlq %cl, %rax
movq 0x7a0(%rbx), %rcx
btq %r14, %rcx
jb 0x72d03
movb $0x1, 0x1d0(%rbx)
orq %rcx, %rax
movq %rax, 0x7a0(%rbx)
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movl $0x10, %edi
callq 0x6140
movq %rax, %rbx
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4be7a(%rip), %rsi     # 0xbeba5
leaq 0x4be8a(%rip), %rdx     # 0xbebbc
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x6320
leaq 0x89075(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%rbx)
xorl %ebp, %ebp
leaq 0x8904d(%rip), %rsi     # 0xfbdb0
movq 0x8a26e(%rip), %rdx     # 0xfcfd8
movq %rbx, %rdi
callq 0x6470
jmp 0x72dd8
movl $0x10, %edi
callq 0x6140
movq %rax, %rbx
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4be14(%rip), %rsi     # 0xbeba5
leaq 0x4be24(%rip), %rdx     # 0xbebbc
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x6320
leaq 0x8900f(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%rbx)
xorl %ebp, %ebp
leaq 0x88fe7(%rip), %rsi     # 0xfbdb0
movq 0x8a208(%rip), %rdx     # 0xfcfd8
movq %rbx, %rdi
callq 0x6470
jmp 0x72ddc
jmp 0x72dfd
movq %rax, %r14
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x72df6
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6260
testb %bpl, %bpl
jne 0x72e00
jmp 0x72e08
movq %rax, %r14
movq %rbx, %rdi
callq 0x6200
movq %r14, %rdi
callq 0x64a0