From 2c1ba43178da4f207db2857a171962e7847a5d06 Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Wed, 9 Jan 2019 21:04:36 +0000 Subject: [PATCH] [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 --- .../AArch64/shrink-constant-multiple-users.ll | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 test/CodeGen/AArch64/shrink-constant-multiple-users.ll 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) -- 2.50.1