1
- // RUN: %clangxx -Xclang -no- opaque-pointers -fsycl -fsycl-device-only -S %s -o - | FileCheck %s
1
+ // RUN: %clangxx -Xclang -opaque-pointers -fsycl -fsycl-device-only -S %s -o - | FileCheck %s
2
2
3
3
// Check efficiency of LLVM IR generated for various simd constructors.
4
4
@@ -19,8 +19,7 @@ SYCL_EXTERNAL auto foo(double i) SYCL_ESIMD_FUNCTION {
19
19
return val;
20
20
// CHECK: %[[V0:[a-zA-Z0-9_\.]+]] = insertelement <2 x double> undef, double %[[I]], i64 0
21
21
// CHECK-NEXT: %[[V1:[a-zA-Z0-9_\.]+]] = shufflevector <2 x double> %[[V0]], <2 x double> poison, <2 x i32> zeroinitializer
22
- // CHECK-NEXT: %[[MDATA:[a-zA-Z0-9_\.]+]] = getelementptr inbounds {{.*}} %[[RES]], i64 0, i32 0, i32 0
23
- // CHECK-NEXT: store <2 x double> %[[V1]], <2 x double> addrspace(4)* %[[MDATA]]
22
+ // CHECK-NEXT: store <2 x double> %[[V1]], ptr addrspace(4) %[[RES]]
24
23
// CHECK-NEXT: ret void
25
24
// CHECK-NEXT: }
26
25
}
@@ -36,8 +35,7 @@ SYCL_EXTERNAL auto baz() SYCL_ESIMD_FUNCTION {
36
35
// CHECK: define dso_local spir_func void @_Z3bazv({{.*}} %[[RES:[a-zA-Z0-9_\.]+]]){{.*}} {
37
36
simd<int , 2 > val (17 , 3 );
38
37
return val;
39
- // CHECK: %[[MDATA:[a-zA-Z0-9_\.]+]] = getelementptr inbounds {{.*}} %[[RES]], i64 0, i32 0, i32 0
40
- // CHECK-NEXT: store <2 x i32> <i32 17, i32 20>, <2 x i32> addrspace(4)* %[[MDATA]]
38
+ // CHECK: store <2 x i32> <i32 17, i32 20>, ptr addrspace(4) %[[RES]]
41
39
// CHECK-NEXT: ret void
42
40
// CHECK-NEXT: }
43
41
}
@@ -47,8 +45,7 @@ SYCL_EXTERNAL auto gee() SYCL_ESIMD_FUNCTION {
47
45
// CHECK: define dso_local spir_func void @_Z3geev({{.*}} %[[RES:[a-zA-Z0-9_\.]+]]){{.*}} {
48
46
simd<float , 2 > val (-7 );
49
47
return val;
50
- // CHECK: %[[MDATA:[a-zA-Z0-9_\.]+]] = getelementptr inbounds {{.*}} %[[RES]], i64 0, i32 0, i32 0
51
- // CHECK-NEXT: store <2 x float> <float -7.000000e+00, float -7.000000e+00>, <2 x float> addrspace(4)* %[[MDATA]]
48
+ // CHECK: store <2 x float> <float -7.000000e+00, float -7.000000e+00>, ptr addrspace(4) %[[RES]]
52
49
// CHECK-NEXT: ret void
53
50
// CHECK-NEXT: }
54
51
}
@@ -58,8 +55,7 @@ SYCL_EXTERNAL auto foomask() SYCL_ESIMD_FUNCTION {
58
55
// CHECK: define dso_local spir_func void @_Z7foomaskv({{.*}} %[[RES:[a-zA-Z0-9_\.]+]]){{.*}} {
59
56
simd_mask<2 > val ({ 1 , 0 });
60
57
return val;
61
- // CHECK: %[[MDATA:[a-zA-Z0-9_\.]+]] = getelementptr inbounds {{.*}} %[[RES]], i64 0, i32 0, i32 0
62
- // CHECK-NEXT: store <2 x i16> <i16 1, i16 0>, <2 x i16> addrspace(4)* %[[MDATA]]
58
+ // CHECK: store <2 x i16> <i16 1, i16 0>, ptr addrspace(4) %[[RES]]
63
59
// CHECK-NEXT: ret void
64
60
// CHECK-NEXT: }
65
61
}
@@ -69,8 +65,7 @@ SYCL_EXTERNAL auto geemask() SYCL_ESIMD_FUNCTION {
69
65
// CHECK: define dso_local spir_func void @_Z7geemaskv({{.*}} %[[RES:[a-zA-Z0-9_\.]+]]){{.*}} {
70
66
simd_mask<2 > val (1 );
71
67
return val;
72
- // CHECK: %[[MDATA:[a-zA-Z0-9_\.]+]] = getelementptr inbounds {{.*}} %[[RES]], i64 0, i32 0, i32 0
73
- // CHECK-NEXT: store <2 x i16> <i16 1, i16 1>, <2 x i16> addrspace(4)* %[[MDATA]]
68
+ // CHECK: store <2 x i16> <i16 1, i16 1>, ptr addrspace(4) %[[RES]]
74
69
// CHECK-NEXT: ret void
75
70
// CHECK-NEXT: }
76
71
}
@@ -95,8 +90,7 @@ SYCL_EXTERNAL auto geehalf() SYCL_ESIMD_FUNCTION {
95
90
// CHECK: define dso_local spir_func void @_Z7geehalfv({{.*}} %[[RES:[a-zA-Z0-9_\.]+]]){{.*}} {
96
91
simd<half, 2 > val (-7 );
97
92
return val;
98
- // CHECK: %[[MDATA:[a-zA-Z0-9_\.]+]] = getelementptr inbounds {{.*}} %[[RES]], i64 0, i32 0, i32 0
99
- // CHECK-NEXT: store <2 x half> <half 0xHC700, half 0xHC700>, <2 x half> addrspace(4)* %[[MDATA]]
93
+ // CHECK: store <2 x half> <half 0xHC700, half 0xHC700>, ptr addrspace(4) %[[RES]]
100
94
// CHECK-NEXT: ret void
101
95
// CHECK-NEXT: }
102
96
}
0 commit comments