[InstCombine] Add extra test for non-overflowing usub.sat (NFC)
authorNikita Popov <npopov@redhat.com>
Fri, 31 Mar 2023 14:54:45 +0000 (16:54 +0200)
committerNikita Popov <npopov@redhat.com>
Fri, 31 Mar 2023 14:55:26 +0000 (16:55 +0200)
Same as the existing one, but with both nuw and nsw on the add.

llvm/test/Transforms/InstCombine/saturating-add-sub.ll

index f1b7637..dae370f 100644 (file)
@@ -965,6 +965,17 @@ define i8 @test_scalar_usub_add_nuw_no_ov(i8 %a) {
   ret i8 %r
 }
 
+define i8 @test_scalar_usub_add_nuw_nsw_no_ov(i8 %a) {
+; CHECK-LABEL: @test_scalar_usub_add_nuw_nsw_no_ov(
+; CHECK-NEXT:    [[B:%.*]] = add nuw nsw i8 [[A:%.*]], 10
+; CHECK-NEXT:    [[R:%.*]] = call i8 @llvm.usub.sat.i8(i8 [[B]], i8 9)
+; CHECK-NEXT:    ret i8 [[R]]
+;
+  %b = add nuw nsw i8 %a, 10
+  %r = call i8 @llvm.usub.sat.i8(i8 %b, i8 9)
+  ret i8 %r
+}
+
 define i8 @test_scalar_usub_add_nuw_eq(i8 %a) {
 ; CHECK-LABEL: @test_scalar_usub_add_nuw_eq(
 ; CHECK-NEXT:    ret i8 [[A:%.*]]