[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