@@ -15,6 +15,9 @@ define i8 @select_offsets_simplifiable_1(i1 %cnd1, i1 %cnd2) {
1515; CHECK-NEXT: store i8 23, ptr [[GEP23]], align 4
1616; CHECK-NEXT: [[GEP29:%.*]] = getelementptr inbounds [1024 x i8], ptr [[BYTES]], i64 0, i64 29
1717; CHECK-NEXT: store i8 29, ptr [[GEP29]], align 4
18+ ; CHECK-NEXT: [[GEP9:%.*]] = getelementptr inbounds [1024 x i8], ptr [[BYTES]], i64 0, i64 9
19+ ; CHECK-NEXT: [[GEP6:%.*]] = getelementptr inbounds [1024 x i8], ptr [[BYTES]], i64 0, i64 6
20+ ; CHECK-NEXT: store i16 6, ptr [[GEP6]], align 4
1821; CHECK-NEXT: [[GEP7:%.*]] = getelementptr inbounds [1024 x i8], ptr [[BYTES]], i64 0, i64 7
1922; CHECK-NEXT: store i8 7, ptr [[GEP7]], align 4
2023; CHECK-NEXT: [[GEP31:%.*]] = getelementptr inbounds [1024 x i8], ptr [[BYTES]], i64 0, i64 31
@@ -31,6 +34,12 @@ entry:
3134 store i8 23 , ptr %gep23 , align 4
3235 %gep29 = getelementptr inbounds [1024 x i8 ], ptr %Bytes , i64 0 , i64 29
3336 store i8 29 , ptr %gep29 , align 4
37+ ;; This store is redundant, hence removed.
38+ %gep9 = getelementptr inbounds [1024 x i8 ], ptr %Bytes , i64 0 , i64 9
39+ store i8 9 , ptr %gep9 , align 4
40+ ;; This store is not redundant.
41+ %gep6 = getelementptr inbounds [1024 x i8 ], ptr %Bytes , i64 0 , i64 6
42+ store i16 6 , ptr %gep6 , align 4
3443 %gep7 = getelementptr inbounds [1024 x i8 ], ptr %Bytes , i64 0 , i64 7
3544 store i8 7 , ptr %gep7 , align 4
3645
@@ -53,6 +62,9 @@ define i8 @select_offsets_simplifiable_2(i1 %cnd1, i1 %cnd2) {
5362; CHECK-NEXT: [[BYTES:%.*]] = alloca [1024 x i8], align 16
5463; CHECK-NEXT: [[GEP23:%.*]] = getelementptr inbounds [1024 x i8], ptr [[BYTES]], i64 0, i64 23
5564; CHECK-NEXT: store i8 23, ptr [[GEP23]], align 4
65+ ; CHECK-NEXT: [[GEP9:%.*]] = getelementptr inbounds [1024 x i8], ptr [[BYTES]], i64 0, i64 9
66+ ; CHECK-NEXT: [[GEP6:%.*]] = getelementptr inbounds [1024 x i8], ptr [[BYTES]], i64 0, i64 6
67+ ; CHECK-NEXT: store i16 6, ptr [[GEP6]], align 4
5668; CHECK-NEXT: [[GEP29:%.*]] = getelementptr inbounds [1024 x i8], ptr [[BYTES]], i64 0, i64 29
5769; CHECK-NEXT: store i8 29, ptr [[GEP29]], align 4
5870; CHECK-NEXT: [[GEP7:%.*]] = getelementptr inbounds [1024 x i8], ptr [[BYTES]], i64 0, i64 7
@@ -70,6 +82,12 @@ entry:
7082
7183 %gep23 = getelementptr inbounds [1024 x i8 ], ptr %Bytes , i64 0 , i64 23
7284 store i8 23 , ptr %gep23 , align 4
85+ ;; This store is redundant, hence removed.
86+ %gep9 = getelementptr inbounds [1024 x i8 ], ptr %Bytes , i64 0 , i64 9
87+ store i8 9 , ptr %gep9 , align 4
88+ ;; This store is not redundant.
89+ %gep6 = getelementptr inbounds [1024 x i8 ], ptr %Bytes , i64 0 , i64 6
90+ store i16 6 , ptr %gep6 , align 4
7391 %gep29 = getelementptr inbounds [1024 x i8 ], ptr %Bytes , i64 0 , i64 29
7492 store i8 29 , ptr %gep29 , align 4
7593 %gep7 = getelementptr inbounds [1024 x i8 ], ptr %Bytes , i64 0 , i64 7
0 commit comments