mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 20:23:11 +01:00
e34492629d
Summary: Similar to the ARM target in https://reviews.llvm.org/rL298380, this patch adds identical infrastructure for disabling negative immediate conversions, and converts the existing aliases to the new infrastucture. Reviewers: rengolin, javed.absar, olista01, SjoerdMeijer, samparker Reviewed By: samparker Subscribers: samparker, aemerson, llvm-commits Differential Revision: https://reviews.llvm.org/D31243 llvm-svn: 298908
51 lines
1.7 KiB
ArmAsm
51 lines
1.7 KiB
ArmAsm
// RUN: llvm-mc -triple=aarch64-none-linux-gnu < %s | FileCheck %s
|
|
// RUN: not llvm-mc -mattr=+no-neg-immediates -triple=aarch64-none-linux-gnu < %s 2>&1 | FileCheck %s --check-prefix=CHECK-NO-NEG-IMM
|
|
|
|
// CHECK: and x0, x1, #0xfffffffffffffffd
|
|
// CHECK: and x0, x1, #0xfffffffffffffffd
|
|
// CHECK-NO-NEG-IMM: instruction requires: NegativeImmediates
|
|
and x0, x1, #~2
|
|
bic x0, x1, #2
|
|
|
|
// CHECK: and w0, w1, #0xfffffffd
|
|
// CHECK: and w0, w1, #0xfffffffd
|
|
// CHECK-NO-NEG-IMM: instruction requires: NegativeImmediates
|
|
and w0, w1, #~2
|
|
bic w0, w1, #2
|
|
|
|
// CHECK: ands x0, x1, #0xfffffffffffffffd
|
|
// CHECK: ands x0, x1, #0xfffffffffffffffd
|
|
// CHECK-NO-NEG-IMM: instruction requires: NegativeImmediates
|
|
ands x0, x1, #~2
|
|
bics x0, x1, #2
|
|
|
|
// CHECK: ands w0, w1, #0xfffffffd
|
|
// CHECK: ands w0, w1, #0xfffffffd
|
|
// CHECK-NO-NEG-IMM: instruction requires: NegativeImmediates
|
|
ands w0, w1, #~2
|
|
bics w0, w1, #2
|
|
|
|
// CHECK: orr x0, x1, #0xfffffffffffffffd
|
|
// CHECK: orr x0, x1, #0xfffffffffffffffd
|
|
// CHECK-NO-NEG-IMM: instruction requires: NegativeImmediates
|
|
orr x0, x1, #~2
|
|
orn x0, x1, #2
|
|
|
|
// CHECK: orr w2, w1, #0xfffffffc
|
|
// CHECK: orr w2, w1, #0xfffffffc
|
|
// CHECK-NO-NEG-IMM: instruction requires: NegativeImmediates
|
|
orr w2, w1, #~3
|
|
orn w2, w1, #3
|
|
|
|
// CHECK: eor x0, x1, #0xfffffffffffffffd
|
|
// CHECK: eor x0, x1, #0xfffffffffffffffd
|
|
// CHECK-NO-NEG-IMM: instruction requires: NegativeImmediates
|
|
eor x0, x1, #~2
|
|
eon x0, x1, #2
|
|
|
|
// CHECK: eor w2, w1, #0xfffffffc
|
|
// CHECK: eor w2, w1, #0xfffffffc
|
|
// CHECK-NO-NEG-IMM: instruction requires: NegativeImmediates
|
|
eor w2, w1, #~3
|
|
eon w2, w1, #3
|