[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