Make test more lenient for custom clang version strings
[llvm-project.git] / clang / test / CodeGenHLSL / builtins / select.hlsl
blobcade938b71a2ba1e3a8602b3199a152c246e91e7
1 // RUN: %clang_cc1 -finclude-default-header -x hlsl -triple \
2 // RUN:   dxil-pc-shadermodel6.3-library %s -emit-llvm -disable-llvm-passes \
3 // RUN:   -o - | FileCheck %s --check-prefixes=CHECK
5 // CHECK-LABEL: test_select_bool_int
6 // CHECK: [[SELECT:%.*]] = select i1 {{%.*}}, i32 {{%.*}}, i32 {{%.*}}
7 // CHECK: ret i32 [[SELECT]]
8 int test_select_bool_int(bool cond0, int tVal, int fVal) {
9   return select<int>(cond0, tVal, fVal);
12 struct S { int a; };
13 // CHECK-LABEL: test_select_infer
14 // CHECK: [[SELECT:%.*]] = select i1 {{%.*}}, ptr {{%.*}}, ptr {{%.*}}
15 // CHECK: store ptr [[SELECT]]
16 // CHECK: ret void
17 struct S test_select_infer(bool cond0, struct S tVal, struct S fVal) {
18   return select(cond0, tVal, fVal);
21 // CHECK-LABEL: test_select_bool_vector
22 // CHECK: [[SELECT:%.*]] = select i1 {{%.*}}, <2 x i32> {{%.*}}, <2 x i32> {{%.*}}
23 // CHECK: ret <2 x i32> [[SELECT]]
24 int2 test_select_bool_vector(bool cond0, int2 tVal, int2 fVal) {
25   return select<int2>(cond0, tVal, fVal);
28 // CHECK-LABEL: test_select_vector_1
29 // CHECK: [[SELECT:%.*]] = select <1 x i1> {{%.*}}, <1 x i32> {{%.*}}, <1 x i32> {{%.*}}
30 // CHECK: ret <1 x i32> [[SELECT]]
31 int1 test_select_vector_1(bool1 cond0, int1 tVals, int1 fVals) {
32   return select<int,1>(cond0, tVals, fVals);
35 // CHECK-LABEL: test_select_vector_2
36 // CHECK: [[SELECT:%.*]] = select <2 x i1> {{%.*}}, <2 x i32> {{%.*}}, <2 x i32> {{%.*}}
37 // CHECK: ret <2 x i32> [[SELECT]]
38 int2 test_select_vector_2(bool2 cond0, int2 tVals, int2 fVals) {
39   return select<int,2>(cond0, tVals, fVals);
42 // CHECK-LABEL: test_select_vector_3
43 // CHECK: [[SELECT:%.*]] = select <3 x i1> {{%.*}}, <3 x i32> {{%.*}}, <3 x i32> {{%.*}}
44 // CHECK: ret <3 x i32> [[SELECT]]
45 int3 test_select_vector_3(bool3 cond0, int3 tVals, int3 fVals) {
46   return select<int,3>(cond0, tVals, fVals);
49 // CHECK-LABEL: test_select_vector_4
50 // CHECK: [[SELECT:%.*]] = select <4 x i1> {{%.*}}, <4 x i32> {{%.*}}, <4 x i32> {{%.*}}
51 // CHECK: ret <4 x i32> [[SELECT]]
52 int4 test_select_vector_4(bool4 cond0, int4 tVals, int4 fVals) {
53   return select(cond0, tVals, fVals);