Skip to content

Commit

Permalink
PR7774: Fix undefined shifts in Alpha backend. As a bonus, this actually
Browse files Browse the repository at this point in the history
improves the generated code in some cases.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109985 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
eefriedman committed Aug 1, 2010
1 parent ad2b04c commit 348e026
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 2 deletions.
4 changes: 2 additions & 2 deletions lib/Target/Alpha/AlphaISelDAGToDAG.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -113,8 +113,8 @@ namespace {
static uint64_t getNearPower2(uint64_t x) {
if (!x) return 0;
unsigned at = CountLeadingZeros_64(x);
uint64_t complow = 1 << (63 - at);
uint64_t comphigh = 1 << (64 - at);
uint64_t complow = 1ULL << (63 - at);
uint64_t comphigh = 1ULL << (64 - at);
//cerr << x << ":" << complow << ":" << comphigh << "\n";
if (abs64(complow - x) <= abs64(comphigh - x))
return complow;
Expand Down
11 changes: 11 additions & 0 deletions test/CodeGen/Alpha/2010-08-01-mulreduce64.ll
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
; RUN: llc < %s -march=alpha | FileCheck %s

define fastcc i64 @getcount(i64 %s) {
%tmp431 = mul i64 %s, 12884901888
ret i64 %tmp431
}

; CHECK: sll $16,33,$0
; CHECK-NEXT: sll $16,32,$1
; CHECK-NEXT: addq $0,$1,$0

0 comments on commit 348e026

Please sign in to comment.