|
1 | | -; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv-unknown-unknown %s -o - | FileCheck %s --check-prefixes=CHECK,SPIRV15 |
2 | | -; RUN: llc -verify-machineinstrs -spirv-ext=+SPV_EXT_demote_to_helper_invocation -O0 -mtriple=spirv32v1.6-unknown-unknown %s -o - | FileCheck %s --check-prefixes=CHECK,SPIRV16 |
3 | | -; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv-unknown-unknown %s -o - -filetype=obj | spirv-val %} |
| 1 | +; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv1.5-unknown-unknown %s -o - | FileCheck %s --check-prefixes=CHECK,SPIRV15 |
| 2 | +; RUN: llc -verify-machineinstrs -spirv-ext=+SPV_EXT_demote_to_helper_invocation -O0 -mtriple=spirv1.5-unknown-unknown %s -o - | FileCheck %s --check-prefixes=CHECK,SPIRV16,WITH-EXTENSION,WITH-CAPABILITY |
| 3 | +; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv1.6-unknown-unknown %s -o - | FileCheck %s --check-prefixes=CHECK,SPIRV16,WITH-CAPABILITY |
| 4 | +; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv1.5-unknown-unknown %s -o - -filetype=obj | spirv-val %} |
| 5 | +; RUN: %if spirv-tools %{ llc -O0 -spirv-ext=+SPV_EXT_demote_to_helper_invocation -mtriple=spirv1.5-unknown-unknown %s -o - -filetype=obj | spirv-val %} |
| 6 | +; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv1.6-unknown-unknown %s -o - -filetype=obj | spirv-val %} |
4 | 7 |
|
5 | 8 |
|
6 | 9 | ; Make sure lowering is correctly generating spirv code. |
7 | 10 |
|
| 11 | +; WITH-CAPABILITY-DAG: OpCapability DemoteToHelperInvocation |
| 12 | +; WITH-EXTENSION-DAG: OpExtension "SPV_EXT_demote_to_helper_invocation" |
| 13 | + |
8 | 14 | ; CHECK-DAG: %[[#float:]] = OpTypeFloat 32 |
9 | 15 | ; CHECK-DAG: %[[#void:]] = OpTypeVoid |
10 | 16 | ; CHECK-DAG: %[[#bool:]] = OpTypeBool |
11 | 17 | ; CHECK-DAG: %[[#v4bool:]] = OpTypeVector %[[#bool]] 4 |
12 | 18 | ; CHECK-DAG: %[[#v4float:]] = OpTypeVector %[[#float]] 4 |
13 | 19 | ; CHECK-DAG: %[[#fzero:]] = OpConstant %[[#float]] 0 |
14 | 20 | ; CHECK-DAG: %[[#v4fzero:]] = OpConstantNull %[[#v4float]] |
15 | | -; SPIRV16-DAG: %[[#vecfuncopptr:]] = OpTypePointer Function %[[#v4float]] |
16 | | -; SPIRV16-DAG: %[[#funcopptr:]] = OpTypePointer Function %[[#float]] |
17 | 21 |
|
18 | 22 | define void @test_scalar(float noundef %Buf) { |
19 | 23 | entry: |
20 | 24 | ; CHECK-LABEL: ; -- Begin function test_scalar |
21 | | -; SPIRV16: %[[#param:]] = OpVariable %[[#funcopptr]] Function |
22 | | -; SPIRV16: %[[#load:]] = OpLoad %[[#float]] %[[#param]] Aligned 4 |
23 | | -; SPIRV15: %[[#load:]] = OpFunctionParameter %[[#float]] |
| 25 | +; CHECK: %[[#load:]] = OpFunctionParameter %[[#float]] |
24 | 26 | ; CHECK: %[[#cmplt:]] = OpFOrdLessThan %[[#bool]] %[[#load]] %[[#fzero]] |
25 | 27 | ; CHECK: OpBranchConditional %[[#cmplt]] %[[#truel:]] %[[#endl:]] |
26 | 28 | ; CHECK: %[[#truel]] = OpLabel |
@@ -48,9 +50,7 @@ declare void @llvm.spv.clip() |
48 | 50 | define void @test_vector(<4 x float> noundef %Buf) { |
49 | 51 | entry: |
50 | 52 | ; CHECK-LABEL: ; -- Begin function test_vector |
51 | | -; SPIRV16: %[[#param:]] = OpVariable %[[#vecfuncopptr]] Function |
52 | | -; SPIRV16: %[[#loadvec:]] = OpLoad %[[#v4float]] %[[#param]] Aligned 16 |
53 | | -; SPIRV15: %[[#loadvec:]] = OpFunctionParameter %[[#v4float]] |
| 53 | +; CHECK: %[[#loadvec:]] = OpFunctionParameter %[[#v4float]] |
54 | 54 | ; CHECK: %[[#cmplt:]] = OpFOrdLessThan %[[#v4bool]] %[[#loadvec]] %[[#v4fzero]] |
55 | 55 | ; CHECK: %[[#opany:]] = OpAny %[[#bool]] %[[#cmplt]] |
56 | 56 | ; CHECK: OpBranchConditional %[[#opany]] %[[#truel:]] %[[#endl:]] |
|
0 commit comments