4
4
// CHECK-LABEL: define void {{.*}}call4
5
5
// CHECK: [[B:%.*]] = alloca [2 x i32], align 4
6
6
// 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
9
9
// CHECK-NEXT: store i32 3, ptr [[G1]], align 4
10
10
// CHECK-NEXT: store i32 3, ptr [[G2]], align 4
11
11
export void call4 () {
@@ -20,8 +20,8 @@ export void call4() {
20
20
// CHECK-NEXT: store <1 x i32> splat (i32 1), ptr [[A]], align 4
21
21
// CHECK-NEXT: call void @llvm.memcpy.p0.p0.i32(ptr align 4 [[B]], ptr align 4 {{.*}}, i32 8, i1 false)
22
22
// 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
25
25
// CHECK-NEXT: [[VL:%.*]] = extractelement <1 x i32> [[L]], i64 0
26
26
// CHECK-NEXT: store i32 [[VL]], ptr [[G1]], align 4
27
27
// CHECK-NEXT: store i32 [[VL]], ptr [[G2]], align 4
@@ -58,8 +58,8 @@ struct S {
58
58
// CHECK: [[s:%.*]] = alloca %struct.S, align 4
59
59
// CHECK-NEXT: store <1 x i32> splat (i32 1), ptr [[A]], align 4
60
60
// 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
63
63
// CHECK-NEXT: [[VL:%.*]] = extractelement <1 x i32> [[L]], i64 0
64
64
// CHECK-NEXT: store i32 [[VL]], ptr [[G1]], align 4
65
65
// CHECK-NEXT: [[C:%.*]] = sitofp i32 [[VL]] to float
@@ -75,8 +75,8 @@ export void call3() {
75
75
// CHECK-NEXT: [[s:%.*]] = alloca %struct.S, align 4
76
76
// CHECK-NEXT: store <1 x i32> splat (i32 1), ptr [[A]], align 4
77
77
// 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
80
80
// CHECK-NEXT: [[VL:%.*]] = extractelement <1 x i32> [[L]], i64 0
81
81
// CHECK-NEXT: store i32 [[VL]], ptr [[G1]], align 4
82
82
// CHECK-NEXT: [[C:%.*]] = sitofp i32 [[VL]] to float
0 commit comments