diff options
author | dim <dim@FreeBSD.org> | 2014-11-24 18:43:37 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2014-11-24 18:43:37 +0000 |
commit | 82ca21468e7fe6a5112961ba86434579bed3f204 (patch) | |
tree | c2772f1f62ff857fee7802d46eb79f45d45d6d54 /contrib/llvm/patches/patch-r262261-llvm-r198280-sparc.diff | |
parent | 6148c19c738a92f344008aa3f88f4e008bada0ee (diff) | |
download | FreeBSD-src-82ca21468e7fe6a5112961ba86434579bed3f204.zip FreeBSD-src-82ca21468e7fe6a5112961ba86434579bed3f204.tar.gz |
Cleanup patch set, and update README.TXT. Add three new patches.
Diffstat (limited to 'contrib/llvm/patches/patch-r262261-llvm-r198280-sparc.diff')
-rw-r--r-- | contrib/llvm/patches/patch-r262261-llvm-r198280-sparc.diff | 55 |
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 |