44// CHECK-LABEL: define void {{.*}}call4
55// CHECK: [[B:%.*]] = alloca [2 x i32], align 4
66// CHECK-NEXT: call void @llvm.memcpy.p0.p0.i32(ptr align 4 [[B]], ptr align 4 {{.*}}, i32 8, i1 false)
7- // CHECK-NEXT: [[G1:%.*]] = getelementptr inbounds [2 x i32], ptr [[B]], i32 0
8- // CHECK-NEXT: [[G2:%.*]] = getelementptr inbounds [2 x i32], ptr [[B]], i32 1
7+ // CHECK-NEXT: [[G1:%.*]] = getelementptr inbounds [2 x i32], ptr [[B]], i32 0, i32 0
8+ // CHECK-NEXT: [[G2:%.*]] = getelementptr inbounds [2 x i32], ptr [[B]], i32 0, i32 1
99// CHECK-NEXT: store i32 3, ptr [[G1]], align 4
1010// CHECK-NEXT: store i32 3, ptr [[G2]], align 4
1111export void call4 () {
@@ -20,8 +20,8 @@ export void call4() {
2020// CHECK-NEXT: store <1 x i32> splat (i32 1), ptr [[A]], align 4
2121// CHECK-NEXT: call void @llvm.memcpy.p0.p0.i32(ptr align 4 [[B]], ptr align 4 {{.*}}, i32 8, i1 false)
2222// CHECK-NEXT: [[L:%.*]] = load <1 x i32>, ptr [[A]], align 4
23- // CHECK-NEXT: [[G1:%.*]] = getelementptr inbounds [2 x i32], ptr [[B]], i32 0
24- // CHECK-NEXT: [[G2:%.*]] = getelementptr inbounds [2 x i32], ptr [[B]], i32 1
23+ // CHECK-NEXT: [[G1:%.*]] = getelementptr inbounds [2 x i32], ptr [[B]], i32 0, i32 0
24+ // CHECK-NEXT: [[G2:%.*]] = getelementptr inbounds [2 x i32], ptr [[B]], i32 0, i32 1
2525// CHECK-NEXT: [[VL:%.*]] = extractelement <1 x i32> [[L]], i64 0
2626// CHECK-NEXT: store i32 [[VL]], ptr [[G1]], align 4
2727// CHECK-NEXT: store i32 [[VL]], ptr [[G2]], align 4
@@ -58,8 +58,8 @@ struct S {
5858// CHECK: [[s:%.*]] = alloca %struct.S, align 4
5959// CHECK-NEXT: store <1 x i32> splat (i32 1), ptr [[A]], align 4
6060// CHECK-NEXT: [[L:%.*]] = load <1 x i32>, ptr [[A]], align 4
61- // CHECK-NEXT: [[G1:%.*]] = getelementptr inbounds %struct.S, ptr [[s]], i32 0
62- // CHECK-NEXT: [[G2:%.*]] = getelementptr inbounds %struct.S, ptr [[s]], i32 1
61+ // CHECK-NEXT: [[G1:%.*]] = getelementptr inbounds %struct.S, ptr [[s]], i32 0, i32 0
62+ // CHECK-NEXT: [[G2:%.*]] = getelementptr inbounds %struct.S, ptr [[s]], i32 0, i32 1
6363// CHECK-NEXT: [[VL:%.*]] = extractelement <1 x i32> [[L]], i64 0
6464// CHECK-NEXT: store i32 [[VL]], ptr [[G1]], align 4
6565// CHECK-NEXT: [[C:%.*]] = sitofp i32 [[VL]] to float
@@ -75,8 +75,8 @@ export void call3() {
7575// CHECK-NEXT: [[s:%.*]] = alloca %struct.S, align 4
7676// CHECK-NEXT: store <1 x i32> splat (i32 1), ptr [[A]], align 4
7777// CHECK-NEXT: [[L:%.*]] = load <1 x i32>, ptr [[A]], align 4
78- // CHECK-NEXT: [[G1:%.*]] = getelementptr inbounds %struct.S, ptr [[s]], i32 0
79- // CHECK-NEXT: [[G2:%.*]] = getelementptr inbounds %struct.S, ptr [[s]], i32 1
78+ // CHECK-NEXT: [[G1:%.*]] = getelementptr inbounds %struct.S, ptr [[s]], i32 0, i32 0
79+ // CHECK-NEXT: [[G2:%.*]] = getelementptr inbounds %struct.S, ptr [[s]], i32 0, i32 1
8080// CHECK-NEXT: [[VL:%.*]] = extractelement <1 x i32> [[L]], i64 0
8181// CHECK-NEXT: store i32 [[VL]], ptr [[G1]], align 4
8282// CHECK-NEXT: [[C:%.*]] = sitofp i32 [[VL]] to float
0 commit comments