From d96e9f14ee6691236cd51a106f6a73069ee0d10e Mon Sep 17 00:00:00 2001 From: Chad Rosier Date: Mon, 9 Jun 2014 01:25:51 +0000 Subject: [AArch64] When combining constant mul of power of 2 plus/minus 1, prefer shift plus add. The shift can be folded into the add. This only effects codegen when the constant is 3. llvm-svn: 210445 --- llvm/test/CodeGen/AArch64/arm64-arith.ll | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'llvm/test/CodeGen') diff --git a/llvm/test/CodeGen/AArch64/arm64-arith.ll b/llvm/test/CodeGen/AArch64/arm64-arith.ll index ed9b569e218..f36e706b15d 100644 --- a/llvm/test/CodeGen/AArch64/arm64-arith.ll +++ b/llvm/test/CodeGen/AArch64/arm64-arith.ll @@ -260,3 +260,11 @@ define i64 @f3(i64 %a) nounwind readnone ssp { %res = mul nsw i64 %a, 17 ret i64 %res } + +define i32 @f4(i32 %a) nounwind readnone ssp { +; CHECK-LABEL: f4: +; CHECK-NEXT: add w0, w0, w0, lsl #1 +; CHECK-NEXT: ret + %res = mul i32 %a, 3 + ret i32 %res +} -- cgit v1.2.3