Fold add(add(mul(x,y),a),b) -> lmul(x,y,a,b) if the intermediate

results are unused elsewhere.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98157 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Richard Osborne
2010-03-10 16:19:31 +00:00
parent 48ee0bbb72
commit 2dacd1e987
2 changed files with 68 additions and 0 deletions
+12
View File
@@ -25,3 +25,15 @@ entry:
; CHECK-NEXT: mov r0, r3
; CHECK-NEXT: mov r1, r2
; CHECK-NEXT: retsp 0
define i64 @mul64(i64 %a, i64 %b) {
entry:
%0 = mul i64 %a, %b
ret i64 %0
}
; CHECK: mul64:
; CHECK: ldc r11, 0
; CHECK-NEXT: lmul r11, r4, r0, r2, r11, r11
; CHECK-NEXT: mul r0, r0, r3
; CHECK-NEXT: lmul r0, r1, r1, r2, r11, r0
; CHECK-NEXT: mov r0, r4