[llvm] [RegisterCoalescer] Clear instructions not recorded in `ErasedInstrs` but erased (PR #79820)
Quentin Dian via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 8 23:02:24 PST 2024
================
@@ -0,0 +1,95 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4
+; RUN: llc < %s -mtriple=x86_64 -- | FileCheck %s
+
+define i32 @h(i1 %0, i32 %1) {
+; CHECK-LABEL: h:
+; CHECK: # %bb.0:
+; CHECK-NEXT: movl $1, %eax
+; CHECK-NEXT: movabsq $9166129423, %rcx # imm = 0x22258090F
+; CHECK-NEXT: xorl %edx, %edx
+; CHECK-NEXT: jmp .LBB0_1
+; CHECK-NEXT: .p2align 4, 0x90
+; CHECK-NEXT: .LBB0_9: # in Loop: Header=BB0_1 Depth=1
+; CHECK-NEXT: xorl %eax, %eax
+; CHECK-NEXT: testb $1, %dil
+; CHECK-NEXT: jne .LBB0_10
+; CHECK-NEXT: .LBB0_1: # =>This Inner Loop Header: Depth=1
+; CHECK-NEXT: testq %rdx, %rdx
+; CHECK-NEXT: jne .LBB0_2
+; CHECK-NEXT: # %bb.7: # in Loop: Header=BB0_1 Depth=1
+; CHECK-NEXT: testb $1, %dil
+; CHECK-NEXT: jne .LBB0_9
+; CHECK-NEXT: # %bb.8: # in Loop: Header=BB0_1 Depth=1
+; CHECK-NEXT: movq %rcx, %rdx
+; CHECK-NEXT: jmp .LBB0_9
+; CHECK-NEXT: .LBB0_2: # in Loop: Header=BB0_1 Depth=1
+; CHECK-NEXT: testb $1, %dil
+; CHECK-NEXT: testb $1, %dil
+; CHECK-NEXT: je .LBB0_4
+; CHECK-NEXT: # %bb.3: # in Loop: Header=BB0_1 Depth=1
+; CHECK-NEXT: xorl %eax, %eax
+; CHECK-NEXT: .LBB0_4: # in Loop: Header=BB0_1 Depth=1
+; CHECK-NEXT: cmpl $1, %esi
+; CHECK-NEXT: je .LBB0_1
+; CHECK-NEXT: # %bb.5:
+; CHECK-NEXT: movl %eax, %r8d
+; CHECK-NEXT: testl %esi, %esi
+; CHECK-NEXT: movl %esi, %eax
+; CHECK-NEXT: jne .LBB0_6
+; CHECK-NEXT: .LBB0_10:
+; CHECK-NEXT: retq
+; CHECK-NEXT: .LBB0_6: # %.loopexit1
+; CHECK-NEXT: movl %r8d, %eax
+; CHECK-NEXT: retq
+ br label %3
+
+3: ; preds = %16, %2
----------------
DianQK wrote:
I can't believe I just found this pass, thanks.
https://github.com/llvm/llvm-project/pull/79820
More information about the llvm-commits
mailing list