|
1 | 1 | ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 4
|
2 | 2 | ; RUN: opt < %s -S -passes='loop(simple-loop-unswitch),instcombine' -verify-memoryssa | FileCheck %s
|
3 | 3 |
|
4 |
| -; We do not reach a fixpoint, because we first have to infer nsw on the IV add, |
5 |
| -; and could eliminate the icmp slt afterwards, but don't revisit it. |
6 |
| - |
7 | 4 | @.str9 = external constant [1 x i8]
|
8 | 5 |
|
9 | 6 | declare i32 @strcmp(ptr, ptr)
|
10 | 7 |
|
11 |
| -define i32 @_ZN9Generator6strregEPKc(ptr %this, ptr %s) "instcombine-no-verify-fixpoint" { |
| 8 | +define i32 @_ZN9Generator6strregEPKc(ptr %this, ptr %s) { |
12 | 9 | ; CHECK-LABEL: define i32 @_ZN9Generator6strregEPKc(
|
13 |
| -; CHECK-SAME: ptr [[THIS:%.*]], ptr [[S:%.*]]) #[[ATTR0:[0-9]+]] { |
| 10 | +; CHECK-SAME: ptr [[THIS:%.*]], ptr [[S:%.*]]) { |
14 | 11 | ; CHECK-NEXT: entry:
|
15 |
| -; CHECK-NEXT: [[TMP122:%.*]] = icmp eq ptr [[S]], null |
16 | 12 | ; CHECK-NEXT: br label [[BB184:%.*]]
|
17 | 13 | ; CHECK: bb55:
|
18 | 14 | ; CHECK-NEXT: ret i32 0
|
19 | 15 | ; CHECK: bb88:
|
20 |
| -; CHECK-NEXT: br i1 [[TMP122]], label [[BB154:%.*]], label [[BB128:%.*]] |
| 16 | +; CHECK-NEXT: br i1 poison, label [[BB154:%.*]], label [[BB128:%.*]] |
21 | 17 | ; CHECK: bb128:
|
22 |
| -; CHECK-NEXT: [[TMP138:%.*]] = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) null, ptr noundef nonnull dereferenceable(1) [[S]]) |
23 |
| -; CHECK-NEXT: [[IFTMP_37_0_IN4:%.*]] = icmp eq i32 [[TMP138]], 0 |
24 |
| -; CHECK-NEXT: br i1 [[IFTMP_37_0_IN4]], label [[BB250:%.*]], label [[BB166:%.*]] |
| 18 | +; CHECK-NEXT: br i1 poison, label [[BB250:%.*]], label [[BB166:%.*]] |
25 | 19 | ; CHECK: bb154:
|
26 | 20 | ; CHECK-NEXT: br i1 false, label [[BB250]], label [[BB166]]
|
27 | 21 | ; CHECK: bb166:
|
28 |
| -; CHECK-NEXT: [[TMP175:%.*]] = add i32 [[IDX_0:%.*]], 1 |
29 |
| -; CHECK-NEXT: [[TMP183:%.*]] = add nsw i32 [[I33_0:%.*]], 1 |
30 | 22 | ; CHECK-NEXT: br label [[BB184]]
|
31 | 23 | ; CHECK: bb184:
|
32 |
| -; CHECK-NEXT: [[I33_0]] = phi i32 [ 0, [[ENTRY:%.*]] ], [ [[TMP183]], [[BB166]] ] |
33 |
| -; CHECK-NEXT: [[IDX_0]] = phi i32 [ 0, [[ENTRY]] ], [ [[TMP175]], [[BB166]] ] |
34 |
| -; CHECK-NEXT: [[TMP49:%.*]] = icmp slt i32 [[I33_0]], 0 |
35 |
| -; CHECK-NEXT: br i1 [[TMP49]], label [[BB88:%.*]], label [[BB55:%.*]] |
| 24 | +; CHECK-NEXT: br i1 false, label [[BB88:%.*]], label [[BB55:%.*]] |
36 | 25 | ; CHECK: bb250:
|
37 |
| -; CHECK-NEXT: ret i32 [[IDX_0]] |
| 26 | +; CHECK-NEXT: ret i32 poison |
38 | 27 | ;
|
39 | 28 | entry:
|
40 | 29 | %s_addr.0 = select i1 false, ptr @.str9, ptr %s
|
|
0 commit comments