|
5 | 5 | ; CHECK-DAG: OpCapability FunctionPointersINTEL
|
6 | 6 | ; CHECK-DAG: OpCapability Int64
|
7 | 7 | ; CHECK: OpExtension "SPV_INTEL_function_pointers"
|
8 |
| -; CHECK-DAG: %[[TyInt8:.*]] = OpTypeInt 8 0 |
| 8 | + |
| 9 | +; CHECK-DAG: OpName %[[fp:.*]] "fp" |
| 10 | +; CHECK-DAG: OpName %[[data:.*]] "data" |
| 11 | +; CHECK-DAG: OpName %[[bar:.*]] "bar" |
| 12 | +; CHECK-DAG: OpName %[[test:.*]] "test" |
9 | 13 | ; CHECK-DAG: %[[TyVoid:.*]] = OpTypeVoid
|
10 | 14 | ; CHECK-DAG: %[[TyFloat32:.*]] = OpTypeFloat 32
|
| 15 | +; CHECK-DAG: %[[TyInt8:.*]] = OpTypeInt 8 0 |
11 | 16 | ; CHECK-DAG: %[[TyInt64:.*]] = OpTypeInt 64 0
|
12 | 17 | ; CHECK-DAG: %[[TyPtrInt8:.*]] = OpTypePointer Function %[[TyInt8]]
|
13 |
| -; CHECK-DAG: %[[TyFunFp:.*]] = OpTypeFunction %[[TyFloat32]] %[[TyPtrInt8]] |
14 |
| -; CHECK-DAG: %[[TyFunBar:.*]] = OpTypeFunction %[[TyInt64]] %[[TyPtrInt8]] %[[TyPtrInt8]] |
15 |
| -; CHECK-DAG: %[[TyPtrFunFp:.*]] = OpTypePointer Function %[[TyFunFp]] |
16 |
| -; CHECK-DAG: %[[TyPtrFunBar:.*]] = OpTypePointer Function %[[TyFunBar]] |
17 |
| -; CHECK-DAG: %[[TyFunTest:.*]] = OpTypeFunction %[[TyVoid]] %[[TyPtrInt8]] %[[TyPtrInt8]] %[[TyPtrInt8]] |
18 |
| -; CHECK: %[[FunTest:.*]] = OpFunction %[[TyVoid]] None %[[TyFunTest]] |
19 |
| -; CHECK: %[[ArgFp:.*]] = OpFunctionParameter %[[TyPtrInt8]] |
20 |
| -; CHECK: %[[ArgData:.*]] = OpFunctionParameter %[[TyPtrInt8]] |
21 |
| -; CHECK: %[[ArgBar:.*]] = OpFunctionParameter %[[TyPtrInt8]] |
22 |
| -; CHECK: OpFunctionPointerCallINTEL %[[TyFloat32]] %[[ArgFp]] %[[ArgBar]] |
23 |
| -; CHECK: OpFunctionPointerCallINTEL %[[TyInt64]] %[[ArgBar]] %[[ArgFp]] %[[ArgData]] |
| 18 | +; CHECK-DAG: %[[TyFp:.*]] = OpTypeFunction %[[TyFloat32]] %[[TyPtrInt8]] |
| 19 | +; CHECK-DAG: %[[TyPtrFp:.*]] = OpTypePointer Function %[[TyFp]] |
| 20 | +; CHECK-DAG: %[[TyBar:.*]] = OpTypeFunction %[[TyInt64]] %[[TyPtrFp]] %[[TyPtrInt8]] |
| 21 | +; CHECK-DAG: %[[TyPtrBar:.*]] = OpTypePointer Function %[[TyBar]] |
| 22 | +; CHECK-DAG: %[[TyTest:.*]] = OpTypeFunction %[[TyVoid]] %[[TyPtrFp]] %[[TyPtrInt8]] %[[TyPtrBar]] |
| 23 | +; CHECK: %[[test]] = OpFunction %[[TyVoid]] None %[[TyTest]] |
| 24 | +; CHECK: %[[fp]] = OpFunctionParameter %[[TyPtrFp]] |
| 25 | +; CHECK: %[[data]] = OpFunctionParameter %[[TyPtrInt8]] |
| 26 | +; CHECK: %[[bar]] = OpFunctionParameter %[[TyPtrBar]] |
| 27 | +; CHECK: OpFunctionPointerCallINTEL %[[TyFloat32]] %[[fp]] %[[bar]] |
| 28 | +; CHECK: OpFunctionPointerCallINTEL %[[TyInt64]] %[[bar]] %[[fp]] %[[data]] |
24 | 29 | ; CHECK: OpReturn
|
25 | 30 | ; CHECK: OpFunctionEnd
|
26 | 31 |
|
27 |
| -target triple = "spir64-unknown-unknown" |
28 |
| - |
29 | 32 | define spir_kernel void @test(ptr %fp, ptr %data, ptr %bar) {
|
30 | 33 | entry:
|
31 | 34 | %0 = call spir_func float %fp(ptr %bar)
|
|
0 commit comments