diff options
author | Stephen Hines <srhines@google.com> | 2014-07-21 00:45:20 -0700 |
---|---|---|
committer | Stephen Hines <srhines@google.com> | 2014-07-21 00:45:20 -0700 |
commit | c6a4f5e819217e1e12c458aed8e7b122e23a3a58 (patch) | |
tree | 81b7dd2bb4370a392f31d332a566c903b5744764 /test/MC/X86 | |
parent | 19c6fbb3e8aaf74093afa08013134b61fa08f245 (diff) | |
download | external_llvm-c6a4f5e819217e1e12c458aed8e7b122e23a3a58.zip external_llvm-c6a4f5e819217e1e12c458aed8e7b122e23a3a58.tar.gz external_llvm-c6a4f5e819217e1e12c458aed8e7b122e23a3a58.tar.bz2 |
Update LLVM for rebase to r212749.
Includes a cherry-pick of:
r212948 - fixes a small issue with atomic calls
Change-Id: Ib97bd980b59f18142a69506400911a6009d9df18
Diffstat (limited to 'test/MC/X86')
-rw-r--r-- | test/MC/X86/AlignedBundling/lit.local.cfg | 3 | ||||
-rw-r--r-- | test/MC/X86/avx512-encodings.s | 70 | ||||
-rw-r--r-- | test/MC/X86/intel-syntax.s | 8 | ||||
-rw-r--r-- | test/MC/X86/lit.local.cfg | 3 | ||||
-rw-r--r-- | test/MC/X86/no-elf-compact-unwind.s | 1 | ||||
-rw-r--r-- | test/MC/X86/x86_long_nop.s | 10 | ||||
-rw-r--r-- | test/MC/X86/x86_nop.s | 1 |
7 files changed, 91 insertions, 5 deletions
diff --git a/test/MC/X86/AlignedBundling/lit.local.cfg b/test/MC/X86/AlignedBundling/lit.local.cfg index ba763cf..e71f3cc 100644 --- a/test/MC/X86/AlignedBundling/lit.local.cfg +++ b/test/MC/X86/AlignedBundling/lit.local.cfg @@ -1,4 +1,3 @@ -targets = set(config.root.targets_to_build.split()) -if not 'X86' in targets: +if not 'X86' in config.root.targets: config.unsupported = True diff --git a/test/MC/X86/avx512-encodings.s b/test/MC/X86/avx512-encodings.s index 2915b7a..187b512 100644 --- a/test/MC/X86/avx512-encodings.s +++ b/test/MC/X86/avx512-encodings.s @@ -1,4 +1,5 @@ -// RUN: llvm-mc -triple x86_64-unknown-unknown -mcpu=knl --show-encoding %s | FileCheck %s +// RUN: not llvm-mc -triple x86_64-unknown-unknown -mcpu=knl --show-encoding %s 2> %t.err | FileCheck %s +// RUN: FileCheck --check-prefix=ERR < %t.err %s // CHECK: vaddpd %zmm6, %zmm27, %zmm8 // CHECK: encoding: [0x62,0x71,0xa5,0x40,0x58,0xc6] @@ -3128,6 +3129,14 @@ vpsrad 512(%rdi, %rsi, 4), %zmm12, %zmm25 // CHECK: encoding: [0x62,0xf2,0x7d,0xc9,0x58,0xc8] vpbroadcastd %xmm0, %zmm1 {%k1} {z} +// CHECK: vbroadcasti32x4 {{.*}} {%k7} {z} +// CHECK: encoding: [0x67,0x62,0xf2,0x7d,0xcf,0x5a,0x52,0x02] +vbroadcasti32x4 0x20(%edx), %zmm2 {%k7} {z} + +// CHECK: vbroadcasti64x4 {{.*}} %zmm22 +// CHECK: encoding: [0x62,0xe2,0xfd,0x48,0x5b,0x72,0x02] +vbroadcasti64x4 0x40(%rdx), %zmm22 + // CHECK: vmovdqu64 {{.*}} {%k3} // CHECK: encoding: [0x62,0xf1,0xfe,0x4b,0x7f,0x07] vmovdqu64 %zmm0, (%rdi) {%k3} @@ -3151,3 +3160,62 @@ vaddpd 512(%rdi, %rsi, 8) {1to8}, %zmm20, %zmm30 // CHECK: vaddps {{.*}}{1to16} // CHECK: encoding: [0x62,0x61,0x5c,0x50,0x58,0xb4,0xf7,0x00,0x02,0x00,0x00] vaddps 512(%rdi, %rsi, 8) {1to16}, %zmm20, %zmm30 + +// CHECK: vmovntdqa +// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x2a,0xab,0x78,0x56,0x34,0x12] +vmovntdqa 0x12345678(%rbx), %zmm13 + +// CHECK: vmovntdqa +// CHECK: encoding: [0x62,0xc2,0x7d,0x48,0x2a,0x14,0x56] +vmovntdqa (%r14,%rdx,2), %zmm18 + +// CHECK: vmovntdqa +// CHECK: encoding: [0x62,0xc2,0x7d,0x48,0x2a,0x7c,0x14,0x02] +vmovntdqa 128(%r12,%rdx), %zmm23 + +// CHECK: vmovntdq +// CHECK: encoding: [0x62,0x21,0x7d,0x48,0xe7,0x24,0xa9] +vmovntdq %zmm28, (%rcx,%r13,4) + +// CHECK: vmovntpd +// CHECK: encoding: [0x62,0xf1,0xfd,0x48,0x2b,0xb2,0x04,0x00,0x00,0x00] +vmovntpd %zmm6, 4(%rdx) + +// CHECK: vmovntps +// CHECK: encoding: [0x62,0x51,0x7c,0x48,0x2b,0x5c,0x8d,0x00] +vmovntps %zmm11, (%r13,%rcx,4) + +// CHECK: vcmpps $14 +// CHECK: encoding: [0x62,0xb1,0x54,0x48,0xc2,0xd1,0x0e] +vcmpgtps %zmm17, %zmm5, %k2 + +// CHECK: vcmppd $13 +// CHECK: encoding: [0x62,0xd1,0xf5,0x40,0xc2,0x76,0x02,0x0d] +vcmpgepd 0x80(%r14), %zmm17, %k6 + +// CHECK: vpcmpd $1, +// CHECK: encoding: [0x62,0x93,0x45,0x4c,0x1f,0xe8,0x01] +vpcmpd $1, %zmm24, %zmm7, %k5{%k4} + +// CHECK: vpcmpuq $2, +// CHECK: encoding: [0x62,0xf3,0xf5,0x47,0x1e,0x72,0x01,0x02] +vpcmpuq $2, 0x40(%rdx), %zmm17, %k6{%k7} + +// ERR: invalid operand for instruction +vpcmpd $1, %zmm24, %zmm7, %k5{%k0} + +// CHECK: vpermi2d +// CHECK: encoding: [0x62,0x42,0x6d,0x4b,0x76,0xd6] +vpermi2d %zmm14, %zmm2, %zmm26 {%k3} + +// CHECK: vpermt2pd +// CHECK: encoding: [0x62,0xf2,0xcd,0xc6,0x7f,0xf3] +vpermt2pd %zmm3, %zmm22, %zmm6 {%k6} {z} + +// CHECK: vpermi2q +// CHECK: encoding: [0x62,0x62,0xed,0x4b,0x76,0x54,0x58,0x02] +vpermi2q 0x80(%rax,%rbx,2), %zmm2, %zmm26 {%k3} + +// CHECK: vpermt2d +// CHECK: encoding: [0x62,0x32,0x4d,0xc2,0x7e,0x24,0xad,0x05,0x00,0x00,0x00] +vpermt2d 5(,%r13,4), %zmm22, %zmm12 {%k2} {z} diff --git a/test/MC/X86/intel-syntax.s b/test/MC/X86/intel-syntax.s index 540282a..7968918 100644 --- a/test/MC/X86/intel-syntax.s +++ b/test/MC/X86/intel-syntax.s @@ -599,3 +599,11 @@ fxrstor64 opaque ptr [rax] // CHECK: movq _g0+8, %rcx mov rbx, qword ptr [_g0] mov rcx, qword ptr [_g0 + 8] + +"?half@?0??bar@@YAXXZ@4NA": + .quad 4602678819172646912 + +fadd "?half@?0??bar@@YAXXZ@4NA" +fadd "?half@?0??bar@@YAXXZ@4NA"@IMGREL +// CHECK: fadds "?half@?0??bar@@YAXXZ@4NA" +// CHECK: fadds "?half@?0??bar@@YAXXZ@4NA"@IMGREL32 diff --git a/test/MC/X86/lit.local.cfg b/test/MC/X86/lit.local.cfg index 19840aa..c8625f4 100644 --- a/test/MC/X86/lit.local.cfg +++ b/test/MC/X86/lit.local.cfg @@ -1,3 +1,2 @@ -targets = set(config.root.targets_to_build.split()) -if not 'X86' in targets: +if not 'X86' in config.root.targets: config.unsupported = True diff --git a/test/MC/X86/no-elf-compact-unwind.s b/test/MC/X86/no-elf-compact-unwind.s index 017c52a..4e9236b 100644 --- a/test/MC/X86/no-elf-compact-unwind.s +++ b/test/MC/X86/no-elf-compact-unwind.s @@ -1,4 +1,5 @@ // RUN: llvm-mc < %s -filetype=obj -triple x86_64-apple-macosx10.8.0 | llvm-readobj -s | FileCheck -check-prefix=MACHO %s +// RUN: llvm-mc < %s -filetype=obj -triple x86_64-apple-ios7.0.0 | llvm-readobj -s | FileCheck -check-prefix=MACHO %s // RUN: llvm-mc < %s -filetype=obj -triple x86_64-unknown-linux | llvm-readobj -s | FileCheck -check-prefix=ELF %s .globl __Z3barv diff --git a/test/MC/X86/x86_long_nop.s b/test/MC/X86/x86_long_nop.s index ac1bc08..eee840c 100644 --- a/test/MC/X86/x86_long_nop.s +++ b/test/MC/X86/x86_long_nop.s @@ -2,6 +2,7 @@ # RUN: llvm-mc -filetype=obj -arch=x86 -triple=i686-pc-linux-gnu %s | llvm-objdump -d -no-show-raw-insn - | FileCheck %s # RUN: llvm-mc -filetype=obj -arch=x86 -triple=x86_64-apple-darwin10.0 %s | llvm-objdump -d -no-show-raw-insn - | FileCheck %s # RUN: llvm-mc -filetype=obj -arch=x86 -triple=i686-apple-darwin8 %s | llvm-objdump -d -no-show-raw-insn - | FileCheck %s +# RUN: llvm-mc -filetype=obj -arch=x86 -triple=i686-pc-linux-gnu -mcpu=slm %s | llvm-objdump -d -no-show-raw-insn - | FileCheck --check-prefix=SLM %s # Ensure alignment directives also emit sequences of 15-byte NOPs on processors # capable of using long NOPs. @@ -13,3 +14,12 @@ inc %eax # CHECK-NEXT: 10: nop # CHECK-NEXT: 1f: nop # CHECK-NEXT: 20: inc + +# On Silvermont we emit only 7 byte NOPs since longer NOPs are not profitable +# SLM: 0: inc +# SLM-NEXT: 1: nop +# SLM-NEXT: 8: nop +# SLM-NEXT: f: nop +# SLM-NEXT: 16: nop +# SLM-NEXT: 1d: nop +# SLM-NEXT: 20: inc diff --git a/test/MC/X86/x86_nop.s b/test/MC/X86/x86_nop.s index 059f591..572487b 100644 --- a/test/MC/X86/x86_nop.s +++ b/test/MC/X86/x86_nop.s @@ -14,6 +14,7 @@ # RUN: llvm-mc -filetype=obj -triple=i686-pc-linux -mcpu=c3 %s | llvm-objdump -d - | FileCheck %s # RUN: llvm-mc -filetype=obj -triple=i686-pc-linux -mcpu=c3-2 %s | llvm-objdump -d - | FileCheck %s # RUN: llvm-mc -filetype=obj -triple=i686-pc-linux -mcpu=core2 %s | llvm-objdump -d - | FileCheck --check-prefix=NOPL %s +# RUN: llvm-mc -filetype=obj -triple=i686-pc-linux -mcpu=slm %s | llvm-objdump -d - | FileCheck --check-prefix=NOPL %s inc %eax |