// File: /workspace/github_cpp_makefile_star2_O1/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 0x73776
movq %rdi, %rbx
leaq 0x48fb8(%rip), %rcx     # 0xbc618
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movzbl 0x89(%rsi), %r14d
jmp 0x736b2
movl $0x5, %r14d
jmp 0x736b2
movl $0x4, %r14d
jmp 0x736b2
movzbl 0x89(%rsi), %r14d
orl $0x6, %r14d
jmp 0x736b2
movb 0x89(%rsi), %al
cmpb $0x1, 0x8a(%rsi)
jne 0x736aa
movzbl %al, %r14d
orl $0x8, %r14d
jmp 0x736b2
movzbl %al, %r14d
orl $0x2, %r14d
movl 0x80(%rsi), %esi
movq %rbx, %rdi
callq 0xa426
movl 0xc(%rax), %eax
cmpl $0xa, %eax
je 0x736dc
cmpl $0x5, %eax
je 0x736d8
cmpl $0x4, %eax
jne 0x73710
orl $0x10, %r14d
jmp 0x736dc
orl $0x20, %r14d
movl $0x1, %eax
movl %r14d, %ecx
shlq %cl, %rax
movq 0x7a0(%rbx), %rcx
btq %r14, %rcx
jb 0x73705
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 0x4c470(%rip), %rsi     # 0xbfb9d
leaq 0x4c480(%rip), %rdx     # 0xbfbb4
leaq 0x8(%rsp), %rdi
callq 0x7c64
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x6320
leaq 0x89643(%rip), %rax     # 0xfcd98
addq $0x10, %rax
movq %rax, (%rbx)
xorl %ebp, %ebp
leaq 0x8961b(%rip), %rsi     # 0xfcd80
movq 0x8a86c(%rip), %rdx     # 0xfdfd8
movq %rbx, %rdi
callq 0x6470
jmp 0x737da
movl $0x10, %edi
callq 0x6140
movq %rax, %rbx
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4c40a(%rip), %rsi     # 0xbfb9d
leaq 0x4c41a(%rip), %rdx     # 0xbfbb4
leaq 0x8(%rsp), %rdi
callq 0x7c64
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x6320
leaq 0x895dd(%rip), %rax     # 0xfcd98
addq $0x10, %rax
movq %rax, (%rbx)
xorl %ebp, %ebp
leaq 0x895b5(%rip), %rsi     # 0xfcd80
movq 0x8a806(%rip), %rdx     # 0xfdfd8
movq %rbx, %rdi
callq 0x6470
jmp 0x737de
jmp 0x737fa
movq %rax, %r14
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x73800
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x73800
movq %rax, %r14
movb $0x1, %bpl
testb %bpl, %bpl
je 0x7380d
movq %rbx, %rdi
callq 0x6200
movq %r14, %rdi
callq 0x64a0