@@ -31,7 +31,8 @@ define <2 x ptr> @vectorindex3() {
3131
3232define ptr @bitcast_vec_to_array_gep (ptr %x , i64 %y , i64 %z ) {
3333; 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:%.*]]
3536; CHECK-NEXT: ret ptr [[GEP]]
3637;
3738 %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) {
4243
4344define ptr @bitcast_array_to_vec_gep (ptr %x , i64 %y , i64 %z ) {
4445; 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:%.*]]
4648; CHECK-NEXT: ret ptr [[GEP]]
4749;
4850 %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) {
5355
5456define ptr @bitcast_vec_to_array_gep_matching_alloc_size (ptr %x , i64 %y , i64 %z ) {
5557; 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:%.*]]
5760; CHECK-NEXT: ret ptr [[GEP]]
5861;
5962 %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)
6467
6568define ptr @bitcast_array_to_vec_gep_matching_alloc_size (ptr %x , i64 %y , i64 %z ) {
6669; 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:%.*]]
6872; CHECK-NEXT: ret ptr [[GEP]]
6973;
7074 %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)
7680define ptr addrspace (3 ) @bitcast_vec_to_array_addrspace (ptr %x , i64 %y , i64 %z ) {
7781; CHECK-LABEL: @bitcast_vec_to_array_addrspace(
7882; 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:%.*]]
8085; CHECK-NEXT: ret ptr addrspace(3) [[GEP]]
8186;
8287 %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)
8994define ptr addrspace (3 ) @inbounds_bitcast_vec_to_array_addrspace (ptr %x , i64 %y , i64 %z ) {
9095; CHECK-LABEL: @inbounds_bitcast_vec_to_array_addrspace(
9196; 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:%.*]]
9399; CHECK-NEXT: ret ptr addrspace(3) [[GEP]]
94100;
95101 %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,
102108define ptr addrspace (3 ) @bitcast_vec_to_array_addrspace_matching_alloc_size (ptr %x , i64 %y , i64 %z ) {
103109; CHECK-LABEL: @bitcast_vec_to_array_addrspace_matching_alloc_size(
104110; 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:%.*]]
106113; CHECK-NEXT: ret ptr addrspace(3) [[GEP]]
107114;
108115 %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
115122define ptr addrspace (3 ) @inbounds_bitcast_vec_to_array_addrspace_matching_alloc_size (ptr %x , i64 %y , i64 %z ) {
116123; CHECK-LABEL: @inbounds_bitcast_vec_to_array_addrspace_matching_alloc_size(
117124; 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:%.*]]
119127; CHECK-NEXT: ret ptr addrspace(3) [[GEP]]
120128;
121129 %asc = addrspacecast ptr %x to ptr addrspace (3 )
0 commit comments