[InstSimplify] Add test for PR49839 (NFC)
authorNikita Popov <npopov@redhat.com>
Tue, 12 Apr 2022 15:25:28 +0000 (17:25 +0200)
committerNikita Popov <npopov@redhat.com>
Tue, 12 Apr 2022 15:32:25 +0000 (17:32 +0200)
llvm/test/Transforms/InstSimplify/phi.ll

index f1cdd8b960cbb1aaa03c3a44ebd99143e0c1aee9..5d2ef05c7d31916cca2adb43f077bf91ecd9cae8 100644 (file)
@@ -152,3 +152,45 @@ EXIT:
   %r = phi i8 [poison, %A], [poison, %B]
   ret i8 %r
 }
+
+@g = extern_weak global i32
+
+define i64 @pr49839_with_poison(i1 %c) {
+; CHECK-LABEL: @pr49839_with_poison(
+; CHECK-NEXT:  entry:
+; CHECK-NEXT:    br i1 [[C:%.*]], label [[IF:%.*]], label [[JOIN:%.*]]
+; CHECK:       if:
+; CHECK-NEXT:    br label [[JOIN]]
+; CHECK:       join:
+; CHECK-NEXT:    ret i64 srem (i64 1, i64 ptrtoint (i32* @g to i64))
+;
+entry:
+  br i1 %c, label %if, label %join
+
+if:
+  br label %join
+
+join:
+  %phi = phi i64 [ poison, %if ], [ srem (i64 1, i64 ptrtoint (i32* @g to i64)) , %entry ]
+  ret i64 %phi
+}
+
+define i64 @pr49839_without_poison(i1 %c) {
+; CHECK-LABEL: @pr49839_without_poison(
+; CHECK-NEXT:  entry:
+; CHECK-NEXT:    br i1 [[C:%.*]], label [[IF:%.*]], label [[JOIN:%.*]]
+; CHECK:       if:
+; CHECK-NEXT:    br label [[JOIN]]
+; CHECK:       join:
+; CHECK-NEXT:    ret i64 srem (i64 1, i64 ptrtoint (i32* @g to i64))
+;
+entry:
+  br i1 %c, label %if, label %join
+
+if:
+  br label %join
+
+join:
+  %phi = phi i64 [ srem (i64 1, i64 ptrtoint (i32* @g to i64)), %if ], [ srem (i64 1, i64 ptrtoint (i32* @g to i64)) , %entry ]
+  ret i64 %phi
+}