[llvm] e559f27 - [NFC] Add tests cases for isTruncateOf for D151916

Amaury Séchet via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 14 06:03:52 PDT 2023


Author: Amaury Séchet
Date: 2023-06-14T13:03:44Z
New Revision: e559f270d9a970ca2b61ddabe8dc336b327a2b6b

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

LOG: [NFC] Add tests cases for isTruncateOf for D151916

Added: 
    

Modified: 
    llvm/test/CodeGen/X86/dagcombine-select.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/CodeGen/X86/dagcombine-select.ll b/llvm/test/CodeGen/X86/dagcombine-select.ll
index ff022c3bf0fa6..be9c3977eeb38 100644
--- a/llvm/test/CodeGen/X86/dagcombine-select.ll
+++ b/llvm/test/CodeGen/X86/dagcombine-select.ll
@@ -206,6 +206,23 @@ define i32 @shl_constant_sel_constants(i1 %cond) {
   ret i32 %bo
 }
 
+define i32 @shl_constant_sel_setcc(i32 %a) {
+; CHECK-LABEL: shl_constant_sel_setcc:
+; CHECK:       # %bb.0:
+; CHECK-NEXT:    movl %edi, %ecx
+; CHECK-NEXT:    andb $1, %cl
+; CHECK-NEXT:    xorb $3, %cl
+; CHECK-NEXT:    movl $1, %eax
+; CHECK-NEXT:    # kill: def $cl killed $cl killed $ecx
+; CHECK-NEXT:    shll %cl, %eax
+; CHECK-NEXT:    retq
+  %m = and i32 %a, 1
+  %cond = icmp ne i32 %m, 0
+  %sel = select i1 %cond, i32 2, i32 3
+  %bo = shl i32 1, %sel
+  ret i32 %bo
+}
+
 define i32 @lshr_constant_sel_constants(i1 %cond) {
 ; CHECK-LABEL: lshr_constant_sel_constants:
 ; CHECK:       # %bb.0:
@@ -221,6 +238,23 @@ define i32 @lshr_constant_sel_constants(i1 %cond) {
   ret i32 %bo
 }
 
+define i32 @lshr_constant_sel_setcc(i32 %a) {
+; CHECK-LABEL: lshr_constant_sel_setcc:
+; CHECK:       # %bb.0:
+; CHECK-NEXT:    movl %edi, %ecx
+; CHECK-NEXT:    andb $1, %cl
+; CHECK-NEXT:    xorb $3, %cl
+; CHECK-NEXT:    movl $64, %eax
+; CHECK-NEXT:    # kill: def $cl killed $cl killed $ecx
+; CHECK-NEXT:    shrl %cl, %eax
+; CHECK-NEXT:    retq
+  %m = and i32 %a, 1
+  %cond = icmp ne i32 %m, 0
+  %sel = select i1 %cond, i32 2, i32 3
+  %bo = lshr i32 64, %sel
+  ret i32 %bo
+}
+
 define i32 @ashr_constant_sel_constants(i1 %cond) {
 ; CHECK-LABEL: ashr_constant_sel_constants:
 ; CHECK:       # %bb.0:
@@ -236,15 +270,32 @@ define i32 @ashr_constant_sel_constants(i1 %cond) {
   ret i32 %bo
 }
 
+define i32 @ashr_constant_sel_setcc(i32 %a) {
+; CHECK-LABEL: ashr_constant_sel_setcc:
+; CHECK:       # %bb.0:
+; CHECK-NEXT:    movl %edi, %ecx
+; CHECK-NEXT:    andb $1, %cl
+; CHECK-NEXT:    xorb $3, %cl
+; CHECK-NEXT:    movl $128, %eax
+; CHECK-NEXT:    # kill: def $cl killed $cl killed $ecx
+; CHECK-NEXT:    shrl %cl, %eax
+; CHECK-NEXT:    retq
+  %m = and i32 %a, 1
+  %cond = icmp ne i32 %m, 0
+  %sel = select i1 %cond, i32 2, i32 3
+  %bo = ashr i32 128, %sel
+  ret i32 %bo
+}
+
 define double @fsub_constant_sel_constants(i1 %cond) {
 ; CHECK-LABEL: fsub_constant_sel_constants:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    testb $1, %dil
-; CHECK-NEXT:    jne .LBB17_1
+; CHECK-NEXT:    jne .LBB20_1
 ; CHECK-NEXT:  # %bb.2:
 ; CHECK-NEXT:    movsd {{.*#+}} xmm0 = mem[0],zero
 ; CHECK-NEXT:    retq
-; CHECK-NEXT:  .LBB17_1:
+; CHECK-NEXT:  .LBB20_1:
 ; CHECK-NEXT:    movsd {{.*#+}} xmm0 = mem[0],zero
 ; CHECK-NEXT:    retq
   %sel = select i1 %cond, double -4.0, double 23.3
@@ -256,11 +307,11 @@ define double @fdiv_constant_sel_constants(i1 %cond) {
 ; CHECK-LABEL: fdiv_constant_sel_constants:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    testb $1, %dil
-; CHECK-NEXT:    jne .LBB18_1
+; CHECK-NEXT:    jne .LBB21_1
 ; CHECK-NEXT:  # %bb.2:
 ; CHECK-NEXT:    movsd {{.*#+}} xmm0 = mem[0],zero
 ; CHECK-NEXT:    retq
-; CHECK-NEXT:  .LBB18_1:
+; CHECK-NEXT:  .LBB21_1:
 ; CHECK-NEXT:    movsd {{.*#+}} xmm0 = mem[0],zero
 ; CHECK-NEXT:    retq
   %sel = select i1 %cond, double -4.0, double 23.3
@@ -272,11 +323,11 @@ define double @frem_constant_sel_constants(i1 %cond) {
 ; CHECK-LABEL: frem_constant_sel_constants:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    testb $1, %dil
-; CHECK-NEXT:    jne .LBB19_1
+; CHECK-NEXT:    jne .LBB22_1
 ; CHECK-NEXT:  # %bb.2:
 ; CHECK-NEXT:    movsd {{.*#+}} xmm0 = mem[0],zero
 ; CHECK-NEXT:    retq
-; CHECK-NEXT:  .LBB19_1:
+; CHECK-NEXT:  .LBB22_1:
 ; CHECK-NEXT:    movsd {{.*#+}} xmm0 = mem[0],zero
 ; CHECK-NEXT:    retq
   %sel = select i1 %cond, double -4.0, double 23.3


        


More information about the llvm-commits mailing list