@@ -31,7 +31,8 @@ define <2 x ptr> @vectorindex3() {
31
31
32
32
define ptr @bitcast_vec_to_array_gep (ptr %x , i64 %y , i64 %z ) {
33
33
; CHECK-LABEL: @bitcast_vec_to_array_gep(
34
- ; CHECK-NEXT: [[GEP:%.*]] = getelementptr [7 x i32], ptr [[X:%.*]], i64 [[Y:%.*]], i64 [[Z:%.*]]
34
+ ; CHECK-NEXT: [[GEP_SPLIT:%.*]] = getelementptr [7 x i32], ptr [[X:%.*]], i64 [[Y:%.*]]
35
+ ; CHECK-NEXT: [[GEP:%.*]] = getelementptr [7 x i32], ptr [[GEP_SPLIT]], i64 0, i64 [[Z:%.*]]
35
36
; CHECK-NEXT: ret ptr [[GEP]]
36
37
;
37
38
%gep = getelementptr [7 x i32 ], ptr %x , i64 %y , i64 %z
@@ -42,7 +43,8 @@ define ptr @bitcast_vec_to_array_gep(ptr %x, i64 %y, i64 %z) {
42
43
43
44
define ptr @bitcast_array_to_vec_gep (ptr %x , i64 %y , i64 %z ) {
44
45
; CHECK-LABEL: @bitcast_array_to_vec_gep(
45
- ; CHECK-NEXT: [[GEP:%.*]] = getelementptr inbounds <3 x i32>, ptr [[X:%.*]], i64 [[Y:%.*]], i64 [[Z:%.*]]
46
+ ; CHECK-NEXT: [[GEP_SPLIT:%.*]] = getelementptr inbounds <3 x i32>, ptr [[X:%.*]], i64 [[Y:%.*]]
47
+ ; CHECK-NEXT: [[GEP:%.*]] = getelementptr inbounds <3 x i32>, ptr [[GEP_SPLIT]], i64 0, i64 [[Z:%.*]]
46
48
; CHECK-NEXT: ret ptr [[GEP]]
47
49
;
48
50
%gep = getelementptr inbounds <3 x i32 >, ptr %x , i64 %y , i64 %z
@@ -53,7 +55,8 @@ define ptr @bitcast_array_to_vec_gep(ptr %x, i64 %y, i64 %z) {
53
55
54
56
define ptr @bitcast_vec_to_array_gep_matching_alloc_size (ptr %x , i64 %y , i64 %z ) {
55
57
; CHECK-LABEL: @bitcast_vec_to_array_gep_matching_alloc_size(
56
- ; CHECK-NEXT: [[GEP:%.*]] = getelementptr [4 x i32], ptr [[X:%.*]], i64 [[Y:%.*]], i64 [[Z:%.*]]
58
+ ; CHECK-NEXT: [[GEP_SPLIT:%.*]] = getelementptr [4 x i32], ptr [[X:%.*]], i64 [[Y:%.*]]
59
+ ; CHECK-NEXT: [[GEP:%.*]] = getelementptr [4 x i32], ptr [[GEP_SPLIT]], i64 0, i64 [[Z:%.*]]
57
60
; CHECK-NEXT: ret ptr [[GEP]]
58
61
;
59
62
%gep = getelementptr [4 x i32 ], ptr %x , i64 %y , i64 %z
@@ -64,7 +67,8 @@ define ptr @bitcast_vec_to_array_gep_matching_alloc_size(ptr %x, i64 %y, i64 %z)
64
67
65
68
define ptr @bitcast_array_to_vec_gep_matching_alloc_size (ptr %x , i64 %y , i64 %z ) {
66
69
; CHECK-LABEL: @bitcast_array_to_vec_gep_matching_alloc_size(
67
- ; CHECK-NEXT: [[GEP:%.*]] = getelementptr inbounds <4 x i32>, ptr [[X:%.*]], i64 [[Y:%.*]], i64 [[Z:%.*]]
70
+ ; CHECK-NEXT: [[GEP_SPLIT:%.*]] = getelementptr inbounds <4 x i32>, ptr [[X:%.*]], i64 [[Y:%.*]]
71
+ ; CHECK-NEXT: [[GEP:%.*]] = getelementptr inbounds <4 x i32>, ptr [[GEP_SPLIT]], i64 0, i64 [[Z:%.*]]
68
72
; CHECK-NEXT: ret ptr [[GEP]]
69
73
;
70
74
%gep = getelementptr inbounds <4 x i32 >, ptr %x , i64 %y , i64 %z
@@ -76,7 +80,8 @@ define ptr @bitcast_array_to_vec_gep_matching_alloc_size(ptr %x, i64 %y, i64 %z)
76
80
define ptr addrspace (3 ) @bitcast_vec_to_array_addrspace (ptr %x , i64 %y , i64 %z ) {
77
81
; CHECK-LABEL: @bitcast_vec_to_array_addrspace(
78
82
; CHECK-NEXT: [[ASC:%.*]] = addrspacecast ptr [[X:%.*]] to ptr addrspace(3)
79
- ; CHECK-NEXT: [[GEP:%.*]] = getelementptr [7 x i32], ptr addrspace(3) [[ASC]], i64 [[Y:%.*]], i64 [[Z:%.*]]
83
+ ; CHECK-NEXT: [[GEP_SPLIT:%.*]] = getelementptr [7 x i32], ptr addrspace(3) [[ASC]], i64 [[Y:%.*]]
84
+ ; CHECK-NEXT: [[GEP:%.*]] = getelementptr [7 x i32], ptr addrspace(3) [[GEP_SPLIT]], i64 0, i64 [[Z:%.*]]
80
85
; CHECK-NEXT: ret ptr addrspace(3) [[GEP]]
81
86
;
82
87
%asc = addrspacecast ptr %x to ptr addrspace (3 )
@@ -89,7 +94,8 @@ define ptr addrspace(3) @bitcast_vec_to_array_addrspace(ptr %x, i64 %y, i64 %z)
89
94
define ptr addrspace (3 ) @inbounds_bitcast_vec_to_array_addrspace (ptr %x , i64 %y , i64 %z ) {
90
95
; CHECK-LABEL: @inbounds_bitcast_vec_to_array_addrspace(
91
96
; CHECK-NEXT: [[ASC:%.*]] = addrspacecast ptr [[X:%.*]] to ptr addrspace(3)
92
- ; CHECK-NEXT: [[GEP:%.*]] = getelementptr inbounds [7 x i32], ptr addrspace(3) [[ASC]], i64 [[Y:%.*]], i64 [[Z:%.*]]
97
+ ; CHECK-NEXT: [[GEP_SPLIT:%.*]] = getelementptr inbounds [7 x i32], ptr addrspace(3) [[ASC]], i64 [[Y:%.*]]
98
+ ; CHECK-NEXT: [[GEP:%.*]] = getelementptr inbounds [7 x i32], ptr addrspace(3) [[GEP_SPLIT]], i64 0, i64 [[Z:%.*]]
93
99
; CHECK-NEXT: ret ptr addrspace(3) [[GEP]]
94
100
;
95
101
%asc = addrspacecast ptr %x to ptr addrspace (3 )
@@ -102,7 +108,8 @@ define ptr addrspace(3) @inbounds_bitcast_vec_to_array_addrspace(ptr %x, i64 %y,
102
108
define ptr addrspace (3 ) @bitcast_vec_to_array_addrspace_matching_alloc_size (ptr %x , i64 %y , i64 %z ) {
103
109
; CHECK-LABEL: @bitcast_vec_to_array_addrspace_matching_alloc_size(
104
110
; CHECK-NEXT: [[ASC:%.*]] = addrspacecast ptr [[X:%.*]] to ptr addrspace(3)
105
- ; CHECK-NEXT: [[GEP:%.*]] = getelementptr [4 x i32], ptr addrspace(3) [[ASC]], i64 [[Y:%.*]], i64 [[Z:%.*]]
111
+ ; CHECK-NEXT: [[GEP_SPLIT:%.*]] = getelementptr [4 x i32], ptr addrspace(3) [[ASC]], i64 [[Y:%.*]]
112
+ ; CHECK-NEXT: [[GEP:%.*]] = getelementptr [4 x i32], ptr addrspace(3) [[GEP_SPLIT]], i64 0, i64 [[Z:%.*]]
106
113
; CHECK-NEXT: ret ptr addrspace(3) [[GEP]]
107
114
;
108
115
%asc = addrspacecast ptr %x to ptr addrspace (3 )
@@ -115,7 +122,8 @@ define ptr addrspace(3) @bitcast_vec_to_array_addrspace_matching_alloc_size(ptr
115
122
define ptr addrspace (3 ) @inbounds_bitcast_vec_to_array_addrspace_matching_alloc_size (ptr %x , i64 %y , i64 %z ) {
116
123
; CHECK-LABEL: @inbounds_bitcast_vec_to_array_addrspace_matching_alloc_size(
117
124
; CHECK-NEXT: [[ASC:%.*]] = addrspacecast ptr [[X:%.*]] to ptr addrspace(3)
118
- ; CHECK-NEXT: [[GEP:%.*]] = getelementptr inbounds [4 x i32], ptr addrspace(3) [[ASC]], i64 [[Y:%.*]], i64 [[Z:%.*]]
125
+ ; CHECK-NEXT: [[GEP_SPLIT:%.*]] = getelementptr inbounds [4 x i32], ptr addrspace(3) [[ASC]], i64 [[Y:%.*]]
126
+ ; CHECK-NEXT: [[GEP:%.*]] = getelementptr inbounds [4 x i32], ptr addrspace(3) [[GEP_SPLIT]], i64 0, i64 [[Z:%.*]]
119
127
; CHECK-NEXT: ret ptr addrspace(3) [[GEP]]
120
128
;
121
129
%asc = addrspacecast ptr %x to ptr addrspace (3 )
0 commit comments