[llvm] 95b718e - [PowerPC][NFC] Add test for 5b18b6e9a84d985c0a907009fb71de7c1943bc88

Nemanja Ivanovic via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 10 09:41:24 PDT 2020


Author: Nemanja Ivanovic
Date: 2020-04-10T11:41:03-05:00
New Revision: 95b718e511e06b04ba750601b40be7ca7b041ec1

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

LOG: [PowerPC][NFC] Add test for 5b18b6e9a84d985c0a907009fb71de7c1943bc88

When the above commit was added to fix a kernel build break, no tests were
added. Just adding some testing to ensure similar regressions do not recur.

Added: 
    

Modified: 
    llvm/test/CodeGen/PowerPC/pcrel-call-linkage-leaf.ll
    llvm/test/CodeGen/PowerPC/pcrel-call-linkage-with-calls.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/CodeGen/PowerPC/pcrel-call-linkage-leaf.ll b/llvm/test/CodeGen/PowerPC/pcrel-call-linkage-leaf.ll
index 1892550420a6..13d2660c1219 100644
--- a/llvm/test/CodeGen/PowerPC/pcrel-call-linkage-leaf.ll
+++ b/llvm/test/CodeGen/PowerPC/pcrel-call-linkage-leaf.ll
@@ -1,11 +1,14 @@
 ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \
 ; RUN:   -mcpu=future -ppc-asm-full-reg-names < %s \
-; RUN:   | FileCheck %s --check-prefix=CHECK-S
+; RUN:   | FileCheck %s --check-prefixes=CHECK-S,CHECK-ALL
+; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \
+; RUN:   -mcpu=pwr9 -ppc-asm-full-reg-names < %s \
+; RUN:   | FileCheck %s --check-prefixes=CHECK-P9,CHECK-ALL
 
 @global_int = common dso_local local_unnamed_addr global i32 0, align 4
 
 define dso_local signext i32 @NoTOC() local_unnamed_addr {
-; CHECK-S-LABEL: NoTOC:
+; CHECK-ALL-LABEL: NoTOC:
 ; CHECK-S-NOT:     .localentry
 ; CHECK-S:         li r3, 42
 ; CHECK-S-NEXT:    blr
@@ -14,7 +17,7 @@ entry:
 }
 
 define dso_local signext i32 @AsmClobberX2(i32 signext %a, i32 signext %b) local_unnamed_addr {
-; CHECK-S-LABEL: AsmClobberX2:
+; CHECK-ALL-LABEL: AsmClobberX2:
 ; CHECK-S:         .localentry AsmClobberX2, 1
 ; CHECK-S:         add r3, r4, r3
 ; CHECK-S:         #APP
@@ -32,7 +35,7 @@ entry:
 ;        should be replaced with @pcrel and we won't need R2 and so the problem
 ;        goes away.
 define dso_local signext i32 @AsmClobberX2WithTOC(i32 signext %a, i32 signext %b) local_unnamed_addr {
-; CHECK-S-LABEL: AsmClobberX2WithTOC:
+; CHECK-ALL-LABEL: AsmClobberX2WithTOC:
 ; CHECK-S:         addis r2, r12, .TOC.-.Lfunc_gep2 at ha
 ; CHECK-S-NEXT:    addi r2, r2, .TOC.-.Lfunc_gep2 at l
 ; CHECK-S:         .localentry     AsmClobberX2WithTOC, .Lfunc_lep2-.Lfunc_gep2
@@ -54,9 +57,10 @@ entry:
 }
 
 define dso_local signext i32 @AsmClobberX5(i32 signext %a, i32 signext %b) local_unnamed_addr {
-; CHECK-S-LABEL: AsmClobberX5:
+; CHECK-ALL-LABEL: AsmClobberX5:
 ; CHECK-S:         .localentry AsmClobberX5, 1
-; CHECK-S-NEXT:  # %bb.0: # %entry
+; CHECK-P9-NOT:    .localentry
+; CHECK-ALL:       # %bb.0: # %entry
 ; CHECK-S-NEXT:    add r3, r4, r3
 ; CHECK-S-NEXT:    extsw r3, r3
 ; CHECK-S-NEXT:    #APP
@@ -71,8 +75,9 @@ entry:
 
 ; Clobber all GPRs except R2.
 define dso_local signext i32 @AsmClobberNotR2(i32 signext %a, i32 signext %b) local_unnamed_addr {
-; CHECK-S-LABEL: AsmClobberNotR2:
+; CHECK-ALL-LABEL: AsmClobberNotR2:
 ; CHECK-S:         .localentry AsmClobberNotR2, 1
+; CHECK-P9-NOT:    .localentry
 ; CHECK-S:         add r3, r4, r3
 ; CHECK-S:         stw r3, -148(r1) # 4-byte Folded Spill
 ; CHECK-S-NEXT:    #APP
@@ -89,9 +94,10 @@ entry:
 ; Increase register pressure enough to force the register allocator to
 ; make use of R2.
 define dso_local signext i32 @X2IsCallerSaved(i32 signext %a, i32 signext %b, i32 signext %c, i32 signext %d, i32 signext %e, i32 signext %f, i32 signext %g, i32 signext %h) local_unnamed_addr {
-; CHECK-S-LABEL: X2IsCallerSaved:
+; CHECK-ALL-LABEL: X2IsCallerSaved:
 ; CHECK-S:         .localentry X2IsCallerSaved, 1
-; CHECK-S-NEXT:  # %bb.0: # %entry
+; CHECK-P9-NOT:    .localentry
+; CHECK-ALL:       # %bb.0: # %entry
 ; CHECK-S-NEXT:    std r29, -24(r1) # 8-byte Folded Spill
 ; CHECK-S-NEXT:    add r11, r4, r3
 ; CHECK-S-NEXT:    subf r29, r9, r8
@@ -146,11 +152,11 @@ entry:
 
 
 define dso_local signext i32 @UsesX2AsTOC() local_unnamed_addr {
-; CHECK-S-LABEL: UsesX2AsTOC:
+; CHECK-ALL-LABEL: UsesX2AsTOC:
 ; CHECK-S:         addis r2, r12, .TOC.-.Lfunc_gep6 at ha
 ; CHECK-S-NEXT:    addi r2, r2, .TOC.-.Lfunc_gep6 at l
 ; CHECK-S:       .localentry     UsesX2AsTOC, .Lfunc_lep6-.Lfunc_gep6
-; CHECK-S:       # %bb.0: # %entry
+; CHECK-ALL:       # %bb.0: # %entry
 ; CHECK-S-NEXT:    addis r3, r2, global_int at toc@ha
 ; CHECK-S-NEXT:    lwa r3, global_int at toc@l(r3)
 ; CHECK-S-NEXT:    blr
@@ -161,9 +167,9 @@ entry:
 
 
 define dso_local double @UsesX2AsConstPoolTOC() local_unnamed_addr {
-; CHECK-S-LABEL: UsesX2AsConstPoolTOC:
+; CHECK-ALL-LABEL: UsesX2AsConstPoolTOC:
 ; CHECK-S-NOT:       .localentry
-; CHECK-S:       # %bb.0: # %entry
+; CHECK-ALL:       # %bb.0: # %entry
 ; CHECK-S-NEXT:    plfd f1, .LCPI7_0 at PCREL(0), 1
 ; CHECK-S-NEXT:    blr
 entry:

diff  --git a/llvm/test/CodeGen/PowerPC/pcrel-call-linkage-with-calls.ll b/llvm/test/CodeGen/PowerPC/pcrel-call-linkage-with-calls.ll
index 69b88531cfc1..64548c55792f 100644
--- a/llvm/test/CodeGen/PowerPC/pcrel-call-linkage-with-calls.ll
+++ b/llvm/test/CodeGen/PowerPC/pcrel-call-linkage-with-calls.ll
@@ -1,6 +1,9 @@
 ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \
 ; RUN:   -mcpu=future -ppc-asm-full-reg-names < %s \
-; RUN:   | FileCheck %s --check-prefix=CHECK-S
+; RUN:   | FileCheck %s --check-prefixes=CHECK-S,CHECK-ALL
+; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \
+; RUN:   -mcpu=pwr9 -ppc-asm-full-reg-names < %s \
+; RUN:   | FileCheck %s --check-prefixes=CHECK-P9,CHECK-ALL
 
 @globalVar = common dso_local local_unnamed_addr global i32 0, align 4
 @externGlobalVar = external local_unnamed_addr global i32, align 4
@@ -11,7 +14,7 @@
 ; it. The only thing we really need to check here is that st_other=0 and
 ; so we make sure that there is no .localentry.
 define dso_local signext i32 @localCall(i32 signext %a) local_unnamed_addr #0 {
-; CHECK-S-LABEL: localCall:
+; CHECK-ALL-LABEL: localCall:
 ; CHECK-S-NOT:   .localentry
 ; CHECK-S:         addi r3, r3, 5
 ; CHECK-S-NEXT:    extsw r3, r3
@@ -22,7 +25,7 @@ entry:
 }
 
 define dso_local signext i32 @DirectCallLocal1(i32 signext %a, i32 signext %b) local_unnamed_addr {
-; CHECK-S-LABEL: DirectCallLocal1:
+; CHECK-ALL-LABEL: DirectCallLocal1:
 ; CHECK-S:         addis r2, r12, .TOC.-.Lfunc_gep1 at ha
 ; CHECK-S-NEXT:    addi r2, r2, .TOC.-.Lfunc_gep1 at l
 ; CHECK-S:         .localentry     DirectCallLocal1, .Lfunc_lep1-.Lfunc_gep1
@@ -53,7 +56,7 @@ entry:
 }
 
 define dso_local signext i32 @DirectCallLocal2(i32 signext %a, i32 signext %b) local_unnamed_addr {
-; CHECK-S-LABEL: DirectCallLocal2:
+; CHECK-ALL-LABEL: DirectCallLocal2:
 ; CHECK-S:         addis r2, r12, .TOC.-.Lfunc_gep2 at ha
 ; CHECK-S-NEXT:    addi r2, r2, .TOC.-.Lfunc_gep2 at l
 ; CHECK-S:         .localentry     DirectCallLocal2, .Lfunc_lep2-.Lfunc_gep2
@@ -85,9 +88,9 @@ entry:
 }
 
 define dso_local signext i32 @DirectCallLocalNoGlobal(i32 signext %a, i32 signext %b) local_unnamed_addr {
-; CHECK-S-LABEL: DirectCallLocalNoGlobal:
+; CHECK-ALL-LABEL: DirectCallLocalNoGlobal:
 ; CHECK-S:         .localentry DirectCallLocalNoGlobal, 1
-; CHECK-S-NEXT:  # %bb.0: # %entry
+; CHECK-S-NEXT:    # %bb.0: # %entry
 ; CHECK-S-NEXT:    mflr r0
 ; CHECK-S-NEXT:    .cfi_def_cfa_offset 48
 ; CHECK-S-NEXT:    .cfi_offset lr, 16
@@ -111,7 +114,7 @@ entry:
 }
 
 define dso_local signext i32 @DirectCallExtern1(i32 signext %a, i32 signext %b) local_unnamed_addr {
-; CHECK-S-LABEL: DirectCallExtern1:
+; CHECK-ALL-LABEL: DirectCallExtern1:
 ; CHECK-S:         addis r2, r12, .TOC.-.Lfunc_gep4 at ha
 ; CHECK-S-NEXT:    addi r2, r2, .TOC.-.Lfunc_gep4 at l
 ; CHECK-S:         .localentry     DirectCallExtern1, .Lfunc_lep4-.Lfunc_gep4
@@ -144,7 +147,7 @@ entry:
 declare signext i32 @externCall(i32 signext) local_unnamed_addr
 
 define dso_local signext i32 @DirectCallExtern2(i32 signext %a, i32 signext %b) local_unnamed_addr {
-; CHECK-S-LABEL: DirectCallExtern2:
+; CHECK-ALL-LABEL: DirectCallExtern2:
 ; CHECK-S:         addis r2, r12, .TOC.-.Lfunc_gep5 at ha
 ; CHECK-S-NEXT:    addi r2, r2, .TOC.-.Lfunc_gep5 at l
 ; CHECK-S:         .localentry     DirectCallExtern2, .Lfunc_lep5-.Lfunc_gep5
@@ -176,9 +179,10 @@ entry:
 }
 
 define dso_local signext i32 @DirectCallExternNoGlobal(i32 signext %a, i32 signext %b) local_unnamed_addr {
-; CHECK-S-LABEL: DirectCallExternNoGlobal:
+; CHECK-ALL-LABEL: DirectCallExternNoGlobal:
 ; CHECK-S:         .localentry DirectCallExternNoGlobal, 1
-; CHECK-S-NEXT:  # %bb.0: # %entry
+; CHECK-P9:        .localentry DirectCallExternNoGlobal, .Lfunc_lep6-.Lfunc_gep6
+; CHECK-ALL:       # %bb.0: # %entry
 ; CHECK-S-NEXT:    mflr r0
 ; CHECK-S-NEXT:    .cfi_def_cfa_offset 48
 ; CHECK-S-NEXT:    .cfi_offset lr, 16
@@ -202,7 +206,7 @@ entry:
 }
 
 define dso_local signext i32 @TailCallLocal1(i32 signext %a) local_unnamed_addr {
-; CHECK-S-LABEL: TailCallLocal1:
+; CHECK-ALL-LABEL: TailCallLocal1:
 ; CHECK-S:         addis r2, r12, .TOC.-.Lfunc_gep7 at ha
 ; CHECK-S-NEXT:    addi r2, r2, .TOC.-.Lfunc_gep7 at l
 ; CHECK-S:         .localentry     TailCallLocal1, .Lfunc_lep7-.Lfunc_gep7
@@ -230,7 +234,7 @@ entry:
 }
 
 define dso_local signext i32 @TailCallLocal2(i32 signext %a) local_unnamed_addr {
-; CHECK-S-LABEL: TailCallLocal2:
+; CHECK-ALL-LABEL: TailCallLocal2:
 ; CHECK-S:         addis r2, r12, .TOC.-.Lfunc_gep8 at ha
 ; CHECK-S-NEXT:    addi r2, r2, .TOC.-.Lfunc_gep8 at l
 ; CHECK-S:         .localentry     TailCallLocal2, .Lfunc_lep8-.Lfunc_gep8
@@ -259,9 +263,10 @@ entry:
 }
 
 define dso_local signext i32 @TailCallLocalNoGlobal(i32 signext %a) local_unnamed_addr {
-; CHECK-S-LABEL: TailCallLocalNoGlobal:
+; CHECK-ALL-LABEL: TailCallLocalNoGlobal:
 ; CHECK-S:         .localentry TailCallLocalNoGlobal, 1
-; CHECK-S-NEXT:  # %bb.0: # %entry
+; CHECK-P9:        .localentry TailCallLocalNoGlobal, .Lfunc_lep9-.Lfunc_gep9
+; CHECK-ALL:       # %bb.0: # %entry
 ; CHECK-S-NEXT:    mflr r0
 ; CHECK-S-NEXT:    std r0, 16(r1)
 ; CHECK-S-NEXT:    stdu r1, -32(r1)
@@ -278,7 +283,7 @@ entry:
 }
 
 define dso_local signext i32 @TailCallExtern1(i32 signext %a) local_unnamed_addr {
-; CHECK-S-LABEL: TailCallExtern1:
+; CHECK-ALL-LABEL: TailCallExtern1:
 ; CHECK-S:         addis r2, r12, .TOC.-.Lfunc_gep10 at ha
 ; CHECK-S-NEXT:    addi r2, r2, .TOC.-.Lfunc_gep10 at l
 ; CHECK-S:         .localentry     TailCallExtern1, .Lfunc_lep10-.Lfunc_gep10
@@ -306,7 +311,7 @@ entry:
 }
 
 define dso_local signext i32 @TailCallExtern2(i32 signext %a) local_unnamed_addr {
-; CHECK-S-LABEL: TailCallExtern2:
+; CHECK-ALL-LABEL: TailCallExtern2:
 ; CHECK-S:         addis r2, r12, .TOC.-.Lfunc_gep11 at ha
 ; CHECK-S-NEXT:    addi r2, r2, .TOC.-.Lfunc_gep11 at l
 ; CHECK-S:         .localentry     TailCallExtern2, .Lfunc_lep11-.Lfunc_gep11
@@ -335,7 +340,7 @@ entry:
 }
 
 define dso_local signext i32 @TailCallExternNoGlobal(i32 signext %a) local_unnamed_addr {
-; CHECK-S-LABEL: TailCallExternNoGlobal:
+; CHECK-ALL-LABEL: TailCallExternNoGlobal:
 ; CHECK-S:         .localentry TailCallExternNoGlobal, 1
 ; CHECK-S-NEXT:  # %bb.0: # %entry
 ; CHECK-S-NEXT:    mflr r0
@@ -354,7 +359,7 @@ entry:
 }
 
 define dso_local signext i32 @IndirectCall1(i32 signext %a, i32 signext %b) local_unnamed_addr {
-; CHECK-S-LABEL: IndirectCall1:
+; CHECK-ALL-LABEL: IndirectCall1:
 ; CHECK-S:         addis r2, r12, .TOC.-.Lfunc_gep13 at ha
 ; CHECK-S-NEXT:    addi r2, r2, .TOC.-.Lfunc_gep13 at l
 ; CHECK-S:         .localentry     IndirectCall1, .Lfunc_lep13-.Lfunc_gep13
@@ -390,7 +395,7 @@ entry:
 }
 
 define dso_local signext i32 @IndirectCall2(i32 signext %a, i32 signext %b) local_unnamed_addr {
-; CHECK-S-LABEL: IndirectCall2:
+; CHECK-ALL-LABEL: IndirectCall2:
 ; CHECK-S:         addis r2, r12, .TOC.-.Lfunc_gep14 at ha
 ; CHECK-S-NEXT:    addi r2, r2, .TOC.-.Lfunc_gep14 at l
 ; CHECK-S:         .localentry     IndirectCall2, .Lfunc_lep14-.Lfunc_gep14
@@ -427,7 +432,7 @@ entry:
 }
 
 define dso_local signext i32 @IndirectCall3(i32 signext %a, i32 signext %b, i32 (i32)* nocapture %call_param) local_unnamed_addr {
-; CHECK-S-LABEL: IndirectCall3:
+; CHECK-ALL-LABEL: IndirectCall3:
 ; CHECK-S:         addis r2, r12, .TOC.-.Lfunc_gep15 at ha
 ; CHECK-S-NEXT:    addi r2, r2, .TOC.-.Lfunc_gep15 at l
 ; CHECK-S:         .localentry     IndirectCall3, .Lfunc_lep15-.Lfunc_gep15
@@ -461,7 +466,7 @@ entry:
 }
 
 define dso_local signext i32 @IndirectCallNoGlobal(i32 signext %a, i32 signext %b, i32 (i32)* nocapture %call_param) local_unnamed_addr {
-; CHECK-S-LABEL: IndirectCallNoGlobal:
+; CHECK-ALL-LABEL: IndirectCallNoGlobal:
 ; CHECK-S:         addis r2, r12, .TOC.-.Lfunc_gep16 at ha
 ; CHECK-S-NEXT:    addi r2, r2, .TOC.-.Lfunc_gep16 at l
 ; CHECK-S:         .localentry     IndirectCallNoGlobal, .Lfunc_lep16-.Lfunc_gep16
@@ -493,7 +498,7 @@ entry:
 }
 
 define dso_local signext i32 @IndirectCallOnly(i32 signext %a, i32 (i32)* nocapture %call_param) local_unnamed_addr {
-; CHECK-S-LABEL: IndirectCallOnly:
+; CHECK-ALL-LABEL: IndirectCallOnly:
 ; CHECK-S:         addis r2, r12, .TOC.-.Lfunc_gep17 at ha
 ; CHECK-S-NEXT:    addi r2, r2, .TOC.-.Lfunc_gep17 at l
 ; CHECK-S:         .localentry     IndirectCallOnly, .Lfunc_lep17-.Lfunc_gep17


        


More information about the llvm-commits mailing list