[llvm] 4dd80b7 - [SimplifyCFG] test for trunc condition (NFC)

Andreas Jonson via llvm-commits llvm-commits at lists.llvm.org
Sat Apr 12 03:32:17 PDT 2025


Author: Andreas Jonson
Date: 2025-04-12T12:25:40+02:00
New Revision: 4dd80b73b00c05cf3d0a29c736fa2dae8e64c780

URL: https://github.com/llvm/llvm-project/commit/4dd80b73b00c05cf3d0a29c736fa2dae8e64c780
DIFF: https://github.com/llvm/llvm-project/commit/4dd80b73b00c05cf3d0a29c736fa2dae8e64c780.diff

LOG: [SimplifyCFG] test for trunc condition (NFC)

Added: 
    

Modified: 
    llvm/test/Transforms/SimplifyCFG/fold-branch-to-common-dest.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/Transforms/SimplifyCFG/fold-branch-to-common-dest.ll b/llvm/test/Transforms/SimplifyCFG/fold-branch-to-common-dest.ll
index 9fb5164d44d45..37f48a9a7e03a 100644
--- a/llvm/test/Transforms/SimplifyCFG/fold-branch-to-common-dest.ll
+++ b/llvm/test/Transforms/SimplifyCFG/fold-branch-to-common-dest.ll
@@ -84,6 +84,37 @@ final_right:
   ret void
 }
 
+define void @one_pred_trunc_cond(i8 %v0, i8 %v1) {
+; CHECK-LABEL: @one_pred_trunc_cond(
+; CHECK-NEXT:  pred:
+; CHECK-NEXT:    [[C0:%.*]] = icmp eq i8 [[V0:%.*]], 0
+; CHECK-NEXT:    br i1 [[C0]], label [[DISPATCH:%.*]], label [[FINAL_RIGHT:%.*]]
+; CHECK:       dispatch:
+; CHECK-NEXT:    [[C1:%.*]] = trunc i8 [[V1:%.*]] to i1
+; CHECK-NEXT:    br i1 [[C1]], label [[FINAL_LEFT:%.*]], label [[FINAL_RIGHT]]
+; CHECK:       common.ret:
+; CHECK-NEXT:    ret void
+; CHECK:       final_left:
+; CHECK-NEXT:    call void @sideeffect0()
+; CHECK-NEXT:    br label [[COMMON_RET:%.*]]
+; CHECK:       final_right:
+; CHECK-NEXT:    call void @sideeffect1()
+; CHECK-NEXT:    br label [[COMMON_RET]]
+;
+pred:
+  %c0 = icmp eq i8 %v0, 0
+  br i1 %c0, label %dispatch, label %final_right
+dispatch:
+  %c1 = trunc i8 %v1 to i1
+  br i1 %c1, label %final_left, label %final_right
+final_left:
+  call void @sideeffect0()
+  ret void
+final_right:
+  call void @sideeffect1()
+  ret void
+}
+
 ; More complex case, there's an extra op that is safe to execute unconditionally.
 
 define void @one_pred_with_extra_op(i8 %v0, i8 %v1) {


        


More information about the llvm-commits mailing list