@@ -85,7 +85,7 @@ define i8 @test4(i8 %a, i8 %b) {
85
85
; CHECK-NEXT: [[CMP:%.*]] = icmp ugt i8 [[B:%.*]], 7
86
86
; CHECK-NEXT: br i1 [[CMP]], label [[BB:%.*]], label [[EXIT:%.*]]
87
87
; CHECK: bb:
88
- ; CHECK-NEXT: [[SHL:%.*]] = shl i8 [[A:%.*]], [[B]]
88
+ ; CHECK-NEXT: [[SHL:%.*]] = shl nuw nsw i8 [[A:%.*]], [[B]]
89
89
; CHECK-NEXT: ret i8 [[SHL]]
90
90
; CHECK: exit:
91
91
; CHECK-NEXT: ret i8 0
@@ -104,7 +104,7 @@ exit:
104
104
105
105
define i8 @test5 (i8 %b ) {
106
106
; CHECK-LABEL: @test5(
107
- ; CHECK-NEXT: [[SHL:%.*]] = shl i8 0, [[B:%.*]]
107
+ ; CHECK-NEXT: [[SHL:%.*]] = shl nuw nsw i8 0, [[B:%.*]]
108
108
; CHECK-NEXT: ret i8 [[SHL]]
109
109
;
110
110
%shl = shl i8 0 , %b
@@ -113,7 +113,7 @@ define i8 @test5(i8 %b) {
113
113
114
114
define i8 @test6 (i8 %b ) {
115
115
; CHECK-LABEL: @test6(
116
- ; CHECK-NEXT: [[SHL:%.*]] = shl i8 1, [[B:%.*]]
116
+ ; CHECK-NEXT: [[SHL:%.*]] = shl nuw i8 1, [[B:%.*]]
117
117
; CHECK-NEXT: ret i8 [[SHL]]
118
118
;
119
119
%shl = shl i8 1 , %b
@@ -126,7 +126,7 @@ define i8 @test7(i8 %b) {
126
126
; CHECK-NEXT: [[CMP:%.*]] = icmp ult i8 [[B:%.*]], 7
127
127
; CHECK-NEXT: br i1 [[CMP]], label [[BB:%.*]], label [[EXIT:%.*]]
128
128
; CHECK: bb:
129
- ; CHECK-NEXT: [[SHL:%.*]] = shl i8 1, [[B]]
129
+ ; CHECK-NEXT: [[SHL:%.*]] = shl nuw nsw i8 1, [[B]]
130
130
; CHECK-NEXT: ret i8 [[SHL]]
131
131
; CHECK: exit:
132
132
; CHECK-NEXT: ret i8 0
@@ -145,7 +145,7 @@ exit:
145
145
146
146
define i8 @test8 (i8 %b ) {
147
147
; CHECK-LABEL: @test8(
148
- ; CHECK-NEXT: [[SHL:%.*]] = shl i8 -1, [[B:%.*]]
148
+ ; CHECK-NEXT: [[SHL:%.*]] = shl nsw i8 -1, [[B:%.*]]
149
149
; CHECK-NEXT: ret i8 [[SHL]]
150
150
;
151
151
%shl = shl i8 -1 , %b
@@ -158,7 +158,7 @@ define i8 @test9(i8 %b) {
158
158
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i8 [[B:%.*]], 0
159
159
; CHECK-NEXT: br i1 [[CMP]], label [[BB:%.*]], label [[EXIT:%.*]]
160
160
; CHECK: bb:
161
- ; CHECK-NEXT: [[SHL:%.*]] = shl i8 -1, [[B]]
161
+ ; CHECK-NEXT: [[SHL:%.*]] = shl nuw nsw i8 -1, [[B]]
162
162
; CHECK-NEXT: ret i8 -1
163
163
; CHECK: exit:
164
164
; CHECK-NEXT: ret i8 0
@@ -190,7 +190,7 @@ define i8 @test11(i8 %b) {
190
190
; CHECK-NEXT: [[CMP:%.*]] = icmp ult i8 [[B:%.*]], 2
191
191
; CHECK-NEXT: br i1 [[CMP]], label [[BB:%.*]], label [[EXIT:%.*]]
192
192
; CHECK: bb:
193
- ; CHECK-NEXT: [[SHL:%.*]] = shl i8 42, [[B]]
193
+ ; CHECK-NEXT: [[SHL:%.*]] = shl nuw nsw i8 42, [[B]]
194
194
; CHECK-NEXT: ret i8 [[SHL]]
195
195
; CHECK: exit:
196
196
; CHECK-NEXT: ret i8 0
@@ -213,7 +213,7 @@ define i8 @test12(i8 %b) {
213
213
; CHECK-NEXT: [[CMP:%.*]] = icmp ult i8 [[B:%.*]], 3
214
214
; CHECK-NEXT: br i1 [[CMP]], label [[BB:%.*]], label [[EXIT:%.*]]
215
215
; CHECK: bb:
216
- ; CHECK-NEXT: [[SHL:%.*]] = shl i8 42, [[B]]
216
+ ; CHECK-NEXT: [[SHL:%.*]] = shl nuw i8 42, [[B]]
217
217
; CHECK-NEXT: ret i8 [[SHL]]
218
218
; CHECK: exit:
219
219
; CHECK-NEXT: ret i8 0
@@ -268,7 +268,7 @@ define i8 @test15(i8 %b) {
268
268
; CHECK-NEXT: [[CMP:%.*]] = icmp ult i8 [[B:%.*]], 2
269
269
; CHECK-NEXT: br i1 [[CMP]], label [[BB:%.*]], label [[EXIT:%.*]]
270
270
; CHECK: bb:
271
- ; CHECK-NEXT: [[SHL:%.*]] = shl i8 -42, [[B]]
271
+ ; CHECK-NEXT: [[SHL:%.*]] = shl nsw i8 -42, [[B]]
272
272
; CHECK-NEXT: ret i8 [[SHL]]
273
273
; CHECK: exit:
274
274
; CHECK-NEXT: ret i8 0
@@ -314,7 +314,7 @@ define i8 @test17(i8 %b) {
314
314
; CHECK-NEXT: [[CMP:%.*]] = icmp slt i8 [[B:%.*]], 2
315
315
; CHECK-NEXT: br i1 [[CMP]], label [[BB:%.*]], label [[EXIT:%.*]]
316
316
; CHECK: bb:
317
- ; CHECK-NEXT: [[SHL:%.*]] = shl i8 42, [[B]]
317
+ ; CHECK-NEXT: [[SHL:%.*]] = shl nuw nsw i8 42, [[B]]
318
318
; CHECK-NEXT: ret i8 [[SHL]]
319
319
; CHECK: exit:
320
320
; CHECK-NEXT: ret i8 0
@@ -337,7 +337,7 @@ define i8 @test18(i8 %b) {
337
337
; CHECK-NEXT: [[CMP:%.*]] = icmp slt i8 [[B:%.*]], 3
338
338
; CHECK-NEXT: br i1 [[CMP]], label [[BB:%.*]], label [[EXIT:%.*]]
339
339
; CHECK: bb:
340
- ; CHECK-NEXT: [[SHL:%.*]] = shl i8 42, [[B]]
340
+ ; CHECK-NEXT: [[SHL:%.*]] = shl nuw i8 42, [[B]]
341
341
; CHECK-NEXT: ret i8 [[SHL]]
342
342
; CHECK: exit:
343
343
; CHECK-NEXT: ret i8 0
0 commit comments