|
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