[llvm] 37c6683 - [X86] pr57673.ll - generate MIR test checks
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Fri Aug 9 10:08:05 PDT 2024
Author: Simon Pilgrim
Date: 2024-08-09T18:07:37+01:00
New Revision: 37c66838bdb1a5b2bf0860fe5cf56860be091f46
URL: https://github.com/llvm/llvm-project/commit/37c66838bdb1a5b2bf0860fe5cf56860be091f46
DIFF: https://github.com/llvm/llvm-project/commit/37c66838bdb1a5b2bf0860fe5cf56860be091f46.diff
LOG: [X86] pr57673.ll - generate MIR test checks
Added:
Modified:
llvm/test/CodeGen/X86/pr57673.ll
Removed:
################################################################################
diff --git a/llvm/test/CodeGen/X86/pr57673.ll b/llvm/test/CodeGen/X86/pr57673.ll
index d20704d58eda5..d0ae6cea068dc 100644
--- a/llvm/test/CodeGen/X86/pr57673.ll
+++ b/llvm/test/CodeGen/X86/pr57673.ll
@@ -1,3 +1,4 @@
+; NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5
; RUN: llc -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -stop-after=x86-optimize-LEAs -experimental-debug-variable-locations=false < %s \
; RUN: | FileCheck %s --check-prefix=NORMAL
; RUN: llc -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -stop-after=x86-optimize-LEAs -experimental-debug-variable-locations < %s \
@@ -10,16 +11,110 @@
; assert(MRI->use_empty(LastVReg) &&
; "The LEA's def register must have no uses");
-; CHECK: LEA64r
-; CHECK-NOT: LEA64r
-; NORMAL: DBG_VALUE_LIST
-; INSTRREF: DBG_INSTR_REF
-
target triple = "x86_64-unknown-linux-gnu"
%t10 = type { ptr, [32 x i8] }
define void @foo() {
+ ; NORMAL-LABEL: name: foo
+ ; NORMAL: bb.0.bb_entry:
+ ; NORMAL-NEXT: successors: %bb.1(0x80000000)
+ ; NORMAL-NEXT: {{ $}}
+ ; NORMAL-NEXT: [[MOV32r0_:%[0-9]+]]:gr32 = MOV32r0 implicit-def dead $eflags
+ ; NORMAL-NEXT: [[COPY:%[0-9]+]]:gr8 = COPY [[MOV32r0_]].sub_8bit
+ ; NORMAL-NEXT: [[LEA64r:%[0-9]+]]:gr64 = LEA64r %stack.1.i, 1, $noreg, 0, $noreg
+ ; NORMAL-NEXT: [[DEF:%[0-9]+]]:gr64 = IMPLICIT_DEF
+ ; NORMAL-NEXT: [[DEF1:%[0-9]+]]:gr64 = IMPLICIT_DEF
+ ; NORMAL-NEXT: {{ $}}
+ ; NORMAL-NEXT: bb.1.bb_8:
+ ; NORMAL-NEXT: successors: %bb.5(0x40000000), %bb.2(0x40000000)
+ ; NORMAL-NEXT: {{ $}}
+ ; NORMAL-NEXT: TEST8rr [[COPY]], [[COPY]], implicit-def $eflags
+ ; NORMAL-NEXT: JCC_1 %bb.5, 5, implicit $eflags
+ ; NORMAL-NEXT: JMP_1 %bb.2
+ ; NORMAL-NEXT: {{ $}}
+ ; NORMAL-NEXT: bb.2.bb_mid:
+ ; NORMAL-NEXT: successors: %bb.4(0x30000000), %bb.3(0x50000000)
+ ; NORMAL-NEXT: {{ $}}
+ ; NORMAL-NEXT: TEST64rr [[DEF1]], [[DEF1]], implicit-def $eflags
+ ; NORMAL-NEXT: JCC_1 %bb.4, 4, implicit $eflags
+ ; NORMAL-NEXT: JMP_1 %bb.3
+ ; NORMAL-NEXT: {{ $}}
+ ; NORMAL-NEXT: bb.3.cond.false:
+ ; NORMAL-NEXT: successors: %bb.4(0x80000000)
+ ; NORMAL-NEXT: {{ $}}
+ ; NORMAL-NEXT: bb.4.cond.end:
+ ; NORMAL-NEXT: successors: %bb.5(0x80000000)
+ ; NORMAL-NEXT: {{ $}}
+ ; NORMAL-NEXT: [[MOVUPSrm:%[0-9]+]]:vr128 = MOVUPSrm [[LEA64r]], 1, $noreg, 40, $noreg :: (load (s128) from %ir.i4, align 8)
+ ; NORMAL-NEXT: MOVUPSmr $noreg, 1, $noreg, 0, $noreg, killed [[MOVUPSrm]] :: (store (s128) into `ptr null`, align 8)
+ ; NORMAL-NEXT: DBG_VALUE_LIST !3, !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_plus_uconst, 40), [[LEA64r]], [[LEA64r]], debug-location !8
+ ; NORMAL-NEXT: [[MOVUPSrm1:%[0-9]+]]:vr128 = MOVUPSrm [[LEA64r]], 1, $noreg, 40, $noreg :: (load (s128) from %ir.i6, align 8)
+ ; NORMAL-NEXT: MOVUPSmr $noreg, 1, $noreg, 0, $noreg, killed [[MOVUPSrm1]] :: (store (s128) into `ptr null`, align 8)
+ ; NORMAL-NEXT: {{ $}}
+ ; NORMAL-NEXT: bb.5.bb_last:
+ ; NORMAL-NEXT: successors: %bb.1(0x80000000)
+ ; NORMAL-NEXT: {{ $}}
+ ; NORMAL-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
+ ; NORMAL-NEXT: [[SUBREG_TO_REG:%[0-9]+]]:gr64 = SUBREG_TO_REG 0, [[MOV32r0_]], %subreg.sub_32bit
+ ; NORMAL-NEXT: $rdi = COPY [[SUBREG_TO_REG]]
+ ; NORMAL-NEXT: $rsi = COPY [[SUBREG_TO_REG]]
+ ; NORMAL-NEXT: $rdx = COPY [[SUBREG_TO_REG]]
+ ; NORMAL-NEXT: $ecx = COPY [[MOV32r0_]]
+ ; NORMAL-NEXT: $r8 = COPY [[LEA64r]]
+ ; NORMAL-NEXT: CALL64r [[DEF]], csr_64, implicit $rsp, implicit $ssp, implicit $rdi, implicit $rsi, implicit $rdx, implicit $ecx, implicit $r8, implicit-def $rsp, implicit-def $ssp
+ ; NORMAL-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
+ ; NORMAL-NEXT: JMP_1 %bb.1
+ ;
+ ; INSTRREF-LABEL: name: foo
+ ; INSTRREF: bb.0.bb_entry:
+ ; INSTRREF-NEXT: successors: %bb.1(0x80000000)
+ ; INSTRREF-NEXT: {{ $}}
+ ; INSTRREF-NEXT: [[MOV32r0_:%[0-9]+]]:gr32 = MOV32r0 implicit-def dead $eflags
+ ; INSTRREF-NEXT: [[COPY:%[0-9]+]]:gr8 = COPY [[MOV32r0_]].sub_8bit
+ ; INSTRREF-NEXT: [[LEA64r:%[0-9]+]]:gr64 = LEA64r %stack.1.i, 1, $noreg, 0, $noreg
+ ; INSTRREF-NEXT: [[DEF:%[0-9]+]]:gr64 = IMPLICIT_DEF
+ ; INSTRREF-NEXT: [[DEF1:%[0-9]+]]:gr64 = IMPLICIT_DEF
+ ; INSTRREF-NEXT: {{ $}}
+ ; INSTRREF-NEXT: bb.1.bb_8:
+ ; INSTRREF-NEXT: successors: %bb.5(0x40000000), %bb.2(0x40000000)
+ ; INSTRREF-NEXT: {{ $}}
+ ; INSTRREF-NEXT: TEST8rr [[COPY]], [[COPY]], implicit-def $eflags
+ ; INSTRREF-NEXT: JCC_1 %bb.5, 5, implicit $eflags
+ ; INSTRREF-NEXT: JMP_1 %bb.2
+ ; INSTRREF-NEXT: {{ $}}
+ ; INSTRREF-NEXT: bb.2.bb_mid:
+ ; INSTRREF-NEXT: successors: %bb.4(0x30000000), %bb.3(0x50000000)
+ ; INSTRREF-NEXT: {{ $}}
+ ; INSTRREF-NEXT: TEST64rr [[DEF1]], [[DEF1]], implicit-def $eflags
+ ; INSTRREF-NEXT: JCC_1 %bb.4, 4, implicit $eflags
+ ; INSTRREF-NEXT: JMP_1 %bb.3
+ ; INSTRREF-NEXT: {{ $}}
+ ; INSTRREF-NEXT: bb.3.cond.false:
+ ; INSTRREF-NEXT: successors: %bb.4(0x80000000)
+ ; INSTRREF-NEXT: {{ $}}
+ ; INSTRREF-NEXT: bb.4.cond.end:
+ ; INSTRREF-NEXT: successors: %bb.5(0x80000000)
+ ; INSTRREF-NEXT: {{ $}}
+ ; INSTRREF-NEXT: [[MOVUPSrm:%[0-9]+]]:vr128 = MOVUPSrm [[LEA64r]], 1, $noreg, 40, $noreg :: (load (s128) from %ir.i4, align 8)
+ ; INSTRREF-NEXT: MOVUPSmr $noreg, 1, $noreg, 0, $noreg, killed [[MOVUPSrm]] :: (store (s128) into `ptr null`, align 8)
+ ; INSTRREF-NEXT: DBG_INSTR_REF !3, !DIExpression(DW_OP_LLVM_arg, 0), dbg-instr-ref(1, 0), dbg-instr-ref(1, 0), debug-location !8
+ ; INSTRREF-NEXT: [[MOVUPSrm1:%[0-9]+]]:vr128 = MOVUPSrm [[LEA64r]], 1, $noreg, 40, $noreg :: (load (s128) from %ir.i6, align 8)
+ ; INSTRREF-NEXT: MOVUPSmr $noreg, 1, $noreg, 0, $noreg, killed [[MOVUPSrm1]] :: (store (s128) into `ptr null`, align 8)
+ ; INSTRREF-NEXT: {{ $}}
+ ; INSTRREF-NEXT: bb.5.bb_last:
+ ; INSTRREF-NEXT: successors: %bb.1(0x80000000)
+ ; INSTRREF-NEXT: {{ $}}
+ ; INSTRREF-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
+ ; INSTRREF-NEXT: [[SUBREG_TO_REG:%[0-9]+]]:gr64 = SUBREG_TO_REG 0, [[MOV32r0_]], %subreg.sub_32bit
+ ; INSTRREF-NEXT: $rdi = COPY [[SUBREG_TO_REG]]
+ ; INSTRREF-NEXT: $rsi = COPY [[SUBREG_TO_REG]]
+ ; INSTRREF-NEXT: $rdx = COPY [[SUBREG_TO_REG]]
+ ; INSTRREF-NEXT: $ecx = COPY [[MOV32r0_]]
+ ; INSTRREF-NEXT: $r8 = COPY [[LEA64r]]
+ ; INSTRREF-NEXT: CALL64r [[DEF]], csr_64, implicit $rsp, implicit $ssp, implicit $rdi, implicit $rsi, implicit $rdx, implicit $ecx, implicit $r8, implicit-def $rsp, implicit-def $ssp
+ ; INSTRREF-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
+ ; INSTRREF-NEXT: JMP_1 %bb.1
bb_entry:
%tmp11 = alloca [0 x [0 x i32]], i32 0, align 4
%i = alloca %t10, align 8
More information about the llvm-commits
mailing list