summaryrefslogtreecommitdiffstats
path: root/contrib/llvm/patches/patch-r262261-llvm-r198280-sparc.diff
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/llvm/patches/patch-r262261-llvm-r198280-sparc.diff')
-rw-r--r--contrib/llvm/patches/patch-r262261-llvm-r198280-sparc.diff55
1 files changed, 0 insertions, 55 deletions
diff --git a/contrib/llvm/patches/patch-r262261-llvm-r198280-sparc.diff b/contrib/llvm/patches/patch-r262261-llvm-r198280-sparc.diff
deleted file mode 100644
index 8f0f444..0000000
--- a/contrib/llvm/patches/patch-r262261-llvm-r198280-sparc.diff
+++ /dev/null
@@ -1,55 +0,0 @@
-Pull in r198280 from upstream llvm trunk (by Venkatraman Govindaraju):
-
- [SparcV9]: Use SRL instead of SLL to clear top 32-bits in ctpop:i32. SLL does not clear top 32 bit, only SRL does.
-
-Introduced here: http://svnweb.freebsd.org/changeset/base/262261
-
-Index: lib/Target/Sparc/SparcInstrInfo.td
-===================================================================
---- lib/Target/Sparc/SparcInstrInfo.td
-+++ lib/Target/Sparc/SparcInstrInfo.td
-@@ -967,13 +967,13 @@ let Predicates = [HasV9] in {
- }
-
- // POPCrr - This does a ctpop of a 64-bit register. As such, we have to clear
--// the top 32-bits before using it. To do this clearing, we use a SLLri X,0.
-+// the top 32-bits before using it. To do this clearing, we use a SRLri X,0.
- let rs1 = 0 in
- def POPCrr : F3_1<2, 0b101110,
- (outs IntRegs:$dst), (ins IntRegs:$src),
- "popc $src, $dst", []>, Requires<[HasV9]>;
- def : Pat<(ctpop i32:$src),
-- (POPCrr (SLLri $src, 0))>;
-+ (POPCrr (SRLri $src, 0))>;
-
- //===----------------------------------------------------------------------===//
- // Non-Instruction Patterns
-Index: test/CodeGen/SPARC/ctpop.ll
-===================================================================
---- test/CodeGen/SPARC/ctpop.ll
-+++ test/CodeGen/SPARC/ctpop.ll
-@@ -1,8 +1,22 @@
--; RUN: llc < %s -march=sparc -mattr=-v9 | not grep popc
--; RUN: llc < %s -march=sparc -mattr=+v9 | grep popc
-+; RUN: llc < %s -march=sparc -mattr=-v9 | FileCheck %s -check-prefix=V8
-+; RUN: llc < %s -march=sparc -mattr=+v9 | FileCheck %s -check-prefix=V9
-+; RUN: llc < %s -march=sparcv9 | FileCheck %s -check-prefix=SPARC64
-
- declare i32 @llvm.ctpop.i32(i32)
-
-+; V8-LABEL: test
-+; V8-NOT : popc
-+
-+; V9-LABEL: test
-+; V9: srl %o0, 0, %o0
-+; V9-NEXT: jmp %o7+8
-+; V9-NEXT: popc %o0, %o0
-+
-+; SPARC64-LABEL: test
-+; SPARC64: srl %o0, 0, %o0
-+; SPARC64: jmp %o7+8
-+; SPARC64: popc %o0, %o0
-+
- define i32 @test(i32 %X) {
- %Y = call i32 @llvm.ctpop.i32( i32 %X ) ; <i32> [#uses=1]
- ret i32 %Y
OpenPOWER on IntegriCloud