diff options
author | Tim Northover <tnorthover@apple.com> | 2013-07-25 16:23:55 +0000 |
---|---|---|
committer | Tim Northover <tnorthover@apple.com> | 2013-07-25 16:23:55 +0000 |
commit | c34cb8a0f2a31afd23a05489e1378023e0106e37 (patch) | |
tree | 6fd142774d4494b92a4145ed90c98821a0b4f974 /test/CodeGen/AArch64 | |
parent | 4632e31f516fc982580dfccd09af60fdcabe561d (diff) | |
download | external_llvm-c34cb8a0f2a31afd23a05489e1378023e0106e37.zip external_llvm-c34cb8a0f2a31afd23a05489e1378023e0106e37.tar.gz external_llvm-c34cb8a0f2a31afd23a05489e1378023e0106e37.tar.bz2 |
AArch64: add llc-based tests for previous commit.
Better to have tests run even on non-AArch64 platforms.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187128 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/AArch64')
-rw-r--r-- | test/CodeGen/AArch64/large-consts.ll | 13 | ||||
-rw-r--r-- | test/CodeGen/AArch64/tls-execs.ll | 4 |
2 files changed, 15 insertions, 2 deletions
diff --git a/test/CodeGen/AArch64/large-consts.ll b/test/CodeGen/AArch64/large-consts.ll new file mode 100644 index 0000000..1b769c6 --- /dev/null +++ b/test/CodeGen/AArch64/large-consts.ll @@ -0,0 +1,13 @@ +; RUN: llc -mtriple=aarch64-linux-gnu -o - %s -code-model=large -show-mc-encoding | FileCheck %s + +; Make sure the shift amount is encoded into the instructions by LLVM because +; it's not the linker's job to put it there. + +define double @foo() { +; CHECK: movz [[CPADDR:x[0-9]+]], #:abs_g3:.LCPI0_0 // encoding: [A,A,0xe0'A',0xd2'A'] +; CHECK: movk [[CPADDR]], #:abs_g2_nc:.LCPI0_0 // encoding: [A,A,0xc0'A',0xf2'A'] +; CHECK: movk [[CPADDR]], #:abs_g1_nc:.LCPI0_0 // encoding: [A,A,0xa0'A',0xf2'A'] +; CHECK: movk [[CPADDR]], #:abs_g0_nc:.LCPI0_0 // encoding: [A,A,0x80'A',0xf2'A'] + + ret double 3.14159 +} diff --git a/test/CodeGen/AArch64/tls-execs.ll b/test/CodeGen/AArch64/tls-execs.ll index 5bb9e32..39ceb9a 100644 --- a/test/CodeGen/AArch64/tls-execs.ll +++ b/test/CodeGen/AArch64/tls-execs.ll @@ -1,4 +1,4 @@ -; RUN: llc -mtriple=aarch64-none-linux-gnu -verify-machineinstrs < %s | FileCheck %s +; RUN: llc -mtriple=aarch64-none-linux-gnu -verify-machineinstrs -show-mc-encoding < %s | FileCheck %s ; RUN: llc -mtriple=aarch64-none-linux-gnu -filetype=obj < %s | llvm-objdump -r - | FileCheck --check-prefix=CHECK-RELOC %s @initial_exec_var = external thread_local(initialexec) global i32 @@ -38,7 +38,7 @@ define i32 @test_local_exec() { ; CHECK-LABEL: test_local_exec: %val = load i32* @local_exec_var -; CHECK: movz [[TP_OFFSET:x[0-9]+]], #:tprel_g1:local_exec_var +; CHECK: movz [[TP_OFFSET:x[0-9]+]], #:tprel_g1:local_exec_var // encoding: [A,A,0xa0'A',0x92'A'] ; CHECK: movk [[TP_OFFSET]], #:tprel_g0_nc:local_exec_var ; CHECK: mrs x[[TP:[0-9]+]], tpidr_el0 ; CHECK: ldr w0, [x[[TP]], [[TP_OFFSET]]] |