From: Florian Hahn Date: Wed, 9 Jan 2019 21:04:36 +0000 (+0000) Subject: [AArch64] Add test for constant shrinking with multiple users (NFC). X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2c1ba43178da4f207db2857a171962e7847a5d06;p=llvm [AArch64] Add test for constant shrinking with multiple users (NFC). Test to avoid regression fixed by rL350684. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350762 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/CodeGen/AArch64/shrink-constant-multiple-users.ll b/test/CodeGen/AArch64/shrink-constant-multiple-users.ll new file mode 100644 index 00000000000..d787d3696c1 --- /dev/null +++ b/test/CodeGen/AArch64/shrink-constant-multiple-users.ll @@ -0,0 +1,18 @@ +; RUN: llc -mtriple arm64-ios- %s -o - | FileCheck %s + +; Check the -8 constant is shrunk if there are multiple users of the AND instruction. + +; CHECK-LABEL: _test: +; CHECK: and x0, x0, #0xfffffff8 +; CHECK-NEXT: add x19, x0, #10 +; CHECK-NEXT: bl _user + +define i64 @test(i32 %a) { + %ext = zext i32 %a to i64 + %v1 = and i64 %ext, -8 + %v2 = add i64 %v1, 10 + call void @user(i64 %v1) + ret i64 %v2 +} + +declare void @user(i64)