|
1 | 1 | ; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv32v1.3-vulkan-unknown %s -o - | FileCheck %s
|
2 |
| -; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv-vulkan-unknown %s -o - -filetype=obj | spirv-val %} |
| 2 | +; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv32v1.3-vulkan-unknown %s -o - -filetype=obj | spirv-val %} |
3 | 3 |
|
4 | 4 | ; Test lowering to spir-v backend for various types and scalar/vector
|
5 | 5 |
|
|
9 | 9 | ; CHECK-DAG: %[[#v4_bool:]] = OpTypeVector %[[#bool]] 4
|
10 | 10 | ; CHECK-DAG: %[[#scope:]] = OpConstant %[[#uint]] 3
|
11 | 11 |
|
| 12 | +; CHECK-LABEL: Begin function test_float |
12 | 13 | ; CHECK: %[[#fexpr:]] = OpFunctionParameter %[[#f32]]
|
13 | 14 | ; CHECK: %[[#idx1:]] = OpFunctionParameter %[[#uint]]
|
14 |
| -define float @test_1(float %fexpr, i32 %idx) { |
| 15 | +define float @test_float(float %fexpr, i32 %idx) { |
15 | 16 | entry:
|
16 |
| -; CHECK: %[[#fret:]] = OpGroupNonUniformShuffle %[[#f32]] %[[#fexpr]] %[[#idx1]] %[[#scope]] |
| 17 | +; CHECK: %[[#fret:]] = OpGroupNonUniformShuffle %[[#f32]] %[[#scope]] %[[#fexpr]] %[[#idx1]] |
17 | 18 | %0 = call float @llvm.spv.wave.readlane.f32(float %fexpr, i32 %idx)
|
18 | 19 | ret float %0
|
19 | 20 | }
|
20 | 21 |
|
| 22 | +; CHECK-LABEL: Begin function test_int |
21 | 23 | ; CHECK: %[[#iexpr:]] = OpFunctionParameter %[[#uint]]
|
22 | 24 | ; CHECK: %[[#idx2:]] = OpFunctionParameter %[[#uint]]
|
23 |
| -define i32 @test_2(i32 %iexpr, i32 %idx) { |
| 25 | +define i32 @test_int(i32 %iexpr, i32 %idx) { |
24 | 26 | entry:
|
25 |
| -; CHECK: %[[#iret:]] = OpGroupNonUniformShuffle %[[#uint]] %[[#iexpr]] %[[#idx2]] %[[#scope]] |
| 27 | +; CHECK: %[[#iret:]] = OpGroupNonUniformShuffle %[[#uint]] %[[#scope]] %[[#iexpr]] %[[#idx2]] |
26 | 28 | %0 = call i32 @llvm.spv.wave.readlane.i32(i32 %iexpr, i32 %idx)
|
27 | 29 | ret i32 %0
|
28 | 30 | }
|
29 | 31 |
|
| 32 | +; CHECK-LABEL: Begin function test_vbool |
30 | 33 | ; CHECK: %[[#vbexpr:]] = OpFunctionParameter %[[#v4_bool]]
|
31 | 34 | ; CHECK: %[[#idx3:]] = OpFunctionParameter %[[#uint]]
|
32 |
| -define <4 x i1> @test_3(<4 x i1> %vbexpr, i32 %idx) { |
| 35 | +define <4 x i1> @test_vbool(<4 x i1> %vbexpr, i32 %idx) { |
33 | 36 | entry:
|
34 |
| -; CHECK: %[[#vbret:]] = OpGroupNonUniformShuffle %[[#v4_bool]] %[[#vbexpr]] %[[#idx3]] %[[#scope]] |
| 37 | +; CHECK: %[[#vbret:]] = OpGroupNonUniformShuffle %[[#v4_bool]] %[[#scope]] %[[#vbexpr]] %[[#idx3]] |
35 | 38 | %0 = call <4 x i1> @llvm.spv.wave.readlane.v4i1(<4 x i1> %vbexpr, i32 %idx)
|
36 | 39 | ret <4 x i1> %0
|
37 | 40 | }
|
|
0 commit comments