|
4 | 4 | ; x = [100, 301) |
5 | 5 | define internal i1 @f.trunc(i32 %x) { |
6 | 6 | ; CHECK-LABEL: define internal i1 @f.trunc( |
7 | | -; CHECK-SAME: i32 [[X:%.*]]) { |
| 7 | +; CHECK-SAME: i32 range(i32 100, 301) [[X:%.*]]) { |
8 | 8 | ; CHECK-NEXT: [[T_1:%.*]] = trunc nuw nsw i32 [[X]] to i16 |
9 | 9 | ; CHECK-NEXT: [[C_2:%.*]] = icmp sgt i16 [[T_1]], 299 |
10 | 10 | ; CHECK-NEXT: [[C_4:%.*]] = icmp slt i16 [[T_1]], 101 |
@@ -60,7 +60,7 @@ define i1 @caller1() { |
60 | 60 | ; x = [100, 301) |
61 | 61 | define internal i1 @f.zext(i32 %x, i32 %y) { |
62 | 62 | ; CHECK-LABEL: define internal i1 @f.zext( |
63 | | -; CHECK-SAME: i32 [[X:%.*]], i32 [[Y:%.*]]) { |
| 63 | +; CHECK-SAME: i32 range(i32 100, 301) [[X:%.*]], i32 range(i32 -120, 901) [[Y:%.*]]) { |
64 | 64 | ; CHECK-NEXT: [[T_1:%.*]] = zext nneg i32 [[X]] to i64 |
65 | 65 | ; CHECK-NEXT: [[C_2:%.*]] = icmp sgt i64 [[T_1]], 299 |
66 | 66 | ; CHECK-NEXT: [[C_4:%.*]] = icmp slt i64 [[T_1]], 101 |
@@ -114,7 +114,7 @@ define i1 @caller.zext() { |
114 | 114 | ; x = [100, 301) |
115 | 115 | define internal i1 @f.sext(i32 %x, i32 %y) { |
116 | 116 | ; CHECK-LABEL: define internal i1 @f.sext( |
117 | | -; CHECK-SAME: i32 [[X:%.*]], i32 [[Y:%.*]]) { |
| 117 | +; CHECK-SAME: i32 range(i32 100, 301) [[X:%.*]], i32 range(i32 -120, 901) [[Y:%.*]]) { |
118 | 118 | ; CHECK-NEXT: [[T_1:%.*]] = zext nneg i32 [[X]] to i64 |
119 | 119 | ; CHECK-NEXT: [[C_2:%.*]] = icmp sgt i64 [[T_1]], 299 |
120 | 120 | ; CHECK-NEXT: [[C_4:%.*]] = icmp slt i64 [[T_1]], 101 |
@@ -166,7 +166,7 @@ define i1 @caller.sext() { |
166 | 166 | ; There's nothing we can do besides going to the full range or overdefined. |
167 | 167 | define internal i1 @f.fptosi(i32 %x) { |
168 | 168 | ; CHECK-LABEL: define internal i1 @f.fptosi( |
169 | | -; CHECK-SAME: i32 [[X:%.*]]) { |
| 169 | +; CHECK-SAME: i32 range(i32 100, 301) [[X:%.*]]) { |
170 | 170 | ; CHECK-NEXT: [[TO_DOUBLE:%.*]] = uitofp nneg i32 [[X]] to double |
171 | 171 | ; CHECK-NEXT: [[ADD:%.*]] = fadd double 0.000000e+00, [[TO_DOUBLE]] |
172 | 172 | ; CHECK-NEXT: [[TO_I32:%.*]] = fptosi double [[ADD]] to i32 |
@@ -208,7 +208,7 @@ define i1 @caller.fptosi() { |
208 | 208 | ; There's nothing we can do besides going to the full range or overdefined. |
209 | 209 | define internal i1 @f.fpext(i16 %x) { |
210 | 210 | ; CHECK-LABEL: define internal i1 @f.fpext( |
211 | | -; CHECK-SAME: i16 [[X:%.*]]) { |
| 211 | +; CHECK-SAME: i16 range(i16 100, 301) [[X:%.*]]) { |
212 | 212 | ; CHECK-NEXT: [[TO_FLOAT:%.*]] = uitofp nneg i16 [[X]] to float |
213 | 213 | ; CHECK-NEXT: [[TO_DOUBLE:%.*]] = fpext float [[TO_FLOAT]] to double |
214 | 214 | ; CHECK-NEXT: [[TO_I64:%.*]] = fptoui float [[TO_FLOAT]] to i64 |
@@ -251,7 +251,7 @@ define i1 @caller.fpext() { |
251 | 251 | ; There's nothing we can do besides going to the full range or overdefined. |
252 | 252 | define internal i1 @f.inttoptr.ptrtoint(i64 %x) { |
253 | 253 | ; CHECK-LABEL: define internal i1 @f.inttoptr.ptrtoint( |
254 | | -; CHECK-SAME: i64 [[X:%.*]]) { |
| 254 | +; CHECK-SAME: i64 range(i64 100, 301) [[X:%.*]]) { |
255 | 255 | ; CHECK-NEXT: [[TO_PTR:%.*]] = inttoptr i64 [[X]] to ptr |
256 | 256 | ; CHECK-NEXT: [[TO_I64:%.*]] = ptrtoint ptr [[TO_PTR]] to i64 |
257 | 257 | ; CHECK-NEXT: [[C_1:%.*]] = icmp sgt i64 [[TO_I64]], 300 |
@@ -325,7 +325,7 @@ entry: |
325 | 325 |
|
326 | 326 | define internal i64 @f.sext_to_zext(i32 %t) { |
327 | 327 | ; CHECK-LABEL: define internal range(i64 0, 2) i64 @f.sext_to_zext( |
328 | | -; CHECK-SAME: i32 [[T:%.*]]) { |
| 328 | +; CHECK-SAME: i32 range(i32 0, 2) [[T:%.*]]) { |
329 | 329 | ; CHECK-NEXT: [[A:%.*]] = zext nneg i32 [[T]] to i64 |
330 | 330 | ; CHECK-NEXT: ret i64 [[A]] |
331 | 331 | ; |
|
0 commit comments