[llvm] 19d3bc1 - pre-comitting tests for D110865

Matthias Braun via llvm-commits llvm-commits at lists.llvm.org
Sun Oct 24 16:44:01 PDT 2021


Author: Matthias Braun
Date: 2021-10-24T16:39:14-07:00
New Revision: 19d3bc1e67b0b651e79bd31a1364c4c9dabdfdd3

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

LOG: pre-comitting tests for D110865

Added: 
    

Modified: 
    llvm/test/CodeGen/X86/optimize-compare.mir

Removed: 
    


################################################################################
diff  --git a/llvm/test/CodeGen/X86/optimize-compare.mir b/llvm/test/CodeGen/X86/optimize-compare.mir
index 5b8ca4c43392..5d0ffd542f89 100644
--- a/llvm/test/CodeGen/X86/optimize-compare.mir
+++ b/llvm/test/CodeGen/X86/optimize-compare.mir
@@ -203,3 +203,187 @@ body: |
     CMP32rr %0, %1, implicit-def $eflags
     $bl = SETCCr 2, implicit $eflags
 ...
+---
+name: opt_redundant_flags_cmp_cmp
+body: |
+  bb.0:
+    ; CHECK-LABEL: name: opt_redundant_flags_cmp_cmp
+    ; CHECK: [[COPY:%[0-9]+]]:gr32 = COPY $esi
+    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gr32 = COPY $edi
+    ; CHECK-NEXT: CMP32rr [[COPY]], [[COPY1]], implicit-def $eflags
+    ; CHECK-NEXT: $cl = SETCCr 2, implicit $eflags
+    ; CHECK-NEXT: CMP32rr [[COPY1]], [[COPY]], implicit-def $eflags
+    ; CHECK-NEXT: $bl = SETCCr 2, implicit $eflags
+    %0:gr32 = COPY $esi
+    %1:gr32 = COPY $edi
+    CMP32rr %0, %1, implicit-def $eflags
+    $cl = SETCCr 2, implicit $eflags
+    ; 2nd CMP should be removed.
+    CMP32rr %1, %0, implicit-def $eflags
+    $bl = SETCCr 2, implicit $eflags
+...
+---
+name: opt_redundant_flags_cmp_cmp_2
+body: |
+  bb.0:
+    ; CHECK-LABEL: name: opt_redundant_flags_cmp_cmp_2
+    ; CHECK: [[COPY:%[0-9]+]]:gr64 = COPY $rsi
+    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gr64 = COPY $rdi
+    ; CHECK-NEXT: CMP64ri8 [[COPY]], 15, implicit-def $eflags
+    ; CHECK-NEXT: $cl = SETCCr 2, implicit $eflags
+    ; CHECK-NEXT: CMP64ri8 [[COPY]], 15, implicit-def $eflags
+    ; CHECK-NEXT: $bl = SETCCr 2, implicit $eflags
+    %0:gr64 = COPY $rsi
+    %1:gr64 = COPY $rdi
+    CMP64ri8 %0, 15, implicit-def $eflags
+    $cl = SETCCr 2, implicit $eflags
+    ; 2nd CMP should be removed.
+    CMP64ri8 %0, 15, implicit-def $eflags
+    $bl = SETCCr 2, implicit $eflags
+...
+---
+name: opt_redundant_flags_test_test
+body: |
+  bb.0:
+    ; CHECK-LABEL: name: opt_redundant_flags_test_test
+    ; CHECK: [[COPY:%[0-9]+]]:gr16 = COPY $ax
+    ; CHECK-NEXT: TEST16rr [[COPY]], [[COPY]], implicit-def $eflags
+    ; CHECK-NEXT: $cl = SETCCr 2, implicit $eflags
+    ; CHECK-NEXT: TEST16rr [[COPY]], [[COPY]], implicit-def $eflags
+    ; CHECK-NEXT: $bl = SETCCr 2, implicit $eflags
+    %0:gr16 = COPY $ax
+    TEST16rr %0, %0, implicit-def $eflags
+    $cl = SETCCr 2, implicit $eflags
+    ; 2nd CMP should be removed.
+    TEST16rr %0, %0, implicit-def $eflags
+    $bl = SETCCr 2, implicit $eflags
+...
+---
+name: opt_redundant_flags_cmp_sub
+body: |
+  bb.0:
+    ; CHECK-LABEL: name: opt_redundant_flags_cmp_sub
+    ; CHECK: [[COPY:%[0-9]+]]:gr32 = COPY $esi
+    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gr32 = COPY $edi
+    ; CHECK-NEXT: CMP32rr [[COPY]], [[COPY1]], implicit-def $eflags
+    ; CHECK-NEXT: $cl = SETCCr 2, implicit $eflags
+    ; CHECK-NEXT: CMP32rr [[COPY1]], [[COPY]], implicit-def $eflags
+    ; CHECK-NEXT: $bl = SETCCr 2, implicit $eflags
+    %0:gr32 = COPY $esi
+    %1:gr32 = COPY $edi
+    CMP32rr %0, %1, implicit-def $eflags
+    $cl = SETCCr 2, implicit $eflags
+    ; SUB should be removed.
+    dead %2:gr32 = SUB32rr %1, %0, implicit-def $eflags
+    $bl = SETCCr 2, implicit $eflags
+...
+---
+name: opt_redundant_flags_cmp_sub_2
+body: |
+  bb.0:
+    ; CHECK-LABEL: name: opt_redundant_flags_cmp_sub_2
+    ; CHECK: [[COPY:%[0-9]+]]:gr32 = COPY $esi
+    ; CHECK-NEXT: CMP32ri [[COPY]], -12345, implicit-def $eflags
+    ; CHECK-NEXT: $cl = SETCCr 2, implicit $eflags
+    ; CHECK-NEXT: CMP32ri [[COPY]], -12345, implicit-def $eflags
+    ; CHECK-NEXT: $bl = SETCCr 2, implicit $eflags
+    %0:gr32 = COPY $esi
+    CMP32ri %0, -12345, implicit-def $eflags
+    $cl = SETCCr 2, implicit $eflags
+    ; SUB should be removed
+    dead %2:gr32 = SUB32ri %0, -12345, implicit-def $eflags
+    $bl = SETCCr 2, implicit $eflags
+...
+---
+name: opt_redundant_flags_cmp_sub_noopt
+body: |
+  bb.0:
+    ; CHECK-LABEL: name: opt_redundant_flags_cmp_sub_noopt
+    ; CHECK: [[COPY:%[0-9]+]]:gr32 = COPY $esi
+    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gr32 = COPY $edi
+    ; CHECK-NEXT: CMP32rr [[COPY]], [[COPY1]], implicit-def $eflags
+    ; CHECK-NEXT: $cl = SETCCr 2, implicit $eflags
+    ; CHECK-NEXT: [[SUB32rr:%[0-9]+]]:gr32 = SUB32rr [[COPY]], [[COPY1]], implicit-def $eflags
+    ; CHECK-NEXT: $rdx = COPY [[SUB32rr]]
+    ; CHECK-NEXT: $bl = SETCCr 2, implicit $eflags
+    %0:gr32 = COPY $esi
+    %1:gr32 = COPY $edi
+    CMP32rr %0, %1, implicit-def $eflags
+    $cl = SETCCr 2, implicit $eflags
+    ; cannot optimize the SUB because the result value is used.
+    %2:gr32 = SUB32rr %0, %1, implicit-def $eflags
+    $rdx = COPY %2
+    $bl = SETCCr 2, implicit $eflags
+...
+---
+name: opt_redundant_flags_cmp_test
+body: |
+  bb.0:
+    ; CHECK-LABEL: name: opt_redundant_flags_cmp_test
+    ; CHECK: [[COPY:%[0-9]+]]:gr32 = COPY $esi
+    ; CHECK-NEXT: CMP32ri8 [[COPY]], 0, implicit-def $eflags
+    ; CHECK-NEXT: $cl = SETCCr 2, implicit $eflags
+    ; CHECK-NEXT: TEST32rr [[COPY]], [[COPY]], implicit-def $eflags
+    ; CHECK-NEXT: $bl = SETCCr 2, implicit $eflags
+    %0:gr32 = COPY $esi
+    CMP32ri8 %0, 0, implicit-def $eflags
+    $cl = SETCCr 2, implicit $eflags
+    ; TEST should be removed
+    TEST32rr %0, %0, implicit-def $eflags
+    $bl = SETCCr 2, implicit $eflags
+...
+---
+name: opt_redundant_flags_test_cmp
+body: |
+  bb.0:
+    ; CHECK-LABEL: name: opt_redundant_flags_test_cmp
+    ; CHECK: [[COPY:%[0-9]+]]:gr32 = COPY $esi
+    ; CHECK-NEXT: TEST32rr [[COPY]], [[COPY]], implicit-def $eflags
+    ; CHECK-NEXT: $cl = SETCCr 2, implicit $eflags
+    ; CHECK-NEXT: CMP32ri8 [[COPY]], 0, implicit-def $eflags
+    ; CHECK-NEXT: $bl = SETCCr 2, implicit $eflags
+    %0:gr32 = COPY $esi
+    TEST32rr %0, %0, implicit-def $eflags
+    $cl = SETCCr 2, implicit $eflags
+    ; TEST should be removed
+    CMP32ri8 %0, 0, implicit-def $eflags
+    $bl = SETCCr 2, implicit $eflags
+...
+---
+name: opt_redundant_flags_cmp_addr
+stack:
+  - { id: 0, size: 4, alignment: 4 }
+body: |
+  bb.0:
+    ; CHECK-LABEL: name: opt_redundant_flags_cmp_addr
+    ; CHECK: [[COPY:%[0-9]+]]:gr64 = COPY $rsi
+    ; CHECK-NEXT: CMP64ri32 [[COPY]], @opt_redundant_flags_cmp_addr + 4, implicit-def $eflags
+    ; CHECK-NEXT: $cl = SETCCr 7, implicit $eflags
+    ; CHECK-NEXT: CMP64ri32 [[COPY]], @opt_redundant_flags_cmp_addr + 4, implicit-def $eflags
+    ; CHECK-NEXT: $cl = SETCCr 3, implicit $eflags
+    %0:gr64 = COPY $rsi
+    CMP64ri32 %0, @opt_redundant_flags_cmp_addr + 4, implicit-def $eflags
+    $cl = SETCCr 7, implicit $eflags
+    ; CMP should be removed
+    CMP64ri32 %0, @opt_redundant_flags_cmp_addr + 4, implicit-def $eflags
+    $cl = SETCCr 3, implicit $eflags
+...
+---
+name: opt_redundant_flags_cmp_addr_noopt
+stack:
+  - { id: 0, size: 4, alignment: 4 }
+body: |
+  bb.0:
+    ; CHECK-LABEL: name: opt_redundant_flags_cmp_addr_noopt
+    ; CHECK: [[COPY:%[0-9]+]]:gr64 = COPY $rsi
+    ; CHECK-NEXT: CMP64ri32 [[COPY]], @opt_redundant_flags_cmp_addr_noopt + 24, implicit-def $eflags
+    ; CHECK-NEXT: $cl = SETCCr 7, implicit $eflags
+    ; CHECK-NEXT: CMP64ri32 [[COPY]], 24, implicit-def $eflags
+    ; CHECK-NEXT: $cl = SETCCr 3, implicit $eflags
+    %0:gr64 = COPY $rsi
+    CMP64ri32 %0, @opt_redundant_flags_cmp_addr_noopt + 24, implicit-def $eflags
+    $cl = SETCCr 7, implicit $eflags
+    ; CMP should not be removed
+    CMP64ri32 %0, 24, implicit-def $eflags
+    $cl = SETCCr 3, implicit $eflags
+...


        


More information about the llvm-commits mailing list