| ; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv64-unknown-unknown --spirv-ext=+SPV_INTEL_function_pointers %s -o - | FileCheck --implicit-check-not=entry %s | |
| ; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv64-unknown-unknown --spirv-ext=+SPV_INTEL_function_pointers %s -o - -filetype=obj | spirv-val %} | |
| declare spir_func i32 @_Z12get_local_idj(i32) | |
| ; CHECK: OpName %[[F1:.*]] "func_1" | |
| ; CHECK: OpName %[[F2:.*]] "func_2" | |
| ; CHECK: %[[I32:.*]] = OpTypeInt 32 0 | |
| ; CHECK: %[[I64:.*]] = OpTypeInt 64 0 | |
| ; CHECK: %[[F1]] = OpFunction %[[I32]] None | |
| ; CHECK: %[[COMPOSITE_EXTRACT:.*]] = OpCompositeExtract %[[I64]] | |
| ; CHECK: OpUConvert %[[I32]] %[[COMPOSITE_EXTRACT]] | |
| define spir_func i32 @func_1() { | |
| %id = tail call spir_func i32 @_Z12get_local_idj(i32 0) | |
| ret i32 %id | |
| } | |
| ; CHECK: %[[F2]] = OpFunction %[[I64]] None | |
| ; CHECK: OpCompositeExtract %[[I64]] | |
| define spir_func i64 @func_2() { | |
| %id = tail call spir_func i64 @_Z12get_local_idj(i32 0) | |
| ret i64 %id | |
| } |