@@ -41,7 +41,7 @@ define i32 @f(i32 %c) {
41
41
; CHECK-NEXT: br i1 [[TMP0]], label [[SWITCH_LOOKUP:%.*]], label [[RETURN:%.*]]
42
42
; CHECK: switch.lookup:
43
43
; CHECK-NEXT: [[SWITCH_GEP:%.*]] = getelementptr inbounds [7 x i32], [7 x i32]* @switch.table.f, i32 0, i32 [[SWITCH_TABLEIDX]]
44
- ; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load i32, i32* [[SWITCH_GEP]]
44
+ ; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load i32, i32* [[SWITCH_GEP]], align 4
45
45
; CHECK-NEXT: ret i32 [[SWITCH_LOAD]]
46
46
; CHECK: return:
47
47
; CHECK-NEXT: ret i32 15
@@ -80,7 +80,7 @@ define i8 @char(i32 %c) {
80
80
; CHECK-NEXT: br i1 [[TMP0]], label [[SWITCH_LOOKUP:%.*]], label [[RETURN:%.*]]
81
81
; CHECK: switch.lookup:
82
82
; CHECK-NEXT: [[SWITCH_GEP:%.*]] = getelementptr inbounds [9 x i8], [9 x i8]* @switch.table.char, i32 0, i32 [[SWITCH_TABLEIDX]]
83
- ; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load i8, i8* [[SWITCH_GEP]]
83
+ ; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load i8, i8* [[SWITCH_GEP]], align 1
84
84
; CHECK-NEXT: ret i8 [[SWITCH_LOAD]]
85
85
; CHECK: return:
86
86
; CHECK-NEXT: ret i8 15
@@ -126,7 +126,7 @@ define void @h(i32 %x) {
126
126
; CHECK-NEXT: [[SWITCH_DOWNSHIFT:%.*]] = lshr i32 89655594, [[SWITCH_SHIFTAMT]]
127
127
; CHECK-NEXT: [[SWITCH_MASKED:%.*]] = trunc i32 [[SWITCH_DOWNSHIFT]] to i8
128
128
; CHECK-NEXT: [[SWITCH_GEP:%.*]] = getelementptr inbounds [4 x float], [4 x float]* @switch.table.h, i32 0, i32 [[X]]
129
- ; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load float, float* [[SWITCH_GEP]]
129
+ ; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load float, float* [[SWITCH_GEP]], align 4
130
130
; CHECK-NEXT: br label [[SW_EPILOG]]
131
131
; CHECK: sw.epilog:
132
132
; CHECK-NEXT: [[A_0:%.*]] = phi i8 [ [[SWITCH_MASKED]], [[SWITCH_LOOKUP]] ], [ 7, [[ENTRY:%.*]] ]
@@ -171,7 +171,7 @@ define i8* @foostring(i32 %x) {
171
171
; CHECK-NEXT: br i1 [[TMP0]], label [[SWITCH_LOOKUP:%.*]], label [[RETURN:%.*]]
172
172
; CHECK: switch.lookup:
173
173
; CHECK-NEXT: [[SWITCH_GEP:%.*]] = getelementptr inbounds [4 x i8*], [4 x i8*]* @switch.table.foostring, i32 0, i32 [[X]]
174
- ; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load i8*, i8** [[SWITCH_GEP]]
174
+ ; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load i8*, i8** [[SWITCH_GEP]], align 8
175
175
; CHECK-NEXT: ret i8* [[SWITCH_LOAD]]
176
176
; CHECK: return:
177
177
; CHECK-NEXT: ret i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str4, i64 0, i64 0)
@@ -209,7 +209,7 @@ define i32 @earlyreturncrash(i32 %x) {
209
209
; CHECK-NEXT: br i1 [[TMP0]], label [[SWITCH_LOOKUP:%.*]], label [[SW_EPILOG:%.*]]
210
210
; CHECK: switch.lookup:
211
211
; CHECK-NEXT: [[SWITCH_GEP:%.*]] = getelementptr inbounds [4 x i32], [4 x i32]* @switch.table.earlyreturncrash, i32 0, i32 [[X]]
212
- ; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load i32, i32* [[SWITCH_GEP]]
212
+ ; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load i32, i32* [[SWITCH_GEP]], align 4
213
213
; CHECK-NEXT: ret i32 [[SWITCH_LOAD]]
214
214
; CHECK: sw.epilog:
215
215
; CHECK-NEXT: ret i32 7
@@ -383,7 +383,7 @@ define i32 @large(i32 %x) {
383
383
; CHECK-NEXT: br i1 [[TMP0]], label [[SWITCH_LOOKUP:%.*]], label [[RETURN:%.*]]
384
384
; CHECK: switch.lookup:
385
385
; CHECK-NEXT: [[SWITCH_GEP:%.*]] = getelementptr inbounds [199 x i32], [199 x i32]* @switch.table.large, i32 0, i32 [[SWITCH_TABLEIDX]]
386
- ; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load i32, i32* [[SWITCH_GEP]]
386
+ ; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load i32, i32* [[SWITCH_GEP]], align 4
387
387
; CHECK-NEXT: ret i32 [[SWITCH_LOAD]]
388
388
; CHECK: return:
389
389
; CHECK-NEXT: ret i32 0
@@ -813,7 +813,7 @@ define i32 @cprop(i32 %x, i32 %y) {
813
813
; CHECK-NEXT: br i1 [[TMP0]], label [[SWITCH_LOOKUP:%.*]], label [[RETURN:%.*]]
814
814
; CHECK: switch.lookup:
815
815
; CHECK-NEXT: [[SWITCH_GEP:%.*]] = getelementptr inbounds [7 x i32], [7 x i32]* @switch.table.cprop, i32 0, i32 [[SWITCH_TABLEIDX]]
816
- ; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load i32, i32* [[SWITCH_GEP]]
816
+ ; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load i32, i32* [[SWITCH_GEP]], align 4
817
817
; CHECK-NEXT: ret i32 [[SWITCH_LOAD]]
818
818
; CHECK: return:
819
819
; CHECK-NEXT: ret i32 123
@@ -862,7 +862,7 @@ define i32 @unreachable_case(i32 %x) {
862
862
; CHECK-NEXT: br i1 [[TMP0]], label [[SWITCH_LOOKUP:%.*]], label [[RETURN:%.*]]
863
863
; CHECK: switch.lookup:
864
864
; CHECK-NEXT: [[SWITCH_GEP:%.*]] = getelementptr inbounds [9 x i32], [9 x i32]* @switch.table.unreachable_case, i32 0, i32 [[X]]
865
- ; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load i32, i32* [[SWITCH_GEP]]
865
+ ; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load i32, i32* [[SWITCH_GEP]], align 4
866
866
; CHECK-NEXT: ret i32 [[SWITCH_LOAD]]
867
867
; CHECK: return:
868
868
; CHECK-NEXT: ret i32 2
@@ -896,7 +896,7 @@ define i32 @unreachable_default(i32 %x) {
896
896
; CHECK-LABEL: @unreachable_default(
897
897
; CHECK-NEXT: entry:
898
898
; CHECK-NEXT: [[SWITCH_GEP:%.*]] = getelementptr inbounds [4 x i32], [4 x i32]* @switch.table.unreachable_default, i32 0, i32 [[X:%.*]]
899
- ; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load i32, i32* [[SWITCH_GEP]]
899
+ ; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load i32, i32* [[SWITCH_GEP]], align 4
900
900
; CHECK-NEXT: ret i32 [[SWITCH_LOAD]]
901
901
;
902
902
entry:
@@ -976,7 +976,7 @@ define i32 @nodefaultnoholes(i32 %c) {
976
976
; CHECK-NEXT: unreachable
977
977
; CHECK: switch.lookup:
978
978
; CHECK-NEXT: [[SWITCH_GEP:%.*]] = getelementptr inbounds [4 x i32], [4 x i32]* @switch.table.nodefaultnoholes, i32 0, i32 [[C]]
979
- ; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load i32, i32* [[SWITCH_GEP]]
979
+ ; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load i32, i32* [[SWITCH_GEP]], align 4
980
980
; CHECK-NEXT: ret i32 [[SWITCH_LOAD]]
981
981
;
982
982
entry:
@@ -1014,7 +1014,7 @@ define i32 @nodefaultwithholes(i32 %c) {
1014
1014
; CHECK-NEXT: br i1 [[SWITCH_LOBIT]], label [[SWITCH_LOOKUP:%.*]], label [[SW_DEFAULT]]
1015
1015
; CHECK: switch.lookup:
1016
1016
; CHECK-NEXT: [[SWITCH_GEP:%.*]] = getelementptr inbounds [6 x i32], [6 x i32]* @switch.table.nodefaultwithholes, i32 0, i32 [[C]]
1017
- ; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load i32, i32* [[SWITCH_GEP]]
1017
+ ; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load i32, i32* [[SWITCH_GEP]], align 4
1018
1018
; CHECK-NEXT: ret i32 [[SWITCH_LOAD]]
1019
1019
;
1020
1020
entry:
@@ -1079,7 +1079,7 @@ define i32 @threecases(i32 %c) {
1079
1079
; CHECK-NEXT: br i1 [[TMP0]], label [[SWITCH_LOOKUP:%.*]], label [[RETURN:%.*]]
1080
1080
; CHECK: switch.lookup:
1081
1081
; CHECK-NEXT: [[SWITCH_GEP:%.*]] = getelementptr inbounds [3 x i32], [3 x i32]* @switch.table.threecases, i32 0, i32 [[C]]
1082
- ; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load i32, i32* [[SWITCH_GEP]]
1082
+ ; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load i32, i32* [[SWITCH_GEP]], align 4
1083
1083
; CHECK-NEXT: ret i32 [[SWITCH_LOAD]]
1084
1084
; CHECK: return:
1085
1085
; CHECK-NEXT: ret i32 3
@@ -1550,7 +1550,7 @@ define i32 @covered_switch_with_bit_tests(i3) {
1550
1550
; CHECK: switch.lookup:
1551
1551
; CHECK-NEXT: [[SWITCH_TABLEIDX_ZEXT:%.*]] = zext i3 [[SWITCH_TABLEIDX]] to i4
1552
1552
; CHECK-NEXT: [[SWITCH_GEP:%.*]] = getelementptr inbounds [8 x i32], [8 x i32]* @switch.table.covered_switch_with_bit_tests, i32 0, i4 [[SWITCH_TABLEIDX_ZEXT]]
1553
- ; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load i32, i32* [[SWITCH_GEP]]
1553
+ ; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load i32, i32* [[SWITCH_GEP]], align 4
1554
1554
; CHECK-NEXT: br label [[L6]]
1555
1555
; CHECK: l6:
1556
1556
; CHECK-NEXT: [[R:%.*]] = phi i32 [ 0, [[ENTRY:%.*]] ], [ [[SWITCH_LOAD]], [[SWITCH_LOOKUP]] ]
0 commit comments