@@ -11,8 +11,8 @@ typedef float float4 __attribute__((ext_vector_type(4)));
11
11
// CHECK-LABEL: define dso_local spir_kernel void @foo(
12
12
// CHECK-SAME: ptr addrspace(1) noundef readonly align 16 captures(none) [[A:%.*]], ptr addrspace(1) noundef writeonly align 16 captures(none) initializes((0, 16)) [[B:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] !kernel_arg_addr_space [[META3:![0-9]+]] !kernel_arg_access_qual [[META4:![0-9]+]] !kernel_arg_type [[META5:![0-9]+]] !kernel_arg_base_type [[META6:![0-9]+]] !kernel_arg_type_qual [[META7:![0-9]+]] {
13
13
// CHECK-NEXT: [[ENTRY:.*:]]
14
- // CHECK-NEXT: [[LOADVECN :%.*]] = load <4 x float>, ptr addrspace(1) [[A]], align 16
15
- // CHECK-NEXT: [[EXTRACTVEC1:%.*]] = shufflevector <4 x float> [[LOADVECN ]], <4 x float> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
14
+ // CHECK-NEXT: [[TMP0 :%.*]] = load <3 x float>, ptr addrspace(1) [[A]], align 16
15
+ // CHECK-NEXT: [[EXTRACTVEC1:%.*]] = shufflevector <3 x float> [[TMP0 ]], <3 x float> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
16
16
// CHECK-NEXT: store <4 x float> [[EXTRACTVEC1]], ptr addrspace(1) [[B]], align 16, !tbaa [[TBAA8:![0-9]+]]
17
17
// CHECK-NEXT: ret void
18
18
//
@@ -23,8 +23,8 @@ void kernel foo(global float3 *a, global float3 *b) {
23
23
// CHECK-LABEL: define dso_local spir_kernel void @float4_to_float3(
24
24
// CHECK-SAME: ptr addrspace(1) noundef writeonly align 16 captures(none) initializes((0, 16)) [[A:%.*]], ptr addrspace(1) noundef readonly align 16 captures(none) [[B:%.*]]) local_unnamed_addr #[[ATTR0]] !kernel_arg_addr_space [[META3]] !kernel_arg_access_qual [[META4]] !kernel_arg_type [[META11:![0-9]+]] !kernel_arg_base_type [[META12:![0-9]+]] !kernel_arg_type_qual [[META7]] {
25
25
// CHECK-NEXT: [[ENTRY:.*:]]
26
- // CHECK-NEXT: [[TMP0:%.*]] = load <4 x float>, ptr addrspace(1) [[B]], align 16, !tbaa [[TBAA8]]
27
- // CHECK-NEXT: [[EXTRACTVEC:%.*]] = shufflevector <4 x float> [[TMP0]], <4 x float> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
26
+ // CHECK-NEXT: [[TMP0:%.*]] = load <3 x float>, ptr addrspace(1) [[B]], align 16, !tbaa [[TBAA8]]
27
+ // CHECK-NEXT: [[EXTRACTVEC:%.*]] = shufflevector <3 x float> [[TMP0]], <3 x float> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
28
28
// CHECK-NEXT: store <4 x float> [[EXTRACTVEC]], ptr addrspace(1) [[A]], align 16, !tbaa [[TBAA8]]
29
29
// CHECK-NEXT: ret void
30
30
//
@@ -35,8 +35,8 @@ void kernel float4_to_float3(global float3 *a, global float4 *b) {
35
35
// CHECK-LABEL: define dso_local spir_kernel void @float3_to_float4(
36
36
// CHECK-SAME: ptr addrspace(1) noundef readonly align 16 captures(none) [[A:%.*]], ptr addrspace(1) noundef writeonly align 16 captures(none) initializes((0, 16)) [[B:%.*]]) local_unnamed_addr #[[ATTR0]] !kernel_arg_addr_space [[META3]] !kernel_arg_access_qual [[META4]] !kernel_arg_type [[META11]] !kernel_arg_base_type [[META12]] !kernel_arg_type_qual [[META7]] {
37
37
// CHECK-NEXT: [[ENTRY:.*:]]
38
- // CHECK-NEXT: [[LOADVECN :%.*]] = load <4 x float>, ptr addrspace(1) [[A]], align 16
39
- // CHECK-NEXT: [[ASTYPE:%.*]] = shufflevector <4 x float> [[LOADVECN ]], <4 x float> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
38
+ // CHECK-NEXT: [[TMP0 :%.*]] = load <3 x float>, ptr addrspace(1) [[A]], align 16
39
+ // CHECK-NEXT: [[ASTYPE:%.*]] = shufflevector <3 x float> [[TMP0 ]], <3 x float> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
40
40
// CHECK-NEXT: store <4 x float> [[ASTYPE]], ptr addrspace(1) [[B]], align 16, !tbaa [[TBAA8]]
41
41
// CHECK-NEXT: ret void
42
42
//
@@ -47,9 +47,9 @@ void kernel float3_to_float4(global float3 *a, global float4 *b) {
47
47
// CHECK-LABEL: define dso_local spir_kernel void @float3_to_double2(
48
48
// CHECK-SAME: ptr addrspace(1) noundef readonly align 16 captures(none) [[A:%.*]], ptr addrspace(1) noundef writeonly align 16 captures(none) initializes((0, 16)) [[B:%.*]]) local_unnamed_addr #[[ATTR0]] !kernel_arg_addr_space [[META3]] !kernel_arg_access_qual [[META4]] !kernel_arg_type [[META13:![0-9]+]] !kernel_arg_base_type [[META14:![0-9]+]] !kernel_arg_type_qual [[META7]] {
49
49
// CHECK-NEXT: [[ENTRY:.*:]]
50
- // CHECK-NEXT: [[LOADVECN :%.*]] = load <4 x float>, ptr addrspace(1) [[A]], align 16
51
- // CHECK-NEXT: [[TMP0 :%.*]] = shufflevector <4 x float> [[LOADVECN ]], <4 x float> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
52
- // CHECK-NEXT: store <4 x float> [[TMP0 ]], ptr addrspace(1) [[B]], align 16, !tbaa [[TBAA8]]
50
+ // CHECK-NEXT: [[TMP0 :%.*]] = load <3 x float>, ptr addrspace(1) [[A]], align 16
51
+ // CHECK-NEXT: [[TMP1 :%.*]] = shufflevector <3 x float> [[TMP0 ]], <3 x float> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
52
+ // CHECK-NEXT: store <4 x float> [[TMP1 ]], ptr addrspace(1) [[B]], align 16, !tbaa [[TBAA8]]
53
53
// CHECK-NEXT: ret void
54
54
//
55
55
void kernel float3_to_double2 (global float3 * a , global double2 * b ) {
@@ -59,8 +59,8 @@ void kernel float3_to_double2(global float3 *a, global double2 *b) {
59
59
// CHECK-LABEL: define dso_local spir_kernel void @char8_to_short3(
60
60
// CHECK-SAME: ptr addrspace(1) noundef writeonly align 8 captures(none) initializes((0, 8)) [[A:%.*]], ptr addrspace(1) noundef readonly align 8 captures(none) [[B:%.*]]) local_unnamed_addr #[[ATTR0]] !kernel_arg_addr_space [[META3]] !kernel_arg_access_qual [[META4]] !kernel_arg_type [[META15:![0-9]+]] !kernel_arg_base_type [[META16:![0-9]+]] !kernel_arg_type_qual [[META7]] {
61
61
// CHECK-NEXT: [[ENTRY:.*:]]
62
- // CHECK-NEXT: [[TMP0:%.*]] = load <4 x i16>, ptr addrspace(1) [[B]], align 8, !tbaa [[TBAA8]]
63
- // CHECK-NEXT: [[EXTRACTVEC:%.*]] = shufflevector <4 x i16> [[TMP0]], <4 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
62
+ // CHECK-NEXT: [[TMP0:%.*]] = load <3 x i16>, ptr addrspace(1) [[B]], align 8, !tbaa [[TBAA8]]
63
+ // CHECK-NEXT: [[EXTRACTVEC:%.*]] = shufflevector <3 x i16> [[TMP0]], <3 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
64
64
// CHECK-NEXT: store <4 x i16> [[EXTRACTVEC]], ptr addrspace(1) [[A]], align 8, !tbaa [[TBAA8]]
65
65
// CHECK-NEXT: ret void
66
66
//
0 commit comments