diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2015-06-09 19:06:30 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2015-06-09 19:06:30 +0000 |
commit | 85d8b2bbe386bcfe669575d05b61482d7be07e5d (patch) | |
tree | 1dc5e75ab222a9ead44c699eceafab7a6ca7b310 /test/MC | |
parent | 5a5ac124e1efaf208671f01c46edb15f29ed2a0b (diff) |
Notes
Diffstat (limited to 'test/MC')
79 files changed, 3666 insertions, 516 deletions
diff --git a/test/MC/AArch64/armv8.1a-atomic.s b/test/MC/AArch64/armv8.1a-atomic.s new file mode 100644 index 0000000000000..bcfd3e7d166a5 --- /dev/null +++ b/test/MC/AArch64/armv8.1a-atomic.s @@ -0,0 +1,184 @@ +// RUN: not llvm-mc -triple aarch64-none-linux-gnu -mattr=+v8.1a -show-encoding < %s 2> %t | FileCheck %s +// RUN: FileCheck --check-prefix=CHECK-ERROR <%t %s + .text + + //8 bits + casb w0, w1, [x2] + casab w0, w1, [x2] + caslb w0, w1, [x2] + casalb w0, w1, [x2] + +//CHECK: casb w0, w1, [x2] // encoding: [0x41,0x7c,0xa0,0x08] +//CHECK: casab w0, w1, [x2] // encoding: [0x41,0x7c,0xe0,0x08] +//CHECK: caslb w0, w1, [x2] // encoding: [0x41,0xfc,0xa0,0x08] +//CHECK: casalb w0, w1, [x2] // encoding: [0x41,0xfc,0xe0,0x08] + + casb w0, w1, [w2] + casalb x0, x1, [x2] +//CHECK-ERROR: error: invalid operand for instruction +//CHECK-ERROR: casb w0, w1, [w2] +//CHECK-ERROR: ^ +//CHECK-ERROR: error: invalid operand for instruction +//CHECK-ERROR: casalb x0, x1, [x2] +//CHECK-ERROR: ^ + + //16 bits + cash w0, w1, [x2] + casah w0, w1, [x2] + caslh w0, w1, [x2] + casalh w0, w1, [x2] + +//CHECK: cash w0, w1, [x2] // encoding: [0x41,0x7c,0xa0,0x48] +//CHECK: casah w0, w1, [x2] // encoding: [0x41,0x7c,0xe0,0x48] +//CHECK: caslh w0, w1, [x2] // encoding: [0x41,0xfc,0xa0,0x48] +//CHECK: casalh w0, w1, [x2] // encoding: [0x41,0xfc,0xe0,0x48] + + //32 bits + cas w0, w1, [x2] + casa w0, w1, [x2] + casl w0, w1, [x2] + casal w0, w1, [x2] + +//CHECK: cas w0, w1, [x2] // encoding: [0x41,0x7c,0xa0,0x88] +//CHECK: casa w0, w1, [x2] // encoding: [0x41,0x7c,0xe0,0x88] +//CHECK: casl w0, w1, [x2] // encoding: [0x41,0xfc,0xa0,0x88] +//CHECK: casal w0, w1, [x2] // encoding: [0x41,0xfc,0xe0,0x88] + + cas w0, w1, [w2] + casl w0, x1, [x2] + +//CHECK-ERROR: error: invalid operand for instruction +//CHECK-ERROR: cas w0, w1, [w2] +//CHECK-ERROR: ^ +//CHECK-ERROR: error: invalid operand for instruction +//CHECK-ERROR: casl w0, x1, [x2] +//CHECK-ERROR: ^ + + //64 bits + cas x0, x1, [x2] + casa x0, x1, [x2] + casl x0, x1, [x2] + casal x0, x1, [x2] + +//CHECK: cas x0, x1, [x2] // encoding: [0x41,0x7c,0xa0,0xc8] +//CHECK: casa x0, x1, [x2] // encoding: [0x41,0x7c,0xe0,0xc8] +//CHECK: casl x0, x1, [x2] // encoding: [0x41,0xfc,0xa0,0xc8] +//CHECK: casal x0, x1, [x2] // encoding: [0x41,0xfc,0xe0,0xc8] + + casa x0, x1, [w2] + casal x0, w1, [x2] + +//CHECK-ERROR: error: invalid operand for instruction +//CHECK-ERROR: casa x0, x1, [w2] +//CHECK-ERROR: ^ +//CHECK-ERROR: error: invalid operand for instruction +//CHECK-ERROR: casal x0, w1, [x2] +//CHECK-ERROR: ^ + + // LD<OP> intructions + ldadda x0, x1, [x2] + ldclrl x0, x1, [x2] + ldeoral x0, x1, [x2] + ldset x0, x1, [x2] + ldsmaxa w0, w1, [x2] + ldsminlb w0, w1, [x2] + ldumaxalh w0, w1, [x2] + ldumin w0, w1, [x2] + ldsminb w2, w3, [x5] +//CHECK: ldadda x0, x1, [x2] // encoding: [0x41,0x00,0xa0,0xf8] +//CHECK: ldclrl x0, x1, [x2] // encoding: [0x41,0x10,0x60,0xf8] +//CHECK: ldeoral x0, x1, [x2] // encoding: [0x41,0x20,0xe0,0xf8] +//CHECK: ldset x0, x1, [x2] // encoding: [0x41,0x30,0x20,0xf8] +//CHECK: ldsmaxa w0, w1, [x2] // encoding: [0x41,0x40,0xa0,0xb8] +//CHECK: ldsminlb w0, w1, [x2] // encoding: [0x41,0x50,0x60,0x38] +//CHECK: ldumaxalh w0, w1, [x2] // encoding: [0x41,0x60,0xe0,0x78] +//CHECK: ldumin w0, w1, [x2] // encoding: [0x41,0x70,0x20,0xb8] +//CHECK: ldsminb w2, w3, [x5] // encoding: [0xa3,0x50,0x22,0x38] + + // ST<OP> intructions: aliases to LD<OP> + stADDlb w0, [x2] + stclrlh w0, [x2] + steorl w0, [x2] + stsetl x0, [x2] + stsmaxb w0, [x2] + stsminh w0, [x2] + stumax w0, [x2] + stumin x0, [x2] + stsminl x29, [sp] +//CHECK: staddlb w0, [x2] // encoding: [0x5f,0x00,0x60,0x38] +//CHECK: stclrlh w0, [x2] // encoding: [0x5f,0x10,0x60,0x78] +//CHECK: steorl w0, [x2] // encoding: [0x5f,0x20,0x60,0xb8] +//CHECK: stsetl x0, [x2] // encoding: [0x5f,0x30,0x60,0xf8] +//CHECK: stsmaxb w0, [x2] // encoding: [0x5f,0x40,0x20,0x38] +//CHECK: stsminh w0, [x2] // encoding: [0x5f,0x50,0x20,0x78] +//CHECK: stumax w0, [x2] // encoding: [0x5f,0x60,0x20,0xb8] +//CHECK: stumin x0, [x2] // encoding: [0x5f,0x70,0x20,0xf8] +//CHECK: stsminl x29, [sp] // encoding: [0xff,0x53,0x7d,0xf8] + + + ldsmax x0, x1, [w2] + ldeorl w0, w1, [w2] +//CHECK-ERROR: error: invalid operand for instruction +//CHECK-ERROR: ldsmax x0, x1, [w2] +//CHECK-ERROR: ^ +//CHECK-ERROR: error: invalid operand for instruction +//CHECK-ERROR: ldeorl w0, w1, [w2] +//CHECK-ERROR: ^ + + //SWP instruction + swp x0, x1, [x2] + swpb w0, w1, [x2] + swplh w0, w1, [x2] + swpal x0, x1, [sp] +//CHECK: swp x0, x1, [x2] // encoding: [0x41,0x80,0x20,0xf8] +//CHECK: swpb w0, w1, [x2] // encoding: [0x41,0x80,0x20,0x38] +//CHECK: swplh w0, w1, [x2] // encoding: [0x41,0x80,0x60,0x78] +//CHECK: swpal x0, x1, [sp] // encoding: [0xe1,0x83,0xe0,0xf8] + + swp x0, x1, [w2] + swp x0, x1, [xzr] +//CHECK-ERROR: error: invalid operand for instruction +//CHECK-ERROR: swp x0, x1, [w2] +//CHECK-ERROR: ^ +//CHECK-ERROR: error: invalid operand for instruction +//CHECK-ERROR: swp x0, x1, [xzr] +//CHECK-ERROR: ^ + + //CASP instruction + casp x0, x1, x2, x3, [x4] + casp w0, w1, w2, w3, [x4] +//CHECK: casp x0, x1, x2, x3, [x4] // encoding: [0x82,0x7c,0x20,0x48] +//CHECK: casp w0, w1, w2, w3, [x4] // encoding: [0x82,0x7c,0x20,0x08] + + casp x1, x2, x4, x5, [x6] + casp x0, x1, x3, x4, [x5] + casp x0, x2, x4, x5, [x6] + casp x0, x1, x2, x4, [x5] + casp x0, w1, x2, x3, [x5] + casp w0, x1, x2, x3, [x5] + casp w0, x1, w2, w3, [x5] + casp x0, x1, w2, w3, [x5] +//CHECK-ERROR: error: expected first even register of a consecutive same-size even/odd register pair +//CHECK-ERROR: casp x1, x2, x4, x5, [x6] +//CHECK-ERROR: ^ +//CHECK-ERROR: error: expected first even register of a consecutive same-size even/odd register pair +//CHECK-ERROR: casp x0, x1, x3, x4, [x5] +//CHECK-ERROR: ^ +//CHECK-ERROR: error: expected second odd register of a consecutive same-size even/odd register pair +//CHECK-ERROR: casp x0, x2, x4, x5, [x6] +//CHECK-ERROR: ^ +//CHECK-ERROR: error: expected second odd register of a consecutive same-size even/odd register pair +//CHECK-ERROR: casp x0, x1, x2, x4, [x5] +//CHECK-ERROR: ^ +//CHECK-ERROR: error: expected second odd register of a consecutive same-size even/odd register pair +//CHECK-ERROR: casp x0, w1, x2, x3, [x5] +//CHECK-ERROR: ^ +//CHECK-ERROR: error: expected second odd register of a consecutive same-size even/odd register pair +//CHECK-ERROR: casp w0, x1, x2, x3, [x5] +//CHECK-ERROR: ^ +//CHECK-ERROR: error: expected second odd register of a consecutive same-size even/odd register pair +//CHECK-ERROR: casp w0, x1, w2, w3, [x5] +//CHECK-ERROR: ^ +//CHECK-ERROR: error: invalid operand for instruction +//CHECK-ERROR: casp x0, x1, w2, w3, [x5] +//CHECK-ERROR: ^ diff --git a/test/MC/AArch64/basic-a64-diagnostics.s b/test/MC/AArch64/basic-a64-diagnostics.s index 1d7ba710a9a18..bf7db132b44ab 100644 --- a/test/MC/AArch64/basic-a64-diagnostics.s +++ b/test/MC/AArch64/basic-a64-diagnostics.s @@ -3494,6 +3494,7 @@ msr ID_MMFR1_EL1, x12 msr ID_MMFR2_EL1, x12 msr ID_MMFR3_EL1, x12 + msr ID_MMFR4_EL1, x12 msr ID_ISAR0_EL1, x12 msr ID_ISAR1_EL1, x12 msr ID_ISAR2_EL1, x12 @@ -3587,6 +3588,9 @@ // CHECK-ERROR-NEXT: msr ID_MMFR3_EL1, x12 // CHECK-ERROR-NEXT: ^ // CHECK-ERROR-NEXT: error: expected writable system register or pstate +// CHECK-ERROR-NEXT: msr ID_MMFR4_EL1, x12 +// CHECK-ERROR-NEXT: ^ +// CHECK-ERROR-NEXT: error: expected writable system register or pstate // CHECK-ERROR-NEXT: msr ID_ISAR0_EL1, x12 // CHECK-ERROR-NEXT: ^ // CHECK-ERROR-NEXT: error: expected writable system register or pstate diff --git a/test/MC/AArch64/basic-a64-instructions.s b/test/MC/AArch64/basic-a64-instructions.s index 75c86efd2071c..5d33a4f933b3d 100644 --- a/test/MC/AArch64/basic-a64-instructions.s +++ b/test/MC/AArch64/basic-a64-instructions.s @@ -4306,6 +4306,7 @@ _func: mrs x9, ID_MMFR1_EL1 mrs x9, ID_MMFR2_EL1 mrs x9, ID_MMFR3_EL1 + mrs x9, ID_MMFR4_EL1 mrs x9, ID_ISAR0_EL1 mrs x9, ID_ISAR1_EL1 mrs x9, ID_ISAR2_EL1 @@ -4606,6 +4607,7 @@ _func: // CHECK: mrs x9, {{id_mmfr1_el1|ID_MMFR1_EL1}} // encoding: [0xa9,0x01,0x38,0xd5] // CHECK: mrs x9, {{id_mmfr2_el1|ID_MMFR2_EL1}} // encoding: [0xc9,0x01,0x38,0xd5] // CHECK: mrs x9, {{id_mmfr3_el1|ID_MMFR3_EL1}} // encoding: [0xe9,0x01,0x38,0xd5] +// CHECK: mrs x9, {{id_mmfr4_el1|ID_MMFR4_EL1}} // encoding: [0xc9,0x02,0x38,0xd5] // CHECK: mrs x9, {{id_isar0_el1|ID_ISAR0_EL1}} // encoding: [0x09,0x02,0x38,0xd5] // CHECK: mrs x9, {{id_isar1_el1|ID_ISAR1_EL1}} // encoding: [0x29,0x02,0x38,0xd5] // CHECK: mrs x9, {{id_isar2_el1|ID_ISAR2_EL1}} // encoding: [0x49,0x02,0x38,0xd5] diff --git a/test/MC/AArch64/case-insen-reg-names.s b/test/MC/AArch64/case-insen-reg-names.s new file mode 100644 index 0000000000000..b31ab675a7e1f --- /dev/null +++ b/test/MC/AArch64/case-insen-reg-names.s @@ -0,0 +1,8 @@ +// RUN: llvm-mc -triple aarch64-none-linux-gnu -show-encoding < %s | FileCheck %s + +fadd v0.2d, v5.2d, v6.2d +fadd V0.2d, V5.2d, V6.2d +fadd v0.2d, V5.2d, v6.2d +// CHECK: fadd v0.2d, v5.2d, v6.2d // encoding: [0xa0,0xd4,0x66,0x4e] +// CHECK: fadd v0.2d, v5.2d, v6.2d // encoding: [0xa0,0xd4,0x66,0x4e] +// CHECK: fadd v0.2d, v5.2d, v6.2d // encoding: [0xa0,0xd4,0x66,0x4e] diff --git a/test/MC/ARM/arm-elf-symver.s b/test/MC/ARM/arm-elf-symver.s index 4303540e82aab..ce9c4fe5f00e1 100644 --- a/test/MC/ARM/arm-elf-symver.s +++ b/test/MC/ARM/arm-elf-symver.s @@ -78,7 +78,7 @@ global1: @ CHECK-NEXT: Section: .text @ CHECK-NEXT: } @ CHECK-NEXT: Symbol { -@ CHECK-NEXT: Name: .text (0) +@ CHECK-NEXT: Name: (0) @ CHECK-NEXT: Value: 0x0 @ CHECK-NEXT: Size: 0 @ CHECK-NEXT: Binding: Local (0x0) @@ -87,22 +87,22 @@ global1: @ CHECK-NEXT: Section: .text @ CHECK-NEXT: } @ CHECK-NEXT: Symbol { -@ CHECK-NEXT: Name: .data (0) +@ CHECK-NEXT: Name: bar2@zed @ CHECK-NEXT: Value: 0x0 @ CHECK-NEXT: Size: 0 -@ CHECK-NEXT: Binding: Local (0x0) -@ CHECK-NEXT: Type: Section (0x3) +@ CHECK-NEXT: Binding: Global (0x1) +@ CHECK-NEXT: Type: None (0x0) @ CHECK-NEXT: Other: 0 -@ CHECK-NEXT: Section: .data +@ CHECK-NEXT: Section: Undefined (0x0) @ CHECK-NEXT: } @ CHECK-NEXT: Symbol { -@ CHECK-NEXT: Name: .bss (0) +@ CHECK-NEXT: Name: bar6@zed @ CHECK-NEXT: Value: 0x0 @ CHECK-NEXT: Size: 0 -@ CHECK-NEXT: Binding: Local (0x0) -@ CHECK-NEXT: Type: Section (0x3) +@ CHECK-NEXT: Binding: Global (0x1) +@ CHECK-NEXT: Type: None (0x0) @ CHECK-NEXT: Other: 0 -@ CHECK-NEXT: Section: .bss +@ CHECK-NEXT: Section: Undefined (0x0) @ CHECK-NEXT: } @ CHECK-NEXT: Symbol { @ CHECK-NEXT: Name: g1@@zed @@ -122,22 +122,4 @@ global1: @ CHECK-NEXT: Other: 0 @ CHECK-NEXT: Section: .text @ CHECK-NEXT: } -@ CHECK-NEXT: Symbol { -@ CHECK-NEXT: Name: bar2@zed -@ CHECK-NEXT: Value: 0x0 -@ CHECK-NEXT: Size: 0 -@ CHECK-NEXT: Binding: Global (0x1) -@ CHECK-NEXT: Type: None (0x0) -@ CHECK-NEXT: Other: 0 -@ CHECK-NEXT: Section: Undefined (0x0) -@ CHECK-NEXT: } -@ CHECK-NEXT: Symbol { -@ CHECK-NEXT: Name: bar6@zed -@ CHECK-NEXT: Value: 0x0 -@ CHECK-NEXT: Size: 0 -@ CHECK-NEXT: Binding: Global (0x1) -@ CHECK-NEXT: Type: None (0x0) -@ CHECK-NEXT: Other: 0 -@ CHECK-NEXT: Section: Undefined (0x0) -@ CHECK-NEXT: } @ CHECK-NEXT: ] diff --git a/test/MC/ARM/directive-arch-armv2.s b/test/MC/ARM/directive-arch-armv2.s index 40857ca9fad8c..f6dc20c0a3630 100644 --- a/test/MC/ARM/directive-arch-armv2.s +++ b/test/MC/ARM/directive-arch-armv2.s @@ -20,7 +20,7 @@ @ CHECK-ATTR: } @ CHECK-ATTR: Attribute { @ CHECK-ATTR: TagName: CPU_arch -@ CHECK-ATTR: Description: ARM v4 +@ CHECK-ATTR: Description: Pre-v4 @ CHECK-ATTR: } @ CHECK-ATTR: Attribute { @ CHECK-ATTR: TagName: ARM_ISA_use diff --git a/test/MC/ARM/directive-arch-armv2a.s b/test/MC/ARM/directive-arch-armv2a.s index 62c2ace796f9b..bb0a693dc84a7 100644 --- a/test/MC/ARM/directive-arch-armv2a.s +++ b/test/MC/ARM/directive-arch-armv2a.s @@ -20,7 +20,7 @@ @ CHECK-ATTR: } @ CHECK-ATTR: Attribute { @ CHECK-ATTR: TagName: CPU_arch -@ CHECK-ATTR: Description: ARM v4 +@ CHECK-ATTR: Description: Pre-v4 @ CHECK-ATTR: } @ CHECK-ATTR: Attribute { @ CHECK-ATTR: TagName: ARM_ISA_use diff --git a/test/MC/ARM/directive-arch-armv3.s b/test/MC/ARM/directive-arch-armv3.s index 41cce659246b5..aeec638eac895 100644 --- a/test/MC/ARM/directive-arch-armv3.s +++ b/test/MC/ARM/directive-arch-armv3.s @@ -20,7 +20,7 @@ @ CHECK-ATTR: } @ CHECK-ATTR: Attribute { @ CHECK-ATTR: TagName: CPU_arch -@ CHECK-ATTR: Description: ARM v4 +@ CHECK-ATTR: Description: Pre-v4 @ CHECK-ATTR: } @ CHECK-ATTR: Attribute { @ CHECK-ATTR: TagName: ARM_ISA_use diff --git a/test/MC/ARM/directive-arch-armv3m.s b/test/MC/ARM/directive-arch-armv3m.s index 8041da2e1e52f..fda8db52e7bf7 100644 --- a/test/MC/ARM/directive-arch-armv3m.s +++ b/test/MC/ARM/directive-arch-armv3m.s @@ -20,7 +20,7 @@ @ CHECK-ATTR: } @ CHECK-ATTR: Attribute { @ CHECK-ATTR: TagName: CPU_arch -@ CHECK-ATTR: Description: ARM v4 +@ CHECK-ATTR: Description: Pre-v4 @ CHECK-ATTR: } @ CHECK-ATTR: Attribute { @ CHECK-ATTR: TagName: ARM_ISA_use diff --git a/test/MC/ARM/directive-fpu-multiple.s b/test/MC/ARM/directive-fpu-multiple.s index de2baaf27165b..66fc274159638 100644 --- a/test/MC/ARM/directive-fpu-multiple.s +++ b/test/MC/ARM/directive-fpu-multiple.s @@ -1,12 +1,28 @@ @ Check multiple .fpu directives. @ The later .fpu directive should overwrite the earlier one. -@ See also: directive-fpu-multiple2.s. +@ We also check here that all the .fpu directives that we expect to work do work @ RUN: llvm-mc -triple arm-eabi -filetype obj %s | llvm-readobj -arm-attributes \ @ RUN: | FileCheck %s -check-prefix CHECK-ATTR + .fpu none + .fpu vfp + .fpu vfpv2 + .fpu vfpv3 + .fpu vfpv3-d16 + .fpu vfpv4 + .fpu vfpv4-d16 + .fpu fpv4-sp-d16 + .fpu fpv5-d16 + .fpu fpv5-sp-d16 + .fpu fp-armv8 .fpu neon + .fpu neon-vfpv4 + .fpu neon-fp-armv8 + .fpu crypto-neon-fp-armv8 + .fpu softvfp + .fpu vfpv4 @ CHECK-ATTR: FileAttributes { diff --git a/test/MC/ARM/elf-movt.s b/test/MC/ARM/elf-movt.s index 0fd77754795be..9b46cafe3fb08 100644 --- a/test/MC/ARM/elf-movt.s +++ b/test/MC/ARM/elf-movt.s @@ -49,10 +49,6 @@ barf: @ @barf @ OBJ-NEXT: AddressAlignment: 4 @ OBJ-NEXT: EntrySize: 8 @ OBJ-NEXT: Relocations [ -@ OBJ-NEXT: 0x0 R_ARM_MOVW_PREL_NC -@ OBJ-NEXT: 0x4 R_ARM_MOVT_PREL +@ OBJ-NEXT: 0x0 R_ARM_MOVW_PREL_NC GOT 0x0 +@ OBJ-NEXT: 0x4 R_ARM_MOVT_PREL GOT 0x0 @ OBJ-NEXT: ] -@ OBJ-NEXT: SectionData ( -@ OBJ-NEXT: 0000: 00000000 2D060000 04000000 2E060000 |....-...........| -@ OBJ-NEXT: ) -@ OBJ-NEXT: } diff --git a/test/MC/AsmParser/defsym.s b/test/MC/AsmParser/defsym.s new file mode 100644 index 0000000000000..06981f5404661 --- /dev/null +++ b/test/MC/AsmParser/defsym.s @@ -0,0 +1,20 @@ +# RUN: llvm-mc -filetype=obj -triple=i386-unknown-elf -defsym a=7 -defsym b=11 %s | llvm-objdump -t - | FileCheck %s + +.ifndef a +.err +.endif + +.if a<>7 +.err +.endif + +.ifndef b +.err +.endif + +.if b<>11 +.err +.endif + +# CHECK: 00000007 *ABS* 00000000 a +# CHECK: 0000000b *ABS* 00000000 b
\ No newline at end of file diff --git a/test/MC/AsmParser/defsym_error1.s b/test/MC/AsmParser/defsym_error1.s new file mode 100644 index 0000000000000..872577844d469 --- /dev/null +++ b/test/MC/AsmParser/defsym_error1.s @@ -0,0 +1,2 @@ +# RUN: not llvm-mc -filetype=obj -triple=i386-unknown-elf -defsym aaoeuaoeu %s 2>&1 | FileCheck %s +# CHECK: defsym must be of the form: sym=value diff --git a/test/MC/AsmParser/defsym_error2.s b/test/MC/AsmParser/defsym_error2.s new file mode 100644 index 0000000000000..ec4cc79182fa3 --- /dev/null +++ b/test/MC/AsmParser/defsym_error2.s @@ -0,0 +1,2 @@ +# RUN: not llvm-mc -filetype=obj -triple=i386-unknown-elf -defsym a=a %s 2>&1 | FileCheck %s +# CHECK: error: Value is not an integer: a diff --git a/test/MC/COFF/cross-section-relative.ll b/test/MC/COFF/cross-section-relative.ll index 18823f8b29a13..6b7a3d7b40b2f 100644 --- a/test/MC/COFF/cross-section-relative.ll +++ b/test/MC/COFF/cross-section-relative.ll @@ -1,7 +1,5 @@ ; Verify the assembler produces the expected expressions ; RUN: llc -mtriple=x86_64-pc-win32 %s -o - | FileCheck %s -; Verify the .fix data section conveys the right offsets and the right relocations -; RUN: llc -mtriple=x86_64-pc-win32 -filetype=obj %s -o - | llvm-readobj -relocations -expand-relocs -sections -section-data | FileCheck %s --check-prefix=READOBJ ;;;; some globals @@ -37,61 +35,3 @@ i64 256, i32 trunc(i64 sub(i64 ptrtoint(i32* @g3 to i64), i64 ptrtoint(i32* getelementptr inbounds (%struct.EEType, %struct.EEType* @t6, i32 0, i32 2) to i64)) to i32 ) }, section ".fix" - -; READOBJ: Section { -; READOBJ: Number: 5 -; READOBJ: Name: .fix (2E 66 69 78 00 00 00 00) -; READOBJ: VirtualSize: 0x0 -; READOBJ: VirtualAddress: 0x0 -; READOBJ: RawDataSize: 56 -; READOBJ: PointerToRawData: 0xEC -; READOBJ: PointerToRelocations: 0x124 -; READOBJ: PointerToLineNumbers: 0x0 -; READOBJ: RelocationCount: 6 -; READOBJ: LineNumberCount: 0 -; READOBJ: Characteristics [ (0xC0500040) -; READOBJ: IMAGE_SCN_ALIGN_16BYTES (0x500000) -; READOBJ: IMAGE_SCN_CNT_INITIALIZED_DATA (0x40) -; READOBJ: IMAGE_SCN_MEM_READ (0x40000000) -; READOBJ: IMAGE_SCN_MEM_WRITE (0x80000000) -; READOBJ: ] -; READOBJ: SectionData ( -; READOBJ: 0000: 10000000 00000000 0C000000 00000000 |................| -; READOBJ: 0010: 08000000 00000000 0C000000 00000000 |................| -; READOBJ: 0020: 01020000 00000000 00010000 00000000 |................| -; READOBJ: 0030: 0C000000 00000000 |........| -; READOBJ: ) -; READOBJ: } -; READOBJ: ] -; READOBJ: Relocations [ -; READOBJ: Section (5) .fix { -; READOBJ: Relocation { -; READOBJ: Offset: 0x0 -; READOBJ: Type: IMAGE_REL_AMD64_REL32 (4) -; READOBJ: Symbol: .rdata -; READOBJ: } -; READOBJ: Relocation { -; READOBJ: Offset: 0x8 -; READOBJ: Type: IMAGE_REL_AMD64_REL32 (4) -; READOBJ: Symbol: .rdata -; READOBJ: } -; READOBJ: Relocation { -; READOBJ: Offset: 0x10 -; READOBJ: Type: IMAGE_REL_AMD64_REL32 (4) -; READOBJ: Symbol: .rdata -; READOBJ: } -; READOBJ: Relocation { -; READOBJ: Offset: 0x18 -; READOBJ: Type: IMAGE_REL_AMD64_REL32 (4) -; READOBJ: Symbol: .rdata -; READOBJ: } -; READOBJ: Relocation { -; READOBJ: Offset: 0x1C -; READOBJ: Type: IMAGE_REL_AMD64_ADDR32NB (3) -; READOBJ: Symbol: g3 -; READOBJ: } -; READOBJ: Relocation { -; READOBJ: Offset: 0x30 -; READOBJ: Type: IMAGE_REL_AMD64_REL32 (4) -; READOBJ: Symbol: .rdata -; READOBJ: } diff --git a/test/MC/COFF/cross-section-relative.s b/test/MC/COFF/cross-section-relative.s new file mode 100644 index 0000000000000..dd94b0a5e83ab --- /dev/null +++ b/test/MC/COFF/cross-section-relative.s @@ -0,0 +1,118 @@ +// Verify the .fix data section conveys the right offsets and the right relocations +// RUN: llvm-mc -filetype=obj -triple x86_64-pc-win32 %s -o - | llvm-readobj -relocations -expand-relocs -sections -section-data | FileCheck %s --check-prefix=READOBJ + + .text + .section .rdata,"dr" + .globl g1 # @g1 + .align 4 +g1: + .long 1 # 0x1 + + .globl g2 # @g2 + .align 4 +g2: + .long 2 # 0x2 + + .globl g3 # @g3 + .align 4 +g3: + .long 3 # 0x3 + + .globl g4 # @g4 + .align 4 +g4: + .long 4 # 0x4 + + .section .fix,"dw" + .globl t1 # @t1 + .align 8 +t1: + .quad (g3-t1)+4 + + .globl t2 # @t2 + .align 8 +t2: + .quad g3-t2 + + .globl t3 # @t3 + .align 8 +t3: + .quad (g3-t3)-4 + + .globl t4 # @t4 + .align 4 +t4: + .long g3-t4 + + .globl t5 # @t5 + .align 4 +t5: + .long g3@IMGREL + + .globl t6 # @t6 + .align 16 +t6: + .ascii "\001\002" + .zero 6 + .quad 256 # 0x100 + .long g3-(t6+16) + .zero 4 + + +// READOBJ: Section { +// READOBJ: Number: 5 +// READOBJ: Name: .fix (2E 66 69 78 00 00 00 00) +// READOBJ: VirtualSize: 0x0 +// READOBJ: VirtualAddress: 0x0 +// READOBJ: RawDataSize: 56 +// READOBJ: PointerToRawData: 0xEC +// READOBJ: PointerToRelocations: 0x124 +// READOBJ: PointerToLineNumbers: 0x0 +// READOBJ: RelocationCount: 6 +// READOBJ: LineNumberCount: 0 +// READOBJ: Characteristics [ (0xC0500040) +// READOBJ: IMAGE_SCN_ALIGN_16BYTES (0x500000) +// READOBJ: IMAGE_SCN_CNT_INITIALIZED_DATA (0x40) +// READOBJ: IMAGE_SCN_MEM_READ (0x40000000) +// READOBJ: IMAGE_SCN_MEM_WRITE (0x80000000) +// READOBJ: ] +// READOBJ: SectionData ( +// READOBJ: 0000: 10000000 00000000 0C000000 00000000 |................| +// READOBJ: 0010: 08000000 00000000 0C000000 00000000 |................| +// READOBJ: 0020: 01020000 00000000 00010000 00000000 |................| +// READOBJ: 0030: 0C000000 00000000 |........| +// READOBJ: ) +// READOBJ: } +// READOBJ: ] +// READOBJ: Relocations [ +// READOBJ: Section (5) .fix { +// READOBJ: Relocation { +// READOBJ: Offset: 0x0 +// READOBJ: Type: IMAGE_REL_AMD64_REL32 (4) +// READOBJ: Symbol: .rdata +// READOBJ: } +// READOBJ: Relocation { +// READOBJ: Offset: 0x8 +// READOBJ: Type: IMAGE_REL_AMD64_REL32 (4) +// READOBJ: Symbol: .rdata +// READOBJ: } +// READOBJ: Relocation { +// READOBJ: Offset: 0x10 +// READOBJ: Type: IMAGE_REL_AMD64_REL32 (4) +// READOBJ: Symbol: .rdata +// READOBJ: } +// READOBJ: Relocation { +// READOBJ: Offset: 0x18 +// READOBJ: Type: IMAGE_REL_AMD64_REL32 (4) +// READOBJ: Symbol: .rdata +// READOBJ: } +// READOBJ: Relocation { +// READOBJ: Offset: 0x1C +// READOBJ: Type: IMAGE_REL_AMD64_ADDR32NB (3) +// READOBJ: Symbol: g3 +// READOBJ: } +// READOBJ: Relocation { +// READOBJ: Offset: 0x30 +// READOBJ: Type: IMAGE_REL_AMD64_REL32 (4) +// READOBJ: Symbol: .rdata +// READOBJ: } diff --git a/test/MC/Disassembler/AArch64/armv8.1a-atomic.txt b/test/MC/Disassembler/AArch64/armv8.1a-atomic.txt new file mode 100644 index 0000000000000..b20fabb8c6f1e --- /dev/null +++ b/test/MC/Disassembler/AArch64/armv8.1a-atomic.txt @@ -0,0 +1,87 @@ +# RUN: llvm-mc -triple aarch64-none-linux-gnu -mattr=+v8.1a --disassemble < %s | FileCheck %s + +0x41,0x7c,0xa0,0x08 +0x41,0x7c,0xe0,0x08 +0x41,0xfc,0xa0,0x08 +0x41,0xfc,0xe0,0x08 +0x41,0x7c,0xa0,0x48 +0x41,0x7c,0xe0,0x48 +0x41,0xfc,0xa0,0x48 +0x41,0xfc,0xe0,0x48 +# CHECK: casb w0, w1, [x2] +# CHECK: casab w0, w1, [x2] +# CHECK: caslb w0, w1, [x2] +# CHECK: casalb w0, w1, [x2] +# CHECK: cash w0, w1, [x2] +# CHECK: casah w0, w1, [x2] +# CHECK: caslh w0, w1, [x2] +# CHECK: casalh w0, w1, [x2] + +0x41,0x7c,0xa0,0x88 +0x41,0x7c,0xe0,0x88 +0x41,0xfc,0xa0,0x88 +0x41,0xfc,0xe0,0x88 +0x41,0x7c,0xa0,0xc8 +0x41,0x7c,0xe0,0xc8 +0x41,0xfc,0xa0,0xc8 +0x41,0xfc,0xe0,0xc8 +# CHECK: cas w0, w1, [x2] +# CHECK: casa w0, w1, [x2] +# CHECK: casl w0, w1, [x2] +# CHECK: casal w0, w1, [x2] +# CHECK: cas x0, x1, [x2] +# CHECK: casa x0, x1, [x2] +# CHECK: casl x0, x1, [x2] +# CHECK: casal x0, x1, [x2] + +0x41,0x80,0x20,0xf8 +0x41,0x80,0x20,0x38 +0x41,0x80,0x60,0x78 +0xe1,0x83,0xe0,0xf8 +# CHECK: swp x0, x1, [x2] +# CHECK: swpb w0, w1, [x2] +# CHECK: swplh w0, w1, [x2] +# CHECK: swpal x0, x1, [sp] + +0x41,0x00,0xa0,0xf8 +0x41,0x10,0x60,0xf8 +0x41,0x20,0xe0,0xf8 +0x41,0x30,0x20,0xf8 +0x41,0x40,0xa0,0xb8 +0x41,0x50,0x60,0x38 +0x41,0x60,0xe0,0x78 +0x41,0x70,0x20,0xb8 +0xab,0x51,0xe7,0x78 +# CHECK: ldadda x0, x1, [x2] +# CHECK: ldclrl x0, x1, [x2] +# CHECK: ldeoral x0, x1, [x2] +# CHECK: ldset x0, x1, [x2] +# CHECK: ldsmaxa w0, w1, [x2] +# CHECK: ldsminlb w0, w1, [x2] +# CHECK: ldumaxalh w0, w1, [x2] +# CHECK: ldumin w0, w1, [x2] +# CHECK: ldsminalh w7, w11, [x13] + +0x5f,0x00,0x60,0x38 +0x5f,0x10,0x60,0x78 +0x5f,0x20,0x60,0xb8 +0x5f,0x30,0x60,0xf8 +0x5f,0x40,0x20,0x38 +0x5f,0x50,0x20,0x78 +0x5f,0x60,0x20,0xb8 +0x5f,0x70,0x20,0xf8 +0xff,0x53,0x7d,0xf8 +# CHECK: staddlb w0, [x2] +# CHECK: stclrlh w0, [x2] +# CHECK: steorl w0, [x2] +# CHECK: stsetl x0, [x2] +# CHECK: stsmaxb w0, [x2] +# CHECK: stsminh w0, [x2] +# CHECK: stumax w0, [x2] +# CHECK: stumin x0, [x2] +# CHECK: stsminl x29, [sp] + +0x82,0x7c,0x20,0x48 +0x82,0x7c,0x20,0x08 +# CHECK: casp x0, x1, x2, x3, [x4] +# CHECK: casp w0, w1, w2, w3, [x4] diff --git a/test/MC/Disassembler/AArch64/basic-a64-instructions.txt b/test/MC/Disassembler/AArch64/basic-a64-instructions.txt index c777f7aa6494c..615d9ba19ca8e 100644 --- a/test/MC/Disassembler/AArch64/basic-a64-instructions.txt +++ b/test/MC/Disassembler/AArch64/basic-a64-instructions.txt @@ -3414,6 +3414,7 @@ # CHECK: mrs x9, {{id_mmfr1_el1|ID_MMFR1_EL1}} # CHECK: mrs x9, {{id_mmfr2_el1|ID_MMFR2_EL1}} # CHECK: mrs x9, {{id_mmfr3_el1|ID_MMFR3_EL1}} +# CHECK: mrs x9, {{id_mmfr4_el1|ID_MMFR4_EL1}} # CHECK: mrs x9, {{id_isar0_el1|ID_ISAR0_EL1}} # CHECK: mrs x9, {{id_isar1_el1|ID_ISAR1_EL1}} # CHECK: mrs x9, {{id_isar2_el1|ID_ISAR2_EL1}} @@ -3968,6 +3969,7 @@ 0xa9 0x1 0x38 0xd5 0xc9 0x1 0x38 0xd5 0xe9 0x1 0x38 0xd5 +0xc9 0x2 0x38 0xd5 0x9 0x2 0x38 0xd5 0x29 0x2 0x38 0xd5 0x49 0x2 0x38 0xd5 diff --git a/test/MC/Disassembler/PowerPC/vsx.txt b/test/MC/Disassembler/PowerPC/vsx.txt index 04b2eeb0dd2aa..6f4ba6f6b9ac2 100644 --- a/test/MC/Disassembler/PowerPC/vsx.txt +++ b/test/MC/Disassembler/PowerPC/vsx.txt @@ -90,6 +90,12 @@ # CHECK: xsmaddmdp 7, 63, 27 0xf0 0xff 0xd9 0x4c +# CHECK: xsmaddasp 7, 63, 27 +0xf0 0xff 0xd8 0x0c + +# CHECK: xsmaddmsp 7, 63, 27 +0xf0 0xff 0xd8 0x4c + # CHECK: xsmaxdp 7, 63, 27 0xf0 0xff 0xdd 0x04 @@ -102,6 +108,12 @@ # CHECK: xsmsubmdp 7, 63, 27 0xf0 0xff 0xd9 0xcc +# CHECK: xsmsubasp 7, 63, 27 +0xf0 0xff 0xd8 0x8c + +# CHECK: xsmsubmsp 7, 63, 27 +0xf0 0xff 0xd8 0xcc + # CHECK: xsmulsp 7, 63, 27 0xf0 0xff 0xd8 0x84 @@ -126,6 +138,18 @@ # CHECK: xsnmsubmdp 7, 63, 27 0xf0 0xff 0xdd 0xcc +# CHECK: xsnmaddasp 7, 63, 27 +0xf0 0xff 0xdc 0x0c + +# CHECK: xsnmaddmsp 7, 63, 27 +0xf0 0xff 0xdc 0x4c + +# CHECK: xsnmsubasp 7, 63, 27 +0xf0 0xff 0xdc 0x8c + +# CHECK: xsnmsubmsp 7, 63, 27 +0xf0 0xff 0xdc 0xcc + # CHECK: xsrdpi 7, 27 0xf0 0xe0 0xd9 0x24 diff --git a/test/MC/ELF/alias.s b/test/MC/ELF/alias.s index 0ab6dd4b5b8e9..df39fd4be147d 100644 --- a/test/MC/ELF/alias.s +++ b/test/MC/ELF/alias.s @@ -107,33 +107,25 @@ leaq .Llocal1(%rip), %rdi // CHECK-NEXT: Section: .text // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: .text (0) +// CHECK-NEXT: Name: (0) // CHECK-NOT: Symbol { // CHECK: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: .data (0) -// CHECK-NOT: Symbol { -// CHECK: } -// CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: .bss (0) -// CHECK-NOT: Symbol { -// CHECK: } -// CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: bar3 +// CHECK-NEXT: Name: bar2 // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Global // CHECK-NEXT: Type: None // CHECK-NEXT: Other: 0 -// CHECK-NEXT: Section: .text +// CHECK-NEXT: Section: Undefined (0x0) // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: bar2 +// CHECK-NEXT: Name: bar3 // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Global // CHECK-NEXT: Type: None // CHECK-NEXT: Other: 0 -// CHECK-NEXT: Section: Undefined (0x0) +// CHECK-NEXT: Section: .text // CHECK-NEXT: } // CHECK-NEXT: ] diff --git a/test/MC/ELF/basic-elf-32.s b/test/MC/ELF/basic-elf-32.s index 16266af7f4452..1036b04a747bc 100644 --- a/test/MC/ELF/basic-elf-32.s +++ b/test/MC/ELF/basic-elf-32.s @@ -54,20 +54,6 @@ main: # @main // CHECK: ] // CHECK: Symbols [ -// CHECK: Symbol { -// CHECK: Binding: Local -// CHECK: Type: Section -// CHECK: } - -// CHECK: Symbol { -// CHECK: Binding: Local -// CHECK: Type: Section -// CHECK: } - -// CHECK: Symbol { -// CHECK: Binding: Local -// CHECK: Type: Section -// CHECK: } // CHECK: Symbol { // CHECK: Name: main diff --git a/test/MC/ELF/basic-elf-64.s b/test/MC/ELF/basic-elf-64.s index d99125e06a91b..b93f9aebd3a09 100644 --- a/test/MC/ELF/basic-elf-64.s +++ b/test/MC/ELF/basic-elf-64.s @@ -58,16 +58,6 @@ main: # @main // CHECK: Type: Section // CHECK: Symbol { -// CHECK: Binding: Local -// CHECK: Type: Section -// CHECK: } - -// CHECK: Symbol { -// CHECK: Binding: Local -// CHECK: Type: Section -// CHECK: } - -// CHECK: Symbol { // CHECK: Name: main // CHECK: Binding: Global // CHECK: Type: Function diff --git a/test/MC/ELF/comdat-dup-group-name.s b/test/MC/ELF/comdat-dup-group-name.s index a2dc4cc33d987..e52f3dcc04d1c 100644 --- a/test/MC/ELF/comdat-dup-group-name.s +++ b/test/MC/ELF/comdat-dup-group-name.s @@ -24,15 +24,6 @@ // CHECK-NOT: } // CHECK: Section: .group (0x7) -// CHECK: Name: .foo -// CHECK-NOT: } -// CHECK: Section: .foo (0x6) - -// CHECK: Name: .foo -// CHECK-NOT: } -// CHECK: Section: .foo (0x8) - - .section .foo,"axG",@progbits,f1,comdat nop diff --git a/test/MC/ELF/comdat.s b/test/MC/ELF/comdat.s index e71dea089c4d4..18da17e6118cd 100644 --- a/test/MC/ELF/comdat.s +++ b/test/MC/ELF/comdat.s @@ -46,7 +46,7 @@ // CHECK-NEXT: Offset: // CHECK-NEXT: Size: 12 // CHECK-NEXT: Link: -// CHECK-NEXT: Info: 10 +// CHECK-NEXT: Info: 3 // CHECK-NEXT: AddressAlignment: 4 // CHECK-NEXT: EntrySize: 4 // CHECK-NEXT: SectionData ( diff --git a/test/MC/ELF/common-error3.s b/test/MC/ELF/common-error3.s new file mode 100644 index 0000000000000..a84779e653e0a --- /dev/null +++ b/test/MC/ELF/common-error3.s @@ -0,0 +1,5 @@ +# RUN: not llvm-mc -filetype=obj -triple x86_64-pc-linux %s 2>&1 | FileCheck %s + +# CHECK: Symbol: C redeclared as different type + .comm C,4,4 + .comm C,8,4
\ No newline at end of file diff --git a/test/MC/ELF/common-redeclare.s b/test/MC/ELF/common-redeclare.s new file mode 100644 index 0000000000000..f8ee17d84e2ed --- /dev/null +++ b/test/MC/ELF/common-redeclare.s @@ -0,0 +1,5 @@ +# RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux %s | llvm-objdump -t - | FileCheck %s + +# CHECK: 0000000000000004 g *COM* 00000004 C + .comm C,4,4 + .comm C,4,4
\ No newline at end of file diff --git a/test/MC/ELF/empty.s b/test/MC/ELF/empty.s index 6ddbd8c942a25..7b686fef3a234 100644 --- a/test/MC/ELF/empty.s +++ b/test/MC/ELF/empty.s @@ -78,9 +78,9 @@ // CHECK-NEXT: ] // CHECK-NEXT: Address: 0x0 // CHECK-NEXT: Offset: -// CHECK-NEXT: Size: 96 +// CHECK-NEXT: Size: 24 // CHECK-NEXT: Link: -// CHECK-NEXT: Info: 4 +// CHECK-NEXT: Info: 1 // CHECK-NEXT: AddressAlignment: 8 // CHECK-NEXT: EntrySize: 24 // CHECK-NEXT: } diff --git a/test/MC/ELF/got.s b/test/MC/ELF/got.s index 30114b75d84da..3fe3e4a62b1a5 100644 --- a/test/MC/ELF/got.s +++ b/test/MC/ELF/got.s @@ -1,7 +1,7 @@ // RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -r -t | FileCheck %s -// Test that this produces a R_X86_64_GOT32 and that we have an undefined -// reference to _GLOBAL_OFFSET_TABLE_. +// Test that this produces the correct relocations R_X86_64_GOT32 and that we, +// unlike gas, don't create a _GLOBAL_OFFSET_TABLE_ symbol as a side effect. movl foo@GOT, %eax movl foo@GOTPCREL(%rip), %eax @@ -13,8 +13,5 @@ // CHECK-NEXT: } // CHECK-NEXT: ] -// CHECK: Symbol { -// CHECK: Name: _GLOBAL_OFFSET_TABLE_ -// CHECK-NEXT: Value: -// CHECK-NEXT: Size: -// CHECK-NEXT: Binding: Global +// CHECK: Symbols [ +// CHECK-NOT: _GLOBAL_OFFSET_TABLE_ diff --git a/test/MC/ELF/many-sections-2.s b/test/MC/ELF/many-sections-2.s index b52c01af49050..0077552ef3130 100644 --- a/test/MC/ELF/many-sections-2.s +++ b/test/MC/ELF/many-sections-2.s @@ -32,13 +32,13 @@ // Test that this file has one section too many. -// SYMBOLS: Name: dm -// SYMBOLS-NEXT: Value: 0x0 -// SYMBOLS-NEXT: Size: 0 -// SYMBOLS-NEXT: Binding: Local (0x0) -// SYMBOLS-NEXT: Type: Section (0x3) -// SYMBOLS-NEXT: Other: 0 -// SYMBOLS-NEXT: Section: dm (0xFF00) +// SYMBOLS: Name: (0) +// SYMBOLS: Value: 0x0 +// SYMBOLS: Size: 0 +// SYMBOLS: Binding: Local (0x0) +// SYMBOLS: Type: Section (0x3) +// SYMBOLS: Other: 0 +// SYMBOLS: Section: dm (0xFF00) // SYMBOLS-NEXT: } // SYMBOLS-NEXT:] @@ -130,3 +130,4 @@ gen_sections4 m a: b = a + 1 +.long dm diff --git a/test/MC/ELF/many-sections.s b/test/MC/ELF/many-sections.s index dbba8711fdf67..2db6abb9321bf 100644 --- a/test/MC/ELF/many-sections.s +++ b/test/MC/ELF/many-sections.s @@ -9,13 +9,13 @@ // Check the last referenced section. -// SYMBOLS: Name: zed -// SYMBOLS-NEXT: Value: 0x0 -// SYMBOLS-NEXT: Size: 0 -// SYMBOLS-NEXT: Binding: Local (0x0) -// SYMBOLS-NEXT: Type: Section (0x3) -// SYMBOLS-NEXT: Other: 0 -// SYMBOLS-NEXT: Section: zed (0xFEFF) +// SYMBOLS: Name: (0) +// SYMBOLS: Value: 0x0 +// SYMBOLS: Size: 0 +// SYMBOLS: Binding: Local (0x0) +// SYMBOLS: Type: Section (0x3) +// SYMBOLS: Other: 0 +// SYMBOLS: Section: zed (0xFEFF) // SYMBOLS-NEXT: } // SYMBOLS-NEXT:] @@ -106,3 +106,4 @@ gen_sections8 l .section foo .section bar .section zed +.long zed diff --git a/test/MC/ELF/noexec.s b/test/MC/ELF/noexec.s index 3769427a3b1ab..e8f460e65fa0a 100644 --- a/test/MC/ELF/noexec.s +++ b/test/MC/ELF/noexec.s @@ -1,4 +1,4 @@ -// RUN: llvm-mc -no-exec-stack -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -s -t | FileCheck %s +// RUN: llvm-mc -no-exec-stack -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -s | FileCheck %s // CHECK: Section { // CHECK: Index: @@ -14,13 +14,3 @@ // CHECK-NEXT: AddressAlignment: 1 // CHECK-NEXT: EntrySize: 0 // CHECK-NEXT: } - -// CHECK: Symbol { -// CHECK: Name: .note.GNU-stack (0) -// CHECK-NEXT: Value: 0x0 -// CHECK-NEXT: Size: 0 -// CHECK-NEXT: Binding: Local -// CHECK-NEXT: Type: Section -// CHECK-NEXT: Other: 0 -// CHECK-NEXT: Section: .note.GNU-stack -// CHECK-NEXT: } diff --git a/test/MC/ELF/popsection.s b/test/MC/ELF/popsection.s new file mode 100644 index 0000000000000..19f55688a1b20 --- /dev/null +++ b/test/MC/ELF/popsection.s @@ -0,0 +1,21 @@ +// RUN: llvm-mc -filetype=obj %s -o - -triple x86_64-pc-linux | llvm-readobj -s - | FileCheck %s + +// This used to crash. Test that it create an empty section instead. + + .pushsection foo + .popsection + +// CHECK: Section { +// CHECK: Index: 5 +// CHECK-NEXT: Name: foo +// CHECK-NEXT: Type: SHT_PROGBITS +// CHECK-NEXT: Flags [ (0x0) +// CHECK-NEXT: ] +// CHECK-NEXT: Address: 0x0 +// CHECK-NEXT: Offset: +// CHECK-NEXT: Size: 0 +// CHECK-NEXT: Link: 0 +// CHECK-NEXT: Info: 0 +// CHECK-NEXT: AddressAlignment: 1 +// CHECK-NEXT: EntrySize: 0 +// CHECK-NEXT: } diff --git a/test/MC/ELF/reloc-same-name-section.s b/test/MC/ELF/reloc-same-name-section.s index e63ea548e5aa8..57463c65f8909 100644 --- a/test/MC/ELF/reloc-same-name-section.s +++ b/test/MC/ELF/reloc-same-name-section.s @@ -7,13 +7,13 @@ // CHECK-NEXT: Relocation { // CHECK-NEXT: Offset: // CHECK-NEXT: Type: -// CHECK-NEXT: Symbol: .foo (7) +// CHECK-NEXT: Symbol: .foo (4) // CHECK-NEXT: Addend: // CHECK-NEXT: } // CHECK-NEXT: Relocation { // CHECK-NEXT: Offset: // CHECK-NEXT: Type: -// CHECK-NEXT: Symbol: .foo (8) +// CHECK-NEXT: Symbol: .foo (5) // CHECK-NEXT: Addend: // CHECK-NEXT: } // CHECK-NEXT: } diff --git a/test/MC/ELF/relocation-386.s b/test/MC/ELF/relocation-386.s index 2af6addc3d2b2..6b7e02f03ea0a 100644 --- a/test/MC/ELF/relocation-386.s +++ b/test/MC/ELF/relocation-386.s @@ -1,4 +1,4 @@ -// RUN: llvm-mc -filetype=obj -triple i386-pc-linux-gnu %s -o - | llvm-readobj -r -t | FileCheck %s +// RUN: llvm-mc -filetype=obj -triple i386-pc-linux-gnu %s -o - | llvm-readobj -r | FileCheck %s // Test that we produce the correct relocation types and that the relocations // correctly point to the section or the symbol. @@ -71,27 +71,6 @@ // CHECK-NEXT: } // CHECK-NEXT: ] -// Symbol 4 is zed -// CHECK: Symbol { -// CHECK: Name: zed -// CHECK-NEXT: Value: 0x0 -// CHECK-NEXT: Size: 0 -// CHECK-NEXT: Binding: Local -// CHECK-NEXT: Type: TLS -// CHECK-NEXT: Other: 0 -// CHECK-NEXT: Section: zedsec -// CHECK-NEXT: } -// Symbol 7 is section 4 -// CHECK: Symbol { -// CHECK: Name: .bss (0) -// CHECK-NEXT: Value: 0x0 -// CHECK-NEXT: Size: 0 -// CHECK-NEXT: Binding: Local -// CHECK-NEXT: Type: Section -// CHECK-NEXT: Other: 0 -// CHECK-NEXT: Section: .bss -// CHECK-NEXT: } - .text bar: leal .Lfoo@GOTOFF(%ebx), %eax diff --git a/test/MC/ELF/relocation.s b/test/MC/ELF/relocation.s index 2841612f2e112..34f1a4038131b 100644 --- a/test/MC/ELF/relocation.s +++ b/test/MC/ELF/relocation.s @@ -1,4 +1,4 @@ -// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -s -sr -t | FileCheck %s +// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -s -sr | FileCheck %s // Test that we produce the correct relocation. @@ -54,6 +54,10 @@ bar: .quad pr23272_2 - pr23272 .quad pr23272_3 - pr23272 + + .code16 + call pr23771 + // CHECK: Section { // CHECK: Name: .rela.text // CHECK: Relocations [ @@ -90,15 +94,6 @@ bar: // CHECK-NEXT: 0xD4 R_X86_64_SIZE32 blah 0xFFFFFFFFFFFFFFE0 // CHECK-NEXT: 0xD8 R_X86_64_GOTPCREL foo 0x0 // CHECK-NEXT: 0xDC R_X86_64_PLT32 foo 0x0 +// CHECK-NEXT: 0xF1 R_X86_64_PC16 pr23771 0xFFFFFFFFFFFFFFFE // CHECK-NEXT: ] // CHECK-NEXT: } - -// CHECK: Symbol { -// CHECK: Name: .text (0) -// CHECK-NEXT: Value: -// CHECK-NEXT: Size: -// CHECK-NEXT: Binding: Local -// CHECK-NEXT: Type: Section -// CHECK-NEXT: Other: 0 -// CHECK-NEXT: Section: .text -// CHECK-NEXT: } diff --git a/test/MC/ELF/section-sym.s b/test/MC/ELF/section-sym.s index f012b2f1bed71..4a9484d9b7792 100644 --- a/test/MC/ELF/section-sym.s +++ b/test/MC/ELF/section-sym.s @@ -40,52 +40,54 @@ // CHECK-NEXT: EntrySize: 0 // CHECK-NEXT: } -// The relocation points to symbol 6 +// The relocation points to symbol 3 // CHECK: Relocations [ // CHECK-NEXT: Section ({{.*}}) .relabar { // CHECK-NEXT: Relocation { // CHECK-NEXT: Offset: 0x0 // CHECK-NEXT: Type: R_X86_64_32 (10) -// CHECK-NEXT: Symbol: foo (6) +// CHECK-NEXT: Symbol: foo (3) // CHECK-NEXT: Addend: 0x0 // CHECK-NEXT: } // CHECK-NEXT: } // CHECK-NEXT: ] - -// The symbol 6 corresponds section 6 +// Symbol 3 is section 6 // CHECK: Symbols [ - -// symbol 0 -// CHECK-NOT: Name -// CHECK: Name: - -// symbol 1 -// CHECK-NOT: Name -// CHECK: Name: f1 - -// symbol 2 -// CHECK-NOT: Name -// CHECK: Name: f2 - -// symbol 3 -// CHECK-NOT: Name -// CHECK: Name: .text - -// symbol 4 -// CHECK-NOT: Name -// CHECK: Name: .data - -// symbol 5 -// CHECK-NOT: Name -// CHECK: Name: .bss - -// symbol 6 -// CHECK-NOT: Name -// CHECK: Name: foo -// CHECK: Section: foo (0x6) - -// symbol 7 -// CHECK-NOT: Name -// CHECK: Name: foo -// CHECK: Section: foo (0x8) +// CHECK-NEXT: Symbol { +// CHECK-NEXT: Name: (0) +// CHECK-NEXT: Value: 0x0 +// CHECK-NEXT: Size: 0 +// CHECK-NEXT: Binding: Local (0x0) +// CHECK-NEXT: Type: None (0x0) +// CHECK-NEXT: Other: 0 +// CHECK-NEXT: Section: Undefined (0x0) +// CHECK-NEXT: } +// CHECK-NEXT: Symbol { +// CHECK-NEXT: Name: f1 (57) +// CHECK-NEXT: Value: 0x0 +// CHECK-NEXT: Size: 0 +// CHECK-NEXT: Binding: Local (0x0) +// CHECK-NEXT: Type: None (0x0) +// CHECK-NEXT: Other: 0 +// CHECK-NEXT: Section: .group (0x5) +// CHECK-NEXT: } +// CHECK-NEXT: Symbol { +// CHECK-NEXT: Name: f2 (54) +// CHECK-NEXT: Value: 0x0 +// CHECK-NEXT: Size: 0 +// CHECK-NEXT: Binding: Local (0x0) +// CHECK-NEXT: Type: None (0x0) +// CHECK-NEXT: Other: 0 +// CHECK-NEXT: Section: .group (0x7) +// CHECK-NEXT: } +// CHECK-NEXT: Symbol { +// CHECK-NEXT: Name: (0) +// CHECK-NEXT: Value: 0x0 +// CHECK-NEXT: Size: 0 +// CHECK-NEXT: Binding: Local (0x0) +// CHECK-NEXT: Type: Section (0x3) +// CHECK-NEXT: Other: 0 +// CHECK-NEXT: Section: foo (0x6) +// CHECK-NEXT: } +// CHECK-NEXT: ] diff --git a/test/MC/ELF/section-sym2.s b/test/MC/ELF/section-sym2.s index f62e3f9f8a304..ca3863223dbeb 100644 --- a/test/MC/ELF/section-sym2.s +++ b/test/MC/ELF/section-sym2.s @@ -19,10 +19,6 @@ mov .rodata, %rsi // There is only one .rodata symbol // CHECK:Symbols [ -// CHECK-NOT: Name: .rodata -// CHECK: Name: .rodata -// CHECK-NEXT: Value: 0x0 -// CHECK-NEXT: Size: 0 -// CHECK-NEXT: Binding: Local (0x0) -// CHECK-NEXT: Type: Section (0x3) -// CHECK-NOT: Name: .rodata +// CHECK: Type: Section (0x3) +// CHECK: Section: .rodata +// CHECK-NOT: Section: .rodata diff --git a/test/MC/ELF/strtab-suffix-opt.s b/test/MC/ELF/strtab-suffix-opt.s index 0524656446037..96d15005c6185 100644 --- a/test/MC/ELF/strtab-suffix-opt.s +++ b/test/MC/ELF/strtab-suffix-opt.s @@ -16,6 +16,6 @@ foobar: .Ltmp3: .size foobar, .Ltmp3-foobar -// CHECK: Name: foobar (16) // CHECK: Name: bar (19) // CHECK: Name: foo (23) +// CHECK: Name: foobar (16) diff --git a/test/MC/ELF/symver.s b/test/MC/ELF/symver.s index 80d71fd0e0692..0f434dd859d38 100644 --- a/test/MC/ELF/symver.s +++ b/test/MC/ELF/symver.s @@ -77,7 +77,7 @@ global1: // CHECK-NEXT: Section: .text // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: .text +// CHECK-NEXT: Name: (0) // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Local @@ -86,22 +86,22 @@ global1: // CHECK-NEXT: Section: .text // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: .data +// CHECK-NEXT: Name: bar2@zed // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: Size: 0 -// CHECK-NEXT: Binding: Local -// CHECK-NEXT: Type: Section +// CHECK-NEXT: Binding: Global +// CHECK-NEXT: Type: None // CHECK-NEXT: Other: 0 -// CHECK-NEXT: Section: .data +// CHECK-NEXT: Section: Undefined // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: .bss +// CHECK-NEXT: Name: bar6@zed // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: Size: 0 -// CHECK-NEXT: Binding: Local -// CHECK-NEXT: Type: Section +// CHECK-NEXT: Binding: Global +// CHECK-NEXT: Type: None // CHECK-NEXT: Other: 0 -// CHECK-NEXT: Section: .bss +// CHECK-NEXT: Section: Undefined // CHECK-NEXT: } // CHECK-NEXT: Symbol { // CHECK-NEXT: Name: g1@@zed @@ -121,22 +121,4 @@ global1: // CHECK-NEXT: Other: 0 // CHECK-NEXT: Section: .text // CHECK-NEXT: } -// CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: bar2@zed -// CHECK-NEXT: Value: 0x0 -// CHECK-NEXT: Size: 0 -// CHECK-NEXT: Binding: Global -// CHECK-NEXT: Type: None -// CHECK-NEXT: Other: 0 -// CHECK-NEXT: Section: Undefined -// CHECK-NEXT: } -// CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: bar6@zed -// CHECK-NEXT: Value: 0x0 -// CHECK-NEXT: Size: 0 -// CHECK-NEXT: Binding: Global -// CHECK-NEXT: Type: None -// CHECK-NEXT: Other: 0 -// CHECK-NEXT: Section: Undefined -// CHECK-NEXT: } // CHECK-NEXT: ] diff --git a/test/MC/ELF/undef.s b/test/MC/ELF/undef.s index 245b56328248b..9577ea22875b1 100644 --- a/test/MC/ELF/undef.s +++ b/test/MC/ELF/undef.s @@ -42,42 +42,6 @@ test2_b = undef + 1 // CHECK-NEXT: Section: .rodata.str1.1 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: .text -// CHECK-NEXT: Value: 0x0 -// CHECK-NEXT: Size: 0 -// CHECK-NEXT: Binding: Local -// CHECK-NEXT: Type: Section -// CHECK-NEXT: Other: 0 -// CHECK-NEXT: Section: .text -// CHECK-NEXT: } -// CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: .data -// CHECK-NEXT: Value: 0x0 -// CHECK-NEXT: Size: 0 -// CHECK-NEXT: Binding: Local -// CHECK-NEXT: Type: Section -// CHECK-NEXT: Other: 0 -// CHECK-NEXT: Section: .data -// CHECK-NEXT: } -// CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: .bss -// CHECK-NEXT: Value: 0x0 -// CHECK-NEXT: Size: 0 -// CHECK-NEXT: Binding: Local -// CHECK-NEXT: Type: Section -// CHECK-NEXT: Other: 0 -// CHECK-NEXT: Section: .bss -// CHECK-NEXT: } -// CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: .rodata.str1.1 -// CHECK-NEXT: Value: 0x0 -// CHECK-NEXT: Size: 0 -// CHECK-NEXT: Binding: Local -// CHECK-NEXT: Type: Section -// CHECK-NEXT: Other: 0 -// CHECK-NEXT: Section: .rodata.str1.1 -// CHECK-NEXT: } -// CHECK-NEXT: Symbol { // CHECK-NEXT: Name: .Lsym1 // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: Size: 0 diff --git a/test/MC/ELF/weakref-reloc.s b/test/MC/ELF/weakref-reloc.s index 484167f0434ea..baf80060c4336 100644 --- a/test/MC/ELF/weakref-reloc.s +++ b/test/MC/ELF/weakref-reloc.s @@ -1,7 +1,6 @@ // RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -r -t | FileCheck %s -// Test that the relocations point to the correct symbols. We used to get the -// symbol index wrong for weakrefs when creating _GLOBAL_OFFSET_TABLE_. +// Test that the relocations point to the correct symbols. .weakref bar,foo call zed@PLT @@ -13,32 +12,3 @@ // CHECK-NEXT: 0x6 R_X86_64_PC32 foo 0xFFFFFFFFFFFFFFFC // CHECK-NEXT: } // CHECK-NEXT: ] - -// CHECK: Symbols [ -// CHECK: Symbol { -// CHECK: Name: _GLOBAL_OFFSET_TABLE_ -// CHECK-NEXT: Value: 0x0 -// CHECK-NEXT: Size: 0 -// CHECK-NEXT: Binding: Global -// CHECK-NEXT: Type: None -// CHECK-NEXT: Other: 0 -// CHECK-NEXT: Section: Undefined (0x0) -// CHECK-NEXT: } -// CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: foo -// CHECK-NEXT: Value: 0x0 -// CHECK-NEXT: Size: 0 -// CHECK-NEXT: Binding: Weak -// CHECK-NEXT: Type: None -// CHECK-NEXT: Other: 0 -// CHECK-NEXT: Section: Undefined (0x0) -// CHECK-NEXT: } -// CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: zed -// CHECK-NEXT: Value: 0x0 -// CHECK-NEXT: Size: 0 -// CHECK-NEXT: Binding: Global -// CHECK-NEXT: Type: None -// CHECK-NEXT: Other: 0 -// CHECK-NEXT: Section: Undefined (0x0) -// CHECK-NEXT: } diff --git a/test/MC/ELF/weakref.s b/test/MC/ELF/weakref.s index d263af31a0df6..d342c61f745ab 100644 --- a/test/MC/ELF/weakref.s +++ b/test/MC/ELF/weakref.s @@ -116,7 +116,7 @@ bar15: // CHECK-NEXT: Section: .text // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: .text +// CHECK-NEXT: Name: (0) // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Local @@ -125,24 +125,6 @@ bar15: // CHECK-NEXT: Section: .text // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: .data -// CHECK-NEXT: Value: 0x0 -// CHECK-NEXT: Size: 0 -// CHECK-NEXT: Binding: Local -// CHECK-NEXT: Type: Section -// CHECK-NEXT: Other: 0 -// CHECK-NEXT: Section: .data -// CHECK-NEXT: } -// CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: .bss -// CHECK-NEXT: Value: 0x0 -// CHECK-NEXT: Size: 0 -// CHECK-NEXT: Binding: Local -// CHECK-NEXT: Type: Section -// CHECK-NEXT: Other: 0 -// CHECK-NEXT: Section: .bss -// CHECK-NEXT: } -// CHECK-NEXT: Symbol { // CHECK-NEXT: Name: bar10 // CHECK-NEXT: Value: 0x28 // CHECK-NEXT: Size: 0 diff --git a/test/MC/Hexagon/inst_add.ll b/test/MC/Hexagon/inst_add.ll index 20a7b312ed6db..826776952e050 100644 --- a/test/MC/Hexagon/inst_add.ll +++ b/test/MC/Hexagon/inst_add.ll @@ -1,5 +1,5 @@ -;; RUN: llc -mtriple=hexagon-unknown-elf -filetype=obj %s -o - \ -;; RUN: | llvm-objdump -s - | FileCheck %s +; RUN: llc -march=hexagon -filetype=obj %s -o - \ +; RUN: | llvm-objdump -d - | FileCheck %s define i32 @foo (i32 %a, i32 %b) { @@ -7,4 +7,4 @@ define i32 @foo (i32 %a, i32 %b) ret i32 %1 } -; CHECK: 0000 004100f3 00c09f52 +; CHECK: c0 3f 10 58 58103fc0 diff --git a/test/MC/Hexagon/inst_cmp_eq.ll b/test/MC/Hexagon/inst_cmp_eq.ll index 113db631fa92f..98202368aff35 100644 --- a/test/MC/Hexagon/inst_cmp_eq.ll +++ b/test/MC/Hexagon/inst_cmp_eq.ll @@ -1,5 +1,5 @@ ;; RUN: llc -mtriple=hexagon-unknown-elf -filetype=obj %s -o - \ -;; RUN: | llvm-objdump -s - | FileCheck %s +;; RUN: | llvm-objdump -d - | FileCheck %s define i1 @foo (i32 %a, i32 %b) { @@ -7,4 +7,6 @@ define i1 @foo (i32 %a, i32 %b) ret i1 %1 } -; CHECK: 0000 004100f2 00404089 00c09f52 +; CHECK: p0 = cmp.eq(r0, r1) +; CHECK: r0 = p0 +; CHECK: jumpr r31 diff --git a/test/MC/Hexagon/inst_cmp_eqi.ll b/test/MC/Hexagon/inst_cmp_eqi.ll index 70c4c308e1f4c..612dfdc8f23da 100644 --- a/test/MC/Hexagon/inst_cmp_eqi.ll +++ b/test/MC/Hexagon/inst_cmp_eqi.ll @@ -1,5 +1,5 @@ ;; RUN: llc -mtriple=hexagon-unknown-elf -filetype=obj %s -o - \ -;; RUN: | llvm-objdump -s - | FileCheck %s +;; RUN: | llvm-objdump -d - | FileCheck %s define i1 @foo (i32 %a) { @@ -7,4 +7,6 @@ define i1 @foo (i32 %a) ret i1 %1 } -; CHECK: 0000 40450075 00404089 00c09f52 +; CHECK: p0 = cmp.eq(r0, #42) +; CHECK: r0 = p0 +; CHECK: jumpr r31 diff --git a/test/MC/Hexagon/inst_cmp_gt.ll b/test/MC/Hexagon/inst_cmp_gt.ll index 85fedbfb50347..3ce1c0addad7a 100644 --- a/test/MC/Hexagon/inst_cmp_gt.ll +++ b/test/MC/Hexagon/inst_cmp_gt.ll @@ -1,5 +1,5 @@ ;; RUN: llc -mtriple=hexagon-unknown-elf -filetype=obj %s -o - \ -;; RUN: | llvm-objdump -s - | FileCheck %s +;; RUN: | llvm-objdump -d - | FileCheck %s define i1 @foo (i32 %a, i32 %b) { @@ -7,4 +7,6 @@ define i1 @foo (i32 %a, i32 %b) ret i1 %1 } -; CHECK: 0000 004140f2 00404089 00c09f52 +; CHECK: p0 = cmp.gt(r0, r1) +; CHECK: r0 = p0 +; CHECK: jumpr r31 }
\ No newline at end of file diff --git a/test/MC/Hexagon/inst_cmp_gti.ll b/test/MC/Hexagon/inst_cmp_gti.ll index 18ba3e463ef7f..f3c13a2fb96e6 100644 --- a/test/MC/Hexagon/inst_cmp_gti.ll +++ b/test/MC/Hexagon/inst_cmp_gti.ll @@ -1,5 +1,5 @@ ;; RUN: llc -mtriple=hexagon-unknown-elf -filetype=obj %s -o - \ -;; RUN: | llvm-objdump -s - | FileCheck %s +;; RUN: | llvm-objdump -d - | FileCheck %s define i1 @foo (i32 %a) { @@ -7,4 +7,6 @@ define i1 @foo (i32 %a) ret i1 %1 } -; CHECK: 0000 40454075 00404089 00c09f52 +; CHECK: p0 = cmp.gt(r0, #42) +; CHECK: r0 = p0 +; CHECK: jumpr r31 diff --git a/test/MC/Hexagon/inst_cmp_lt.ll b/test/MC/Hexagon/inst_cmp_lt.ll index 3a7618421e3d8..80ba16f41418c 100644 --- a/test/MC/Hexagon/inst_cmp_lt.ll +++ b/test/MC/Hexagon/inst_cmp_lt.ll @@ -1,5 +1,5 @@ ;; RUN: llc -mtriple=hexagon-unknown-elf -filetype=obj %s -o - \ -;; RUN: | llvm-objdump -s - | FileCheck %s +;; RUN: | llvm-objdump -d - | FileCheck %s define i1 @foo (i32 %a, i32 %b) { @@ -7,4 +7,6 @@ define i1 @foo (i32 %a, i32 %b) ret i1 %1 } -; CHECK: 0000 004041f2 00404089 00c09f52 +; CHECK: p0 = cmp.gt(r1, r0) +; CHECK: r0 = p0 +; CHECK: jumpr r31 diff --git a/test/MC/Hexagon/inst_cmp_ugt.ll b/test/MC/Hexagon/inst_cmp_ugt.ll index 096536f54a7a5..07fa784dc64ad 100644 --- a/test/MC/Hexagon/inst_cmp_ugt.ll +++ b/test/MC/Hexagon/inst_cmp_ugt.ll @@ -1,5 +1,5 @@ ;; RUN: llc -mtriple=hexagon-unknown-elf -filetype=obj %s -o - \ -;; RUN: | llvm-objdump -s - | FileCheck %s +;; RUN: | llvm-objdump -d - | FileCheck %s define i1 @foo (i32 %a, i32 %b) { @@ -7,4 +7,6 @@ define i1 @foo (i32 %a, i32 %b) ret i1 %1 } -; CHECK: 0000 004160f2 00404089 00c09f52 +; CHECK: p0 = cmp.gtu(r0, r1) +; CHECK: r0 = p0 +; CHECK: jumpr r31 diff --git a/test/MC/Hexagon/inst_cmp_ugti.ll b/test/MC/Hexagon/inst_cmp_ugti.ll index a83583457d136..59db552b39f4d 100644 --- a/test/MC/Hexagon/inst_cmp_ugti.ll +++ b/test/MC/Hexagon/inst_cmp_ugti.ll @@ -1,5 +1,5 @@ ;; RUN: llc -mtriple=hexagon-unknown-elf -filetype=obj %s -o - \ -;; RUN: | llvm-objdump -s - | FileCheck %s +;; RUN: | llvm-objdump -d - | FileCheck %s define i1 @foo (i32 %a) { @@ -7,4 +7,6 @@ define i1 @foo (i32 %a) ret i1 %1 } -; CHECK: 0000 40458075 00404089 00c09f52 +; CHECK: p0 = cmp.gtu(r0, #42) +; CHECK: r0 = p0 +; CHECK: jumpr r31 diff --git a/test/MC/Hexagon/inst_cmp_ult.ll b/test/MC/Hexagon/inst_cmp_ult.ll index 4323fa0834d67..c880ac8a229c9 100644 --- a/test/MC/Hexagon/inst_cmp_ult.ll +++ b/test/MC/Hexagon/inst_cmp_ult.ll @@ -1,5 +1,5 @@ ;; RUN: llc -mtriple=hexagon-unknown-elf -filetype=obj %s -o - \ -;; RUN: | llvm-objdump -s - | FileCheck %s +;; RUN: | llvm-objdump -d - | FileCheck %s define i1 @foo (i32 %a, i32 %b) { @@ -7,4 +7,6 @@ define i1 @foo (i32 %a, i32 %b) ret i1 %1 } -; CHECK: 0000 004061f2 00404089 00c09f52 +; CHECK: p0 = cmp.gtu(r1, r0) +; CHECK: r0 = p0 +; CHECK: jumpr r31
\ No newline at end of file diff --git a/test/MC/Hexagon/inst_select.ll b/test/MC/Hexagon/inst_select.ll index 29a2db0723bd2..9d12c1de73fef 100644 --- a/test/MC/Hexagon/inst_select.ll +++ b/test/MC/Hexagon/inst_select.ll @@ -1,5 +1,5 @@ -;; RUN: llc -mtriple=hexagon-unknown-elf -filetype=obj %s -o - \ -;; RUN: | llvm-objdump -s - | FileCheck %s +; RUN: llc -march=hexagon -filetype=obj %s -o - \ +; RUN: | llvm-objdump -d - | FileCheck %s define i32 @foo (i1 %a, i32 %b, i32 %c) { @@ -7,4 +7,7 @@ define i32 @foo (i1 %a, i32 %b, i32 %c) ret i32 %1 } -; CHECK: 0000 00400085 00600174 00608274 00c09f52 +; CHECK: 00 40 00 85 85004000 +; CHECK: 00 40 9f 52 529f4000 +; CHECK: 00 60 01 74 74016000 +; CHECK: 00 e0 82 74 7482e000
\ No newline at end of file diff --git a/test/MC/Hexagon/inst_sxtb.ll b/test/MC/Hexagon/inst_sxtb.ll index 4a217420a9607..34219c72c99ee 100644 --- a/test/MC/Hexagon/inst_sxtb.ll +++ b/test/MC/Hexagon/inst_sxtb.ll @@ -1,5 +1,5 @@ -;; RUN: llc -mtriple=hexagon-unknown-elf -filetype=obj %s -o - \ -;; RUN: | llvm-objdump -s - | FileCheck %s +; RUN: llc -march=hexagon -filetype=obj %s -o - \ +; RUN: | llvm-objdump -d - | FileCheck %s define i32 @foo (i8 %a) { @@ -7,4 +7,4 @@ define i32 @foo (i8 %a) ret i32 %1 } -; CHECK: 0000 0040a070 00c09f52 +; CHECK: c0 3f 00 55 55003fc0 diff --git a/test/MC/Hexagon/inst_sxth.ll b/test/MC/Hexagon/inst_sxth.ll index f0bcf584efa9b..5d1223da8e08f 100644 --- a/test/MC/Hexagon/inst_sxth.ll +++ b/test/MC/Hexagon/inst_sxth.ll @@ -1,5 +1,5 @@ -;; RUN: llc -mtriple=hexagon-unknown-elf -filetype=obj %s -o - \ -;; RUN: | llvm-objdump -s - | FileCheck %s +; RUN: llc -mtriple=hexagon-unknown-elf -filetype=obj %s -o - \ +; RUN: | llvm-objdump -d - | FileCheck %s define i32 @foo (i16 %a) { @@ -7,4 +7,4 @@ define i32 @foo (i16 %a) ret i32 %1 } -; CHECK: 0000 0040e070 00c09f52 +; CHECK: c0 3f 00 54 54003fc0
\ No newline at end of file diff --git a/test/MC/Hexagon/inst_zxtb.ll b/test/MC/Hexagon/inst_zxtb.ll index 622c03692b2f4..86da5e52cac1d 100644 --- a/test/MC/Hexagon/inst_zxtb.ll +++ b/test/MC/Hexagon/inst_zxtb.ll @@ -1,5 +1,5 @@ -;; RUN: llc -mtriple=hexagon-unknown-elf -filetype=obj %s -o - \ -;; RUN: | llvm-objdump -s - | FileCheck %s +; RUN: llc -march=hexagon -filetype=obj %s -o - \ +; RUN: | llvm-objdump -d - | FileCheck %s define i32 @foo (i8 %a) { @@ -7,4 +7,4 @@ define i32 @foo (i8 %a) ret i32 %1 } -; CHECK: 0000 e05f0076 00c09f52 +; CHECK: c0 3f 00 57 57003fc0 diff --git a/test/MC/Hexagon/inst_zxth.ll b/test/MC/Hexagon/inst_zxth.ll index 962210b17511c..7b3d1b30648c1 100644 --- a/test/MC/Hexagon/inst_zxth.ll +++ b/test/MC/Hexagon/inst_zxth.ll @@ -1,5 +1,5 @@ -;; RUN: llc -mtriple=hexagon-unknown-elf -filetype=obj %s -o - \ -;; RUN: | llvm-objdump -s - | FileCheck %s +; RUN: llc -march=hexagon -filetype=obj %s -o - \ +; RUN: | llvm-objdump -d - | FileCheck %s define i32 @foo (i16 %a) { @@ -7,4 +7,4 @@ define i32 @foo (i16 %a) ret i32 %1 } -; CHECK: 0000 0040c070 00c09f52 +; CHECK: c0 3f 00 56 56003fc0 diff --git a/test/MC/MachO/absolutize.s b/test/MC/MachO/absolutize.s index 19917e3bae1c0..8947c0f65e536 100644 --- a/test/MC/MachO/absolutize.s +++ b/test/MC/MachO/absolutize.s @@ -6,9 +6,9 @@ _text_b: xorl %eax,%eax Ltext_c: xorl %eax,%eax -Ltext_d: +Ltext_d: xorl %eax,%eax - + movl $(_text_a - _text_b), %eax Ltext_expr_0 = _text_a - _text_b movl $(Ltext_expr_0), %eax @@ -30,9 +30,9 @@ _data_b: .long 0 Ldata_c: .long 0 -Ldata_d: +Ldata_d: .long 0 - + .long _data_a - _data_b Ldata_expr_0 = _data_a - _data_b .long Ldata_expr_0 @@ -75,7 +75,7 @@ Ldata_expr_2 = Ldata_d - Ldata_c // CHECK: ('offset', 324) // CHECK: ('alignment', 0) // CHECK: ('reloc_offset', 412) -// CHECK: ('num_reloc', 7) +// CHECK: ('num_reloc', 3) // CHECK: ('flags', 0x80000400) // CHECK: ('reserved1', 0) // CHECK: ('reserved2', 0) @@ -85,21 +85,9 @@ Ldata_expr_2 = Ldata_d - Ldata_c // CHECK: (('word-0', 0xa0000027), // CHECK: ('word-1', 0x0)), // CHECK: # Relocation 1 -// CHECK: (('word-0', 0xa400001d), -// CHECK: ('word-1', 0x6)), -// CHECK: # Relocation 2 -// CHECK: (('word-0', 0xa1000000), -// CHECK: ('word-1', 0x4)), -// CHECK: # Relocation 3 -// CHECK: (('word-0', 0xa4000013), -// CHECK: ('word-1', 0x4)), -// CHECK: # Relocation 4 -// CHECK: (('word-0', 0xa1000000), -// CHECK: ('word-1', 0x2)), -// CHECK: # Relocation 5 // CHECK: (('word-0', 0xa4000009), // CHECK: ('word-1', 0x0)), -// CHECK: # Relocation 6 +// CHECK: # Relocation 2 // CHECK: (('word-0', 0xa1000000), // CHECK: ('word-1', 0x2)), // CHECK: ]) @@ -111,8 +99,8 @@ Ldata_expr_2 = Ldata_d - Ldata_c // CHECK: ('size', 44) // CHECK: ('offset', 367) // CHECK: ('alignment', 0) -// CHECK: ('reloc_offset', 468) -// CHECK: ('num_reloc', 7) +// CHECK: ('reloc_offset', 436) +// CHECK: ('num_reloc', 3) // CHECK: ('flags', 0x0) // CHECK: ('reserved1', 0) // CHECK: ('reserved2', 0) @@ -122,21 +110,9 @@ Ldata_expr_2 = Ldata_d - Ldata_c // CHECK: (('word-0', 0xa0000028), // CHECK: ('word-1', 0x2b)), // CHECK: # Relocation 1 -// CHECK: (('word-0', 0xa4000020), -// CHECK: ('word-1', 0x37)), -// CHECK: # Relocation 2 -// CHECK: (('word-0', 0xa1000000), -// CHECK: ('word-1', 0x33)), -// CHECK: # Relocation 3 -// CHECK: (('word-0', 0xa4000018), -// CHECK: ('word-1', 0x33)), -// CHECK: # Relocation 4 -// CHECK: (('word-0', 0xa1000000), -// CHECK: ('word-1', 0x2f)), -// CHECK: # Relocation 5 // CHECK: (('word-0', 0xa4000010), // CHECK: ('word-1', 0x2b)), -// CHECK: # Relocation 6 +// CHECK: # Relocation 2 // CHECK: (('word-0', 0xa1000000), // CHECK: ('word-1', 0x2f)), // CHECK: ]) @@ -146,9 +122,9 @@ Ldata_expr_2 = Ldata_d - Ldata_c // CHECK: # Load Command 1 // CHECK: (('command', 2) // CHECK: ('size', 24) -// CHECK: ('symoff', 524) +// CHECK: ('symoff', 460) // CHECK: ('nsyms', 4) -// CHECK: ('stroff', 572) +// CHECK: ('stroff', 508) // CHECK: ('strsize', 36) // CHECK: ('_string_data', '\x00_text_b\x00_data_b\x00_text_a\x00_data_a\x00\x00\x00\x00') // CHECK: ('_symbols', [ diff --git a/test/MC/MachO/reloc-diff.s b/test/MC/MachO/reloc-diff.s index 601edba47b42b..a63a413f24b61 100644 --- a/test/MC/MachO/reloc-diff.s +++ b/test/MC/MachO/reloc-diff.s @@ -1,39 +1,27 @@ // RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck %s // CHECK: # Relocation 0 -// CHECK: (('word-0', 0xa2000014), +// CHECK: (('word-0', 0xa4000010), // CHECK: ('word-1', 0x0)), // CHECK: # Relocation 1 // CHECK: (('word-0', 0xa1000000), // CHECK: ('word-1', 0x0)), // CHECK: # Relocation 2 -// CHECK: (('word-0', 0xa4000010), +// CHECK: (('word-0', 0xa4000008), // CHECK: ('word-1', 0x0)), // CHECK: # Relocation 3 // CHECK: (('word-0', 0xa1000000), // CHECK: ('word-1', 0x0)), // CHECK: # Relocation 4 -// CHECK: (('word-0', 0xa400000c), +// CHECK: (('word-0', 0xa4000004), // CHECK: ('word-1', 0x0)), // CHECK: # Relocation 5 // CHECK: (('word-0', 0xa1000000), // CHECK: ('word-1', 0x0)), // CHECK: # Relocation 6 -// CHECK: (('word-0', 0xa4000008), -// CHECK: ('word-1', 0x0)), -// CHECK: # Relocation 7 -// CHECK: (('word-0', 0xa1000000), -// CHECK: ('word-1', 0x0)), -// CHECK: # Relocation 8 -// CHECK: (('word-0', 0xa4000004), -// CHECK: ('word-1', 0x0)), -// CHECK: # Relocation 9 -// CHECK: (('word-0', 0xa1000000), -// CHECK: ('word-1', 0x0)), -// CHECK: # Relocation 10 // CHECK: (('word-0', 0xa2000000), // CHECK: ('word-1', 0x0)), -// CHECK: # Relocation 11 +// CHECK: # Relocation 7 // CHECK: (('word-0', 0xa1000000), // CHECK: ('word-1', 0x0)), // CHECK-NEXT: ]) @@ -43,7 +31,7 @@ _local_def: _external_def: Ltemp: ret - + .data .long _external_def - _local_def .long Ltemp - _local_def diff --git a/test/MC/Mips/mips-expansions.s b/test/MC/Mips/mips-expansions.s index b6dc32ed5e34e..d3fdf39ff8b0f 100644 --- a/test/MC/Mips/mips-expansions.s +++ b/test/MC/Mips/mips-expansions.s @@ -1,86 +1,85 @@ -# RUN: llvm-mc %s -triple=mipsel-unknown-linux -show-encoding -mcpu=mips32r2 | FileCheck %s -# Check that the assembler can handle the documented syntax -# for macro instructions -#------------------------------------------------------------------------------ -# Load immediate instructions -#------------------------------------------------------------------------------ +# RUN: llvm-mc %s -triple=mipsel-unknown-linux -show-encoding -mcpu=mips32r2 | \ +# RUN: FileCheck %s + +# Check that the IAS expands macro instructions in the same way as GAS. + +# Load immediate, done by MipsAsmParser::expandLoadImm(): + li $5, 123 # CHECK: ori $5, $zero, 123 # encoding: [0x7b,0x00,0x05,0x34] + li $6, -2345 # CHECK: addiu $6, $zero, -2345 # encoding: [0xd7,0xf6,0x06,0x24] + li $7, 65538 # CHECK: lui $7, 1 # encoding: [0x01,0x00,0x07,0x3c] # CHECK: ori $7, $7, 2 # encoding: [0x02,0x00,0xe7,0x34] + li $8, ~7 # CHECK: addiu $8, $zero, -8 # encoding: [0xf8,0xff,0x08,0x24] + li $9, 0x10000 # CHECK: lui $9, 1 # encoding: [0x01,0x00,0x09,0x3c] # CHECK-NOT: ori $9, $9, 0 # encoding: [0x00,0x00,0x29,0x35] + li $10, ~(0x101010) # CHECK: lui $10, 65519 # encoding: [0xef,0xff,0x0a,0x3c] # CHECK: ori $10, $10, 61423 # encoding: [0xef,0xef,0x4a,0x35] +# Load address, done by MipsAsmParser::expandLoadAddressReg() +# and MipsAsmParser::expandLoadAddressImm(): + la $4, 20 # CHECK: ori $4, $zero, 20 # encoding: [0x14,0x00,0x04,0x34] + la $7, 65538 # CHECK: lui $7, 1 # encoding: [0x01,0x00,0x07,0x3c] # CHECK: ori $7, $7, 2 # encoding: [0x02,0x00,0xe7,0x34] + la $4, 20($5) # CHECK: ori $4, $5, 20 # encoding: [0x14,0x00,0xa4,0x34] + la $7, 65538($8) # CHECK: lui $7, 1 # encoding: [0x01,0x00,0x07,0x3c] # CHECK: ori $7, $7, 2 # encoding: [0x02,0x00,0xe7,0x34] # CHECK: addu $7, $7, $8 # encoding: [0x21,0x38,0xe8,0x00] + la $8, symbol # CHECK: lui $8, %hi(symbol) # encoding: [A,A,0x08,0x3c] # CHECK: # fixup A - offset: 0, value: symbol@ABS_HI, kind: fixup_Mips_HI16 # CHECK: ori $8, $8, %lo(symbol) # encoding: [A,A,0x08,0x35] # CHECK: # fixup A - offset: 0, value: symbol@ABS_LO, kind: fixup_Mips_LO16 + +# LW/SW and LDC1/SDC1 of symbol address, done by MipsAsmParser::expandMemInst(): + .set noat + lw $10, symbol($4) # CHECK: lui $10, %hi(symbol) # encoding: [A,A,0x0a,0x3c] # CHECK: # fixup A - offset: 0, value: symbol@ABS_HI, kind: fixup_Mips_HI16 # CHECK: addu $10, $10, $4 # encoding: [0x21,0x50,0x44,0x01] # CHECK: lw $10, %lo(symbol)($10) # encoding: [A,A,0x4a,0x8d] # CHECK: # fixup A - offset: 0, value: symbol@ABS_LO, kind: fixup_Mips_LO16 + .set at + sw $10, symbol($9) # CHECK: lui $1, %hi(symbol) # encoding: [A,A,0x01,0x3c] # CHECK: # fixup A - offset: 0, value: symbol@ABS_HI, kind: fixup_Mips_HI16 # CHECK: addu $1, $1, $9 # encoding: [0x21,0x08,0x29,0x00] # CHECK: sw $10, %lo(symbol)($1) # encoding: [A,A,0x2a,0xac] # CHECK: # fixup A - offset: 0, value: symbol@ABS_LO, kind: fixup_Mips_LO16 + + lw $10, 655483($4) # CHECK: lui $10, 10 # encoding: [0x0a,0x00,0x0a,0x3c] # CHECK: addu $10, $10, $4 # encoding: [0x21,0x50,0x44,0x01] # CHECK: lw $10, 123($10) # encoding: [0x7b,0x00,0x4a,0x8d] + sw $10, 123456($9) # CHECK: lui $1, 2 # encoding: [0x02,0x00,0x01,0x3c] # CHECK: addu $1, $1, $9 # encoding: [0x21,0x08,0x29,0x00] # CHECK: sw $10, 57920($1) # encoding: [0x40,0xe2,0x2a,0xac] + lw $8, symbol # CHECK: lui $8, %hi(symbol) # encoding: [A,A,0x08,0x3c] # CHECK: # fixup A - offset: 0, value: symbol@ABS_HI, kind: fixup_Mips_HI16 # CHECK-NOT: move $8, $8 # encoding: [0x21,0x40,0x00,0x01] # CHECK: lw $8, %lo(symbol)($8) # encoding: [A,A,0x08,0x8d] # CHECK: # fixup A - offset: 0, value: symbol@ABS_LO, kind: fixup_Mips_LO16 + sw $8, symbol # CHECK: lui $1, %hi(symbol) # encoding: [A,A,0x01,0x3c] # CHECK: # fixup A - offset: 0, value: symbol@ABS_HI, kind: fixup_Mips_HI16 # CHECK-NOT: move $1, $1 # encoding: [0x21,0x08,0x20,0x00] # CHECK: sw $8, %lo(symbol)($1) # encoding: [A,A,0x28,0xac] # CHECK: # fixup A - offset: 0, value: symbol@ABS_LO, kind: fixup_Mips_LO16 + ldc1 $f0, symbol # CHECK: lui $1, %hi(symbol) # CHECK: ldc1 $f0, %lo(symbol)($1) + sdc1 $f0, symbol # CHECK: lui $1, %hi(symbol) # CHECK: sdc1 $f0, %lo(symbol)($1) - - li $5,123 - li $6,-2345 - li $7,65538 - li $8, ~7 - li $9, 0x10000 - li $10, ~(0x101010) - - la $a0, 20 - la $7,65538 - la $a0, 20($a1) - la $7,65538($8) - la $t0, symbol - - .set noat - lw $t2, symbol($a0) - .set at - sw $t2, symbol($t1) - - lw $t2, 655483($a0) - sw $t2, 123456($t1) - - lw $8, symbol - sw $8, symbol - - ldc1 $f0, symbol - sdc1 $f0, symbol diff --git a/test/MC/Mips/mips-pdr.s b/test/MC/Mips/mips-pdr.s index 372c259bb098f..79e824bda64b5 100644 --- a/test/MC/Mips/mips-pdr.s +++ b/test/MC/Mips/mips-pdr.s @@ -2,7 +2,7 @@ # RUN: FileCheck %s -check-prefix=ASMOUT # RUN: llvm-mc %s -arch=mips -mcpu=mips32r2 -filetype=obj -o - | \ -# RUN: llvm-readobj -s -section-data | \ +# RUN: llvm-readobj -s -section-data -r | \ # RUN: FileCheck %s -check-prefix=OBJOUT # ASMOUT: .text @@ -32,16 +32,12 @@ # OBJOUT: } # We should also check if relocation information was correctly generated. -# OBJOUT: Section { -# OBJOUT: Name: .rel.pdr -# OBJOUT: Type: SHT_REL (0x9) -# OBJOUT: Flags [ (0x0) -# OBJOUT: ] -# OBJOUT: Size: 16 -# OBJOUT: SectionData ( -# OBJOUT: 0000: 00000000 00000202 00000020 00000802 -# OBJOUT: ) -# OBJOUT: } +# OBJOUT: Relocations [ +# OBJOUT-NEXT: Section (6) .rel.pdr { +# OBJOUT-NEXT: 0x0 R_MIPS_32 .text 0x0 +# OBJOUT-NEXT: 0x20 R_MIPS_32 _global_foo 0x0 +# OBJOUT-NEXT: } +# OBJOUT-NEXT: ] .text .type _local_foo,@function diff --git a/test/MC/Mips/mips-relocations.s b/test/MC/Mips/mips-relocations.s index 6f095d1ecdffe..13cea2f385688 100644 --- a/test/MC/Mips/mips-relocations.s +++ b/test/MC/Mips/mips-relocations.s @@ -11,8 +11,8 @@ # CHECK: # fixup A - offset: 0, value: loop_1@GOT, kind: fixup_Mips_GOT_Local # CHECK: lui $2, %dtprel_hi(_gp_disp) # encoding: [A,A,0x02,0x3c] # CHECK: # fixup A - offset: 0, value: _gp_disp@DTPREL_HI, kind: fixup_Mips_DTPREL_HI -# CHECK: addiu $2, $2, %dtprel_hi(_gp_disp) # encoding: [A,A,0x42,0x24] -# CHECK: # fixup A - offset: 0, value: _gp_disp@DTPREL_HI, kind: fixup_Mips_DTPREL_HI +# CHECK: addiu $2, $2, %dtprel_lo(_gp_disp) # encoding: [A,A,0x42,0x24] +# CHECK: # fixup A - offset: 0, value: _gp_disp@DTPREL_LO, kind: fixup_Mips_DTPREL_LO # CHECK: lw $3, %got(loop_1)($2) # encoding: [A,A,0x43,0x8c] # CHECK: # fixup A - offset: 0, value: loop_1@GOT, kind: fixup_Mips_GOT_Local # CHECK: lw $4, %got_disp(loop_2)($3) # encoding: [A,A,0x64,0x8c] @@ -26,15 +26,15 @@ # CHECK: addiu $2, $2, %tprel_lo(_gp_disp) # encoding: [A,A,0x42,0x24] # CHECK: # fixup A - offset: 0, value: _gp_disp@TPREL_LO, kind: fixup_Mips_TPREL_LO - lui $2, %hi(_gp_disp) - addiu $2, $2, %lo(_gp_disp) - lw $25, %call16(strchr)($gp) + lui $2, %hi(_gp_disp) + addiu $2, $2, %lo(_gp_disp) + lw $25, %call16(strchr)($gp) lw $3, %got(loop_1)($2) - lui $2, %dtprel_hi(_gp_disp) - addiu $2, $2, %dtprel_hi(_gp_disp) - lw $3, %got(loop_1)($2) - lw $4, %got_disp(loop_2)($3) - lw $5, %got_page(loop_3)($4) - lw $6, %got_ofst(loop_4)($5) - lui $2, %tprel_hi(_gp_disp) - addiu $2, $2, %tprel_lo(_gp_disp) + lui $2, %dtprel_hi(_gp_disp) + addiu $2, $2, %dtprel_lo(_gp_disp) + lw $3, %got(loop_1)($2) + lw $4, %got_disp(loop_2)($3) + lw $5, %got_page(loop_3)($4) + lw $6, %got_ofst(loop_4)($5) + lui $2, %tprel_hi(_gp_disp) + addiu $2, $2, %tprel_lo(_gp_disp) diff --git a/test/MC/Mips/octeon-instructions.s b/test/MC/Mips/octeon-instructions.s index 34830c0fc6eb2..cbb99088ea1a8 100644 --- a/test/MC/Mips/octeon-instructions.s +++ b/test/MC/Mips/octeon-instructions.s @@ -15,6 +15,8 @@ # CHECK: cins32 $22, $22, 9, 22 # encoding: [0x72,0xd6,0xb2,0x73] # CHECK: cins32 $24, $ra, 0, 31 # encoding: [0x73,0xf8,0xf8,0x33] # CHECK: cins32 $15, $15, 5, 5 # encoding: [0x71,0xef,0x29,0x73] +# CHECK: dmtc2 $2, 16455 # encoding: [0x48,0xa2,0x40,0x47] +# CHECK: dmfc2 $2, 64 # encoding: [0x48,0x22,0x00,0x40] # CHECK: dmul $9, $6, $7 # encoding: [0x70,0xc7,0x48,0x03] # CHECK: dmul $19, $24, $25 # encoding: [0x73,0x19,0x98,0x03] # CHECK: dmul $9, $9, $6 # encoding: [0x71,0x26,0x48,0x03] @@ -72,6 +74,8 @@ foo: cins32 $22, 9, 22 cins $24, $31, 32, 31 cins $15, 37, 5 + dmtc2 $2, 0x4047 + dmfc2 $2, 0x0040 dmul $9, $6, $7 dmul $19, $24, $25 dmul $9, $6 diff --git a/test/MC/Mips/relocation.s b/test/MC/Mips/relocation.s new file mode 100644 index 0000000000000..642b40960a657 --- /dev/null +++ b/test/MC/Mips/relocation.s @@ -0,0 +1,10 @@ +// RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux < %s | llvm-readobj -r | FileCheck %s + +// Test that we produce the correct relocation. +// FIXME: move more relocation only tests here. + + .long foo +// CHECK: R_MIPS_32 foo + + .long foo-. +// CHECK: R_MIPS_PC32 foo diff --git a/test/MC/Mips/set-push-pop-directives-bad.s b/test/MC/Mips/set-push-pop-directives-bad.s index 53d8b2308153f..8994eea1c8bbe 100644 --- a/test/MC/Mips/set-push-pop-directives-bad.s +++ b/test/MC/Mips/set-push-pop-directives-bad.s @@ -12,3 +12,12 @@ # CHECK: :[[@LINE-1]]:19: error: unexpected token, expected end of statement .set pop bar # CHECK: :[[@LINE-1]]:18: error: unexpected token, expected end of statement + + .set hardfloat + .set push + .set softfloat + add.s $f2, $f2, $f2 +# CHECK: :[[@LINE-1]]:9: error: instruction requires a CPU feature not currently enabled + .set pop + add.s $f2, $f2, $f2 +# CHECK-NOT: :[[@LINE-1]]:9: error: instruction requires a CPU feature not currently enabled diff --git a/test/MC/Mips/set-push-pop-directives.s b/test/MC/Mips/set-push-pop-directives.s index 5f55b7c7e4d30..3a0b2aecc5874 100644 --- a/test/MC/Mips/set-push-pop-directives.s +++ b/test/MC/Mips/set-push-pop-directives.s @@ -51,3 +51,20 @@ # CHECK: b 1336 # CHECK: nop # CHECK: addvi.b $w15, $w13, 18 + + .set push + .set dsp + lbux $7, $10($11) + .set pop + + .set push + .set dsp + lbux $7, $10($11) +# CHECK-NOT: :[[@LINE-1]]:5: error: instruction requires a CPU feature not currently enabled + .set pop + + .set push + .set dsp + lbux $7, $10($11) +# CHECK-NOT: :[[@LINE-1]]:5: error: instruction requires a CPU feature not currently enabled + .set pop diff --git a/test/MC/Mips/set-softfloat-hardfloat-bad.s b/test/MC/Mips/set-softfloat-hardfloat-bad.s new file mode 100644 index 0000000000000..14b1e78afe176 --- /dev/null +++ b/test/MC/Mips/set-softfloat-hardfloat-bad.s @@ -0,0 +1,14 @@ +# RUN: not llvm-mc %s -triple=mips-unknown-linux -mcpu=mips32 -mattr=+soft-float 2>%t1 +# RUN: FileCheck %s < %t1 + + .set hardfloat + add.s $f2, $f2, $f2 + # CHECK-NOT: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled + sub.s $f2, $f2, $f2 + # CHECK-NOT: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled + + .set softfloat + add.s $f2, $f2, $f2 + # CHECK: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled + sub.s $f2, $f2, $f2 + # CHECK: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled diff --git a/test/MC/Mips/set-softfloat-hardfloat.s b/test/MC/Mips/set-softfloat-hardfloat.s new file mode 100644 index 0000000000000..ffb10f3ec5804 --- /dev/null +++ b/test/MC/Mips/set-softfloat-hardfloat.s @@ -0,0 +1,12 @@ +# RUN: llvm-mc %s -triple=mips-unknown-linux -mcpu=mips32r2 -mattr=+soft-float | \ +# RUN: FileCheck %s + + .set hardfloat + add.s $f2, $f2, $f2 + sub.s $f2, $f2, $f2 + .set softfloat + +# CHECK: .set hardfloat +# CHECK: add.s $f2, $f2, $f2 +# CHECK: sub.s $f2, $f2, $f2 +# CHECK: .set softfloat diff --git a/test/MC/PowerPC/st-other-crash.s b/test/MC/PowerPC/st-other-crash.s new file mode 100644 index 0000000000000..fcc56ad70c56e --- /dev/null +++ b/test/MC/PowerPC/st-other-crash.s @@ -0,0 +1,21 @@ +// RUN: llvm-mc < %s -filetype=obj -triple powerpc64le-pc-linux | \ +// RUN: llvm-readobj -t | FileCheck %s + +// This used to crash. Make sure it produce the correct symbol. + +// CHECK: Symbol { +// CHECK: Name: _ZN4llvm11SmallVectorIcLj0EEC2Ev (12) +// CHECK-NEXT: Value: 0x0 +// CHECK-NEXT: Size: 0 +// CHECK-NEXT: Binding: Local (0x0) +// CHECK-NEXT: Type: None (0x0) +// CHECK-NEXT: Other: 64 +// CHECK-NEXT: Section: .group (0x5) +// CHECK-NEXT: } + + + .section .text._ZN4llvm11SmallVectorIcLj0EEC2Ev,"axG",@progbits,_ZN4llvm11SmallVectorIcLj0EEC2Ev,comdat +.Ltmp2: + addis 2, 12, .TOC.-.Ltmp2@ha +.Ltmp3: + .localentry _ZN4llvm11SmallVectorIcLj0EEC2Ev, .Ltmp3-.Ltmp2 diff --git a/test/MC/PowerPC/vsx.s b/test/MC/PowerPC/vsx.s index 773fc9eef6d16..352fc51738000 100644 --- a/test/MC/PowerPC/vsx.s +++ b/test/MC/PowerPC/vsx.s @@ -95,6 +95,12 @@ # CHECK-BE: xsmaddmdp 7, 63, 27 # encoding: [0xf0,0xff,0xd9,0x4c] # CHECK-LE: xsmaddmdp 7, 63, 27 # encoding: [0x4c,0xd9,0xff,0xf0] xsmaddmdp 7, 63, 27 +# CHECK-BE: xsmaddasp 7, 63, 27 # encoding: [0xf0,0xff,0xd8,0x0c] +# CHECK-LE: xsmaddasp 7, 63, 27 # encoding: [0x0c,0xd8,0xff,0xf0] + xsmaddasp 7, 63, 27 +# CHECK-BE: xsmaddmsp 7, 63, 27 # encoding: [0xf0,0xff,0xd8,0x4c] +# CHECK-LE: xsmaddmsp 7, 63, 27 # encoding: [0x4c,0xd8,0xff,0xf0] + xsmaddmsp 7, 63, 27 # CHECK-BE: xsmaxdp 7, 63, 27 # encoding: [0xf0,0xff,0xdd,0x04] # CHECK-LE: xsmaxdp 7, 63, 27 # encoding: [0x04,0xdd,0xff,0xf0] xsmaxdp 7, 63, 27 @@ -107,6 +113,12 @@ # CHECK-BE: xsmsubmdp 7, 63, 27 # encoding: [0xf0,0xff,0xd9,0xcc] # CHECK-LE: xsmsubmdp 7, 63, 27 # encoding: [0xcc,0xd9,0xff,0xf0] xsmsubmdp 7, 63, 27 +# CHECK-BE: xsmsubasp 7, 63, 27 # encoding: [0xf0,0xff,0xd8,0x8c] +# CHECK-LE: xsmsubasp 7, 63, 27 # encoding: [0x8c,0xd8,0xff,0xf0] + xsmsubasp 7, 63, 27 +# CHECK-BE: xsmsubmsp 7, 63, 27 # encoding: [0xf0,0xff,0xd8,0xcc] +# CHECK-LE: xsmsubmsp 7, 63, 27 # encoding: [0xcc,0xd8,0xff,0xf0] + xsmsubmsp 7, 63, 27 # CHECK-BE: xsmulsp 7, 63, 27 # encoding: [0xf0,0xff,0xd8,0x84] # CHECK-LE: xsmulsp 7, 63, 27 # encoding: [0x84,0xd8,0xff,0xf0] xsmulsp 7, 63, 27 @@ -131,6 +143,18 @@ # CHECK-BE: xsnmsubmdp 7, 63, 27 # encoding: [0xf0,0xff,0xdd,0xcc] # CHECK-LE: xsnmsubmdp 7, 63, 27 # encoding: [0xcc,0xdd,0xff,0xf0] xsnmsubmdp 7, 63, 27 +# CHECK-BE: xsnmaddasp 7, 63, 27 # encoding: [0xf0,0xff,0xdc,0x0c] +# CHECK-LE: xsnmaddasp 7, 63, 27 # encoding: [0x0c,0xdc,0xff,0xf0] + xsnmaddasp 7, 63, 27 +# CHECK-BE: xsnmaddmsp 7, 63, 27 # encoding: [0xf0,0xff,0xdc,0x4c] +# CHECK-LE: xsnmaddmsp 7, 63, 27 # encoding: [0x4c,0xdc,0xff,0xf0] + xsnmaddmsp 7, 63, 27 +# CHECK-BE: xsnmsubasp 7, 63, 27 # encoding: [0xf0,0xff,0xdc,0x8c] +# CHECK-LE: xsnmsubasp 7, 63, 27 # encoding: [0x8c,0xdc,0xff,0xf0] + xsnmsubasp 7, 63, 27 +# CHECK-BE: xsnmsubmsp 7, 63, 27 # encoding: [0xf0,0xff,0xdc,0xcc] +# CHECK-LE: xsnmsubmsp 7, 63, 27 # encoding: [0xcc,0xdc,0xff,0xf0] + xsnmsubmsp 7, 63, 27 # CHECK-BE: xsrdpi 7, 27 # encoding: [0xf0,0xe0,0xd9,0x24] # CHECK-LE: xsrdpi 7, 27 # encoding: [0x24,0xd9,0xe0,0xf0] xsrdpi 7, 27 diff --git a/test/MC/X86/avx512-encodings.s b/test/MC/X86/avx512-encodings.s index cb71a00381b13..ca0fccb2e3efa 100644 --- a/test/MC/X86/avx512-encodings.s +++ b/test/MC/X86/avx512-encodings.s @@ -4796,6 +4796,38 @@ // CHECK: encoding: [0x62,0x61,0x7c,0x58,0x51,0xa2,0xfc,0xfd,0xff,0xff] vsqrtps -516(%rdx){1to16}, %zmm28 +// CHECK: vsqrtpd {rn-sae}, %zmm19, %zmm19 +// CHECK: encoding: [0x62,0xa1,0xfd,0x18,0x51,0xdb] + vsqrtpd {rn-sae}, %zmm19, %zmm19 + +// CHECK: vsqrtpd {ru-sae}, %zmm19, %zmm19 +// CHECK: encoding: [0x62,0xa1,0xfd,0x58,0x51,0xdb] + vsqrtpd {ru-sae}, %zmm19, %zmm19 + +// CHECK: vsqrtpd {rd-sae}, %zmm19, %zmm19 +// CHECK: encoding: [0x62,0xa1,0xfd,0x38,0x51,0xdb] + vsqrtpd {rd-sae}, %zmm19, %zmm19 + +// CHECK: vsqrtpd {rz-sae}, %zmm19, %zmm19 +// CHECK: encoding: [0x62,0xa1,0xfd,0x78,0x51,0xdb] + vsqrtpd {rz-sae}, %zmm19, %zmm19 + +// CHECK: vsqrtps {rn-sae}, %zmm29, %zmm28 +// CHECK: encoding: [0x62,0x01,0x7c,0x18,0x51,0xe5] + vsqrtps {rn-sae}, %zmm29, %zmm28 + +// CHECK: vsqrtps {ru-sae}, %zmm29, %zmm28 +// CHECK: encoding: [0x62,0x01,0x7c,0x58,0x51,0xe5] + vsqrtps {ru-sae}, %zmm29, %zmm28 + +// CHECK: vsqrtps {rd-sae}, %zmm29, %zmm28 +// CHECK: encoding: [0x62,0x01,0x7c,0x38,0x51,0xe5] + vsqrtps {rd-sae}, %zmm29, %zmm28 + +// CHECK: vsqrtps {rz-sae}, %zmm29, %zmm28 +// CHECK: encoding: [0x62,0x01,0x7c,0x78,0x51,0xe5] + vsqrtps {rz-sae}, %zmm29, %zmm28 + // CHECK: vsubpd %zmm9, %zmm12, %zmm9 // CHECK: encoding: [0x62,0x51,0x9d,0x48,0x5c,0xc9] vsubpd %zmm9, %zmm12, %zmm9 @@ -6052,6 +6084,66 @@ valignq $2, 0x100(%rsp), %zmm0, %zmm1 // CHECK: encoding: [0x62,0xf3,0xfd,0x49,0x03,0xcb,0x03] valignq $3, %zmm3, %zmm0, %zmm1 {%k1} +// CHECK: valignq $171, %zmm23, %zmm4, %zmm28 +// CHECK: encoding: [0x62,0x23,0xdd,0x48,0x03,0xe7,0xab] + valignq $0xab, %zmm23, %zmm4, %zmm28 + +// CHECK: valignq $171, %zmm23, %zmm4, %zmm28 {%k3} +// CHECK: encoding: [0x62,0x23,0xdd,0x4b,0x03,0xe7,0xab] + valignq $0xab, %zmm23, %zmm4, %zmm28 {%k3} + +// CHECK: valignq $171, %zmm23, %zmm4, %zmm28 {%k3} {z} +// CHECK: encoding: [0x62,0x23,0xdd,0xcb,0x03,0xe7,0xab] + valignq $0xab, %zmm23, %zmm4, %zmm28 {%k3} {z} + +// CHECK: valignq $123, %zmm23, %zmm4, %zmm28 +// CHECK: encoding: [0x62,0x23,0xdd,0x48,0x03,0xe7,0x7b] + valignq $0x7b, %zmm23, %zmm4, %zmm28 + +// CHECK: valignq $123, (%rcx), %zmm4, %zmm28 +// CHECK: encoding: [0x62,0x63,0xdd,0x48,0x03,0x21,0x7b] + valignq $0x7b, (%rcx), %zmm4, %zmm28 + +// CHECK: valignq $123, 291(%rax,%r14,8), %zmm4, %zmm28 +// CHECK: encoding: [0x62,0x23,0xdd,0x48,0x03,0xa4,0xf0,0x23,0x01,0x00,0x00,0x7b] + valignq $0x7b, 291(%rax,%r14,8), %zmm4, %zmm28 + +// CHECK: valignq $123, (%rcx){1to8}, %zmm4, %zmm28 +// CHECK: encoding: [0x62,0x63,0xdd,0x58,0x03,0x21,0x7b] + valignq $0x7b, (%rcx){1to8}, %zmm4, %zmm28 + +// CHECK: valignq $123, 8128(%rdx), %zmm4, %zmm28 +// CHECK: encoding: [0x62,0x63,0xdd,0x48,0x03,0x62,0x7f,0x7b] + valignq $0x7b, 8128(%rdx), %zmm4, %zmm28 + +// CHECK: valignq $123, 8192(%rdx), %zmm4, %zmm28 +// CHECK: encoding: [0x62,0x63,0xdd,0x48,0x03,0xa2,0x00,0x20,0x00,0x00,0x7b] + valignq $0x7b, 8192(%rdx), %zmm4, %zmm28 + +// CHECK: valignq $123, -8192(%rdx), %zmm4, %zmm28 +// CHECK: encoding: [0x62,0x63,0xdd,0x48,0x03,0x62,0x80,0x7b] + valignq $0x7b, -8192(%rdx), %zmm4, %zmm28 + +// CHECK: valignq $123, -8256(%rdx), %zmm4, %zmm28 +// CHECK: encoding: [0x62,0x63,0xdd,0x48,0x03,0xa2,0xc0,0xdf,0xff,0xff,0x7b] + valignq $0x7b, -8256(%rdx), %zmm4, %zmm28 + +// CHECK: valignq $123, 1016(%rdx){1to8}, %zmm4, %zmm28 +// CHECK: encoding: [0x62,0x63,0xdd,0x58,0x03,0x62,0x7f,0x7b] + valignq $0x7b, 1016(%rdx){1to8}, %zmm4, %zmm28 + +// CHECK: valignq $123, 1024(%rdx){1to8}, %zmm4, %zmm28 +// CHECK: encoding: [0x62,0x63,0xdd,0x58,0x03,0xa2,0x00,0x04,0x00,0x00,0x7b] + valignq $0x7b, 1024(%rdx){1to8}, %zmm4, %zmm28 + +// CHECK: valignq $123, -1024(%rdx){1to8}, %zmm4, %zmm28 +// CHECK: encoding: [0x62,0x63,0xdd,0x58,0x03,0x62,0x80,0x7b] + valignq $0x7b, -1024(%rdx){1to8}, %zmm4, %zmm28 + +// CHECK: valignq $123, -1032(%rdx){1to8}, %zmm4, %zmm28 +// CHECK: encoding: [0x62,0x63,0xdd,0x58,0x03,0xa2,0xf8,0xfb,0xff,0xff,0x7b] + valignq $0x7b, -1032(%rdx){1to8}, %zmm4, %zmm28 + // CHECK: vextractf32x4 $3 // CHECK: encoding: [0x62,0xf3,0x7d,0x49,0x19,0xd9,0x03] vextractf32x4 $3, %zmm3, %xmm1 {%k1} @@ -7724,3 +7816,1000 @@ vpermilpd $0x23, 0x400(%rbx), %zmm2 // CHECK: encoding: [0x62,0xf1,0x95,0x50,0x72,0xa2,0xf8,0xfb,0xff,0xff,0x7b] vpsraq $123, -1032(%rdx){1to8}, %zmm29 +// CHECK: vfixupimmps $171, %zmm2, %zmm26, %zmm15 +// CHECK: encoding: [0x62,0x73,0x2d,0x40,0x54,0xfa,0xab] + vfixupimmps $0xab, %zmm2, %zmm26, %zmm15 + +// CHECK: vfixupimmps $171, %zmm2, %zmm26, %zmm15 {%k4} +// CHECK: encoding: [0x62,0x73,0x2d,0x44,0x54,0xfa,0xab] + vfixupimmps $0xab, %zmm2, %zmm26, %zmm15 {%k4} + +// CHECK: vfixupimmps $171, %zmm2, %zmm26, %zmm15 {%k4} {z} +// CHECK: encoding: [0x62,0x73,0x2d,0xc4,0x54,0xfa,0xab] + vfixupimmps $0xab, %zmm2, %zmm26, %zmm15 {%k4} {z} + +// CHECK: vfixupimmps $171,{sae}, %zmm2, %zmm26, %zmm15 +// CHECK: encoding: [0x62,0x73,0x2d,0x10,0x54,0xfa,0xab] + vfixupimmps $0xab,{sae}, %zmm2, %zmm26, %zmm15 + +// CHECK: vfixupimmps $123, %zmm2, %zmm26, %zmm15 +// CHECK: encoding: [0x62,0x73,0x2d,0x40,0x54,0xfa,0x7b] + vfixupimmps $0x7b, %zmm2, %zmm26, %zmm15 + +// CHECK: vfixupimmps $123,{sae}, %zmm2, %zmm26, %zmm15 +// CHECK: encoding: [0x62,0x73,0x2d,0x10,0x54,0xfa,0x7b] + vfixupimmps $0x7b,{sae}, %zmm2, %zmm26, %zmm15 + +// CHECK: vfixupimmps $123, (%rcx), %zmm26, %zmm15 +// CHECK: encoding: [0x62,0x73,0x2d,0x40,0x54,0x39,0x7b] + vfixupimmps $0x7b, (%rcx), %zmm26, %zmm15 + +// CHECK: vfixupimmps $123, 291(%rax,%r14,8), %zmm26, %zmm15 +// CHECK: encoding: [0x62,0x33,0x2d,0x40,0x54,0xbc,0xf0,0x23,0x01,0x00,0x00,0x7b] + vfixupimmps $0x7b, 291(%rax,%r14,8), %zmm26, %zmm15 + +// CHECK: vfixupimmps $123, (%rcx){1to16}, %zmm26, %zmm15 +// CHECK: encoding: [0x62,0x73,0x2d,0x50,0x54,0x39,0x7b] + vfixupimmps $0x7b, (%rcx){1to16}, %zmm26, %zmm15 + +// CHECK: vfixupimmps $123, 8128(%rdx), %zmm26, %zmm15 +// CHECK: encoding: [0x62,0x73,0x2d,0x40,0x54,0x7a,0x7f,0x7b] + vfixupimmps $0x7b, 8128(%rdx), %zmm26, %zmm15 + +// CHECK: vfixupimmps $123, 8192(%rdx), %zmm26, %zmm15 +// CHECK: encoding: [0x62,0x73,0x2d,0x40,0x54,0xba,0x00,0x20,0x00,0x00,0x7b] + vfixupimmps $0x7b, 8192(%rdx), %zmm26, %zmm15 + +// CHECK: vfixupimmps $123, -8192(%rdx), %zmm26, %zmm15 +// CHECK: encoding: [0x62,0x73,0x2d,0x40,0x54,0x7a,0x80,0x7b] + vfixupimmps $0x7b, -8192(%rdx), %zmm26, %zmm15 + +// CHECK: vfixupimmps $123, -8256(%rdx), %zmm26, %zmm15 +// CHECK: encoding: [0x62,0x73,0x2d,0x40,0x54,0xba,0xc0,0xdf,0xff,0xff,0x7b] + vfixupimmps $0x7b, -8256(%rdx), %zmm26, %zmm15 + +// CHECK: vfixupimmps $123, 508(%rdx){1to16}, %zmm26, %zmm15 +// CHECK: encoding: [0x62,0x73,0x2d,0x50,0x54,0x7a,0x7f,0x7b] + vfixupimmps $0x7b, 508(%rdx){1to16}, %zmm26, %zmm15 + +// CHECK: vfixupimmps $123, 512(%rdx){1to16}, %zmm26, %zmm15 +// CHECK: encoding: [0x62,0x73,0x2d,0x50,0x54,0xba,0x00,0x02,0x00,0x00,0x7b] + vfixupimmps $0x7b, 512(%rdx){1to16}, %zmm26, %zmm15 + +// CHECK: vfixupimmps $123, -512(%rdx){1to16}, %zmm26, %zmm15 +// CHECK: encoding: [0x62,0x73,0x2d,0x50,0x54,0x7a,0x80,0x7b] + vfixupimmps $0x7b, -512(%rdx){1to16}, %zmm26, %zmm15 + +// CHECK: vfixupimmps $123, -516(%rdx){1to16}, %zmm26, %zmm15 +// CHECK: encoding: [0x62,0x73,0x2d,0x50,0x54,0xba,0xfc,0xfd,0xff,0xff,0x7b] + vfixupimmps $0x7b, -516(%rdx){1to16}, %zmm26, %zmm15 + +// CHECK: vfixupimmpd $171, %zmm19, %zmm21, %zmm9 +// CHECK: encoding: [0x62,0x33,0xd5,0x40,0x54,0xcb,0xab] + vfixupimmpd $0xab, %zmm19, %zmm21, %zmm9 + +// CHECK: vfixupimmpd $171, %zmm19, %zmm21, %zmm9 {%k2} +// CHECK: encoding: [0x62,0x33,0xd5,0x42,0x54,0xcb,0xab] + vfixupimmpd $0xab, %zmm19, %zmm21, %zmm9 {%k2} + +// CHECK: vfixupimmpd $171, %zmm19, %zmm21, %zmm9 {%k2} {z} +// CHECK: encoding: [0x62,0x33,0xd5,0xc2,0x54,0xcb,0xab] + vfixupimmpd $0xab, %zmm19, %zmm21, %zmm9 {%k2} {z} + +// CHECK: vfixupimmpd $171,{sae}, %zmm19, %zmm21, %zmm9 +// CHECK: encoding: [0x62,0x33,0xd5,0x10,0x54,0xcb,0xab] + vfixupimmpd $0xab,{sae}, %zmm19, %zmm21, %zmm9 + +// CHECK: vfixupimmpd $123, %zmm19, %zmm21, %zmm9 +// CHECK: encoding: [0x62,0x33,0xd5,0x40,0x54,0xcb,0x7b] + vfixupimmpd $0x7b, %zmm19, %zmm21, %zmm9 + +// CHECK: vfixupimmpd $123,{sae}, %zmm19, %zmm21, %zmm9 +// CHECK: encoding: [0x62,0x33,0xd5,0x10,0x54,0xcb,0x7b] + vfixupimmpd $0x7b,{sae}, %zmm19, %zmm21, %zmm9 + +// CHECK: vfixupimmpd $123, (%rcx), %zmm21, %zmm9 +// CHECK: encoding: [0x62,0x73,0xd5,0x40,0x54,0x09,0x7b] + vfixupimmpd $0x7b, (%rcx), %zmm21, %zmm9 + +// CHECK: vfixupimmpd $123, 291(%rax,%r14,8), %zmm21, %zmm9 +// CHECK: encoding: [0x62,0x33,0xd5,0x40,0x54,0x8c,0xf0,0x23,0x01,0x00,0x00,0x7b] + vfixupimmpd $0x7b, 291(%rax,%r14,8), %zmm21, %zmm9 + +// CHECK: vfixupimmpd $123, (%rcx){1to8}, %zmm21, %zmm9 +// CHECK: encoding: [0x62,0x73,0xd5,0x50,0x54,0x09,0x7b] + vfixupimmpd $0x7b, (%rcx){1to8}, %zmm21, %zmm9 + +// CHECK: vfixupimmpd $123, 8128(%rdx), %zmm21, %zmm9 +// CHECK: encoding: [0x62,0x73,0xd5,0x40,0x54,0x4a,0x7f,0x7b] + vfixupimmpd $0x7b, 8128(%rdx), %zmm21, %zmm9 + +// CHECK: vfixupimmpd $123, 8192(%rdx), %zmm21, %zmm9 +// CHECK: encoding: [0x62,0x73,0xd5,0x40,0x54,0x8a,0x00,0x20,0x00,0x00,0x7b] + vfixupimmpd $0x7b, 8192(%rdx), %zmm21, %zmm9 + +// CHECK: vfixupimmpd $123, -8192(%rdx), %zmm21, %zmm9 +// CHECK: encoding: [0x62,0x73,0xd5,0x40,0x54,0x4a,0x80,0x7b] + vfixupimmpd $0x7b, -8192(%rdx), %zmm21, %zmm9 + +// CHECK: vfixupimmpd $123, -8256(%rdx), %zmm21, %zmm9 +// CHECK: encoding: [0x62,0x73,0xd5,0x40,0x54,0x8a,0xc0,0xdf,0xff,0xff,0x7b] + vfixupimmpd $0x7b, -8256(%rdx), %zmm21, %zmm9 + +// CHECK: vfixupimmpd $123, 1016(%rdx){1to8}, %zmm21, %zmm9 +// CHECK: encoding: [0x62,0x73,0xd5,0x50,0x54,0x4a,0x7f,0x7b] + vfixupimmpd $0x7b, 1016(%rdx){1to8}, %zmm21, %zmm9 + +// CHECK: vfixupimmpd $123, 1024(%rdx){1to8}, %zmm21, %zmm9 +// CHECK: encoding: [0x62,0x73,0xd5,0x50,0x54,0x8a,0x00,0x04,0x00,0x00,0x7b] + vfixupimmpd $0x7b, 1024(%rdx){1to8}, %zmm21, %zmm9 + +// CHECK: vfixupimmpd $123, -1024(%rdx){1to8}, %zmm21, %zmm9 +// CHECK: encoding: [0x62,0x73,0xd5,0x50,0x54,0x4a,0x80,0x7b] + vfixupimmpd $0x7b, -1024(%rdx){1to8}, %zmm21, %zmm9 + +// CHECK: vfixupimmpd $123, -1032(%rdx){1to8}, %zmm21, %zmm9 +// CHECK: encoding: [0x62,0x73,0xd5,0x50,0x54,0x8a,0xf8,0xfb,0xff,0xff,0x7b] + vfixupimmpd $0x7b, -1032(%rdx){1to8}, %zmm21, %zmm9 + +// CHECK: vfixupimmss $171, %xmm28, %xmm18, %xmm15 +// CHECK: encoding: [0x62,0x13,0x6d,0x00,0x55,0xfc,0xab] + vfixupimmss $0xab, %xmm28, %xmm18, %xmm15 + +// CHECK: vfixupimmss $171, %xmm28, %xmm18, %xmm15 {%k5} +// CHECK: encoding: [0x62,0x13,0x6d,0x05,0x55,0xfc,0xab] + vfixupimmss $0xab, %xmm28, %xmm18, %xmm15 {%k5} + +// CHECK: vfixupimmss $171, %xmm28, %xmm18, %xmm15 {%k5} {z} +// CHECK: encoding: [0x62,0x13,0x6d,0x85,0x55,0xfc,0xab] + vfixupimmss $0xab, %xmm28, %xmm18, %xmm15 {%k5} {z} + +// CHECK: vfixupimmss $171,{sae}, %xmm28, %xmm18, %xmm15 +// CHECK: encoding: [0x62,0x13,0x6d,0x10,0x55,0xfc,0xab] + vfixupimmss $0xab,{sae}, %xmm28, %xmm18, %xmm15 + +// CHECK: vfixupimmss $123, %xmm28, %xmm18, %xmm15 +// CHECK: encoding: [0x62,0x13,0x6d,0x00,0x55,0xfc,0x7b] + vfixupimmss $0x7b, %xmm28, %xmm18, %xmm15 + +// CHECK: vfixupimmss $123,{sae}, %xmm28, %xmm18, %xmm15 +// CHECK: encoding: [0x62,0x13,0x6d,0x10,0x55,0xfc,0x7b] + vfixupimmss $0x7b,{sae}, %xmm28, %xmm18, %xmm15 + +// CHECK: vfixupimmss $123, (%rcx), %xmm18, %xmm15 +// CHECK: encoding: [0x62,0x73,0x6d,0x00,0x55,0x39,0x7b] + vfixupimmss $0x7b, (%rcx), %xmm18, %xmm15 + +// CHECK: vfixupimmss $123, 291(%rax,%r14,8), %xmm18, %xmm15 +// CHECK: encoding: [0x62,0x33,0x6d,0x00,0x55,0xbc,0xf0,0x23,0x01,0x00,0x00,0x7b] + vfixupimmss $0x7b, 291(%rax,%r14,8), %xmm18, %xmm15 + +// CHECK: vfixupimmss $123, 508(%rdx), %xmm18, %xmm15 +// CHECK: encoding: [0x62,0x73,0x6d,0x00,0x55,0x7a,0x7f,0x7b] + vfixupimmss $0x7b, 508(%rdx), %xmm18, %xmm15 + +// CHECK: vfixupimmss $123, 512(%rdx), %xmm18, %xmm15 +// CHECK: encoding: [0x62,0x73,0x6d,0x00,0x55,0xba,0x00,0x02,0x00,0x00,0x7b] + vfixupimmss $0x7b, 512(%rdx), %xmm18, %xmm15 + +// CHECK: vfixupimmss $123, -512(%rdx), %xmm18, %xmm15 +// CHECK: encoding: [0x62,0x73,0x6d,0x00,0x55,0x7a,0x80,0x7b] + vfixupimmss $0x7b, -512(%rdx), %xmm18, %xmm15 + +// CHECK: vfixupimmss $123, -516(%rdx), %xmm18, %xmm15 +// CHECK: encoding: [0x62,0x73,0x6d,0x00,0x55,0xba,0xfc,0xfd,0xff,0xff,0x7b] + vfixupimmss $0x7b, -516(%rdx), %xmm18, %xmm15 + +// CHECK: vfixupimmsd $171, %xmm5, %xmm26, %xmm13 +// CHECK: encoding: [0x62,0x73,0xad,0x00,0x55,0xed,0xab] + vfixupimmsd $0xab, %xmm5, %xmm26, %xmm13 + +// CHECK: vfixupimmsd $171, %xmm5, %xmm26, %xmm13 {%k6} +// CHECK: encoding: [0x62,0x73,0xad,0x06,0x55,0xed,0xab] + vfixupimmsd $0xab, %xmm5, %xmm26, %xmm13 {%k6} + +// CHECK: vfixupimmsd $171, %xmm5, %xmm26, %xmm13 {%k6} {z} +// CHECK: encoding: [0x62,0x73,0xad,0x86,0x55,0xed,0xab] + vfixupimmsd $0xab, %xmm5, %xmm26, %xmm13 {%k6} {z} + +// CHECK: vfixupimmsd $171,{sae}, %xmm5, %xmm26, %xmm13 +// CHECK: encoding: [0x62,0x73,0xad,0x10,0x55,0xed,0xab] + vfixupimmsd $0xab,{sae}, %xmm5, %xmm26, %xmm13 + +// CHECK: vfixupimmsd $123, %xmm5, %xmm26, %xmm13 +// CHECK: encoding: [0x62,0x73,0xad,0x00,0x55,0xed,0x7b] + vfixupimmsd $0x7b, %xmm5, %xmm26, %xmm13 + +// CHECK: vfixupimmsd $123,{sae}, %xmm5, %xmm26, %xmm13 +// CHECK: encoding: [0x62,0x73,0xad,0x10,0x55,0xed,0x7b] + vfixupimmsd $0x7b,{sae}, %xmm5, %xmm26, %xmm13 + +// CHECK: vfixupimmsd $123, (%rcx), %xmm26, %xmm13 +// CHECK: encoding: [0x62,0x73,0xad,0x00,0x55,0x29,0x7b] + vfixupimmsd $0x7b, (%rcx), %xmm26, %xmm13 + +// CHECK: vfixupimmsd $123, 291(%rax,%r14,8), %xmm26, %xmm13 +// CHECK: encoding: [0x62,0x33,0xad,0x00,0x55,0xac,0xf0,0x23,0x01,0x00,0x00,0x7b] + vfixupimmsd $0x7b, 291(%rax,%r14,8), %xmm26, %xmm13 + +// CHECK: vfixupimmsd $123, 1016(%rdx), %xmm26, %xmm13 +// CHECK: encoding: [0x62,0x73,0xad,0x00,0x55,0x6a,0x7f,0x7b] + vfixupimmsd $0x7b, 1016(%rdx), %xmm26, %xmm13 + +// CHECK: vfixupimmsd $123, 1024(%rdx), %xmm26, %xmm13 +// CHECK: encoding: [0x62,0x73,0xad,0x00,0x55,0xaa,0x00,0x04,0x00,0x00,0x7b] + vfixupimmsd $0x7b, 1024(%rdx), %xmm26, %xmm13 + +// CHECK: vfixupimmsd $123, -1024(%rdx), %xmm26, %xmm13 +// CHECK: encoding: [0x62,0x73,0xad,0x00,0x55,0x6a,0x80,0x7b] + vfixupimmsd $0x7b, -1024(%rdx), %xmm26, %xmm13 + +// CHECK: vfixupimmsd $123, -1032(%rdx), %xmm26, %xmm13 +// CHECK: encoding: [0x62,0x73,0xad,0x00,0x55,0xaa,0xf8,0xfb,0xff,0xff,0x7b] + vfixupimmsd $0x7b, -1032(%rdx), %xmm26, %xmm13 + +// CHECK: vpshufd $171, %zmm25, %zmm19 +// CHECK: encoding: [0x62,0x81,0x7d,0x48,0x70,0xd9,0xab] + vpshufd $171, %zmm25, %zmm19 + +// CHECK: vpshufd $171, %zmm25, %zmm19 {%k6} +// CHECK: encoding: [0x62,0x81,0x7d,0x4e,0x70,0xd9,0xab] + vpshufd $171, %zmm25, %zmm19 {%k6} + +// CHECK: vpshufd $171, %zmm25, %zmm19 {%k6} {z} +// CHECK: encoding: [0x62,0x81,0x7d,0xce,0x70,0xd9,0xab] + vpshufd $171, %zmm25, %zmm19 {%k6} {z} + +// CHECK: vpshufd $123, %zmm25, %zmm19 +// CHECK: encoding: [0x62,0x81,0x7d,0x48,0x70,0xd9,0x7b] + vpshufd $123, %zmm25, %zmm19 + +// CHECK: vpshufd $123, (%rcx), %zmm19 +// CHECK: encoding: [0x62,0xe1,0x7d,0x48,0x70,0x19,0x7b] + vpshufd $123, (%rcx), %zmm19 + +// CHECK: vpshufd $123, 291(%rax,%r14,8), %zmm19 +// CHECK: encoding: [0x62,0xa1,0x7d,0x48,0x70,0x9c,0xf0,0x23,0x01,0x00,0x00,0x7b] + vpshufd $123, 291(%rax,%r14,8), %zmm19 + +// CHECK: vpshufd $123, (%rcx){1to16}, %zmm19 +// CHECK: encoding: [0x62,0xe1,0x7d,0x58,0x70,0x19,0x7b] + vpshufd $123, (%rcx){1to16}, %zmm19 + +// CHECK: vpshufd $123, 8128(%rdx), %zmm19 +// CHECK: encoding: [0x62,0xe1,0x7d,0x48,0x70,0x5a,0x7f,0x7b] + vpshufd $123, 8128(%rdx), %zmm19 + +// CHECK: vpshufd $123, 8192(%rdx), %zmm19 +// CHECK: encoding: [0x62,0xe1,0x7d,0x48,0x70,0x9a,0x00,0x20,0x00,0x00,0x7b] + vpshufd $123, 8192(%rdx), %zmm19 + +// CHECK: vpshufd $123, -8192(%rdx), %zmm19 +// CHECK: encoding: [0x62,0xe1,0x7d,0x48,0x70,0x5a,0x80,0x7b] + vpshufd $123, -8192(%rdx), %zmm19 + +// CHECK: vpshufd $123, -8256(%rdx), %zmm19 +// CHECK: encoding: [0x62,0xe1,0x7d,0x48,0x70,0x9a,0xc0,0xdf,0xff,0xff,0x7b] + vpshufd $123, -8256(%rdx), %zmm19 + +// CHECK: vpshufd $123, 508(%rdx){1to16}, %zmm19 +// CHECK: encoding: [0x62,0xe1,0x7d,0x58,0x70,0x5a,0x7f,0x7b] + vpshufd $123, 508(%rdx){1to16}, %zmm19 + +// CHECK: vpshufd $123, 512(%rdx){1to16}, %zmm19 +// CHECK: encoding: [0x62,0xe1,0x7d,0x58,0x70,0x9a,0x00,0x02,0x00,0x00,0x7b] + vpshufd $123, 512(%rdx){1to16}, %zmm19 + +// CHECK: vpshufd $123, -512(%rdx){1to16}, %zmm19 +// CHECK: encoding: [0x62,0xe1,0x7d,0x58,0x70,0x5a,0x80,0x7b] + vpshufd $123, -512(%rdx){1to16}, %zmm19 + +// CHECK: vpshufd $123, -516(%rdx){1to16}, %zmm19 +// CHECK: encoding: [0x62,0xe1,0x7d,0x58,0x70,0x9a,0xfc,0xfd,0xff,0xff,0x7b] + vpshufd $123, -516(%rdx){1to16}, %zmm19 + +// CHECK: vgetexppd %zmm25, %zmm14 +// CHECK: encoding: [0x62,0x12,0xfd,0x48,0x42,0xf1] + vgetexppd %zmm25, %zmm14 + +// CHECK: vgetexppd %zmm25, %zmm14 {%k5} +// CHECK: encoding: [0x62,0x12,0xfd,0x4d,0x42,0xf1] + vgetexppd %zmm25, %zmm14 {%k5} + +// CHECK: vgetexppd %zmm25, %zmm14 {%k5} {z} +// CHECK: encoding: [0x62,0x12,0xfd,0xcd,0x42,0xf1] + vgetexppd %zmm25, %zmm14 {%k5} {z} + +// CHECK: vgetexppd {sae}, %zmm25, %zmm14 +// CHECK: encoding: [0x62,0x12,0xfd,0x18,0x42,0xf1] + vgetexppd {sae}, %zmm25, %zmm14 + +// CHECK: vgetexppd (%rcx), %zmm14 +// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x42,0x31] + vgetexppd (%rcx), %zmm14 + +// CHECK: vgetexppd 291(%rax,%r14,8), %zmm14 +// CHECK: encoding: [0x62,0x32,0xfd,0x48,0x42,0xb4,0xf0,0x23,0x01,0x00,0x00] + vgetexppd 291(%rax,%r14,8), %zmm14 + +// CHECK: vgetexppd (%rcx){1to8}, %zmm14 +// CHECK: encoding: [0x62,0x72,0xfd,0x58,0x42,0x31] + vgetexppd (%rcx){1to8}, %zmm14 + +// CHECK: vgetexppd 8128(%rdx), %zmm14 +// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x42,0x72,0x7f] + vgetexppd 8128(%rdx), %zmm14 + +// CHECK: vgetexppd 8192(%rdx), %zmm14 +// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x42,0xb2,0x00,0x20,0x00,0x00] + vgetexppd 8192(%rdx), %zmm14 + +// CHECK: vgetexppd -8192(%rdx), %zmm14 +// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x42,0x72,0x80] + vgetexppd -8192(%rdx), %zmm14 + +// CHECK: vgetexppd -8256(%rdx), %zmm14 +// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x42,0xb2,0xc0,0xdf,0xff,0xff] + vgetexppd -8256(%rdx), %zmm14 + +// CHECK: vgetexppd 1016(%rdx){1to8}, %zmm14 +// CHECK: encoding: [0x62,0x72,0xfd,0x58,0x42,0x72,0x7f] + vgetexppd 1016(%rdx){1to8}, %zmm14 + +// CHECK: vgetexppd 1024(%rdx){1to8}, %zmm14 +// CHECK: encoding: [0x62,0x72,0xfd,0x58,0x42,0xb2,0x00,0x04,0x00,0x00] + vgetexppd 1024(%rdx){1to8}, %zmm14 + +// CHECK: vgetexppd -1024(%rdx){1to8}, %zmm14 +// CHECK: encoding: [0x62,0x72,0xfd,0x58,0x42,0x72,0x80] + vgetexppd -1024(%rdx){1to8}, %zmm14 + +// CHECK: vgetexppd -1032(%rdx){1to8}, %zmm14 +// CHECK: encoding: [0x62,0x72,0xfd,0x58,0x42,0xb2,0xf8,0xfb,0xff,0xff] + vgetexppd -1032(%rdx){1to8}, %zmm14 + +// CHECK: vgetexpps %zmm6, %zmm1 +// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x42,0xce] + vgetexpps %zmm6, %zmm1 + +// CHECK: vgetexpps %zmm6, %zmm1 {%k3} +// CHECK: encoding: [0x62,0xf2,0x7d,0x4b,0x42,0xce] + vgetexpps %zmm6, %zmm1 {%k3} + +// CHECK: vgetexpps %zmm6, %zmm1 {%k3} {z} +// CHECK: encoding: [0x62,0xf2,0x7d,0xcb,0x42,0xce] + vgetexpps %zmm6, %zmm1 {%k3} {z} + +// CHECK: vgetexpps {sae}, %zmm6, %zmm1 +// CHECK: encoding: [0x62,0xf2,0x7d,0x18,0x42,0xce] + vgetexpps {sae}, %zmm6, %zmm1 + +// CHECK: vgetexpps (%rcx), %zmm1 +// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x42,0x09] + vgetexpps (%rcx), %zmm1 + +// CHECK: vgetexpps 291(%rax,%r14,8), %zmm1 +// CHECK: encoding: [0x62,0xb2,0x7d,0x48,0x42,0x8c,0xf0,0x23,0x01,0x00,0x00] + vgetexpps 291(%rax,%r14,8), %zmm1 + +// CHECK: vgetexpps (%rcx){1to16}, %zmm1 +// CHECK: encoding: [0x62,0xf2,0x7d,0x58,0x42,0x09] + vgetexpps (%rcx){1to16}, %zmm1 + +// CHECK: vgetexpps 8128(%rdx), %zmm1 +// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x42,0x4a,0x7f] + vgetexpps 8128(%rdx), %zmm1 + +// CHECK: vgetexpps 8192(%rdx), %zmm1 +// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x42,0x8a,0x00,0x20,0x00,0x00] + vgetexpps 8192(%rdx), %zmm1 + +// CHECK: vgetexpps -8192(%rdx), %zmm1 +// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x42,0x4a,0x80] + vgetexpps -8192(%rdx), %zmm1 + +// CHECK: vgetexpps -8256(%rdx), %zmm1 +// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x42,0x8a,0xc0,0xdf,0xff,0xff] + vgetexpps -8256(%rdx), %zmm1 + +// CHECK: vgetexpps 508(%rdx){1to16}, %zmm1 +// CHECK: encoding: [0x62,0xf2,0x7d,0x58,0x42,0x4a,0x7f] + vgetexpps 508(%rdx){1to16}, %zmm1 + +// CHECK: vgetexpps 512(%rdx){1to16}, %zmm1 +// CHECK: encoding: [0x62,0xf2,0x7d,0x58,0x42,0x8a,0x00,0x02,0x00,0x00] + vgetexpps 512(%rdx){1to16}, %zmm1 + +// CHECK: vgetexpps -512(%rdx){1to16}, %zmm1 +// CHECK: encoding: [0x62,0xf2,0x7d,0x58,0x42,0x4a,0x80] + vgetexpps -512(%rdx){1to16}, %zmm1 + +// CHECK: vgetexpps -516(%rdx){1to16}, %zmm1 +// CHECK: encoding: [0x62,0xf2,0x7d,0x58,0x42,0x8a,0xfc,0xfd,0xff,0xff] + vgetexpps -516(%rdx){1to16}, %zmm1 + +// CHECK: vshuff32x4 $171, %zmm3, %zmm24, %zmm6 +// CHECK: encoding: [0x62,0xf3,0x3d,0x40,0x23,0xf3,0xab] + vshuff32x4 $171, %zmm3, %zmm24, %zmm6 + +// CHECK: vshuff32x4 $171, %zmm3, %zmm24, %zmm6 {%k2} +// CHECK: encoding: [0x62,0xf3,0x3d,0x42,0x23,0xf3,0xab] + vshuff32x4 $171, %zmm3, %zmm24, %zmm6 {%k2} + +// CHECK: vshuff32x4 $171, %zmm3, %zmm24, %zmm6 {%k2} {z} +// CHECK: encoding: [0x62,0xf3,0x3d,0xc2,0x23,0xf3,0xab] + vshuff32x4 $171, %zmm3, %zmm24, %zmm6 {%k2} {z} + +// CHECK: vshuff32x4 $123, %zmm3, %zmm24, %zmm6 +// CHECK: encoding: [0x62,0xf3,0x3d,0x40,0x23,0xf3,0x7b] + vshuff32x4 $123, %zmm3, %zmm24, %zmm6 + +// CHECK: vshuff32x4 $123, (%rcx), %zmm24, %zmm6 +// CHECK: encoding: [0x62,0xf3,0x3d,0x40,0x23,0x31,0x7b] + vshuff32x4 $123, (%rcx), %zmm24, %zmm6 + +// CHECK: vshuff32x4 $123, 291(%rax,%r14,8), %zmm24, %zmm6 +// CHECK: encoding: [0x62,0xb3,0x3d,0x40,0x23,0xb4,0xf0,0x23,0x01,0x00,0x00,0x7b] + vshuff32x4 $123, 291(%rax,%r14,8), %zmm24, %zmm6 + +// CHECK: vshuff32x4 $123, (%rcx){1to16}, %zmm24, %zmm6 +// CHECK: encoding: [0x62,0xf3,0x3d,0x50,0x23,0x31,0x7b] + vshuff32x4 $123, (%rcx){1to16}, %zmm24, %zmm6 + +// CHECK: vshuff32x4 $123, 8128(%rdx), %zmm24, %zmm6 +// CHECK: encoding: [0x62,0xf3,0x3d,0x40,0x23,0x72,0x7f,0x7b] + vshuff32x4 $123, 8128(%rdx), %zmm24, %zmm6 + +// CHECK: vshuff32x4 $123, 8192(%rdx), %zmm24, %zmm6 +// CHECK: encoding: [0x62,0xf3,0x3d,0x40,0x23,0xb2,0x00,0x20,0x00,0x00,0x7b] + vshuff32x4 $123, 8192(%rdx), %zmm24, %zmm6 + +// CHECK: vshuff32x4 $123, -8192(%rdx), %zmm24, %zmm6 +// CHECK: encoding: [0x62,0xf3,0x3d,0x40,0x23,0x72,0x80,0x7b] + vshuff32x4 $123, -8192(%rdx), %zmm24, %zmm6 + +// CHECK: vshuff32x4 $123, -8256(%rdx), %zmm24, %zmm6 +// CHECK: encoding: [0x62,0xf3,0x3d,0x40,0x23,0xb2,0xc0,0xdf,0xff,0xff,0x7b] + vshuff32x4 $123, -8256(%rdx), %zmm24, %zmm6 + +// CHECK: vshuff32x4 $123, 508(%rdx){1to16}, %zmm24, %zmm6 +// CHECK: encoding: [0x62,0xf3,0x3d,0x50,0x23,0x72,0x7f,0x7b] + vshuff32x4 $123, 508(%rdx){1to16}, %zmm24, %zmm6 + +// CHECK: vshuff32x4 $123, 512(%rdx){1to16}, %zmm24, %zmm6 +// CHECK: encoding: [0x62,0xf3,0x3d,0x50,0x23,0xb2,0x00,0x02,0x00,0x00,0x7b] + vshuff32x4 $123, 512(%rdx){1to16}, %zmm24, %zmm6 + +// CHECK: vshuff32x4 $123, -512(%rdx){1to16}, %zmm24, %zmm6 +// CHECK: encoding: [0x62,0xf3,0x3d,0x50,0x23,0x72,0x80,0x7b] + vshuff32x4 $123, -512(%rdx){1to16}, %zmm24, %zmm6 + +// CHECK: vshuff32x4 $123, -516(%rdx){1to16}, %zmm24, %zmm6 +// CHECK: encoding: [0x62,0xf3,0x3d,0x50,0x23,0xb2,0xfc,0xfd,0xff,0xff,0x7b] + vshuff32x4 $123, -516(%rdx){1to16}, %zmm24, %zmm6 + +// CHECK: vshuff64x2 $171, %zmm11, %zmm25, %zmm15 +// CHECK: encoding: [0x62,0x53,0xb5,0x40,0x23,0xfb,0xab] + vshuff64x2 $171, %zmm11, %zmm25, %zmm15 + +// CHECK: vshuff64x2 $171, %zmm11, %zmm25, %zmm15 {%k2} +// CHECK: encoding: [0x62,0x53,0xb5,0x42,0x23,0xfb,0xab] + vshuff64x2 $171, %zmm11, %zmm25, %zmm15 {%k2} + +// CHECK: vshuff64x2 $171, %zmm11, %zmm25, %zmm15 {%k2} {z} +// CHECK: encoding: [0x62,0x53,0xb5,0xc2,0x23,0xfb,0xab] + vshuff64x2 $171, %zmm11, %zmm25, %zmm15 {%k2} {z} + +// CHECK: vshuff64x2 $123, %zmm11, %zmm25, %zmm15 +// CHECK: encoding: [0x62,0x53,0xb5,0x40,0x23,0xfb,0x7b] + vshuff64x2 $123, %zmm11, %zmm25, %zmm15 + +// CHECK: vshuff64x2 $123, (%rcx), %zmm25, %zmm15 +// CHECK: encoding: [0x62,0x73,0xb5,0x40,0x23,0x39,0x7b] + vshuff64x2 $123, (%rcx), %zmm25, %zmm15 + +// CHECK: vshuff64x2 $123, 291(%rax,%r14,8), %zmm25, %zmm15 +// CHECK: encoding: [0x62,0x33,0xb5,0x40,0x23,0xbc,0xf0,0x23,0x01,0x00,0x00,0x7b] + vshuff64x2 $123, 291(%rax,%r14,8), %zmm25, %zmm15 + +// CHECK: vshuff64x2 $123, (%rcx){1to8}, %zmm25, %zmm15 +// CHECK: encoding: [0x62,0x73,0xb5,0x50,0x23,0x39,0x7b] + vshuff64x2 $123, (%rcx){1to8}, %zmm25, %zmm15 + +// CHECK: vshuff64x2 $123, 8128(%rdx), %zmm25, %zmm15 +// CHECK: encoding: [0x62,0x73,0xb5,0x40,0x23,0x7a,0x7f,0x7b] + vshuff64x2 $123, 8128(%rdx), %zmm25, %zmm15 + +// CHECK: vshuff64x2 $123, 8192(%rdx), %zmm25, %zmm15 +// CHECK: encoding: [0x62,0x73,0xb5,0x40,0x23,0xba,0x00,0x20,0x00,0x00,0x7b] + vshuff64x2 $123, 8192(%rdx), %zmm25, %zmm15 + +// CHECK: vshuff64x2 $123, -8192(%rdx), %zmm25, %zmm15 +// CHECK: encoding: [0x62,0x73,0xb5,0x40,0x23,0x7a,0x80,0x7b] + vshuff64x2 $123, -8192(%rdx), %zmm25, %zmm15 + +// CHECK: vshuff64x2 $123, -8256(%rdx), %zmm25, %zmm15 +// CHECK: encoding: [0x62,0x73,0xb5,0x40,0x23,0xba,0xc0,0xdf,0xff,0xff,0x7b] + vshuff64x2 $123, -8256(%rdx), %zmm25, %zmm15 + +// CHECK: vshuff64x2 $123, 1016(%rdx){1to8}, %zmm25, %zmm15 +// CHECK: encoding: [0x62,0x73,0xb5,0x50,0x23,0x7a,0x7f,0x7b] + vshuff64x2 $123, 1016(%rdx){1to8}, %zmm25, %zmm15 + +// CHECK: vshuff64x2 $123, 1024(%rdx){1to8}, %zmm25, %zmm15 +// CHECK: encoding: [0x62,0x73,0xb5,0x50,0x23,0xba,0x00,0x04,0x00,0x00,0x7b] + vshuff64x2 $123, 1024(%rdx){1to8}, %zmm25, %zmm15 + +// CHECK: vshuff64x2 $123, -1024(%rdx){1to8}, %zmm25, %zmm15 +// CHECK: encoding: [0x62,0x73,0xb5,0x50,0x23,0x7a,0x80,0x7b] + vshuff64x2 $123, -1024(%rdx){1to8}, %zmm25, %zmm15 + +// CHECK: vshuff64x2 $123, -1032(%rdx){1to8}, %zmm25, %zmm15 +// CHECK: encoding: [0x62,0x73,0xb5,0x50,0x23,0xba,0xf8,0xfb,0xff,0xff,0x7b] + vshuff64x2 $123, -1032(%rdx){1to8}, %zmm25, %zmm15 + +// CHECK: vshufi32x4 $171, %zmm25, %zmm28, %zmm1 +// CHECK: encoding: [0x62,0x93,0x1d,0x40,0x43,0xc9,0xab] + vshufi32x4 $171, %zmm25, %zmm28, %zmm1 + +// CHECK: vshufi32x4 $171, %zmm25, %zmm28, %zmm1 {%k4} +// CHECK: encoding: [0x62,0x93,0x1d,0x44,0x43,0xc9,0xab] + vshufi32x4 $171, %zmm25, %zmm28, %zmm1 {%k4} + +// CHECK: vshufi32x4 $171, %zmm25, %zmm28, %zmm1 {%k4} {z} +// CHECK: encoding: [0x62,0x93,0x1d,0xc4,0x43,0xc9,0xab] + vshufi32x4 $171, %zmm25, %zmm28, %zmm1 {%k4} {z} + +// CHECK: vshufi32x4 $123, %zmm25, %zmm28, %zmm1 +// CHECK: encoding: [0x62,0x93,0x1d,0x40,0x43,0xc9,0x7b] + vshufi32x4 $123, %zmm25, %zmm28, %zmm1 + +// CHECK: vshufi32x4 $123, (%rcx), %zmm28, %zmm1 +// CHECK: encoding: [0x62,0xf3,0x1d,0x40,0x43,0x09,0x7b] + vshufi32x4 $123, (%rcx), %zmm28, %zmm1 + +// CHECK: vshufi32x4 $123, 291(%rax,%r14,8), %zmm28, %zmm1 +// CHECK: encoding: [0x62,0xb3,0x1d,0x40,0x43,0x8c,0xf0,0x23,0x01,0x00,0x00,0x7b] + vshufi32x4 $123, 291(%rax,%r14,8), %zmm28, %zmm1 + +// CHECK: vshufi32x4 $123, (%rcx){1to16}, %zmm28, %zmm1 +// CHECK: encoding: [0x62,0xf3,0x1d,0x50,0x43,0x09,0x7b] + vshufi32x4 $123, (%rcx){1to16}, %zmm28, %zmm1 + +// CHECK: vshufi32x4 $123, 8128(%rdx), %zmm28, %zmm1 +// CHECK: encoding: [0x62,0xf3,0x1d,0x40,0x43,0x4a,0x7f,0x7b] + vshufi32x4 $123, 8128(%rdx), %zmm28, %zmm1 + +// CHECK: vshufi32x4 $123, 8192(%rdx), %zmm28, %zmm1 +// CHECK: encoding: [0x62,0xf3,0x1d,0x40,0x43,0x8a,0x00,0x20,0x00,0x00,0x7b] + vshufi32x4 $123, 8192(%rdx), %zmm28, %zmm1 + +// CHECK: vshufi32x4 $123, -8192(%rdx), %zmm28, %zmm1 +// CHECK: encoding: [0x62,0xf3,0x1d,0x40,0x43,0x4a,0x80,0x7b] + vshufi32x4 $123, -8192(%rdx), %zmm28, %zmm1 + +// CHECK: vshufi32x4 $123, -8256(%rdx), %zmm28, %zmm1 +// CHECK: encoding: [0x62,0xf3,0x1d,0x40,0x43,0x8a,0xc0,0xdf,0xff,0xff,0x7b] + vshufi32x4 $123, -8256(%rdx), %zmm28, %zmm1 + +// CHECK: vshufi32x4 $123, 508(%rdx){1to16}, %zmm28, %zmm1 +// CHECK: encoding: [0x62,0xf3,0x1d,0x50,0x43,0x4a,0x7f,0x7b] + vshufi32x4 $123, 508(%rdx){1to16}, %zmm28, %zmm1 + +// CHECK: vshufi32x4 $123, 512(%rdx){1to16}, %zmm28, %zmm1 +// CHECK: encoding: [0x62,0xf3,0x1d,0x50,0x43,0x8a,0x00,0x02,0x00,0x00,0x7b] + vshufi32x4 $123, 512(%rdx){1to16}, %zmm28, %zmm1 + +// CHECK: vshufi32x4 $123, -512(%rdx){1to16}, %zmm28, %zmm1 +// CHECK: encoding: [0x62,0xf3,0x1d,0x50,0x43,0x4a,0x80,0x7b] + vshufi32x4 $123, -512(%rdx){1to16}, %zmm28, %zmm1 + +// CHECK: vshufi32x4 $123, -516(%rdx){1to16}, %zmm28, %zmm1 +// CHECK: encoding: [0x62,0xf3,0x1d,0x50,0x43,0x8a,0xfc,0xfd,0xff,0xff,0x7b] + vshufi32x4 $123, -516(%rdx){1to16}, %zmm28, %zmm1 + +// CHECK: vshufi64x2 $171, %zmm19, %zmm16, %zmm3 +// CHECK: encoding: [0x62,0xb3,0xfd,0x40,0x43,0xdb,0xab] + vshufi64x2 $171, %zmm19, %zmm16, %zmm3 + +// CHECK: vshufi64x2 $171, %zmm19, %zmm16, %zmm3 {%k7} +// CHECK: encoding: [0x62,0xb3,0xfd,0x47,0x43,0xdb,0xab] + vshufi64x2 $171, %zmm19, %zmm16, %zmm3 {%k7} + +// CHECK: vshufi64x2 $171, %zmm19, %zmm16, %zmm3 {%k7} {z} +// CHECK: encoding: [0x62,0xb3,0xfd,0xc7,0x43,0xdb,0xab] + vshufi64x2 $171, %zmm19, %zmm16, %zmm3 {%k7} {z} + +// CHECK: vshufi64x2 $123, %zmm19, %zmm16, %zmm3 +// CHECK: encoding: [0x62,0xb3,0xfd,0x40,0x43,0xdb,0x7b] + vshufi64x2 $123, %zmm19, %zmm16, %zmm3 + +// CHECK: vshufi64x2 $123, (%rcx), %zmm16, %zmm3 +// CHECK: encoding: [0x62,0xf3,0xfd,0x40,0x43,0x19,0x7b] + vshufi64x2 $123, (%rcx), %zmm16, %zmm3 + +// CHECK: vshufi64x2 $123, 291(%rax,%r14,8), %zmm16, %zmm3 +// CHECK: encoding: [0x62,0xb3,0xfd,0x40,0x43,0x9c,0xf0,0x23,0x01,0x00,0x00,0x7b] + vshufi64x2 $123, 291(%rax,%r14,8), %zmm16, %zmm3 + +// CHECK: vshufi64x2 $123, (%rcx){1to8}, %zmm16, %zmm3 +// CHECK: encoding: [0x62,0xf3,0xfd,0x50,0x43,0x19,0x7b] + vshufi64x2 $123, (%rcx){1to8}, %zmm16, %zmm3 + +// CHECK: vshufi64x2 $123, 8128(%rdx), %zmm16, %zmm3 +// CHECK: encoding: [0x62,0xf3,0xfd,0x40,0x43,0x5a,0x7f,0x7b] + vshufi64x2 $123, 8128(%rdx), %zmm16, %zmm3 + +// CHECK: vshufi64x2 $123, 8192(%rdx), %zmm16, %zmm3 +// CHECK: encoding: [0x62,0xf3,0xfd,0x40,0x43,0x9a,0x00,0x20,0x00,0x00,0x7b] + vshufi64x2 $123, 8192(%rdx), %zmm16, %zmm3 + +// CHECK: vshufi64x2 $123, -8192(%rdx), %zmm16, %zmm3 +// CHECK: encoding: [0x62,0xf3,0xfd,0x40,0x43,0x5a,0x80,0x7b] + vshufi64x2 $123, -8192(%rdx), %zmm16, %zmm3 + +// CHECK: vshufi64x2 $123, -8256(%rdx), %zmm16, %zmm3 +// CHECK: encoding: [0x62,0xf3,0xfd,0x40,0x43,0x9a,0xc0,0xdf,0xff,0xff,0x7b] + vshufi64x2 $123, -8256(%rdx), %zmm16, %zmm3 + +// CHECK: vshufi64x2 $123, 1016(%rdx){1to8}, %zmm16, %zmm3 +// CHECK: encoding: [0x62,0xf3,0xfd,0x50,0x43,0x5a,0x7f,0x7b] + vshufi64x2 $123, 1016(%rdx){1to8}, %zmm16, %zmm3 + +// CHECK: vshufi64x2 $123, 1024(%rdx){1to8}, %zmm16, %zmm3 +// CHECK: encoding: [0x62,0xf3,0xfd,0x50,0x43,0x9a,0x00,0x04,0x00,0x00,0x7b] + vshufi64x2 $123, 1024(%rdx){1to8}, %zmm16, %zmm3 + +// CHECK: vshufi64x2 $123, -1024(%rdx){1to8}, %zmm16, %zmm3 +// CHECK: encoding: [0x62,0xf3,0xfd,0x50,0x43,0x5a,0x80,0x7b] + vshufi64x2 $123, -1024(%rdx){1to8}, %zmm16, %zmm3 + +// CHECK: vshufi64x2 $123, -1032(%rdx){1to8}, %zmm16, %zmm3 +// CHECK: encoding: [0x62,0xf3,0xfd,0x50,0x43,0x9a,0xf8,0xfb,0xff,0xff,0x7b] + vshufi64x2 $123, -1032(%rdx){1to8}, %zmm16, %zmm3 + +// CHECK: vpermps %zmm24, %zmm2, %zmm4 +// CHECK: encoding: [0x62,0x92,0x6d,0x48,0x16,0xe0] + vpermps %zmm24, %zmm2, %zmm4 + +// CHECK: vpermps %zmm24, %zmm2, %zmm4 {%k4} +// CHECK: encoding: [0x62,0x92,0x6d,0x4c,0x16,0xe0] + vpermps %zmm24, %zmm2, %zmm4 {%k4} + +// CHECK: vpermps %zmm24, %zmm2, %zmm4 {%k4} {z} +// CHECK: encoding: [0x62,0x92,0x6d,0xcc,0x16,0xe0] + vpermps %zmm24, %zmm2, %zmm4 {%k4} {z} + +// CHECK: vpermps (%rcx), %zmm2, %zmm4 +// CHECK: encoding: [0x62,0xf2,0x6d,0x48,0x16,0x21] + vpermps (%rcx), %zmm2, %zmm4 + +// CHECK: vpermps 291(%rax,%r14,8), %zmm2, %zmm4 +// CHECK: encoding: [0x62,0xb2,0x6d,0x48,0x16,0xa4,0xf0,0x23,0x01,0x00,0x00] + vpermps 291(%rax,%r14,8), %zmm2, %zmm4 + +// CHECK: vpermps (%rcx){1to16}, %zmm2, %zmm4 +// CHECK: encoding: [0x62,0xf2,0x6d,0x58,0x16,0x21] + vpermps (%rcx){1to16}, %zmm2, %zmm4 + +// CHECK: vpermps 8128(%rdx), %zmm2, %zmm4 +// CHECK: encoding: [0x62,0xf2,0x6d,0x48,0x16,0x62,0x7f] + vpermps 8128(%rdx), %zmm2, %zmm4 + +// CHECK: vpermps 8192(%rdx), %zmm2, %zmm4 +// CHECK: encoding: [0x62,0xf2,0x6d,0x48,0x16,0xa2,0x00,0x20,0x00,0x00] + vpermps 8192(%rdx), %zmm2, %zmm4 + +// CHECK: vpermps -8192(%rdx), %zmm2, %zmm4 +// CHECK: encoding: [0x62,0xf2,0x6d,0x48,0x16,0x62,0x80] + vpermps -8192(%rdx), %zmm2, %zmm4 + +// CHECK: vpermps -8256(%rdx), %zmm2, %zmm4 +// CHECK: encoding: [0x62,0xf2,0x6d,0x48,0x16,0xa2,0xc0,0xdf,0xff,0xff] + vpermps -8256(%rdx), %zmm2, %zmm4 + +// CHECK: vpermps 508(%rdx){1to16}, %zmm2, %zmm4 +// CHECK: encoding: [0x62,0xf2,0x6d,0x58,0x16,0x62,0x7f] + vpermps 508(%rdx){1to16}, %zmm2, %zmm4 + +// CHECK: vpermps 512(%rdx){1to16}, %zmm2, %zmm4 +// CHECK: encoding: [0x62,0xf2,0x6d,0x58,0x16,0xa2,0x00,0x02,0x00,0x00] + vpermps 512(%rdx){1to16}, %zmm2, %zmm4 + +// CHECK: vpermps -512(%rdx){1to16}, %zmm2, %zmm4 +// CHECK: encoding: [0x62,0xf2,0x6d,0x58,0x16,0x62,0x80] + vpermps -512(%rdx){1to16}, %zmm2, %zmm4 + +// CHECK: vpermps -516(%rdx){1to16}, %zmm2, %zmm4 +// CHECK: encoding: [0x62,0xf2,0x6d,0x58,0x16,0xa2,0xfc,0xfd,0xff,0xff] + vpermps -516(%rdx){1to16}, %zmm2, %zmm4 + +// CHECK: vpermq $171, %zmm4, %zmm25 +// CHECK: encoding: [0x62,0x63,0xfd,0x48,0x00,0xcc,0xab] + vpermq $171, %zmm4, %zmm25 + +// CHECK: vpermq $171, %zmm4, %zmm25 {%k6} +// CHECK: encoding: [0x62,0x63,0xfd,0x4e,0x00,0xcc,0xab] + vpermq $171, %zmm4, %zmm25 {%k6} + +// CHECK: vpermq $171, %zmm4, %zmm25 {%k6} {z} +// CHECK: encoding: [0x62,0x63,0xfd,0xce,0x00,0xcc,0xab] + vpermq $171, %zmm4, %zmm25 {%k6} {z} + +// CHECK: vpermq $123, %zmm4, %zmm25 +// CHECK: encoding: [0x62,0x63,0xfd,0x48,0x00,0xcc,0x7b] + vpermq $123, %zmm4, %zmm25 + +// CHECK: vpermq $123, (%rcx), %zmm25 +// CHECK: encoding: [0x62,0x63,0xfd,0x48,0x00,0x09,0x7b] + vpermq $123, (%rcx), %zmm25 + +// CHECK: vpermq $123, 291(%rax,%r14,8), %zmm25 +// CHECK: encoding: [0x62,0x23,0xfd,0x48,0x00,0x8c,0xf0,0x23,0x01,0x00,0x00,0x7b] + vpermq $123, 291(%rax,%r14,8), %zmm25 + +// CHECK: vpermq $123, (%rcx){1to8}, %zmm25 +// CHECK: encoding: [0x62,0x63,0xfd,0x58,0x00,0x09,0x7b] + vpermq $123, (%rcx){1to8}, %zmm25 + +// CHECK: vpermq $123, 8128(%rdx), %zmm25 +// CHECK: encoding: [0x62,0x63,0xfd,0x48,0x00,0x4a,0x7f,0x7b] + vpermq $123, 8128(%rdx), %zmm25 + +// CHECK: vpermq $123, 8192(%rdx), %zmm25 +// CHECK: encoding: [0x62,0x63,0xfd,0x48,0x00,0x8a,0x00,0x20,0x00,0x00,0x7b] + vpermq $123, 8192(%rdx), %zmm25 + +// CHECK: vpermq $123, -8192(%rdx), %zmm25 +// CHECK: encoding: [0x62,0x63,0xfd,0x48,0x00,0x4a,0x80,0x7b] + vpermq $123, -8192(%rdx), %zmm25 + +// CHECK: vpermq $123, -8256(%rdx), %zmm25 +// CHECK: encoding: [0x62,0x63,0xfd,0x48,0x00,0x8a,0xc0,0xdf,0xff,0xff,0x7b] + vpermq $123, -8256(%rdx), %zmm25 + +// CHECK: vpermq $123, 1016(%rdx){1to8}, %zmm25 +// CHECK: encoding: [0x62,0x63,0xfd,0x58,0x00,0x4a,0x7f,0x7b] + vpermq $123, 1016(%rdx){1to8}, %zmm25 + +// CHECK: vpermq $123, 1024(%rdx){1to8}, %zmm25 +// CHECK: encoding: [0x62,0x63,0xfd,0x58,0x00,0x8a,0x00,0x04,0x00,0x00,0x7b] + vpermq $123, 1024(%rdx){1to8}, %zmm25 + +// CHECK: vpermq $123, -1024(%rdx){1to8}, %zmm25 +// CHECK: encoding: [0x62,0x63,0xfd,0x58,0x00,0x4a,0x80,0x7b] + vpermq $123, -1024(%rdx){1to8}, %zmm25 + +// CHECK: vpermq $123, -1032(%rdx){1to8}, %zmm25 +// CHECK: encoding: [0x62,0x63,0xfd,0x58,0x00,0x8a,0xf8,0xfb,0xff,0xff,0x7b] + vpermq $123, -1032(%rdx){1to8}, %zmm25 + +// CHECK: vpermq %zmm22, %zmm23, %zmm21 +// CHECK: encoding: [0x62,0xa2,0xc5,0x40,0x36,0xee] + vpermq %zmm22, %zmm23, %zmm21 + +// CHECK: vpermq %zmm22, %zmm23, %zmm21 {%k1} +// CHECK: encoding: [0x62,0xa2,0xc5,0x41,0x36,0xee] + vpermq %zmm22, %zmm23, %zmm21 {%k1} + +// CHECK: vpermq %zmm22, %zmm23, %zmm21 {%k1} {z} +// CHECK: encoding: [0x62,0xa2,0xc5,0xc1,0x36,0xee] + vpermq %zmm22, %zmm23, %zmm21 {%k1} {z} + +// CHECK: vpermq (%rcx), %zmm23, %zmm21 +// CHECK: encoding: [0x62,0xe2,0xc5,0x40,0x36,0x29] + vpermq (%rcx), %zmm23, %zmm21 + +// CHECK: vpermq 291(%rax,%r14,8), %zmm23, %zmm21 +// CHECK: encoding: [0x62,0xa2,0xc5,0x40,0x36,0xac,0xf0,0x23,0x01,0x00,0x00] + vpermq 291(%rax,%r14,8), %zmm23, %zmm21 + +// CHECK: vpermq (%rcx){1to8}, %zmm23, %zmm21 +// CHECK: encoding: [0x62,0xe2,0xc5,0x50,0x36,0x29] + vpermq (%rcx){1to8}, %zmm23, %zmm21 + +// CHECK: vpermq 8128(%rdx), %zmm23, %zmm21 +// CHECK: encoding: [0x62,0xe2,0xc5,0x40,0x36,0x6a,0x7f] + vpermq 8128(%rdx), %zmm23, %zmm21 + +// CHECK: vpermq 8192(%rdx), %zmm23, %zmm21 +// CHECK: encoding: [0x62,0xe2,0xc5,0x40,0x36,0xaa,0x00,0x20,0x00,0x00] + vpermq 8192(%rdx), %zmm23, %zmm21 + +// CHECK: vpermq -8192(%rdx), %zmm23, %zmm21 +// CHECK: encoding: [0x62,0xe2,0xc5,0x40,0x36,0x6a,0x80] + vpermq -8192(%rdx), %zmm23, %zmm21 + +// CHECK: vpermq -8256(%rdx), %zmm23, %zmm21 +// CHECK: encoding: [0x62,0xe2,0xc5,0x40,0x36,0xaa,0xc0,0xdf,0xff,0xff] + vpermq -8256(%rdx), %zmm23, %zmm21 + +// CHECK: vpermq 1016(%rdx){1to8}, %zmm23, %zmm21 +// CHECK: encoding: [0x62,0xe2,0xc5,0x50,0x36,0x6a,0x7f] + vpermq 1016(%rdx){1to8}, %zmm23, %zmm21 + +// CHECK: vpermq 1024(%rdx){1to8}, %zmm23, %zmm21 +// CHECK: encoding: [0x62,0xe2,0xc5,0x50,0x36,0xaa,0x00,0x04,0x00,0x00] + vpermq 1024(%rdx){1to8}, %zmm23, %zmm21 + +// CHECK: vpermq -1024(%rdx){1to8}, %zmm23, %zmm21 +// CHECK: encoding: [0x62,0xe2,0xc5,0x50,0x36,0x6a,0x80] + vpermq -1024(%rdx){1to8}, %zmm23, %zmm21 + +// CHECK: vpermq -1032(%rdx){1to8}, %zmm23, %zmm21 +// CHECK: encoding: [0x62,0xe2,0xc5,0x50,0x36,0xaa,0xf8,0xfb,0xff,0xff] + vpermq -1032(%rdx){1to8}, %zmm23, %zmm21 + +// CHECK: vpermpd %zmm18, %zmm29, %zmm26 +// CHECK: encoding: [0x62,0x22,0x95,0x40,0x16,0xd2] + vpermpd %zmm18, %zmm29, %zmm26 + +// CHECK: vpermpd %zmm18, %zmm29, %zmm26 {%k6} +// CHECK: encoding: [0x62,0x22,0x95,0x46,0x16,0xd2] + vpermpd %zmm18, %zmm29, %zmm26 {%k6} + +// CHECK: vpermpd %zmm18, %zmm29, %zmm26 {%k6} {z} +// CHECK: encoding: [0x62,0x22,0x95,0xc6,0x16,0xd2] + vpermpd %zmm18, %zmm29, %zmm26 {%k6} {z} + +// CHECK: vpermpd (%rcx), %zmm29, %zmm26 +// CHECK: encoding: [0x62,0x62,0x95,0x40,0x16,0x11] + vpermpd (%rcx), %zmm29, %zmm26 + +// CHECK: vpermpd 291(%rax,%r14,8), %zmm29, %zmm26 +// CHECK: encoding: [0x62,0x22,0x95,0x40,0x16,0x94,0xf0,0x23,0x01,0x00,0x00] + vpermpd 291(%rax,%r14,8), %zmm29, %zmm26 + +// CHECK: vpermpd (%rcx){1to8}, %zmm29, %zmm26 +// CHECK: encoding: [0x62,0x62,0x95,0x50,0x16,0x11] + vpermpd (%rcx){1to8}, %zmm29, %zmm26 + +// CHECK: vpermpd 8128(%rdx), %zmm29, %zmm26 +// CHECK: encoding: [0x62,0x62,0x95,0x40,0x16,0x52,0x7f] + vpermpd 8128(%rdx), %zmm29, %zmm26 + +// CHECK: vpermpd 8192(%rdx), %zmm29, %zmm26 +// CHECK: encoding: [0x62,0x62,0x95,0x40,0x16,0x92,0x00,0x20,0x00,0x00] + vpermpd 8192(%rdx), %zmm29, %zmm26 + +// CHECK: vpermpd -8192(%rdx), %zmm29, %zmm26 +// CHECK: encoding: [0x62,0x62,0x95,0x40,0x16,0x52,0x80] + vpermpd -8192(%rdx), %zmm29, %zmm26 + +// CHECK: vpermpd -8256(%rdx), %zmm29, %zmm26 +// CHECK: encoding: [0x62,0x62,0x95,0x40,0x16,0x92,0xc0,0xdf,0xff,0xff] + vpermpd -8256(%rdx), %zmm29, %zmm26 + +// CHECK: vpermpd 1016(%rdx){1to8}, %zmm29, %zmm26 +// CHECK: encoding: [0x62,0x62,0x95,0x50,0x16,0x52,0x7f] + vpermpd 1016(%rdx){1to8}, %zmm29, %zmm26 + +// CHECK: vpermpd 1024(%rdx){1to8}, %zmm29, %zmm26 +// CHECK: encoding: [0x62,0x62,0x95,0x50,0x16,0x92,0x00,0x04,0x00,0x00] + vpermpd 1024(%rdx){1to8}, %zmm29, %zmm26 + +// CHECK: vpermpd -1024(%rdx){1to8}, %zmm29, %zmm26 +// CHECK: encoding: [0x62,0x62,0x95,0x50,0x16,0x52,0x80] + vpermpd -1024(%rdx){1to8}, %zmm29, %zmm26 + +// CHECK: vpermpd -1032(%rdx){1to8}, %zmm29, %zmm26 +// CHECK: encoding: [0x62,0x62,0x95,0x50,0x16,0x92,0xf8,0xfb,0xff,0xff] + vpermpd -1032(%rdx){1to8}, %zmm29, %zmm26 + +// CHECK: vpermpd $171, %zmm27, %zmm3 +// CHECK: encoding: [0x62,0x93,0xfd,0x48,0x01,0xdb,0xab] + vpermpd $0xab, %zmm27, %zmm3 + +// CHECK: vpermpd $171, %zmm27, %zmm3 {%k2} +// CHECK: encoding: [0x62,0x93,0xfd,0x4a,0x01,0xdb,0xab] + vpermpd $0xab, %zmm27, %zmm3 {%k2} + +// CHECK: vpermpd $171, %zmm27, %zmm3 {%k2} {z} +// CHECK: encoding: [0x62,0x93,0xfd,0xca,0x01,0xdb,0xab] + vpermpd $0xab, %zmm27, %zmm3 {%k2} {z} + +// CHECK: vpermpd $123, %zmm27, %zmm3 +// CHECK: encoding: [0x62,0x93,0xfd,0x48,0x01,0xdb,0x7b] + vpermpd $0x7b, %zmm27, %zmm3 + +// CHECK: vpermpd $123, (%rcx), %zmm3 +// CHECK: encoding: [0x62,0xf3,0xfd,0x48,0x01,0x19,0x7b] + vpermpd $0x7b, (%rcx), %zmm3 + +// CHECK: vpermpd $123, 291(%rax,%r14,8), %zmm3 +// CHECK: encoding: [0x62,0xb3,0xfd,0x48,0x01,0x9c,0xf0,0x23,0x01,0x00,0x00,0x7b] + vpermpd $0x7b, 291(%rax,%r14,8), %zmm3 + +// CHECK: vpermpd $123, (%rcx){1to8}, %zmm3 +// CHECK: encoding: [0x62,0xf3,0xfd,0x58,0x01,0x19,0x7b] + vpermpd $0x7b, (%rcx){1to8}, %zmm3 + +// CHECK: vpermpd $123, 8128(%rdx), %zmm3 +// CHECK: encoding: [0x62,0xf3,0xfd,0x48,0x01,0x5a,0x7f,0x7b] + vpermpd $0x7b, 8128(%rdx), %zmm3 + +// CHECK: vpermpd $123, 8192(%rdx), %zmm3 +// CHECK: encoding: [0x62,0xf3,0xfd,0x48,0x01,0x9a,0x00,0x20,0x00,0x00,0x7b] + vpermpd $0x7b, 8192(%rdx), %zmm3 + +// CHECK: vpermpd $123, -8192(%rdx), %zmm3 +// CHECK: encoding: [0x62,0xf3,0xfd,0x48,0x01,0x5a,0x80,0x7b] + vpermpd $0x7b, -8192(%rdx), %zmm3 + +// CHECK: vpermpd $123, -8256(%rdx), %zmm3 +// CHECK: encoding: [0x62,0xf3,0xfd,0x48,0x01,0x9a,0xc0,0xdf,0xff,0xff,0x7b] + vpermpd $0x7b, -8256(%rdx), %zmm3 + +// CHECK: vpermpd $123, 1016(%rdx){1to8}, %zmm3 +// CHECK: encoding: [0x62,0xf3,0xfd,0x58,0x01,0x5a,0x7f,0x7b] + vpermpd $0x7b, 1016(%rdx){1to8}, %zmm3 + +// CHECK: vpermpd $123, 1024(%rdx){1to8}, %zmm3 +// CHECK: encoding: [0x62,0xf3,0xfd,0x58,0x01,0x9a,0x00,0x04,0x00,0x00,0x7b] + vpermpd $0x7b, 1024(%rdx){1to8}, %zmm3 + +// CHECK: vpermpd $123, -1024(%rdx){1to8}, %zmm3 +// CHECK: encoding: [0x62,0xf3,0xfd,0x58,0x01,0x5a,0x80,0x7b] + vpermpd $0x7b, -1024(%rdx){1to8}, %zmm3 + +// CHECK: vpermpd $123, -1032(%rdx){1to8}, %zmm3 +// CHECK: encoding: [0x62,0xf3,0xfd,0x58,0x01,0x9a,0xf8,0xfb,0xff,0xff,0x7b] + vpermpd $0x7b, -1032(%rdx){1to8}, %zmm3 + +// CHECK: vpermd %zmm9, %zmm28, %zmm22 +// CHECK: encoding: [0x62,0xc2,0x1d,0x40,0x36,0xf1] + vpermd %zmm9, %zmm28, %zmm22 + +// CHECK: vpermd %zmm9, %zmm28, %zmm22 {%k1} +// CHECK: encoding: [0x62,0xc2,0x1d,0x41,0x36,0xf1] + vpermd %zmm9, %zmm28, %zmm22 {%k1} + +// CHECK: vpermd %zmm9, %zmm28, %zmm22 {%k1} {z} +// CHECK: encoding: [0x62,0xc2,0x1d,0xc1,0x36,0xf1] + vpermd %zmm9, %zmm28, %zmm22 {%k1} {z} + +// CHECK: vpermd (%rcx), %zmm28, %zmm22 +// CHECK: encoding: [0x62,0xe2,0x1d,0x40,0x36,0x31] + vpermd (%rcx), %zmm28, %zmm22 + +// CHECK: vpermd 291(%rax,%r14,8), %zmm28, %zmm22 +// CHECK: encoding: [0x62,0xa2,0x1d,0x40,0x36,0xb4,0xf0,0x23,0x01,0x00,0x00] + vpermd 291(%rax,%r14,8), %zmm28, %zmm22 + +// CHECK: vpermd (%rcx){1to16}, %zmm28, %zmm22 +// CHECK: encoding: [0x62,0xe2,0x1d,0x50,0x36,0x31] + vpermd (%rcx){1to16}, %zmm28, %zmm22 + +// CHECK: vpermd 8128(%rdx), %zmm28, %zmm22 +// CHECK: encoding: [0x62,0xe2,0x1d,0x40,0x36,0x72,0x7f] + vpermd 8128(%rdx), %zmm28, %zmm22 + +// CHECK: vpermd 8192(%rdx), %zmm28, %zmm22 +// CHECK: encoding: [0x62,0xe2,0x1d,0x40,0x36,0xb2,0x00,0x20,0x00,0x00] + vpermd 8192(%rdx), %zmm28, %zmm22 + +// CHECK: vpermd -8192(%rdx), %zmm28, %zmm22 +// CHECK: encoding: [0x62,0xe2,0x1d,0x40,0x36,0x72,0x80] + vpermd -8192(%rdx), %zmm28, %zmm22 + +// CHECK: vpermd -8256(%rdx), %zmm28, %zmm22 +// CHECK: encoding: [0x62,0xe2,0x1d,0x40,0x36,0xb2,0xc0,0xdf,0xff,0xff] + vpermd -8256(%rdx), %zmm28, %zmm22 + +// CHECK: vpermd 508(%rdx){1to16}, %zmm28, %zmm22 +// CHECK: encoding: [0x62,0xe2,0x1d,0x50,0x36,0x72,0x7f] + vpermd 508(%rdx){1to16}, %zmm28, %zmm22 + +// CHECK: vpermd 512(%rdx){1to16}, %zmm28, %zmm22 +// CHECK: encoding: [0x62,0xe2,0x1d,0x50,0x36,0xb2,0x00,0x02,0x00,0x00] + vpermd 512(%rdx){1to16}, %zmm28, %zmm22 + +// CHECK: vpermd -512(%rdx){1to16}, %zmm28, %zmm22 +// CHECK: encoding: [0x62,0xe2,0x1d,0x50,0x36,0x72,0x80] + vpermd -512(%rdx){1to16}, %zmm28, %zmm22 + +// CHECK: vpermd -516(%rdx){1to16}, %zmm28, %zmm22 +// CHECK: encoding: [0x62,0xe2,0x1d,0x50,0x36,0xb2,0xfc,0xfd,0xff,0xff] + vpermd -516(%rdx){1to16}, %zmm28, %zmm22 + + diff --git a/test/MC/X86/hex-immediates.s b/test/MC/X86/hex-immediates.s new file mode 100644 index 0000000000000..03f30423ae0a8 --- /dev/null +++ b/test/MC/X86/hex-immediates.s @@ -0,0 +1,10 @@ +# RUN: llvm-mc -filetype=obj %s -triple=x86_64-apple-darwin9 | llvm-objdump -d --print-imm-hex - | FileCheck %s + +# CHECK: movabsq $0x7fffffffffffffff, %rcx +movabsq $0x7fffffffffffffff, %rcx +# CHECK: leaq 0x3e2(%rip), %rdi +leaq 0x3e2(%rip), %rdi +# CHECK: subq $0x40, %rsp +subq $0x40, %rsp +# CHECK: leal (,%r14,4), %eax +leal (,%r14,4), %eax diff --git a/test/MC/X86/intel-syntax-avx512.s b/test/MC/X86/intel-syntax-avx512.s index ffdbd20b77eaf..86a1af8bc16fd 100644 --- a/test/MC/X86/intel-syntax-avx512.s +++ b/test/MC/X86/intel-syntax-avx512.s @@ -161,15 +161,98 @@ vaddpd zmm1,zmm1,zmm2,{rz-sae} vcmpps k2,zmm17,DWORD PTR [rdx-0x204]{1to16},0x7b +// CHECK: vfixupimmss xmm15 , xmm18, xmm28, 171 +// CHECK: encoding: [0x62,0x13,0x6d,0x00,0x55,0xfc,0xab] + vfixupimmss xmm15,xmm18,xmm28,0xab +// CHECK: vfixupimmss xmm15 {k5}, xmm18, xmm28, 171 +// CHECK: encoding: [0x62,0x13,0x6d,0x05,0x55,0xfc,0xab] + vfixupimmss xmm15{k5},xmm18,xmm28,0xab +// CHECK: vfixupimmss xmm15 {k5} {z}, xmm18, xmm28, 171 +// CHECK: encoding: [0x62,0x13,0x6d,0x85,0x55,0xfc,0xab] + vfixupimmss xmm15{k5} {z},xmm18,xmm28,0xab +// CHECK: vfixupimmss xmm15 , xmm18, xmm28,{sae}, 171 +// CHECK: encoding: [0x62,0x13,0x6d,0x10,0x55,0xfc,0xab] + vfixupimmss xmm15,xmm18,xmm28,{sae},0xab +// CHECK: vfixupimmss xmm15 , xmm18, xmm28, 123 +// CHECK: encoding: [0x62,0x13,0x6d,0x00,0x55,0xfc,0x7b] + vfixupimmss xmm15,xmm18,xmm28,0x7b +// CHECK: vfixupimmss xmm15 , xmm18, xmm28,{sae}, 123 +// CHECK: encoding: [0x62,0x13,0x6d,0x10,0x55,0xfc,0x7b] + vfixupimmss xmm15,xmm18,xmm28,{sae},0x7b +// CHECK: vfixupimmss xmm15 , xmm18, dword ptr [rcx], 123 +// CHECK: encoding: [0x62,0x73,0x6d,0x00,0x55,0x39,0x7b] + vfixupimmss xmm15,xmm18,DWORD PTR [rcx],0x7b +// CHECK: vfixupimmss xmm15 , xmm18, dword ptr [rax + 8*r14 + 291], 123 +// CHECK: encoding: [0x62,0x33,0x6d,0x00,0x55,0xbc,0xf0,0x23,0x01,0x00,0x00,0x7b] + vfixupimmss xmm15,xmm18,DWORD PTR [rax+r14*8+0x123],0x7b +// CHECK: vfixupimmss xmm15 , xmm18, dword ptr [rdx + 508], 123 +// CHECK: encoding: [0x62,0x73,0x6d,0x00,0x55,0x7a,0x7f,0x7b] + vfixupimmss xmm15,xmm18,DWORD PTR [rdx+0x1fc],0x7b +// CHECK: vfixupimmss xmm15 , xmm18, dword ptr [rdx + 512], 123 +// CHECK: encoding: [0x62,0x73,0x6d,0x00,0x55,0xba,0x00,0x02,0x00,0x00,0x7b] + vfixupimmss xmm15,xmm18,DWORD PTR [rdx+0x200],0x7b +// CHECK: vfixupimmss xmm15 , xmm18, dword ptr [rdx - 512], 123 +// CHECK: encoding: [0x62,0x73,0x6d,0x00,0x55,0x7a,0x80,0x7b] + vfixupimmss xmm15,xmm18,DWORD PTR [rdx-0x200],0x7b +// CHECK: vfixupimmss xmm15 , xmm18, dword ptr [rdx - 516], 123 +// CHECK: encoding: [0x62,0x73,0x6d,0x00,0x55,0xba,0xfc,0xfd,0xff,0xff,0x7b] + vfixupimmss xmm15,xmm18,DWORD PTR [rdx-0x204],0x7b +// CHECK: vfixupimmsd xmm13 , xmm26, xmm5, 171 +// CHECK: encoding: [0x62,0x73,0xad,0x00,0x55,0xed,0xab] + vfixupimmsd xmm13,xmm26,xmm5,0xab + +// CHECK: vfixupimmsd xmm13 {k6}, xmm26, xmm5, 171 +// CHECK: encoding: [0x62,0x73,0xad,0x06,0x55,0xed,0xab] + vfixupimmsd xmm13{k6},xmm26,xmm5,0xab + +// CHECK: vfixupimmsd xmm13 {k6} {z}, xmm26, xmm5, 171 +// CHECK: encoding: [0x62,0x73,0xad,0x86,0x55,0xed,0xab] + vfixupimmsd xmm13{k6} {z},xmm26,xmm5,0xab + +// CHECK: vfixupimmsd xmm13 , xmm26, xmm5,{sae}, 171 +// CHECK: encoding: [0x62,0x73,0xad,0x10,0x55,0xed,0xab] + vfixupimmsd xmm13,xmm26,xmm5,{sae},0xab + +// CHECK: vfixupimmsd xmm13 , xmm26, xmm5, 123 +// CHECK: encoding: [0x62,0x73,0xad,0x00,0x55,0xed,0x7b] + vfixupimmsd xmm13,xmm26,xmm5,0x7b + +// CHECK: vfixupimmsd xmm13 , xmm26, xmm5,{sae}, 123 +// CHECK: encoding: [0x62,0x73,0xad,0x10,0x55,0xed,0x7b] + vfixupimmsd xmm13,xmm26,xmm5,{sae},0x7b + +// CHECK: vfixupimmsd xmm13 , xmm26, qword ptr [rcx], 123 +// CHECK: encoding: [0x62,0x73,0xad,0x00,0x55,0x29,0x7b] + vfixupimmsd xmm13,xmm26,QWORD PTR [rcx],0x7b + +// CHECK: vfixupimmsd xmm13 , xmm26, qword ptr [rax + 8*r14 + 291], 123 +// CHECK: encoding: [0x62,0x33,0xad,0x00,0x55,0xac,0xf0,0x23,0x01,0x00,0x00,0x7b] + vfixupimmsd xmm13,xmm26,QWORD PTR [rax+r14*8+0x123],0x7b + +// CHECK: vfixupimmsd xmm13 , xmm26, qword ptr [rdx + 1016], 123 +// CHECK: encoding: [0x62,0x73,0xad,0x00,0x55,0x6a,0x7f,0x7b] + vfixupimmsd xmm13,xmm26,QWORD PTR [rdx+0x3f8],0x7b + +// CHECK: vfixupimmsd xmm13 , xmm26, qword ptr [rdx + 1024], 123 +// CHECK: encoding: [0x62,0x73,0xad,0x00,0x55,0xaa,0x00,0x04,0x00,0x00,0x7b] + vfixupimmsd xmm13,xmm26,QWORD PTR [rdx+0x400],0x7b + +// CHECK: vfixupimmsd xmm13 , xmm26, qword ptr [rdx - 1024], 123 +// CHECK: encoding: [0x62,0x73,0xad,0x00,0x55,0x6a,0x80,0x7b] + vfixupimmsd xmm13,xmm26,QWORD PTR [rdx-0x400],0x7b + +// CHECK: vfixupimmsd xmm13 , xmm26, qword ptr [rdx - 1032], 123 +// CHECK: encoding: [0x62,0x73,0xad,0x00,0x55,0xaa,0xf8,0xfb,0xff,0xff,0x7b] + vfixupimmsd xmm13,xmm26,QWORD PTR [rdx-0x408],0x7b diff --git a/test/MC/X86/intel-syntax.s b/test/MC/X86/intel-syntax.s index fce0c65781cd0..30fe6c8b9b158 100644 --- a/test/MC/X86/intel-syntax.s +++ b/test/MC/X86/intel-syntax.s @@ -662,3 +662,6 @@ frstor dword ptr [eax] // CHECK: fnsave (%eax) // CHECK: fxrstor (%eax) // CHECK: frstor (%eax) + +// CHECK: cmpnless %xmm1, %xmm0 +cmpnless xmm0, xmm1 diff --git a/test/MC/X86/mpx-encodings.s b/test/MC/X86/mpx-encodings.s new file mode 100644 index 0000000000000..6fe4e0f328ec6 --- /dev/null +++ b/test/MC/X86/mpx-encodings.s @@ -0,0 +1,38 @@ +// RUN: llvm-mc -triple x86_64-unknown-unknown -mcpu=knl --show-encoding %s | FileCheck %s + +// CHECK: bndmk (%rax), %bnd0 +// CHECK: encoding: [0xf3,0x48,0x0f,0x1b,0x00] +bndmk (%rax), %bnd0 + +// CHECK: bndmk 1024(%rax), %bnd1 +// CHECK: encoding: [0xf3,0x48,0x0f,0x1b,0x88,0x00,0x04,0x00,0x00] +bndmk 1024(%rax), %bnd1 + +// CHECK: bndmov %bnd2, %bnd1 +// CHECK: encoding: [0x66,0x0f,0x1b,0xd1] +bndmov %bnd2, %bnd1 + +// CHECK: bndmov %bnd1, 1024(%r9) +// CHECK: encoding: [0x66,0x49,0x0f,0x1b,0x89,0x00,0x04,0x00,0x00] +bndmov %bnd1, 1024(%r9) + +// CHECK: bndstx %bnd1, 1024(%rax) +// CHECK: encoding: [0x0f,0x1b,0x88,0x00,0x04,0x00,0x00] +bndstx %bnd1, 1024(%rax) + +// CHECK: bndldx 1024(%r8), %bnd1 +// CHECK: encoding: [0x41,0x0f,0x1a,0x88,0x00,0x04,0x00,0x00] +bndldx 1024(%r8), %bnd1 + +// CHECK: bndcl 121(%r10), %bnd1 +// CHECK: encoding: [0xf3,0x49,0x0f,0x1a,0x4a,0x79] +bndcl 121(%r10), %bnd1 + +// CHECK: bndcn 121(%rcx), %bnd3 +// CHECK: encoding: [0xf2,0x48,0x0f,0x1b,0x59,0x79] +bndcn 121(%rcx), %bnd3 + +// CHECK: bndcu %rdx, %bnd3 +// CHECK: encoding: [0xf2,0x48,0x0f,0x1a,0xda] +bndcu %rdx, %bnd3 + diff --git a/test/MC/X86/x86-64-avx512bw.s b/test/MC/X86/x86-64-avx512bw.s index ba043da663293..b81e3adffd251 100644 --- a/test/MC/X86/x86-64-avx512bw.s +++ b/test/MC/X86/x86-64-avx512bw.s @@ -3308,3 +3308,38 @@ // CHECK: encoding: [0x62,0xe1,0x5d,0x40,0xd9,0xa2,0xc0,0xdf,0xff,0xff] vpsubusw -8256(%rdx), %zmm20, %zmm20 +// CHECK: vpermw %zmm21, %zmm19, %zmm22 +// CHECK: encoding: [0x62,0xa2,0xe5,0x40,0x8d,0xf5] + vpermw %zmm21, %zmm19, %zmm22 + +// CHECK: vpermw %zmm21, %zmm19, %zmm22 {%k6} +// CHECK: encoding: [0x62,0xa2,0xe5,0x46,0x8d,0xf5] + vpermw %zmm21, %zmm19, %zmm22 {%k6} + +// CHECK: vpermw %zmm21, %zmm19, %zmm22 {%k6} {z} +// CHECK: encoding: [0x62,0xa2,0xe5,0xc6,0x8d,0xf5] + vpermw %zmm21, %zmm19, %zmm22 {%k6} {z} + +// CHECK: vpermw (%rcx), %zmm19, %zmm22 +// CHECK: encoding: [0x62,0xe2,0xe5,0x40,0x8d,0x31] + vpermw (%rcx), %zmm19, %zmm22 + +// CHECK: vpermw 291(%rax,%r14,8), %zmm19, %zmm22 +// CHECK: encoding: [0x62,0xa2,0xe5,0x40,0x8d,0xb4,0xf0,0x23,0x01,0x00,0x00] + vpermw 291(%rax,%r14,8), %zmm19, %zmm22 + +// CHECK: vpermw 8128(%rdx), %zmm19, %zmm22 +// CHECK: encoding: [0x62,0xe2,0xe5,0x40,0x8d,0x72,0x7f] + vpermw 8128(%rdx), %zmm19, %zmm22 + +// CHECK: vpermw 8192(%rdx), %zmm19, %zmm22 +// CHECK: encoding: [0x62,0xe2,0xe5,0x40,0x8d,0xb2,0x00,0x20,0x00,0x00] + vpermw 8192(%rdx), %zmm19, %zmm22 + +// CHECK: vpermw -8192(%rdx), %zmm19, %zmm22 +// CHECK: encoding: [0x62,0xe2,0xe5,0x40,0x8d,0x72,0x80] + vpermw -8192(%rdx), %zmm19, %zmm22 + +// CHECK: vpermw -8256(%rdx), %zmm19, %zmm22 +// CHECK: encoding: [0x62,0xe2,0xe5,0x40,0x8d,0xb2,0xc0,0xdf,0xff,0xff] + vpermw -8256(%rdx), %zmm19, %zmm22 diff --git a/test/MC/X86/x86-64-avx512bw_vl.s b/test/MC/X86/x86-64-avx512bw_vl.s index bd16b0ed95c76..0ba5e17077bab 100644 --- a/test/MC/X86/x86-64-avx512bw_vl.s +++ b/test/MC/X86/x86-64-avx512bw_vl.s @@ -5775,3 +5775,164 @@ // CHECK: vpsubusw -4128(%rdx), %ymm25, %ymm27 // CHECK: encoding: [0x62,0x61,0x35,0x20,0xd9,0x9a,0xe0,0xef,0xff,0xff] vpsubusw -4128(%rdx), %ymm25, %ymm27 + +// CHECK: vpshufhw $171, %xmm19, %xmm23 +// CHECK: encoding: [0x62,0xa1,0xfe,0x08,0x70,0xfb,0xab] + vpshufhw $171, %xmm19, %xmm23 + +// CHECK: vpshufhw $171, %xmm19, %xmm23 {%k7} +// CHECK: encoding: [0x62,0xa1,0xfe,0x0f,0x70,0xfb,0xab] + vpshufhw $171, %xmm19, %xmm23 {%k7} + +// CHECK: vpshufhw $171, %xmm19, %xmm23 {%k7} {z} +// CHECK: encoding: [0x62,0xa1,0xfe,0x8f,0x70,0xfb,0xab] + vpshufhw $171, %xmm19, %xmm23 {%k7} {z} + +// CHECK: vpshufhw $123, %xmm19, %xmm23 +// CHECK: encoding: [0x62,0xa1,0xfe,0x08,0x70,0xfb,0x7b] + vpshufhw $123, %xmm19, %xmm23 + +// CHECK: vpshufhw $123, (%rcx), %xmm23 +// CHECK: encoding: [0x62,0xe1,0xfe,0x08,0x70,0x39,0x7b] + vpshufhw $123, (%rcx), %xmm23 + +// CHECK: vpshufhw $123, 291(%rax,%r14,8), %xmm23 +// CHECK: encoding: [0x62,0xa1,0xfe,0x08,0x70,0xbc,0xf0,0x23,0x01,0x00,0x00,0x7b] + vpshufhw $123, 291(%rax,%r14,8), %xmm23 + +// CHECK: vpshufhw $123, 2032(%rdx), %xmm23 +// CHECK: encoding: [0x62,0xe1,0xfe,0x08,0x70,0x7a,0x7f,0x7b] + vpshufhw $123, 2032(%rdx), %xmm23 + +// CHECK: vpshufhw $123, 2048(%rdx), %xmm23 +// CHECK: encoding: [0x62,0xe1,0xfe,0x08,0x70,0xba,0x00,0x08,0x00,0x00,0x7b] + vpshufhw $123, 2048(%rdx), %xmm23 + +// CHECK: vpshufhw $123, -2048(%rdx), %xmm23 +// CHECK: encoding: [0x62,0xe1,0xfe,0x08,0x70,0x7a,0x80,0x7b] + vpshufhw $123, -2048(%rdx), %xmm23 + +// CHECK: vpshufhw $123, -2064(%rdx), %xmm23 +// CHECK: encoding: [0x62,0xe1,0xfe,0x08,0x70,0xba,0xf0,0xf7,0xff,0xff,0x7b] + vpshufhw $123, -2064(%rdx), %xmm23 + +// CHECK: vpshufhw $171, %ymm17, %ymm29 +// CHECK: encoding: [0x62,0x21,0xfe,0x28,0x70,0xe9,0xab] + vpshufhw $171, %ymm17, %ymm29 + +// CHECK: vpshufhw $171, %ymm17, %ymm29 {%k7} +// CHECK: encoding: [0x62,0x21,0xfe,0x2f,0x70,0xe9,0xab] + vpshufhw $171, %ymm17, %ymm29 {%k7} + +// CHECK: vpshufhw $171, %ymm17, %ymm29 {%k7} {z} +// CHECK: encoding: [0x62,0x21,0xfe,0xaf,0x70,0xe9,0xab] + vpshufhw $171, %ymm17, %ymm29 {%k7} {z} + +// CHECK: vpshufhw $123, %ymm17, %ymm29 +// CHECK: encoding: [0x62,0x21,0xfe,0x28,0x70,0xe9,0x7b] + vpshufhw $123, %ymm17, %ymm29 + +// CHECK: vpshufhw $123, (%rcx), %ymm29 +// CHECK: encoding: [0x62,0x61,0xfe,0x28,0x70,0x29,0x7b] + vpshufhw $123, (%rcx), %ymm29 + +// CHECK: vpshufhw $123, 291(%rax,%r14,8), %ymm29 +// CHECK: encoding: [0x62,0x21,0xfe,0x28,0x70,0xac,0xf0,0x23,0x01,0x00,0x00,0x7b] + vpshufhw $123, 291(%rax,%r14,8), %ymm29 + +// CHECK: vpshufhw $123, 4064(%rdx), %ymm29 +// CHECK: encoding: [0x62,0x61,0xfe,0x28,0x70,0x6a,0x7f,0x7b] + vpshufhw $123, 4064(%rdx), %ymm29 + +// CHECK: vpshufhw $123, 4096(%rdx), %ymm29 +// CHECK: encoding: [0x62,0x61,0xfe,0x28,0x70,0xaa,0x00,0x10,0x00,0x00,0x7b] + vpshufhw $123, 4096(%rdx), %ymm29 + +// CHECK: vpshufhw $123, -4096(%rdx), %ymm29 +// CHECK: encoding: [0x62,0x61,0xfe,0x28,0x70,0x6a,0x80,0x7b] + vpshufhw $123, -4096(%rdx), %ymm29 + +// CHECK: vpshufhw $123, -4128(%rdx), %ymm29 +// CHECK: encoding: [0x62,0x61,0xfe,0x28,0x70,0xaa,0xe0,0xef,0xff,0xff,0x7b] + vpshufhw $123, -4128(%rdx), %ymm29 + +// CHECK: vpshuflw $171, %xmm27, %xmm30 +// CHECK: encoding: [0x62,0x01,0xff,0x08,0x70,0xf3,0xab] + vpshuflw $171, %xmm27, %xmm30 + +// CHECK: vpshuflw $171, %xmm27, %xmm30 {%k6} +// CHECK: encoding: [0x62,0x01,0xff,0x0e,0x70,0xf3,0xab] + vpshuflw $171, %xmm27, %xmm30 {%k6} + +// CHECK: vpshuflw $171, %xmm27, %xmm30 {%k6} {z} +// CHECK: encoding: [0x62,0x01,0xff,0x8e,0x70,0xf3,0xab] + vpshuflw $171, %xmm27, %xmm30 {%k6} {z} + +// CHECK: vpshuflw $123, %xmm27, %xmm30 +// CHECK: encoding: [0x62,0x01,0xff,0x08,0x70,0xf3,0x7b] + vpshuflw $123, %xmm27, %xmm30 + +// CHECK: vpshuflw $123, (%rcx), %xmm30 +// CHECK: encoding: [0x62,0x61,0xff,0x08,0x70,0x31,0x7b] + vpshuflw $123, (%rcx), %xmm30 + +// CHECK: vpshuflw $123, 291(%rax,%r14,8), %xmm30 +// CHECK: encoding: [0x62,0x21,0xff,0x08,0x70,0xb4,0xf0,0x23,0x01,0x00,0x00,0x7b] + vpshuflw $123, 291(%rax,%r14,8), %xmm30 + +// CHECK: vpshuflw $123, 2032(%rdx), %xmm30 +// CHECK: encoding: [0x62,0x61,0xff,0x08,0x70,0x72,0x7f,0x7b] + vpshuflw $123, 2032(%rdx), %xmm30 + +// CHECK: vpshuflw $123, 2048(%rdx), %xmm30 +// CHECK: encoding: [0x62,0x61,0xff,0x08,0x70,0xb2,0x00,0x08,0x00,0x00,0x7b] + vpshuflw $123, 2048(%rdx), %xmm30 + +// CHECK: vpshuflw $123, -2048(%rdx), %xmm30 +// CHECK: encoding: [0x62,0x61,0xff,0x08,0x70,0x72,0x80,0x7b] + vpshuflw $123, -2048(%rdx), %xmm30 + +// CHECK: vpshuflw $123, -2064(%rdx), %xmm30 +// CHECK: encoding: [0x62,0x61,0xff,0x08,0x70,0xb2,0xf0,0xf7,0xff,0xff,0x7b] + vpshuflw $123, -2064(%rdx), %xmm30 + +// CHECK: vpshuflw $171, %ymm25, %ymm25 +// CHECK: encoding: [0x62,0x01,0xff,0x28,0x70,0xc9,0xab] + vpshuflw $171, %ymm25, %ymm25 + +// CHECK: vpshuflw $171, %ymm25, %ymm25 {%k5} +// CHECK: encoding: [0x62,0x01,0xff,0x2d,0x70,0xc9,0xab] + vpshuflw $171, %ymm25, %ymm25 {%k5} + +// CHECK: vpshuflw $171, %ymm25, %ymm25 {%k5} {z} +// CHECK: encoding: [0x62,0x01,0xff,0xad,0x70,0xc9,0xab] + vpshuflw $171, %ymm25, %ymm25 {%k5} {z} + +// CHECK: vpshuflw $123, %ymm25, %ymm25 +// CHECK: encoding: [0x62,0x01,0xff,0x28,0x70,0xc9,0x7b] + vpshuflw $123, %ymm25, %ymm25 + +// CHECK: vpshuflw $123, (%rcx), %ymm25 +// CHECK: encoding: [0x62,0x61,0xff,0x28,0x70,0x09,0x7b] + vpshuflw $123, (%rcx), %ymm25 + +// CHECK: vpshuflw $123, 291(%rax,%r14,8), %ymm25 +// CHECK: encoding: [0x62,0x21,0xff,0x28,0x70,0x8c,0xf0,0x23,0x01,0x00,0x00,0x7b] + vpshuflw $123, 291(%rax,%r14,8), %ymm25 + +// CHECK: vpshuflw $123, 4064(%rdx), %ymm25 +// CHECK: encoding: [0x62,0x61,0xff,0x28,0x70,0x4a,0x7f,0x7b] + vpshuflw $123, 4064(%rdx), %ymm25 + +// CHECK: vpshuflw $123, 4096(%rdx), %ymm25 +// CHECK: encoding: [0x62,0x61,0xff,0x28,0x70,0x8a,0x00,0x10,0x00,0x00,0x7b] + vpshuflw $123, 4096(%rdx), %ymm25 + +// CHECK: vpshuflw $123, -4096(%rdx), %ymm25 +// CHECK: encoding: [0x62,0x61,0xff,0x28,0x70,0x4a,0x80,0x7b] + vpshuflw $123, -4096(%rdx), %ymm25 + +// CHECK: vpshuflw $123, -4128(%rdx), %ymm25 +// CHECK: encoding: [0x62,0x61,0xff,0x28,0x70,0x8a,0xe0,0xef,0xff,0xff,0x7b] + vpshuflw $123, -4128(%rdx), %ymm25 + diff --git a/test/MC/X86/x86-64-avx512dq.s b/test/MC/X86/x86-64-avx512dq.s index 7d33abd7deb1f..92656dd3405ef 100644 --- a/test/MC/X86/x86-64-avx512dq.s +++ b/test/MC/X86/x86-64-avx512dq.s @@ -1158,3 +1158,235 @@ // CHECK: vbroadcasti64x2 -2064(%rdx), %zmm20 // CHECK: encoding: [0x62,0xe2,0xfd,0x48,0x5a,0xa2,0xf0,0xf7,0xff,0xff] vbroadcasti64x2 -2064(%rdx), %zmm20 + +// CHECK: vrangepd $171, %zmm17, %zmm19, %zmm17 +// CHECK: encoding: [0x62,0xa3,0xe5,0x40,0x50,0xc9,0xab] + vrangepd $0xab, %zmm17, %zmm19, %zmm17 + +// CHECK: vrangepd $171, %zmm17, %zmm19, %zmm17 {%k6} +// CHECK: encoding: [0x62,0xa3,0xe5,0x46,0x50,0xc9,0xab] + vrangepd $0xab, %zmm17, %zmm19, %zmm17 {%k6} + +// CHECK: vrangepd $171, %zmm17, %zmm19, %zmm17 {%k6} {z} +// CHECK: encoding: [0x62,0xa3,0xe5,0xc6,0x50,0xc9,0xab] + vrangepd $0xab, %zmm17, %zmm19, %zmm17 {%k6} {z} + +// CHECK: vrangepd $171,{sae}, %zmm17, %zmm19, %zmm17 +// CHECK: encoding: [0x62,0xa3,0xe5,0x10,0x50,0xc9,0xab] + vrangepd $0xab,{sae}, %zmm17, %zmm19, %zmm17 + +// CHECK: vrangepd $123, %zmm17, %zmm19, %zmm17 +// CHECK: encoding: [0x62,0xa3,0xe5,0x40,0x50,0xc9,0x7b] + vrangepd $0x7b, %zmm17, %zmm19, %zmm17 + +// CHECK: vrangepd $123,{sae}, %zmm17, %zmm19, %zmm17 +// CHECK: encoding: [0x62,0xa3,0xe5,0x10,0x50,0xc9,0x7b] + vrangepd $0x7b,{sae}, %zmm17, %zmm19, %zmm17 + +// CHECK: vrangepd $123, (%rcx), %zmm19, %zmm17 +// CHECK: encoding: [0x62,0xe3,0xe5,0x40,0x50,0x09,0x7b] + vrangepd $0x7b,(%rcx), %zmm19, %zmm17 + +// CHECK: vrangepd $123, 291(%rax,%r14,8), %zmm19, %zmm17 +// CHECK: encoding: [0x62,0xa3,0xe5,0x40,0x50,0x8c,0xf0,0x23,0x01,0x00,0x00,0x7b] + vrangepd $0x7b,291(%rax,%r14,8), %zmm19, %zmm17 + +// CHECK: vrangepd $123, (%rcx){1to8}, %zmm19, %zmm17 +// CHECK: encoding: [0x62,0xe3,0xe5,0x50,0x50,0x09,0x7b] + vrangepd $0x7b,(%rcx){1to8}, %zmm19, %zmm17 + +// CHECK: vrangepd $123, 8128(%rdx), %zmm19, %zmm17 +// CHECK: encoding: [0x62,0xe3,0xe5,0x40,0x50,0x4a,0x7f,0x7b] + vrangepd $0x7b,8128(%rdx), %zmm19, %zmm17 + +// CHECK: vrangepd $123, 8192(%rdx), %zmm19, %zmm17 +// CHECK: encoding: [0x62,0xe3,0xe5,0x40,0x50,0x8a,0x00,0x20,0x00,0x00,0x7b] + vrangepd $0x7b,8192(%rdx), %zmm19, %zmm17 + +// CHECK: vrangepd $123, -8192(%rdx), %zmm19, %zmm17 +// CHECK: encoding: [0x62,0xe3,0xe5,0x40,0x50,0x4a,0x80,0x7b] + vrangepd $0x7b,-8192(%rdx), %zmm19, %zmm17 + +// CHECK: vrangepd $123, -8256(%rdx), %zmm19, %zmm17 +// CHECK: encoding: [0x62,0xe3,0xe5,0x40,0x50,0x8a,0xc0,0xdf,0xff,0xff,0x7b] + vrangepd $0x7b,-8256(%rdx), %zmm19, %zmm17 + +// CHECK: vrangepd $123, 1016(%rdx){1to8}, %zmm19, %zmm17 +// CHECK: encoding: [0x62,0xe3,0xe5,0x50,0x50,0x4a,0x7f,0x7b] + vrangepd $0x7b,1016(%rdx){1to8}, %zmm19, %zmm17 + +// CHECK: vrangepd $123, 1024(%rdx){1to8}, %zmm19, %zmm17 +// CHECK: encoding: [0x62,0xe3,0xe5,0x50,0x50,0x8a,0x00,0x04,0x00,0x00,0x7b] + vrangepd $0x7b,1024(%rdx){1to8}, %zmm19, %zmm17 + +// CHECK: vrangepd $123, -1024(%rdx){1to8}, %zmm19, %zmm17 +// CHECK: encoding: [0x62,0xe3,0xe5,0x50,0x50,0x4a,0x80,0x7b] + vrangepd $0x7b,-1024(%rdx){1to8}, %zmm19, %zmm17 + +// CHECK: vrangepd $123, -1032(%rdx){1to8}, %zmm19, %zmm17 +// CHECK: encoding: [0x62,0xe3,0xe5,0x50,0x50,0x8a,0xf8,0xfb,0xff,0xff,0x7b] + vrangepd $0x7b,-1032(%rdx){1to8}, %zmm19, %zmm17 + +// CHECK: vrangeps $171, %zmm17, %zmm21, %zmm24 +// CHECK: encoding: [0x62,0x23,0x55,0x40,0x50,0xc1,0xab] + vrangeps $0xab, %zmm17, %zmm21, %zmm24 + +// CHECK: vrangeps $171, %zmm17, %zmm21, %zmm24 {%k6} +// CHECK: encoding: [0x62,0x23,0x55,0x46,0x50,0xc1,0xab] + vrangeps $0xab, %zmm17, %zmm21, %zmm24 {%k6} + +// CHECK: vrangeps $171, %zmm17, %zmm21, %zmm24 {%k6} {z} +// CHECK: encoding: [0x62,0x23,0x55,0xc6,0x50,0xc1,0xab] + vrangeps $0xab, %zmm17, %zmm21, %zmm24 {%k6} {z} + +// CHECK: vrangeps $171,{sae}, %zmm17, %zmm21, %zmm24 +// CHECK: encoding: [0x62,0x23,0x55,0x10,0x50,0xc1,0xab] + vrangeps $0xab,{sae}, %zmm17, %zmm21, %zmm24 + +// CHECK: vrangeps $123, %zmm17, %zmm21, %zmm24 +// CHECK: encoding: [0x62,0x23,0x55,0x40,0x50,0xc1,0x7b] + vrangeps $0x7b, %zmm17, %zmm21, %zmm24 + +// CHECK: vrangeps $123,{sae}, %zmm17, %zmm21, %zmm24 +// CHECK: encoding: [0x62,0x23,0x55,0x10,0x50,0xc1,0x7b] + vrangeps $0x7b,{sae}, %zmm17, %zmm21, %zmm24 + +// CHECK: vrangeps $123, (%rcx), %zmm21, %zmm24 +// CHECK: encoding: [0x62,0x63,0x55,0x40,0x50,0x01,0x7b] + vrangeps $0x7b,(%rcx), %zmm21, %zmm24 + +// CHECK: vrangeps $123, 291(%rax,%r14,8), %zmm21, %zmm24 +// CHECK: encoding: [0x62,0x23,0x55,0x40,0x50,0x84,0xf0,0x23,0x01,0x00,0x00,0x7b] + vrangeps $0x7b,291(%rax,%r14,8), %zmm21, %zmm24 + +// CHECK: vrangeps $123, (%rcx){1to16}, %zmm21, %zmm24 +// CHECK: encoding: [0x62,0x63,0x55,0x50,0x50,0x01,0x7b] + vrangeps $0x7b,(%rcx){1to16}, %zmm21, %zmm24 + +// CHECK: vrangeps $123, 8128(%rdx), %zmm21, %zmm24 +// CHECK: encoding: [0x62,0x63,0x55,0x40,0x50,0x42,0x7f,0x7b] + vrangeps $0x7b,8128(%rdx), %zmm21, %zmm24 + +// CHECK: vrangeps $123, 8192(%rdx), %zmm21, %zmm24 +// CHECK: encoding: [0x62,0x63,0x55,0x40,0x50,0x82,0x00,0x20,0x00,0x00,0x7b] + vrangeps $0x7b,8192(%rdx), %zmm21, %zmm24 + +// CHECK: vrangeps $123, -8192(%rdx), %zmm21, %zmm24 +// CHECK: encoding: [0x62,0x63,0x55,0x40,0x50,0x42,0x80,0x7b] + vrangeps $0x7b,-8192(%rdx), %zmm21, %zmm24 + +// CHECK: vrangeps $123, -8256(%rdx), %zmm21, %zmm24 +// CHECK: encoding: [0x62,0x63,0x55,0x40,0x50,0x82,0xc0,0xdf,0xff,0xff,0x7b] + vrangeps $0x7b,-8256(%rdx), %zmm21, %zmm24 + +// CHECK: vrangeps $123, 508(%rdx){1to16}, %zmm21, %zmm24 +// CHECK: encoding: [0x62,0x63,0x55,0x50,0x50,0x42,0x7f,0x7b] + vrangeps $0x7b,508(%rdx){1to16}, %zmm21, %zmm24 + +// CHECK: vrangeps $123, 512(%rdx){1to16}, %zmm21, %zmm24 +// CHECK: encoding: [0x62,0x63,0x55,0x50,0x50,0x82,0x00,0x02,0x00,0x00,0x7b] + vrangeps $0x7b,512(%rdx){1to16}, %zmm21, %zmm24 + +// CHECK: vrangeps $123, -512(%rdx){1to16}, %zmm21, %zmm24 +// CHECK: encoding: [0x62,0x63,0x55,0x50,0x50,0x42,0x80,0x7b] + vrangeps $0x7b,-512(%rdx){1to16}, %zmm21, %zmm24 + +// CHECK: vrangeps $123, -516(%rdx){1to16}, %zmm21, %zmm24 +// CHECK: encoding: [0x62,0x63,0x55,0x50,0x50,0x82,0xfc,0xfd,0xff,0xff,0x7b] + vrangeps $0x7b,-516(%rdx){1to16}, %zmm21, %zmm24 + +// CHECK: vrangesd $171, %xmm21, %xmm17, %xmm17 +// CHECK: encoding: [0x62,0xa3,0xf5,0x00,0x51,0xcd,0xab] + vrangesd $0xab, %xmm21, %xmm17, %xmm17 + +// CHECK: vrangesd $171, %xmm21, %xmm17, %xmm17 {%k5} +// CHECK: encoding: [0x62,0xa3,0xf5,0x05,0x51,0xcd,0xab] + vrangesd $0xab, %xmm21, %xmm17, %xmm17 {%k5} + +// CHECK: vrangesd $171, %xmm21, %xmm17, %xmm17 {%k5} {z} +// CHECK: encoding: [0x62,0xa3,0xf5,0x85,0x51,0xcd,0xab] + vrangesd $0xab, %xmm21, %xmm17, %xmm17 {%k5} {z} + +// CHECK: vrangesd $171,{sae}, %xmm21, %xmm17, %xmm17 +// CHECK: encoding: [0x62,0xa3,0xf5,0x10,0x51,0xcd,0xab] + vrangesd $0xab,{sae}, %xmm21, %xmm17, %xmm17 + +// CHECK: vrangesd $123, %xmm21, %xmm17, %xmm17 +// CHECK: encoding: [0x62,0xa3,0xf5,0x00,0x51,0xcd,0x7b] + vrangesd $0x7b, %xmm21, %xmm17, %xmm17 + +// CHECK: vrangesd $123,{sae}, %xmm21, %xmm17, %xmm17 +// CHECK: encoding: [0x62,0xa3,0xf5,0x10,0x51,0xcd,0x7b] + vrangesd $0x7b,{sae}, %xmm21, %xmm17, %xmm17 + +// CHECK: vrangesd $123, (%rcx), %xmm17, %xmm17 +// CHECK: encoding: [0x62,0xe3,0xf5,0x00,0x51,0x09,0x7b] + vrangesd $0x7b,(%rcx), %xmm17, %xmm17 + +// CHECK: vrangesd $123, 291(%rax,%r14,8), %xmm17, %xmm17 +// CHECK: encoding: [0x62,0xa3,0xf5,0x00,0x51,0x8c,0xf0,0x23,0x01,0x00,0x00,0x7b] + vrangesd $0x7b,291(%rax,%r14,8), %xmm17, %xmm17 + +// CHECK: vrangesd $123, 1016(%rdx), %xmm17, %xmm17 +// CHECK: encoding: [0x62,0xe3,0xf5,0x00,0x51,0x4a,0x7f,0x7b] + vrangesd $0x7b,1016(%rdx), %xmm17, %xmm17 + +// CHECK: vrangesd $123, 1024(%rdx), %xmm17, %xmm17 +// CHECK: encoding: [0x62,0xe3,0xf5,0x00,0x51,0x8a,0x00,0x04,0x00,0x00,0x7b] + vrangesd $0x7b,1024(%rdx), %xmm17, %xmm17 + +// CHECK: vrangesd $123, -1024(%rdx), %xmm17, %xmm17 +// CHECK: encoding: [0x62,0xe3,0xf5,0x00,0x51,0x4a,0x80,0x7b] + vrangesd $0x7b,-1024(%rdx), %xmm17, %xmm17 + +// CHECK: vrangesd $123, -1032(%rdx), %xmm17, %xmm17 +// CHECK: encoding: [0x62,0xe3,0xf5,0x00,0x51,0x8a,0xf8,0xfb,0xff,0xff,0x7b] + vrangesd $0x7b,-1032(%rdx), %xmm17, %xmm17 + +// CHECK: vrangess $171, %xmm20, %xmm24, %xmm25 +// CHECK: encoding: [0x62,0x23,0x3d,0x00,0x51,0xcc,0xab] + vrangess $0xab, %xmm20, %xmm24, %xmm25 + +// CHECK: vrangess $171, %xmm20, %xmm24, %xmm25 {%k5} +// CHECK: encoding: [0x62,0x23,0x3d,0x05,0x51,0xcc,0xab] + vrangess $0xab, %xmm20, %xmm24, %xmm25 {%k5} + +// CHECK: vrangess $171, %xmm20, %xmm24, %xmm25 {%k5} {z} +// CHECK: encoding: [0x62,0x23,0x3d,0x85,0x51,0xcc,0xab] + vrangess $0xab, %xmm20, %xmm24, %xmm25 {%k5} {z} + +// CHECK: vrangess $171,{sae}, %xmm20, %xmm24, %xmm25 +// CHECK: encoding: [0x62,0x23,0x3d,0x10,0x51,0xcc,0xab] + vrangess $0xab,{sae}, %xmm20, %xmm24, %xmm25 + +// CHECK: vrangess $123, %xmm20, %xmm24, %xmm25 +// CHECK: encoding: [0x62,0x23,0x3d,0x00,0x51,0xcc,0x7b] + vrangess $0x7b, %xmm20, %xmm24, %xmm25 + +// CHECK: vrangess $123,{sae}, %xmm20, %xmm24, %xmm25 +// CHECK: encoding: [0x62,0x23,0x3d,0x10,0x51,0xcc,0x7b] + vrangess $0x7b,{sae}, %xmm20, %xmm24, %xmm25 + +// CHECK: vrangess $123, (%rcx), %xmm24, %xmm25 +// CHECK: encoding: [0x62,0x63,0x3d,0x00,0x51,0x09,0x7b] + vrangess $0x7b,(%rcx), %xmm24, %xmm25 + +// CHECK: vrangess $123, 291(%rax,%r14,8), %xmm24, %xmm25 +// CHECK: encoding: [0x62,0x23,0x3d,0x00,0x51,0x8c,0xf0,0x23,0x01,0x00,0x00,0x7b] + vrangess $0x7b,291(%rax,%r14,8), %xmm24, %xmm25 + +// CHECK: vrangess $123, 508(%rdx), %xmm24, %xmm25 +// CHECK: encoding: [0x62,0x63,0x3d,0x00,0x51,0x4a,0x7f,0x7b] + vrangess $0x7b,508(%rdx), %xmm24, %xmm25 + +// CHECK: vrangess $123, 512(%rdx), %xmm24, %xmm25 +// CHECK: encoding: [0x62,0x63,0x3d,0x00,0x51,0x8a,0x00,0x02,0x00,0x00,0x7b] + vrangess $0x7b,512(%rdx), %xmm24, %xmm25 + +// CHECK: vrangess $123, -512(%rdx), %xmm24, %xmm25 +// CHECK: encoding: [0x62,0x63,0x3d,0x00,0x51,0x4a,0x80,0x7b] + vrangess $0x7b,-512(%rdx), %xmm24, %xmm25 + +// CHECK: vrangess $123, -516(%rdx), %xmm24, %xmm25 +// CHECK: encoding: [0x62,0x63,0x3d,0x00,0x51,0x8a,0xfc,0xfd,0xff,0xff,0x7b] + vrangess $0x7b,-516(%rdx), %xmm24, %xmm25 diff --git a/test/MC/X86/x86-64-avx512dq_vl.s b/test/MC/X86/x86-64-avx512dq_vl.s index 2de4564b5f51a..d14ae6ec3741b 100644 --- a/test/MC/X86/x86-64-avx512dq_vl.s +++ b/test/MC/X86/x86-64-avx512dq_vl.s @@ -1968,3 +1968,242 @@ // CHECK: encoding: [0x62,0xe2,0xfd,0x28,0x5a,0x92,0xf0,0xf7,0xff,0xff] vbroadcasti64x2 -2064(%rdx), %ymm18 +// CHECK: vrangepd $171, %xmm26, %xmm27, %xmm25 +// CHECK: encoding: [0x62,0x03,0xa5,0x00,0x50,0xca,0xab] + vrangepd $0xab, %xmm26, %xmm27, %xmm25 + +// CHECK: vrangepd $171, %xmm26, %xmm27, %xmm25 {%k6} +// CHECK: encoding: [0x62,0x03,0xa5,0x06,0x50,0xca,0xab] + vrangepd $0xab, %xmm26, %xmm27, %xmm25 {%k6} + +// CHECK: vrangepd $171, %xmm26, %xmm27, %xmm25 {%k6} {z} +// CHECK: encoding: [0x62,0x03,0xa5,0x86,0x50,0xca,0xab] + vrangepd $0xab, %xmm26, %xmm27, %xmm25 {%k6} {z} + +// CHECK: vrangepd $123, %xmm26, %xmm27, %xmm25 +// CHECK: encoding: [0x62,0x03,0xa5,0x00,0x50,0xca,0x7b] + vrangepd $0x7b, %xmm26, %xmm27, %xmm25 + +// CHECK: vrangepd $123, (%rcx), %xmm27, %xmm25 +// CHECK: encoding: [0x62,0x63,0xa5,0x00,0x50,0x09,0x7b] + vrangepd $0x7b,(%rcx), %xmm27, %xmm25 + +// CHECK: vrangepd $123, 291(%rax,%r14,8), %xmm27, %xmm25 +// CHECK: encoding: [0x62,0x23,0xa5,0x00,0x50,0x8c,0xf0,0x23,0x01,0x00,0x00,0x7b] + vrangepd $0x7b,291(%rax,%r14,8), %xmm27, %xmm25 + +// CHECK: vrangepd $123, (%rcx){1to2}, %xmm27, %xmm25 +// CHECK: encoding: [0x62,0x63,0xa5,0x10,0x50,0x09,0x7b] + vrangepd $0x7b,(%rcx){1to2}, %xmm27, %xmm25 + +// CHECK: vrangepd $123, 2032(%rdx), %xmm27, %xmm25 +// CHECK: encoding: [0x62,0x63,0xa5,0x00,0x50,0x4a,0x7f,0x7b] + vrangepd $0x7b,2032(%rdx), %xmm27, %xmm25 + +// CHECK: vrangepd $123, 2048(%rdx), %xmm27, %xmm25 +// CHECK: encoding: [0x62,0x63,0xa5,0x00,0x50,0x8a,0x00,0x08,0x00,0x00,0x7b] + vrangepd $0x7b,2048(%rdx), %xmm27, %xmm25 + +// CHECK: vrangepd $123, -2048(%rdx), %xmm27, %xmm25 +// CHECK: encoding: [0x62,0x63,0xa5,0x00,0x50,0x4a,0x80,0x7b] + vrangepd $0x7b,-2048(%rdx), %xmm27, %xmm25 + +// CHECK: vrangepd $123, -2064(%rdx), %xmm27, %xmm25 +// CHECK: encoding: [0x62,0x63,0xa5,0x00,0x50,0x8a,0xf0,0xf7,0xff,0xff,0x7b] + vrangepd $0x7b,-2064(%rdx), %xmm27, %xmm25 + +// CHECK: vrangepd $123, 1016(%rdx){1to2}, %xmm27, %xmm25 +// CHECK: encoding: [0x62,0x63,0xa5,0x10,0x50,0x4a,0x7f,0x7b] + vrangepd $0x7b,1016(%rdx){1to2}, %xmm27, %xmm25 + +// CHECK: vrangepd $123, 1024(%rdx){1to2}, %xmm27, %xmm25 +// CHECK: encoding: [0x62,0x63,0xa5,0x10,0x50,0x8a,0x00,0x04,0x00,0x00,0x7b] + vrangepd $0x7b,1024(%rdx){1to2}, %xmm27, %xmm25 + +// CHECK: vrangepd $123, -1024(%rdx){1to2}, %xmm27, %xmm25 +// CHECK: encoding: [0x62,0x63,0xa5,0x10,0x50,0x4a,0x80,0x7b] + vrangepd $0x7b,-1024(%rdx){1to2}, %xmm27, %xmm25 + +// CHECK: vrangepd $123, -1032(%rdx){1to2}, %xmm27, %xmm25 +// CHECK: encoding: [0x62,0x63,0xa5,0x10,0x50,0x8a,0xf8,0xfb,0xff,0xff,0x7b] + vrangepd $0x7b,-1032(%rdx){1to2}, %xmm27, %xmm25 + +// CHECK: vrangepd $171, %ymm28, %ymm27, %ymm29 +// CHECK: encoding: [0x62,0x03,0xa5,0x20,0x50,0xec,0xab] + vrangepd $0xab, %ymm28, %ymm27, %ymm29 + +// CHECK: vrangepd $171, %ymm28, %ymm27, %ymm29 {%k7} +// CHECK: encoding: [0x62,0x03,0xa5,0x27,0x50,0xec,0xab] + vrangepd $0xab, %ymm28, %ymm27, %ymm29 {%k7} + +// CHECK: vrangepd $171, %ymm28, %ymm27, %ymm29 {%k7} {z} +// CHECK: encoding: [0x62,0x03,0xa5,0xa7,0x50,0xec,0xab] + vrangepd $0xab, %ymm28, %ymm27, %ymm29 {%k7} {z} + +// CHECK: vrangepd $123, %ymm28, %ymm27, %ymm29 +// CHECK: encoding: [0x62,0x03,0xa5,0x20,0x50,0xec,0x7b] + vrangepd $0x7b, %ymm28, %ymm27, %ymm29 + +// CHECK: vrangepd $123, (%rcx), %ymm27, %ymm29 +// CHECK: encoding: [0x62,0x63,0xa5,0x20,0x50,0x29,0x7b] + vrangepd $0x7b,(%rcx), %ymm27, %ymm29 + +// CHECK: vrangepd $123, 291(%rax,%r14,8), %ymm27, %ymm29 +// CHECK: encoding: [0x62,0x23,0xa5,0x20,0x50,0xac,0xf0,0x23,0x01,0x00,0x00,0x7b] + vrangepd $0x7b,291(%rax,%r14,8), %ymm27, %ymm29 + +// CHECK: vrangepd $123, (%rcx){1to4}, %ymm27, %ymm29 +// CHECK: encoding: [0x62,0x63,0xa5,0x30,0x50,0x29,0x7b] + vrangepd $0x7b,(%rcx){1to4}, %ymm27, %ymm29 + +// CHECK: vrangepd $123, 4064(%rdx), %ymm27, %ymm29 +// CHECK: encoding: [0x62,0x63,0xa5,0x20,0x50,0x6a,0x7f,0x7b] + vrangepd $0x7b,4064(%rdx), %ymm27, %ymm29 + +// CHECK: vrangepd $123, 4096(%rdx), %ymm27, %ymm29 +// CHECK: encoding: [0x62,0x63,0xa5,0x20,0x50,0xaa,0x00,0x10,0x00,0x00,0x7b] + vrangepd $0x7b,4096(%rdx), %ymm27, %ymm29 + +// CHECK: vrangepd $123, -4096(%rdx), %ymm27, %ymm29 +// CHECK: encoding: [0x62,0x63,0xa5,0x20,0x50,0x6a,0x80,0x7b] + vrangepd $0x7b,-4096(%rdx), %ymm27, %ymm29 + +// CHECK: vrangepd $123, -4128(%rdx), %ymm27, %ymm29 +// CHECK: encoding: [0x62,0x63,0xa5,0x20,0x50,0xaa,0xe0,0xef,0xff,0xff,0x7b] + vrangepd $0x7b,-4128(%rdx), %ymm27, %ymm29 + +// CHECK: vrangepd $123, 1016(%rdx){1to4}, %ymm27, %ymm29 +// CHECK: encoding: [0x62,0x63,0xa5,0x30,0x50,0x6a,0x7f,0x7b] + vrangepd $0x7b,1016(%rdx){1to4}, %ymm27, %ymm29 + +// CHECK: vrangepd $123, 1024(%rdx){1to4}, %ymm27, %ymm29 +// CHECK: encoding: [0x62,0x63,0xa5,0x30,0x50,0xaa,0x00,0x04,0x00,0x00,0x7b] + vrangepd $0x7b,1024(%rdx){1to4}, %ymm27, %ymm29 + +// CHECK: vrangepd $123, -1024(%rdx){1to4}, %ymm27, %ymm29 +// CHECK: encoding: [0x62,0x63,0xa5,0x30,0x50,0x6a,0x80,0x7b] + vrangepd $0x7b,-1024(%rdx){1to4}, %ymm27, %ymm29 + +// CHECK: vrangepd $123, -1032(%rdx){1to4}, %ymm27, %ymm29 +// CHECK: encoding: [0x62,0x63,0xa5,0x30,0x50,0xaa,0xf8,0xfb,0xff,0xff,0x7b] + vrangepd $0x7b,-1032(%rdx){1to4}, %ymm27, %ymm29 + +// CHECK: vrangeps $171, %xmm24, %xmm23, %xmm27 +// CHECK: encoding: [0x62,0x03,0x45,0x00,0x50,0xd8,0xab] + vrangeps $0xab, %xmm24, %xmm23, %xmm27 + +// CHECK: vrangeps $171, %xmm24, %xmm23, %xmm27 {%k6} +// CHECK: encoding: [0x62,0x03,0x45,0x06,0x50,0xd8,0xab] + vrangeps $0xab, %xmm24, %xmm23, %xmm27 {%k6} + +// CHECK: vrangeps $171, %xmm24, %xmm23, %xmm27 {%k6} {z} +// CHECK: encoding: [0x62,0x03,0x45,0x86,0x50,0xd8,0xab] + vrangeps $0xab, %xmm24, %xmm23, %xmm27 {%k6} {z} + +// CHECK: vrangeps $123, %xmm24, %xmm23, %xmm27 +// CHECK: encoding: [0x62,0x03,0x45,0x00,0x50,0xd8,0x7b] + vrangeps $0x7b, %xmm24, %xmm23, %xmm27 + +// CHECK: vrangeps $123, (%rcx), %xmm23, %xmm27 +// CHECK: encoding: [0x62,0x63,0x45,0x00,0x50,0x19,0x7b] + vrangeps $0x7b,(%rcx), %xmm23, %xmm27 + +// CHECK: vrangeps $123, 291(%rax,%r14,8), %xmm23, %xmm27 +// CHECK: encoding: [0x62,0x23,0x45,0x00,0x50,0x9c,0xf0,0x23,0x01,0x00,0x00,0x7b] + vrangeps $0x7b,291(%rax,%r14,8), %xmm23, %xmm27 + +// CHECK: vrangeps $123, (%rcx){1to4}, %xmm23, %xmm27 +// CHECK: encoding: [0x62,0x63,0x45,0x10,0x50,0x19,0x7b] + vrangeps $0x7b,(%rcx){1to4}, %xmm23, %xmm27 + +// CHECK: vrangeps $123, 2032(%rdx), %xmm23, %xmm27 +// CHECK: encoding: [0x62,0x63,0x45,0x00,0x50,0x5a,0x7f,0x7b] + vrangeps $0x7b,2032(%rdx), %xmm23, %xmm27 + +// CHECK: vrangeps $123, 2048(%rdx), %xmm23, %xmm27 +// CHECK: encoding: [0x62,0x63,0x45,0x00,0x50,0x9a,0x00,0x08,0x00,0x00,0x7b] + vrangeps $0x7b,2048(%rdx), %xmm23, %xmm27 + +// CHECK: vrangeps $123, -2048(%rdx), %xmm23, %xmm27 +// CHECK: encoding: [0x62,0x63,0x45,0x00,0x50,0x5a,0x80,0x7b] + vrangeps $0x7b,-2048(%rdx), %xmm23, %xmm27 + +// CHECK: vrangeps $123, -2064(%rdx), %xmm23, %xmm27 +// CHECK: encoding: [0x62,0x63,0x45,0x00,0x50,0x9a,0xf0,0xf7,0xff,0xff,0x7b] + vrangeps $0x7b,-2064(%rdx), %xmm23, %xmm27 + +// CHECK: vrangeps $123, 508(%rdx){1to4}, %xmm23, %xmm27 +// CHECK: encoding: [0x62,0x63,0x45,0x10,0x50,0x5a,0x7f,0x7b] + vrangeps $0x7b,508(%rdx){1to4}, %xmm23, %xmm27 + +// CHECK: vrangeps $123, 512(%rdx){1to4}, %xmm23, %xmm27 +// CHECK: encoding: [0x62,0x63,0x45,0x10,0x50,0x9a,0x00,0x02,0x00,0x00,0x7b] + vrangeps $0x7b,512(%rdx){1to4}, %xmm23, %xmm27 + +// CHECK: vrangeps $123, -512(%rdx){1to4}, %xmm23, %xmm27 +// CHECK: encoding: [0x62,0x63,0x45,0x10,0x50,0x5a,0x80,0x7b] + vrangeps $0x7b,-512(%rdx){1to4}, %xmm23, %xmm27 + +// CHECK: vrangeps $123, -516(%rdx){1to4}, %xmm23, %xmm27 +// CHECK: encoding: [0x62,0x63,0x45,0x10,0x50,0x9a,0xfc,0xfd,0xff,0xff,0x7b] + vrangeps $0x7b,-516(%rdx){1to4}, %xmm23, %xmm27 + +// CHECK: vrangeps $171, %ymm21, %ymm23, %ymm24 +// CHECK: encoding: [0x62,0x23,0x45,0x20,0x50,0xc5,0xab] + vrangeps $0xab, %ymm21, %ymm23, %ymm24 + +// CHECK: vrangeps $171, %ymm21, %ymm23, %ymm24 {%k7} +// CHECK: encoding: [0x62,0x23,0x45,0x27,0x50,0xc5,0xab] + vrangeps $0xab, %ymm21, %ymm23, %ymm24 {%k7} + +// CHECK: vrangeps $171, %ymm21, %ymm23, %ymm24 {%k7} {z} +// CHECK: encoding: [0x62,0x23,0x45,0xa7,0x50,0xc5,0xab] + vrangeps $0xab, %ymm21, %ymm23, %ymm24 {%k7} {z} + +// CHECK: vrangeps $123, %ymm21, %ymm23, %ymm24 +// CHECK: encoding: [0x62,0x23,0x45,0x20,0x50,0xc5,0x7b] + vrangeps $0x7b, %ymm21, %ymm23, %ymm24 + +// CHECK: vrangeps $123, (%rcx), %ymm23, %ymm24 +// CHECK: encoding: [0x62,0x63,0x45,0x20,0x50,0x01,0x7b] + vrangeps $0x7b,(%rcx), %ymm23, %ymm24 + +// CHECK: vrangeps $123, 291(%rax,%r14,8), %ymm23, %ymm24 +// CHECK: encoding: [0x62,0x23,0x45,0x20,0x50,0x84,0xf0,0x23,0x01,0x00,0x00,0x7b] + vrangeps $0x7b,291(%rax,%r14,8), %ymm23, %ymm24 + +// CHECK: vrangeps $123, (%rcx){1to8}, %ymm23, %ymm24 +// CHECK: encoding: [0x62,0x63,0x45,0x30,0x50,0x01,0x7b] + vrangeps $0x7b,(%rcx){1to8}, %ymm23, %ymm24 + +// CHECK: vrangeps $123, 4064(%rdx), %ymm23, %ymm24 +// CHECK: encoding: [0x62,0x63,0x45,0x20,0x50,0x42,0x7f,0x7b] + vrangeps $0x7b,4064(%rdx), %ymm23, %ymm24 + +// CHECK: vrangeps $123, 4096(%rdx), %ymm23, %ymm24 +// CHECK: encoding: [0x62,0x63,0x45,0x20,0x50,0x82,0x00,0x10,0x00,0x00,0x7b] + vrangeps $0x7b,4096(%rdx), %ymm23, %ymm24 + +// CHECK: vrangeps $123, -4096(%rdx), %ymm23, %ymm24 +// CHECK: encoding: [0x62,0x63,0x45,0x20,0x50,0x42,0x80,0x7b] + vrangeps $0x7b,-4096(%rdx), %ymm23, %ymm24 + +// CHECK: vrangeps $123, -4128(%rdx), %ymm23, %ymm24 +// CHECK: encoding: [0x62,0x63,0x45,0x20,0x50,0x82,0xe0,0xef,0xff,0xff,0x7b] + vrangeps $0x7b,-4128(%rdx), %ymm23, %ymm24 + +// CHECK: vrangeps $123, 508(%rdx){1to8}, %ymm23, %ymm24 +// CHECK: encoding: [0x62,0x63,0x45,0x30,0x50,0x42,0x7f,0x7b] + vrangeps $0x7b,508(%rdx){1to8}, %ymm23, %ymm24 + +// CHECK: vrangeps $123, 512(%rdx){1to8}, %ymm23, %ymm24 +// CHECK: encoding: [0x62,0x63,0x45,0x30,0x50,0x82,0x00,0x02,0x00,0x00,0x7b] + vrangeps $0x7b,512(%rdx){1to8}, %ymm23, %ymm24 + +// CHECK: vrangeps $123, -512(%rdx){1to8}, %ymm23, %ymm24 +// CHECK: encoding: [0x62,0x63,0x45,0x30,0x50,0x42,0x80,0x7b] + vrangeps $0x7b,-512(%rdx){1to8}, %ymm23, %ymm24 + +// CHECK: vrangeps $123, -516(%rdx){1to8}, %ymm23, %ymm24 +// CHECK: encoding: [0x62,0x63,0x45,0x30,0x50,0x82,0xfc,0xfd,0xff,0xff,0x7b] + vrangeps $0x7b,-516(%rdx){1to8}, %ymm23, %ymm24 diff --git a/test/MC/X86/x86-64-avx512f_vl.s b/test/MC/X86/x86-64-avx512f_vl.s index 5007726817076..f521b3e42d442 100644 --- a/test/MC/X86/x86-64-avx512f_vl.s +++ b/test/MC/X86/x86-64-avx512f_vl.s @@ -10188,12 +10188,947 @@ vaddpd {rz-sae}, %zmm2, %zmm1, %zmm1 // CHECK: encoding: [0x62,0xe2,0x7d,0x28,0x5a,0x9a,0xf0,0xf7,0xff,0xff] vbroadcasti32x4 -2064(%rdx), %ymm19 +// CHECK: vfixupimmps $171, %xmm17, %xmm17, %xmm25 +// CHECK: encoding: [0x62,0x23,0x75,0x00,0x54,0xc9,0xab] + vfixupimmps $0xab, %xmm17, %xmm17, %xmm25 +// CHECK: vfixupimmps $171, %xmm17, %xmm17, %xmm25 {%k3} +// CHECK: encoding: [0x62,0x23,0x75,0x03,0x54,0xc9,0xab] + vfixupimmps $0xab, %xmm17, %xmm17, %xmm25 {%k3} +// CHECK: vfixupimmps $171, %xmm17, %xmm17, %xmm25 {%k3} {z} +// CHECK: encoding: [0x62,0x23,0x75,0x83,0x54,0xc9,0xab] + vfixupimmps $0xab, %xmm17, %xmm17, %xmm25 {%k3} {z} +// CHECK: vfixupimmps $123, %xmm17, %xmm17, %xmm25 +// CHECK: encoding: [0x62,0x23,0x75,0x00,0x54,0xc9,0x7b] + vfixupimmps $0x7b, %xmm17, %xmm17, %xmm25 +// CHECK: vfixupimmps $123, (%rcx), %xmm17, %xmm25 +// CHECK: encoding: [0x62,0x63,0x75,0x00,0x54,0x09,0x7b] + vfixupimmps $0x7b, (%rcx), %xmm17, %xmm25 +// CHECK: vfixupimmps $123, 291(%rax,%r14,8), %xmm17, %xmm25 +// CHECK: encoding: [0x62,0x23,0x75,0x00,0x54,0x8c,0xf0,0x23,0x01,0x00,0x00,0x7b] + vfixupimmps $0x7b, 291(%rax,%r14,8), %xmm17, %xmm25 +// CHECK: vfixupimmps $123, (%rcx){1to4}, %xmm17, %xmm25 +// CHECK: encoding: [0x62,0x63,0x75,0x10,0x54,0x09,0x7b] + vfixupimmps $0x7b, (%rcx){1to4}, %xmm17, %xmm25 +// CHECK: vfixupimmps $123, 2032(%rdx), %xmm17, %xmm25 +// CHECK: encoding: [0x62,0x63,0x75,0x00,0x54,0x4a,0x7f,0x7b] + vfixupimmps $0x7b, 2032(%rdx), %xmm17, %xmm25 +// CHECK: vfixupimmps $123, 2048(%rdx), %xmm17, %xmm25 +// CHECK: encoding: [0x62,0x63,0x75,0x00,0x54,0x8a,0x00,0x08,0x00,0x00,0x7b] + vfixupimmps $0x7b, 2048(%rdx), %xmm17, %xmm25 +// CHECK: vfixupimmps $123, -2048(%rdx), %xmm17, %xmm25 +// CHECK: encoding: [0x62,0x63,0x75,0x00,0x54,0x4a,0x80,0x7b] + vfixupimmps $0x7b, -2048(%rdx), %xmm17, %xmm25 + +// CHECK: vfixupimmps $123, -2064(%rdx), %xmm17, %xmm25 +// CHECK: encoding: [0x62,0x63,0x75,0x00,0x54,0x8a,0xf0,0xf7,0xff,0xff,0x7b] + vfixupimmps $0x7b, -2064(%rdx), %xmm17, %xmm25 + +// CHECK: vfixupimmps $123, 508(%rdx){1to4}, %xmm17, %xmm25 +// CHECK: encoding: [0x62,0x63,0x75,0x10,0x54,0x4a,0x7f,0x7b] + vfixupimmps $0x7b, 508(%rdx){1to4}, %xmm17, %xmm25 + +// CHECK: vfixupimmps $123, 512(%rdx){1to4}, %xmm17, %xmm25 +// CHECK: encoding: [0x62,0x63,0x75,0x10,0x54,0x8a,0x00,0x02,0x00,0x00,0x7b] + vfixupimmps $0x7b, 512(%rdx){1to4}, %xmm17, %xmm25 + +// CHECK: vfixupimmps $123, -512(%rdx){1to4}, %xmm17, %xmm25 +// CHECK: encoding: [0x62,0x63,0x75,0x10,0x54,0x4a,0x80,0x7b] + vfixupimmps $0x7b, -512(%rdx){1to4}, %xmm17, %xmm25 + +// CHECK: vfixupimmps $123, -516(%rdx){1to4}, %xmm17, %xmm25 +// CHECK: encoding: [0x62,0x63,0x75,0x10,0x54,0x8a,0xfc,0xfd,0xff,0xff,0x7b] + vfixupimmps $0x7b, -516(%rdx){1to4}, %xmm17, %xmm25 + +// CHECK: vfixupimmps $171, %ymm28, %ymm21, %ymm30 +// CHECK: encoding: [0x62,0x03,0x55,0x20,0x54,0xf4,0xab] + vfixupimmps $0xab, %ymm28, %ymm21, %ymm30 + +// CHECK: vfixupimmps $171, %ymm28, %ymm21, %ymm30 {%k4} +// CHECK: encoding: [0x62,0x03,0x55,0x24,0x54,0xf4,0xab] + vfixupimmps $0xab, %ymm28, %ymm21, %ymm30 {%k4} + +// CHECK: vfixupimmps $171, %ymm28, %ymm21, %ymm30 {%k4} {z} +// CHECK: encoding: [0x62,0x03,0x55,0xa4,0x54,0xf4,0xab] + vfixupimmps $0xab, %ymm28, %ymm21, %ymm30 {%k4} {z} + +// CHECK: vfixupimmps $123, %ymm28, %ymm21, %ymm30 +// CHECK: encoding: [0x62,0x03,0x55,0x20,0x54,0xf4,0x7b] + vfixupimmps $0x7b, %ymm28, %ymm21, %ymm30 + +// CHECK: vfixupimmps $123, (%rcx), %ymm21, %ymm30 +// CHECK: encoding: [0x62,0x63,0x55,0x20,0x54,0x31,0x7b] + vfixupimmps $0x7b, (%rcx), %ymm21, %ymm30 + +// CHECK: vfixupimmps $123, 291(%rax,%r14,8), %ymm21, %ymm30 +// CHECK: encoding: [0x62,0x23,0x55,0x20,0x54,0xb4,0xf0,0x23,0x01,0x00,0x00,0x7b] + vfixupimmps $0x7b, 291(%rax,%r14,8), %ymm21, %ymm30 + +// CHECK: vfixupimmps $123, (%rcx){1to8}, %ymm21, %ymm30 +// CHECK: encoding: [0x62,0x63,0x55,0x30,0x54,0x31,0x7b] + vfixupimmps $0x7b, (%rcx){1to8}, %ymm21, %ymm30 + +// CHECK: vfixupimmps $123, 4064(%rdx), %ymm21, %ymm30 +// CHECK: encoding: [0x62,0x63,0x55,0x20,0x54,0x72,0x7f,0x7b] + vfixupimmps $0x7b, 4064(%rdx), %ymm21, %ymm30 + +// CHECK: vfixupimmps $123, 4096(%rdx), %ymm21, %ymm30 +// CHECK: encoding: [0x62,0x63,0x55,0x20,0x54,0xb2,0x00,0x10,0x00,0x00,0x7b] + vfixupimmps $0x7b, 4096(%rdx), %ymm21, %ymm30 + +// CHECK: vfixupimmps $123, -4096(%rdx), %ymm21, %ymm30 +// CHECK: encoding: [0x62,0x63,0x55,0x20,0x54,0x72,0x80,0x7b] + vfixupimmps $0x7b, -4096(%rdx), %ymm21, %ymm30 + +// CHECK: vfixupimmps $123, -4128(%rdx), %ymm21, %ymm30 +// CHECK: encoding: [0x62,0x63,0x55,0x20,0x54,0xb2,0xe0,0xef,0xff,0xff,0x7b] + vfixupimmps $0x7b, -4128(%rdx), %ymm21, %ymm30 + +// CHECK: vfixupimmps $123, 508(%rdx){1to8}, %ymm21, %ymm30 +// CHECK: encoding: [0x62,0x63,0x55,0x30,0x54,0x72,0x7f,0x7b] + vfixupimmps $0x7b, 508(%rdx){1to8}, %ymm21, %ymm30 + +// CHECK: vfixupimmps $123, 512(%rdx){1to8}, %ymm21, %ymm30 +// CHECK: encoding: [0x62,0x63,0x55,0x30,0x54,0xb2,0x00,0x02,0x00,0x00,0x7b] + vfixupimmps $0x7b, 512(%rdx){1to8}, %ymm21, %ymm30 + +// CHECK: vfixupimmps $123, -512(%rdx){1to8}, %ymm21, %ymm30 +// CHECK: encoding: [0x62,0x63,0x55,0x30,0x54,0x72,0x80,0x7b] + vfixupimmps $0x7b, -512(%rdx){1to8}, %ymm21, %ymm30 + +// CHECK: vfixupimmps $123, -516(%rdx){1to8}, %ymm21, %ymm30 +// CHECK: encoding: [0x62,0x63,0x55,0x30,0x54,0xb2,0xfc,0xfd,0xff,0xff,0x7b] + vfixupimmps $0x7b, -516(%rdx){1to8}, %ymm21, %ymm30 + +// CHECK: vfixupimmpd $171, %xmm25, %xmm18, %xmm24 +// CHECK: encoding: [0x62,0x03,0xed,0x00,0x54,0xc1,0xab] + vfixupimmpd $0xab, %xmm25, %xmm18, %xmm24 + +// CHECK: vfixupimmpd $171, %xmm25, %xmm18, %xmm24 {%k3} +// CHECK: encoding: [0x62,0x03,0xed,0x03,0x54,0xc1,0xab] + vfixupimmpd $0xab, %xmm25, %xmm18, %xmm24 {%k3} + +// CHECK: vfixupimmpd $171, %xmm25, %xmm18, %xmm24 {%k3} {z} +// CHECK: encoding: [0x62,0x03,0xed,0x83,0x54,0xc1,0xab] + vfixupimmpd $0xab, %xmm25, %xmm18, %xmm24 {%k3} {z} + +// CHECK: vfixupimmpd $123, %xmm25, %xmm18, %xmm24 +// CHECK: encoding: [0x62,0x03,0xed,0x00,0x54,0xc1,0x7b] + vfixupimmpd $0x7b, %xmm25, %xmm18, %xmm24 + +// CHECK: vfixupimmpd $123, (%rcx), %xmm18, %xmm24 +// CHECK: encoding: [0x62,0x63,0xed,0x00,0x54,0x01,0x7b] + vfixupimmpd $0x7b, (%rcx), %xmm18, %xmm24 + +// CHECK: vfixupimmpd $123, 291(%rax,%r14,8), %xmm18, %xmm24 +// CHECK: encoding: [0x62,0x23,0xed,0x00,0x54,0x84,0xf0,0x23,0x01,0x00,0x00,0x7b] + vfixupimmpd $0x7b, 291(%rax,%r14,8), %xmm18, %xmm24 + +// CHECK: vfixupimmpd $123, (%rcx){1to2}, %xmm18, %xmm24 +// CHECK: encoding: [0x62,0x63,0xed,0x10,0x54,0x01,0x7b] + vfixupimmpd $0x7b, (%rcx){1to2}, %xmm18, %xmm24 + +// CHECK: vfixupimmpd $123, 2032(%rdx), %xmm18, %xmm24 +// CHECK: encoding: [0x62,0x63,0xed,0x00,0x54,0x42,0x7f,0x7b] + vfixupimmpd $0x7b, 2032(%rdx), %xmm18, %xmm24 + +// CHECK: vfixupimmpd $123, 2048(%rdx), %xmm18, %xmm24 +// CHECK: encoding: [0x62,0x63,0xed,0x00,0x54,0x82,0x00,0x08,0x00,0x00,0x7b] + vfixupimmpd $0x7b, 2048(%rdx), %xmm18, %xmm24 + +// CHECK: vfixupimmpd $123, -2048(%rdx), %xmm18, %xmm24 +// CHECK: encoding: [0x62,0x63,0xed,0x00,0x54,0x42,0x80,0x7b] + vfixupimmpd $0x7b, -2048(%rdx), %xmm18, %xmm24 + +// CHECK: vfixupimmpd $123, -2064(%rdx), %xmm18, %xmm24 +// CHECK: encoding: [0x62,0x63,0xed,0x00,0x54,0x82,0xf0,0xf7,0xff,0xff,0x7b] + vfixupimmpd $0x7b, -2064(%rdx), %xmm18, %xmm24 + +// CHECK: vfixupimmpd $123, 1016(%rdx){1to2}, %xmm18, %xmm24 +// CHECK: encoding: [0x62,0x63,0xed,0x10,0x54,0x42,0x7f,0x7b] + vfixupimmpd $0x7b, 1016(%rdx){1to2}, %xmm18, %xmm24 + +// CHECK: vfixupimmpd $123, 1024(%rdx){1to2}, %xmm18, %xmm24 +// CHECK: encoding: [0x62,0x63,0xed,0x10,0x54,0x82,0x00,0x04,0x00,0x00,0x7b] + vfixupimmpd $0x7b, 1024(%rdx){1to2}, %xmm18, %xmm24 + +// CHECK: vfixupimmpd $123, -1024(%rdx){1to2}, %xmm18, %xmm24 +// CHECK: encoding: [0x62,0x63,0xed,0x10,0x54,0x42,0x80,0x7b] + vfixupimmpd $0x7b, -1024(%rdx){1to2}, %xmm18, %xmm24 + +// CHECK: vfixupimmpd $123, -1032(%rdx){1to2}, %xmm18, %xmm24 +// CHECK: encoding: [0x62,0x63,0xed,0x10,0x54,0x82,0xf8,0xfb,0xff,0xff,0x7b] + vfixupimmpd $0x7b, -1032(%rdx){1to2}, %xmm18, %xmm24 + +// CHECK: vfixupimmpd $171, %ymm28, %ymm22, %ymm18 +// CHECK: encoding: [0x62,0x83,0xcd,0x20,0x54,0xd4,0xab] + vfixupimmpd $0xab, %ymm28, %ymm22, %ymm18 + +// CHECK: vfixupimmpd $171, %ymm28, %ymm22, %ymm18 {%k2} +// CHECK: encoding: [0x62,0x83,0xcd,0x22,0x54,0xd4,0xab] + vfixupimmpd $0xab, %ymm28, %ymm22, %ymm18 {%k2} + +// CHECK: vfixupimmpd $171, %ymm28, %ymm22, %ymm18 {%k2} {z} +// CHECK: encoding: [0x62,0x83,0xcd,0xa2,0x54,0xd4,0xab] + vfixupimmpd $0xab, %ymm28, %ymm22, %ymm18 {%k2} {z} + +// CHECK: vfixupimmpd $123, %ymm28, %ymm22, %ymm18 +// CHECK: encoding: [0x62,0x83,0xcd,0x20,0x54,0xd4,0x7b] + vfixupimmpd $0x7b, %ymm28, %ymm22, %ymm18 + +// CHECK: vfixupimmpd $123, (%rcx), %ymm22, %ymm18 +// CHECK: encoding: [0x62,0xe3,0xcd,0x20,0x54,0x11,0x7b] + vfixupimmpd $0x7b, (%rcx), %ymm22, %ymm18 + +// CHECK: vfixupimmpd $123, 291(%rax,%r14,8), %ymm22, %ymm18 +// CHECK: encoding: [0x62,0xa3,0xcd,0x20,0x54,0x94,0xf0,0x23,0x01,0x00,0x00,0x7b] + vfixupimmpd $0x7b, 291(%rax,%r14,8), %ymm22, %ymm18 + +// CHECK: vfixupimmpd $123, (%rcx){1to4}, %ymm22, %ymm18 +// CHECK: encoding: [0x62,0xe3,0xcd,0x30,0x54,0x11,0x7b] + vfixupimmpd $0x7b, (%rcx){1to4}, %ymm22, %ymm18 + +// CHECK: vfixupimmpd $123, 4064(%rdx), %ymm22, %ymm18 +// CHECK: encoding: [0x62,0xe3,0xcd,0x20,0x54,0x52,0x7f,0x7b] + vfixupimmpd $0x7b, 4064(%rdx), %ymm22, %ymm18 + +// CHECK: vfixupimmpd $123, 4096(%rdx), %ymm22, %ymm18 +// CHECK: encoding: [0x62,0xe3,0xcd,0x20,0x54,0x92,0x00,0x10,0x00,0x00,0x7b] + vfixupimmpd $0x7b, 4096(%rdx), %ymm22, %ymm18 + +// CHECK: vfixupimmpd $123, -4096(%rdx), %ymm22, %ymm18 +// CHECK: encoding: [0x62,0xe3,0xcd,0x20,0x54,0x52,0x80,0x7b] + vfixupimmpd $0x7b, -4096(%rdx), %ymm22, %ymm18 + +// CHECK: vfixupimmpd $123, -4128(%rdx), %ymm22, %ymm18 +// CHECK: encoding: [0x62,0xe3,0xcd,0x20,0x54,0x92,0xe0,0xef,0xff,0xff,0x7b] + vfixupimmpd $0x7b, -4128(%rdx), %ymm22, %ymm18 + +// CHECK: vfixupimmpd $123, 1016(%rdx){1to4}, %ymm22, %ymm18 +// CHECK: encoding: [0x62,0xe3,0xcd,0x30,0x54,0x52,0x7f,0x7b] + vfixupimmpd $0x7b, 1016(%rdx){1to4}, %ymm22, %ymm18 + +// CHECK: vfixupimmpd $123, 1024(%rdx){1to4}, %ymm22, %ymm18 +// CHECK: encoding: [0x62,0xe3,0xcd,0x30,0x54,0x92,0x00,0x04,0x00,0x00,0x7b] + vfixupimmpd $0x7b, 1024(%rdx){1to4}, %ymm22, %ymm18 + +// CHECK: vfixupimmpd $123, -1024(%rdx){1to4}, %ymm22, %ymm18 +// CHECK: encoding: [0x62,0xe3,0xcd,0x30,0x54,0x52,0x80,0x7b] + vfixupimmpd $0x7b, -1024(%rdx){1to4}, %ymm22, %ymm18 + +// CHECK: vfixupimmpd $123, -1032(%rdx){1to4}, %ymm22, %ymm18 +// CHECK: encoding: [0x62,0xe3,0xcd,0x30,0x54,0x92,0xf8,0xfb,0xff,0xff,0x7b] + vfixupimmpd $0x7b, -1032(%rdx){1to4}, %ymm22, %ymm18 + +// CHECK: vpshufd $171, %xmm23, %xmm17 +// CHECK: encoding: [0x62,0xa1,0x7d,0x08,0x70,0xcf,0xab] + vpshufd $171, %xmm23, %xmm17 + +// CHECK: vpshufd $171, %xmm23, %xmm17 {%k1} +// CHECK: encoding: [0x62,0xa1,0x7d,0x09,0x70,0xcf,0xab] + vpshufd $171, %xmm23, %xmm17 {%k1} + +// CHECK: vpshufd $171, %xmm23, %xmm17 {%k1} {z} +// CHECK: encoding: [0x62,0xa1,0x7d,0x89,0x70,0xcf,0xab] + vpshufd $171, %xmm23, %xmm17 {%k1} {z} + +// CHECK: vpshufd $123, %xmm23, %xmm17 +// CHECK: encoding: [0x62,0xa1,0x7d,0x08,0x70,0xcf,0x7b] + vpshufd $123, %xmm23, %xmm17 + +// CHECK: vpshufd $123, (%rcx), %xmm17 +// CHECK: encoding: [0x62,0xe1,0x7d,0x08,0x70,0x09,0x7b] + vpshufd $123, (%rcx), %xmm17 + +// CHECK: vpshufd $123, 291(%rax,%r14,8), %xmm17 +// CHECK: encoding: [0x62,0xa1,0x7d,0x08,0x70,0x8c,0xf0,0x23,0x01,0x00,0x00,0x7b] + vpshufd $123, 291(%rax,%r14,8), %xmm17 + + +// CHECK: vpshufd $123, 2032(%rdx), %xmm17 +// CHECK: encoding: [0x62,0xe1,0x7d,0x08,0x70,0x4a,0x7f,0x7b] + vpshufd $123, 2032(%rdx), %xmm17 + +// CHECK: vpshufd $123, (%rcx){1to4}, %xmm17 +// CHECK: encoding: [0x62,0xe1,0x7d,0x18,0x70,0x09,0x7b] + vpshufd $123, (%rcx){1to4}, %xmm17 + +// CHECK: vpshufd $123, 2048(%rdx), %xmm17 +// CHECK: encoding: [0x62,0xe1,0x7d,0x08,0x70,0x8a,0x00,0x08,0x00,0x00,0x7b] + vpshufd $123, 2048(%rdx), %xmm17 + +// CHECK: vpshufd $123, -2048(%rdx), %xmm17 +// CHECK: encoding: [0x62,0xe1,0x7d,0x08,0x70,0x4a,0x80,0x7b] + vpshufd $123, -2048(%rdx), %xmm17 + +// CHECK: vpshufd $123, -2064(%rdx), %xmm17 +// CHECK: encoding: [0x62,0xe1,0x7d,0x08,0x70,0x8a,0xf0,0xf7,0xff,0xff,0x7b] + vpshufd $123, -2064(%rdx), %xmm17 + +// CHECK: vpshufd $123, 508(%rdx){1to4}, %xmm17 +// CHECK: encoding: [0x62,0xe1,0x7d,0x18,0x70,0x4a,0x7f,0x7b] + vpshufd $123, 508(%rdx){1to4}, %xmm17 + +// CHECK: vpshufd $123, 512(%rdx){1to4}, %xmm17 +// CHECK: encoding: [0x62,0xe1,0x7d,0x18,0x70,0x8a,0x00,0x02,0x00,0x00,0x7b] + vpshufd $123, 512(%rdx){1to4}, %xmm17 + +// CHECK: vpshufd $123, -512(%rdx){1to4}, %xmm17 +// CHECK: encoding: [0x62,0xe1,0x7d,0x18,0x70,0x4a,0x80,0x7b] + vpshufd $123, -512(%rdx){1to4}, %xmm17 + +// CHECK: vpshufd $123, -516(%rdx){1to4}, %xmm17 +// CHECK: encoding: [0x62,0xe1,0x7d,0x18,0x70,0x8a,0xfc,0xfd,0xff,0xff,0x7b] + vpshufd $123, -516(%rdx){1to4}, %xmm17 + +// CHECK: vpshufd $171, %ymm22, %ymm20 +// CHECK: encoding: [0x62,0xa1,0x7d,0x28,0x70,0xe6,0xab] + vpshufd $171, %ymm22, %ymm20 + +// CHECK: vpshufd $171, %ymm22, %ymm20 {%k2} +// CHECK: encoding: [0x62,0xa1,0x7d,0x2a,0x70,0xe6,0xab] + vpshufd $171, %ymm22, %ymm20 {%k2} + +// CHECK: vpshufd $171, %ymm22, %ymm20 {%k2} {z} +// CHECK: encoding: [0x62,0xa1,0x7d,0xaa,0x70,0xe6,0xab] + vpshufd $171, %ymm22, %ymm20 {%k2} {z} + +// CHECK: vpshufd $123, %ymm22, %ymm20 +// CHECK: encoding: [0x62,0xa1,0x7d,0x28,0x70,0xe6,0x7b] + vpshufd $123, %ymm22, %ymm20 + +// CHECK: vpshufd $123, (%rcx), %ymm20 +// CHECK: encoding: [0x62,0xe1,0x7d,0x28,0x70,0x21,0x7b] + vpshufd $123, (%rcx), %ymm20 + +// CHECK: vpshufd $123, 291(%rax,%r14,8), %ymm20 +// CHECK: encoding: [0x62,0xa1,0x7d,0x28,0x70,0xa4,0xf0,0x23,0x01,0x00,0x00,0x7b] + vpshufd $123, 291(%rax,%r14,8), %ymm20 + +// CHECK: vpshufd $123, (%rcx){1to8}, %ymm20 +// CHECK: encoding: [0x62,0xe1,0x7d,0x38,0x70,0x21,0x7b] + vpshufd $123, (%rcx){1to8}, %ymm20 + +// CHECK: vpshufd $123, 4064(%rdx), %ymm20 +// CHECK: encoding: [0x62,0xe1,0x7d,0x28,0x70,0x62,0x7f,0x7b] + vpshufd $123, 4064(%rdx), %ymm20 + +// CHECK: vpshufd $123, 4096(%rdx), %ymm20 +// CHECK: encoding: [0x62,0xe1,0x7d,0x28,0x70,0xa2,0x00,0x10,0x00,0x00,0x7b] + vpshufd $123, 4096(%rdx), %ymm20 + +// CHECK: vpshufd $123, -4096(%rdx), %ymm20 +// CHECK: encoding: [0x62,0xe1,0x7d,0x28,0x70,0x62,0x80,0x7b] + vpshufd $123, -4096(%rdx), %ymm20 + +// CHECK: vpshufd $123, -4128(%rdx), %ymm20 +// CHECK: encoding: [0x62,0xe1,0x7d,0x28,0x70,0xa2,0xe0,0xef,0xff,0xff,0x7b] + vpshufd $123, -4128(%rdx), %ymm20 + +// CHECK: vpshufd $123, 508(%rdx){1to8}, %ymm20 +// CHECK: encoding: [0x62,0xe1,0x7d,0x38,0x70,0x62,0x7f,0x7b] + vpshufd $123, 508(%rdx){1to8}, %ymm20 + +// CHECK: vpshufd $123, 512(%rdx){1to8}, %ymm20 +// CHECK: encoding: [0x62,0xe1,0x7d,0x38,0x70,0xa2,0x00,0x02,0x00,0x00,0x7b] + vpshufd $123, 512(%rdx){1to8}, %ymm20 + +// CHECK: vpshufd $123, -512(%rdx){1to8}, %ymm20 +// CHECK: encoding: [0x62,0xe1,0x7d,0x38,0x70,0x62,0x80,0x7b] + vpshufd $123, -512(%rdx){1to8}, %ymm20 + +// CHECK: vpshufd $123, -516(%rdx){1to8}, %ymm20 +// CHECK: encoding: [0x62,0xe1,0x7d,0x38,0x70,0xa2,0xfc,0xfd,0xff,0xff,0x7b] + vpshufd $123, -516(%rdx){1to8}, %ymm20 + +// CHECK: vgetexppd %xmm18, %xmm17 +// CHECK: encoding: [0x62,0xa2,0xfd,0x08,0x42,0xca] + vgetexppd %xmm18, %xmm17 + +// CHECK: vgetexppd %xmm18, %xmm17 {%k1} +// CHECK: encoding: [0x62,0xa2,0xfd,0x09,0x42,0xca] + vgetexppd %xmm18, %xmm17 {%k1} + +// CHECK: vgetexppd %xmm18, %xmm17 {%k1} {z} +// CHECK: encoding: [0x62,0xa2,0xfd,0x89,0x42,0xca] + vgetexppd %xmm18, %xmm17 {%k1} {z} + +// CHECK: vgetexppd (%rcx), %xmm17 +// CHECK: encoding: [0x62,0xe2,0xfd,0x08,0x42,0x09] + vgetexppd (%rcx), %xmm17 + +// CHECK: vgetexppd 291(%rax,%r14,8), %xmm17 +// CHECK: encoding: [0x62,0xa2,0xfd,0x08,0x42,0x8c,0xf0,0x23,0x01,0x00,0x00] + vgetexppd 291(%rax,%r14,8), %xmm17 + +// CHECK: vgetexppd (%rcx){1to2}, %xmm17 +// CHECK: encoding: [0x62,0xe2,0xfd,0x18,0x42,0x09] + vgetexppd (%rcx){1to2}, %xmm17 + +// CHECK: vgetexppd 2032(%rdx), %xmm17 +// CHECK: encoding: [0x62,0xe2,0xfd,0x08,0x42,0x4a,0x7f] + vgetexppd 2032(%rdx), %xmm17 + +// CHECK: vgetexppd 2048(%rdx), %xmm17 +// CHECK: encoding: [0x62,0xe2,0xfd,0x08,0x42,0x8a,0x00,0x08,0x00,0x00] + vgetexppd 2048(%rdx), %xmm17 + +// CHECK: vgetexppd -2048(%rdx), %xmm17 +// CHECK: encoding: [0x62,0xe2,0xfd,0x08,0x42,0x4a,0x80] + vgetexppd -2048(%rdx), %xmm17 + +// CHECK: vgetexppd -2064(%rdx), %xmm17 +// CHECK: encoding: [0x62,0xe2,0xfd,0x08,0x42,0x8a,0xf0,0xf7,0xff,0xff] + vgetexppd -2064(%rdx), %xmm17 + +// CHECK: vgetexppd 1016(%rdx){1to2}, %xmm17 +// CHECK: encoding: [0x62,0xe2,0xfd,0x18,0x42,0x4a,0x7f] + vgetexppd 1016(%rdx){1to2}, %xmm17 + +// CHECK: vgetexppd 1024(%rdx){1to2}, %xmm17 +// CHECK: encoding: [0x62,0xe2,0xfd,0x18,0x42,0x8a,0x00,0x04,0x00,0x00] + vgetexppd 1024(%rdx){1to2}, %xmm17 + +// CHECK: vgetexppd -1024(%rdx){1to2}, %xmm17 +// CHECK: encoding: [0x62,0xe2,0xfd,0x18,0x42,0x4a,0x80] + vgetexppd -1024(%rdx){1to2}, %xmm17 + +// CHECK: vgetexppd -1032(%rdx){1to2}, %xmm17 +// CHECK: encoding: [0x62,0xe2,0xfd,0x18,0x42,0x8a,0xf8,0xfb,0xff,0xff] + vgetexppd -1032(%rdx){1to2}, %xmm17 + +// CHECK: vgetexppd %ymm17, %ymm20 +// CHECK: encoding: [0x62,0xa2,0xfd,0x28,0x42,0xe1] + vgetexppd %ymm17, %ymm20 + +// CHECK: vgetexppd %ymm17, %ymm20 {%k3} +// CHECK: encoding: [0x62,0xa2,0xfd,0x2b,0x42,0xe1] + vgetexppd %ymm17, %ymm20 {%k3} + +// CHECK: vgetexppd %ymm17, %ymm20 {%k3} {z} +// CHECK: encoding: [0x62,0xa2,0xfd,0xab,0x42,0xe1] + vgetexppd %ymm17, %ymm20 {%k3} {z} + +// CHECK: vgetexppd (%rcx), %ymm20 +// CHECK: encoding: [0x62,0xe2,0xfd,0x28,0x42,0x21] + vgetexppd (%rcx), %ymm20 + +// CHECK: vgetexppd 291(%rax,%r14,8), %ymm20 +// CHECK: encoding: [0x62,0xa2,0xfd,0x28,0x42,0xa4,0xf0,0x23,0x01,0x00,0x00] + vgetexppd 291(%rax,%r14,8), %ymm20 + +// CHECK: vgetexppd (%rcx){1to4}, %ymm20 +// CHECK: encoding: [0x62,0xe2,0xfd,0x38,0x42,0x21] + vgetexppd (%rcx){1to4}, %ymm20 + +// CHECK: vgetexppd 4064(%rdx), %ymm20 +// CHECK: encoding: [0x62,0xe2,0xfd,0x28,0x42,0x62,0x7f] + vgetexppd 4064(%rdx), %ymm20 + +// CHECK: vgetexppd 4096(%rdx), %ymm20 +// CHECK: encoding: [0x62,0xe2,0xfd,0x28,0x42,0xa2,0x00,0x10,0x00,0x00] + vgetexppd 4096(%rdx), %ymm20 + +// CHECK: vgetexppd -4096(%rdx), %ymm20 +// CHECK: encoding: [0x62,0xe2,0xfd,0x28,0x42,0x62,0x80] + vgetexppd -4096(%rdx), %ymm20 + +// CHECK: vgetexppd -4128(%rdx), %ymm20 +// CHECK: encoding: [0x62,0xe2,0xfd,0x28,0x42,0xa2,0xe0,0xef,0xff,0xff] + vgetexppd -4128(%rdx), %ymm20 + +// CHECK: vgetexppd 1016(%rdx){1to4}, %ymm20 +// CHECK: encoding: [0x62,0xe2,0xfd,0x38,0x42,0x62,0x7f] + vgetexppd 1016(%rdx){1to4}, %ymm20 + +// CHECK: vgetexppd 1024(%rdx){1to4}, %ymm20 +// CHECK: encoding: [0x62,0xe2,0xfd,0x38,0x42,0xa2,0x00,0x04,0x00,0x00] + vgetexppd 1024(%rdx){1to4}, %ymm20 + +// CHECK: vgetexppd -1024(%rdx){1to4}, %ymm20 +// CHECK: encoding: [0x62,0xe2,0xfd,0x38,0x42,0x62,0x80] + vgetexppd -1024(%rdx){1to4}, %ymm20 + +// CHECK: vgetexppd -1032(%rdx){1to4}, %ymm20 +// CHECK: encoding: [0x62,0xe2,0xfd,0x38,0x42,0xa2,0xf8,0xfb,0xff,0xff] + vgetexppd -1032(%rdx){1to4}, %ymm20 + +// CHECK: vgetexpps %xmm27, %xmm17 +// CHECK: encoding: [0x62,0x82,0x7d,0x08,0x42,0xcb] + vgetexpps %xmm27, %xmm17 + +// CHECK: vgetexpps %xmm27, %xmm17 {%k2} +// CHECK: encoding: [0x62,0x82,0x7d,0x0a,0x42,0xcb] + vgetexpps %xmm27, %xmm17 {%k2} + +// CHECK: vgetexpps %xmm27, %xmm17 {%k2} {z} +// CHECK: encoding: [0x62,0x82,0x7d,0x8a,0x42,0xcb] + vgetexpps %xmm27, %xmm17 {%k2} {z} + +// CHECK: vgetexpps (%rcx), %xmm17 +// CHECK: encoding: [0x62,0xe2,0x7d,0x08,0x42,0x09] + vgetexpps (%rcx), %xmm17 + +// CHECK: vgetexpps 291(%rax,%r14,8), %xmm17 +// CHECK: encoding: [0x62,0xa2,0x7d,0x08,0x42,0x8c,0xf0,0x23,0x01,0x00,0x00] + vgetexpps 291(%rax,%r14,8), %xmm17 + +// CHECK: vgetexpps (%rcx){1to4}, %xmm17 +// CHECK: encoding: [0x62,0xe2,0x7d,0x18,0x42,0x09] + vgetexpps (%rcx){1to4}, %xmm17 + +// CHECK: vgetexpps 2032(%rdx), %xmm17 +// CHECK: encoding: [0x62,0xe2,0x7d,0x08,0x42,0x4a,0x7f] + vgetexpps 2032(%rdx), %xmm17 + +// CHECK: vgetexpps 2048(%rdx), %xmm17 +// CHECK: encoding: [0x62,0xe2,0x7d,0x08,0x42,0x8a,0x00,0x08,0x00,0x00] + vgetexpps 2048(%rdx), %xmm17 + +// CHECK: vgetexpps -2048(%rdx), %xmm17 +// CHECK: encoding: [0x62,0xe2,0x7d,0x08,0x42,0x4a,0x80] + vgetexpps -2048(%rdx), %xmm17 + +// CHECK: vgetexpps -2064(%rdx), %xmm17 +// CHECK: encoding: [0x62,0xe2,0x7d,0x08,0x42,0x8a,0xf0,0xf7,0xff,0xff] + vgetexpps -2064(%rdx), %xmm17 + +// CHECK: vgetexpps 508(%rdx){1to4}, %xmm17 +// CHECK: encoding: [0x62,0xe2,0x7d,0x18,0x42,0x4a,0x7f] + vgetexpps 508(%rdx){1to4}, %xmm17 + +// CHECK: vgetexpps 512(%rdx){1to4}, %xmm17 +// CHECK: encoding: [0x62,0xe2,0x7d,0x18,0x42,0x8a,0x00,0x02,0x00,0x00] + vgetexpps 512(%rdx){1to4}, %xmm17 + +// CHECK: vgetexpps -512(%rdx){1to4}, %xmm17 +// CHECK: encoding: [0x62,0xe2,0x7d,0x18,0x42,0x4a,0x80] + vgetexpps -512(%rdx){1to4}, %xmm17 + +// CHECK: vgetexpps -516(%rdx){1to4}, %xmm17 +// CHECK: encoding: [0x62,0xe2,0x7d,0x18,0x42,0x8a,0xfc,0xfd,0xff,0xff] + vgetexpps -516(%rdx){1to4}, %xmm17 + +// CHECK: vgetexpps %ymm29, %ymm30 +// CHECK: encoding: [0x62,0x02,0x7d,0x28,0x42,0xf5] + vgetexpps %ymm29, %ymm30 + +// CHECK: vgetexpps %ymm29, %ymm30 {%k6} +// CHECK: encoding: [0x62,0x02,0x7d,0x2e,0x42,0xf5] + vgetexpps %ymm29, %ymm30 {%k6} + +// CHECK: vgetexpps %ymm29, %ymm30 {%k6} {z} +// CHECK: encoding: [0x62,0x02,0x7d,0xae,0x42,0xf5] + vgetexpps %ymm29, %ymm30 {%k6} {z} + +// CHECK: vgetexpps (%rcx), %ymm30 +// CHECK: encoding: [0x62,0x62,0x7d,0x28,0x42,0x31] + vgetexpps (%rcx), %ymm30 + +// CHECK: vgetexpps 291(%rax,%r14,8), %ymm30 +// CHECK: encoding: [0x62,0x22,0x7d,0x28,0x42,0xb4,0xf0,0x23,0x01,0x00,0x00] + vgetexpps 291(%rax,%r14,8), %ymm30 + +// CHECK: vgetexpps (%rcx){1to8}, %ymm30 +// CHECK: encoding: [0x62,0x62,0x7d,0x38,0x42,0x31] + vgetexpps (%rcx){1to8}, %ymm30 + +// CHECK: vgetexpps 4064(%rdx), %ymm30 +// CHECK: encoding: [0x62,0x62,0x7d,0x28,0x42,0x72,0x7f] + vgetexpps 4064(%rdx), %ymm30 + +// CHECK: vgetexpps 4096(%rdx), %ymm30 +// CHECK: encoding: [0x62,0x62,0x7d,0x28,0x42,0xb2,0x00,0x10,0x00,0x00] + vgetexpps 4096(%rdx), %ymm30 + +// CHECK: vgetexpps -4096(%rdx), %ymm30 +// CHECK: encoding: [0x62,0x62,0x7d,0x28,0x42,0x72,0x80] + vgetexpps -4096(%rdx), %ymm30 + +// CHECK: vgetexpps -4128(%rdx), %ymm30 +// CHECK: encoding: [0x62,0x62,0x7d,0x28,0x42,0xb2,0xe0,0xef,0xff,0xff] + vgetexpps -4128(%rdx), %ymm30 + +// CHECK: vgetexpps 508(%rdx){1to8}, %ymm30 +// CHECK: encoding: [0x62,0x62,0x7d,0x38,0x42,0x72,0x7f] + vgetexpps 508(%rdx){1to8}, %ymm30 + +// CHECK: vgetexpps 512(%rdx){1to8}, %ymm30 +// CHECK: encoding: [0x62,0x62,0x7d,0x38,0x42,0xb2,0x00,0x02,0x00,0x00] + vgetexpps 512(%rdx){1to8}, %ymm30 + +// CHECK: vgetexpps -512(%rdx){1to8}, %ymm30 +// CHECK: encoding: [0x62,0x62,0x7d,0x38,0x42,0x72,0x80] + vgetexpps -512(%rdx){1to8}, %ymm30 + +// CHECK: vgetexpps -516(%rdx){1to8}, %ymm30 +// CHECK: encoding: [0x62,0x62,0x7d,0x38,0x42,0xb2,0xfc,0xfd,0xff,0xff] + vgetexpps -516(%rdx){1to8}, %ymm30 + +// CHECK: vshuff32x4 $171, %ymm18, %ymm27, %ymm29 +// CHECK: encoding: [0x62,0x23,0x25,0x20,0x23,0xea,0xab] + vshuff32x4 $0xab, %ymm18, %ymm27, %ymm29 + +// CHECK: vshuff32x4 $171, %ymm18, %ymm27, %ymm29 {%k7} +// CHECK: encoding: [0x62,0x23,0x25,0x27,0x23,0xea,0xab] + vshuff32x4 $0xab, %ymm18, %ymm27, %ymm29 {%k7} + +// CHECK: vshuff32x4 $171, %ymm18, %ymm27, %ymm29 {%k7} {z} +// CHECK: encoding: [0x62,0x23,0x25,0xa7,0x23,0xea,0xab] + vshuff32x4 $0xab, %ymm18, %ymm27, %ymm29 {%k7} {z} + +// CHECK: vshuff32x4 $123, %ymm18, %ymm27, %ymm29 +// CHECK: encoding: [0x62,0x23,0x25,0x20,0x23,0xea,0x7b] + vshuff32x4 $0x7b, %ymm18, %ymm27, %ymm29 + +// CHECK: vshuff32x4 $123, (%rcx), %ymm27, %ymm29 +// CHECK: encoding: [0x62,0x63,0x25,0x20,0x23,0x29,0x7b] + vshuff32x4 $0x7b, (%rcx), %ymm27, %ymm29 + +// CHECK: vshuff32x4 $123, 291(%rax,%r14,8), %ymm27, %ymm29 +// CHECK: encoding: [0x62,0x23,0x25,0x20,0x23,0xac,0xf0,0x23,0x01,0x00,0x00,0x7b] + vshuff32x4 $0x7b, 291(%rax,%r14,8), %ymm27, %ymm29 + +// CHECK: vshuff32x4 $123, (%rcx){1to8}, %ymm27, %ymm29 +// CHECK: encoding: [0x62,0x63,0x25,0x30,0x23,0x29,0x7b] + vshuff32x4 $0x7b, (%rcx){1to8}, %ymm27, %ymm29 + +// CHECK: vshuff32x4 $123, 4064(%rdx), %ymm27, %ymm29 +// CHECK: encoding: [0x62,0x63,0x25,0x20,0x23,0x6a,0x7f,0x7b] + vshuff32x4 $0x7b, 4064(%rdx), %ymm27, %ymm29 + +// CHECK: vshuff32x4 $123, 4096(%rdx), %ymm27, %ymm29 +// CHECK: encoding: [0x62,0x63,0x25,0x20,0x23,0xaa,0x00,0x10,0x00,0x00,0x7b] + vshuff32x4 $0x7b, 4096(%rdx), %ymm27, %ymm29 + +// CHECK: vshuff32x4 $123, -4096(%rdx), %ymm27, %ymm29 +// CHECK: encoding: [0x62,0x63,0x25,0x20,0x23,0x6a,0x80,0x7b] + vshuff32x4 $0x7b, -4096(%rdx), %ymm27, %ymm29 + +// CHECK: vshuff32x4 $123, -4128(%rdx), %ymm27, %ymm29 +// CHECK: encoding: [0x62,0x63,0x25,0x20,0x23,0xaa,0xe0,0xef,0xff,0xff,0x7b] + vshuff32x4 $0x7b, -4128(%rdx), %ymm27, %ymm29 + +// CHECK: vshuff32x4 $123, 508(%rdx){1to8}, %ymm27, %ymm29 +// CHECK: encoding: [0x62,0x63,0x25,0x30,0x23,0x6a,0x7f,0x7b] + vshuff32x4 $0x7b, 508(%rdx){1to8}, %ymm27, %ymm29 + +// CHECK: vshuff32x4 $123, 512(%rdx){1to8}, %ymm27, %ymm29 +// CHECK: encoding: [0x62,0x63,0x25,0x30,0x23,0xaa,0x00,0x02,0x00,0x00,0x7b] + vshuff32x4 $0x7b, 512(%rdx){1to8}, %ymm27, %ymm29 + +// CHECK: vshuff32x4 $123, -512(%rdx){1to8}, %ymm27, %ymm29 +// CHECK: encoding: [0x62,0x63,0x25,0x30,0x23,0x6a,0x80,0x7b] + vshuff32x4 $0x7b, -512(%rdx){1to8}, %ymm27, %ymm29 + +// CHECK: vshuff32x4 $123, -516(%rdx){1to8}, %ymm27, %ymm29 +// CHECK: encoding: [0x62,0x63,0x25,0x30,0x23,0xaa,0xfc,0xfd,0xff,0xff,0x7b] + vshuff32x4 $0x7b, -516(%rdx){1to8}, %ymm27, %ymm29 + +// CHECK: vshuff64x2 $171, %ymm20, %ymm18, %ymm18 +// CHECK: encoding: [0x62,0xa3,0xed,0x20,0x23,0xd4,0xab] + vshuff64x2 $0xab, %ymm20, %ymm18, %ymm18 + +// CHECK: vshuff64x2 $171, %ymm20, %ymm18, %ymm18 {%k5} +// CHECK: encoding: [0x62,0xa3,0xed,0x25,0x23,0xd4,0xab] + vshuff64x2 $0xab, %ymm20, %ymm18, %ymm18 {%k5} + +// CHECK: vshuff64x2 $171, %ymm20, %ymm18, %ymm18 {%k5} {z} +// CHECK: encoding: [0x62,0xa3,0xed,0xa5,0x23,0xd4,0xab] + vshuff64x2 $0xab, %ymm20, %ymm18, %ymm18 {%k5} {z} + +// CHECK: vshuff64x2 $123, %ymm20, %ymm18, %ymm18 +// CHECK: encoding: [0x62,0xa3,0xed,0x20,0x23,0xd4,0x7b] + vshuff64x2 $0x7b, %ymm20, %ymm18, %ymm18 + +// CHECK: vshuff64x2 $123, (%rcx), %ymm18, %ymm18 +// CHECK: encoding: [0x62,0xe3,0xed,0x20,0x23,0x11,0x7b] + vshuff64x2 $0x7b, (%rcx), %ymm18, %ymm18 + +// CHECK: vshuff64x2 $123, 291(%rax,%r14,8), %ymm18, %ymm18 +// CHECK: encoding: [0x62,0xa3,0xed,0x20,0x23,0x94,0xf0,0x23,0x01,0x00,0x00,0x7b] + vshuff64x2 $0x7b, 291(%rax,%r14,8), %ymm18, %ymm18 + +// CHECK: vshuff64x2 $123, (%rcx){1to4}, %ymm18, %ymm18 +// CHECK: encoding: [0x62,0xe3,0xed,0x30,0x23,0x11,0x7b] + vshuff64x2 $0x7b, (%rcx){1to4}, %ymm18, %ymm18 + +// CHECK: vshuff64x2 $123, 4064(%rdx), %ymm18, %ymm18 +// CHECK: encoding: [0x62,0xe3,0xed,0x20,0x23,0x52,0x7f,0x7b] + vshuff64x2 $0x7b, 4064(%rdx), %ymm18, %ymm18 + +// CHECK: vshuff64x2 $123, 4096(%rdx), %ymm18, %ymm18 +// CHECK: encoding: [0x62,0xe3,0xed,0x20,0x23,0x92,0x00,0x10,0x00,0x00,0x7b] + vshuff64x2 $0x7b, 4096(%rdx), %ymm18, %ymm18 + +// CHECK: vshuff64x2 $123, -4096(%rdx), %ymm18, %ymm18 +// CHECK: encoding: [0x62,0xe3,0xed,0x20,0x23,0x52,0x80,0x7b] + vshuff64x2 $0x7b, -4096(%rdx), %ymm18, %ymm18 + +// CHECK: vshuff64x2 $123, -4128(%rdx), %ymm18, %ymm18 +// CHECK: encoding: [0x62,0xe3,0xed,0x20,0x23,0x92,0xe0,0xef,0xff,0xff,0x7b] + vshuff64x2 $0x7b, -4128(%rdx), %ymm18, %ymm18 + +// CHECK: vshuff64x2 $123, 1016(%rdx){1to4}, %ymm18, %ymm18 +// CHECK: encoding: [0x62,0xe3,0xed,0x30,0x23,0x52,0x7f,0x7b] + vshuff64x2 $0x7b, 1016(%rdx){1to4}, %ymm18, %ymm18 + +// CHECK: vshuff64x2 $123, 1024(%rdx){1to4}, %ymm18, %ymm18 +// CHECK: encoding: [0x62,0xe3,0xed,0x30,0x23,0x92,0x00,0x04,0x00,0x00,0x7b] + vshuff64x2 $0x7b, 1024(%rdx){1to4}, %ymm18, %ymm18 + +// CHECK: vshuff64x2 $123, -1024(%rdx){1to4}, %ymm18, %ymm18 +// CHECK: encoding: [0x62,0xe3,0xed,0x30,0x23,0x52,0x80,0x7b] + vshuff64x2 $0x7b, -1024(%rdx){1to4}, %ymm18, %ymm18 + +// CHECK: vshuff64x2 $123, -1032(%rdx){1to4}, %ymm18, %ymm18 +// CHECK: encoding: [0x62,0xe3,0xed,0x30,0x23,0x92,0xf8,0xfb,0xff,0xff,0x7b] + vshuff64x2 $0x7b, -1032(%rdx){1to4}, %ymm18, %ymm18 + +// CHECK: vshufi32x4 $171, %ymm17, %ymm27, %ymm18 +// CHECK: encoding: [0x62,0xa3,0x25,0x20,0x43,0xd1,0xab] + vshufi32x4 $0xab, %ymm17, %ymm27, %ymm18 + +// CHECK: vshufi32x4 $171, %ymm17, %ymm27, %ymm18 {%k7} +// CHECK: encoding: [0x62,0xa3,0x25,0x27,0x43,0xd1,0xab] + vshufi32x4 $0xab, %ymm17, %ymm27, %ymm18 {%k7} + +// CHECK: vshufi32x4 $171, %ymm17, %ymm27, %ymm18 {%k7} {z} +// CHECK: encoding: [0x62,0xa3,0x25,0xa7,0x43,0xd1,0xab] + vshufi32x4 $0xab, %ymm17, %ymm27, %ymm18 {%k7} {z} + +// CHECK: vshufi32x4 $123, %ymm17, %ymm27, %ymm18 +// CHECK: encoding: [0x62,0xa3,0x25,0x20,0x43,0xd1,0x7b] + vshufi32x4 $0x7b, %ymm17, %ymm27, %ymm18 + +// CHECK: vshufi32x4 $123, (%rcx), %ymm27, %ymm18 +// CHECK: encoding: [0x62,0xe3,0x25,0x20,0x43,0x11,0x7b] + vshufi32x4 $0x7b, (%rcx), %ymm27, %ymm18 + +// CHECK: vshufi32x4 $123, 291(%rax,%r14,8), %ymm27, %ymm18 +// CHECK: encoding: [0x62,0xa3,0x25,0x20,0x43,0x94,0xf0,0x23,0x01,0x00,0x00,0x7b] + vshufi32x4 $0x7b, 291(%rax,%r14,8), %ymm27, %ymm18 + +// CHECK: vshufi32x4 $123, (%rcx){1to8}, %ymm27, %ymm18 +// CHECK: encoding: [0x62,0xe3,0x25,0x30,0x43,0x11,0x7b] + vshufi32x4 $0x7b, (%rcx){1to8}, %ymm27, %ymm18 + +// CHECK: vshufi32x4 $123, 4064(%rdx), %ymm27, %ymm18 +// CHECK: encoding: [0x62,0xe3,0x25,0x20,0x43,0x52,0x7f,0x7b] + vshufi32x4 $0x7b, 4064(%rdx), %ymm27, %ymm18 + +// CHECK: vshufi32x4 $123, 4096(%rdx), %ymm27, %ymm18 +// CHECK: encoding: [0x62,0xe3,0x25,0x20,0x43,0x92,0x00,0x10,0x00,0x00,0x7b] + vshufi32x4 $0x7b, 4096(%rdx), %ymm27, %ymm18 + +// CHECK: vshufi32x4 $123, -4096(%rdx), %ymm27, %ymm18 +// CHECK: encoding: [0x62,0xe3,0x25,0x20,0x43,0x52,0x80,0x7b] + vshufi32x4 $0x7b, -4096(%rdx), %ymm27, %ymm18 + +// CHECK: vshufi32x4 $123, -4128(%rdx), %ymm27, %ymm18 +// CHECK: encoding: [0x62,0xe3,0x25,0x20,0x43,0x92,0xe0,0xef,0xff,0xff,0x7b] + vshufi32x4 $0x7b, -4128(%rdx), %ymm27, %ymm18 + +// CHECK: vshufi32x4 $123, 508(%rdx){1to8}, %ymm27, %ymm18 +// CHECK: encoding: [0x62,0xe3,0x25,0x30,0x43,0x52,0x7f,0x7b] + vshufi32x4 $0x7b, 508(%rdx){1to8}, %ymm27, %ymm18 + +// CHECK: vshufi32x4 $123, 512(%rdx){1to8}, %ymm27, %ymm18 +// CHECK: encoding: [0x62,0xe3,0x25,0x30,0x43,0x92,0x00,0x02,0x00,0x00,0x7b] + vshufi32x4 $0x7b, 512(%rdx){1to8}, %ymm27, %ymm18 + +// CHECK: vshufi32x4 $123, -512(%rdx){1to8}, %ymm27, %ymm18 +// CHECK: encoding: [0x62,0xe3,0x25,0x30,0x43,0x52,0x80,0x7b] + vshufi32x4 $0x7b, -512(%rdx){1to8}, %ymm27, %ymm18 + +// CHECK: vshufi32x4 $123, -516(%rdx){1to8}, %ymm27, %ymm18 +// CHECK: encoding: [0x62,0xe3,0x25,0x30,0x43,0x92,0xfc,0xfd,0xff,0xff,0x7b] + vshufi32x4 $0x7b, -516(%rdx){1to8}, %ymm27, %ymm18 + +// CHECK: vshufi64x2 $171, %ymm21, %ymm26, %ymm25 +// CHECK: encoding: [0x62,0x23,0xad,0x20,0x43,0xcd,0xab] + vshufi64x2 $0xab, %ymm21, %ymm26, %ymm25 + +// CHECK: vshufi64x2 $171, %ymm21, %ymm26, %ymm25 {%k3} +// CHECK: encoding: [0x62,0x23,0xad,0x23,0x43,0xcd,0xab] + vshufi64x2 $0xab, %ymm21, %ymm26, %ymm25 {%k3} + +// CHECK: vshufi64x2 $171, %ymm21, %ymm26, %ymm25 {%k3} {z} +// CHECK: encoding: [0x62,0x23,0xad,0xa3,0x43,0xcd,0xab] + vshufi64x2 $0xab, %ymm21, %ymm26, %ymm25 {%k3} {z} + +// CHECK: vshufi64x2 $123, %ymm21, %ymm26, %ymm25 +// CHECK: encoding: [0x62,0x23,0xad,0x20,0x43,0xcd,0x7b] + vshufi64x2 $0x7b, %ymm21, %ymm26, %ymm25 + +// CHECK: vshufi64x2 $123, (%rcx), %ymm26, %ymm25 +// CHECK: encoding: [0x62,0x63,0xad,0x20,0x43,0x09,0x7b] + vshufi64x2 $0x7b, (%rcx), %ymm26, %ymm25 + +// CHECK: vshufi64x2 $123, 291(%rax,%r14,8), %ymm26, %ymm25 +// CHECK: encoding: [0x62,0x23,0xad,0x20,0x43,0x8c,0xf0,0x23,0x01,0x00,0x00,0x7b] + vshufi64x2 $0x7b, 291(%rax,%r14,8), %ymm26, %ymm25 + +// CHECK: vshufi64x2 $123, (%rcx){1to4}, %ymm26, %ymm25 +// CHECK: encoding: [0x62,0x63,0xad,0x30,0x43,0x09,0x7b] + vshufi64x2 $0x7b, (%rcx){1to4}, %ymm26, %ymm25 + +// CHECK: vshufi64x2 $123, 4064(%rdx), %ymm26, %ymm25 +// CHECK: encoding: [0x62,0x63,0xad,0x20,0x43,0x4a,0x7f,0x7b] + vshufi64x2 $0x7b, 4064(%rdx), %ymm26, %ymm25 + +// CHECK: vshufi64x2 $123, 4096(%rdx), %ymm26, %ymm25 +// CHECK: encoding: [0x62,0x63,0xad,0x20,0x43,0x8a,0x00,0x10,0x00,0x00,0x7b] + vshufi64x2 $0x7b, 4096(%rdx), %ymm26, %ymm25 + +// CHECK: vshufi64x2 $123, -4096(%rdx), %ymm26, %ymm25 +// CHECK: encoding: [0x62,0x63,0xad,0x20,0x43,0x4a,0x80,0x7b] + vshufi64x2 $0x7b, -4096(%rdx), %ymm26, %ymm25 + +// CHECK: vshufi64x2 $123, -4128(%rdx), %ymm26, %ymm25 +// CHECK: encoding: [0x62,0x63,0xad,0x20,0x43,0x8a,0xe0,0xef,0xff,0xff,0x7b] + vshufi64x2 $0x7b, -4128(%rdx), %ymm26, %ymm25 + +// CHECK: vshufi64x2 $123, 1016(%rdx){1to4}, %ymm26, %ymm25 +// CHECK: encoding: [0x62,0x63,0xad,0x30,0x43,0x4a,0x7f,0x7b] + vshufi64x2 $0x7b, 1016(%rdx){1to4}, %ymm26, %ymm25 + +// CHECK: vshufi64x2 $123, 1024(%rdx){1to4}, %ymm26, %ymm25 +// CHECK: encoding: [0x62,0x63,0xad,0x30,0x43,0x8a,0x00,0x04,0x00,0x00,0x7b] + vshufi64x2 $0x7b, 1024(%rdx){1to4}, %ymm26, %ymm25 + +// CHECK: vshufi64x2 $123, -1024(%rdx){1to4}, %ymm26, %ymm25 +// CHECK: encoding: [0x62,0x63,0xad,0x30,0x43,0x4a,0x80,0x7b] + vshufi64x2 $0x7b, -1024(%rdx){1to4}, %ymm26, %ymm25 + +// CHECK: vshufi64x2 $123, -1032(%rdx){1to4}, %ymm26, %ymm25 +// CHECK: encoding: [0x62,0x63,0xad,0x30,0x43,0x8a,0xf8,0xfb,0xff,0xff,0x7b] + vshufi64x2 $0x7b, -1032(%rdx){1to4}, %ymm26, %ymm25 + +// CHECK: valignq $171, %xmm24, %xmm18, %xmm19 +// CHECK: encoding: [0x62,0x83,0xed,0x00,0x03,0xd8,0xab] + valignq $0xab, %xmm24, %xmm18, %xmm19 + +// CHECK: valignq $171, %xmm24, %xmm18, %xmm19 {%k5} +// CHECK: encoding: [0x62,0x83,0xed,0x05,0x03,0xd8,0xab] + valignq $0xab, %xmm24, %xmm18, %xmm19 {%k5} + +// CHECK: valignq $171, %xmm24, %xmm18, %xmm19 {%k5} {z} +// CHECK: encoding: [0x62,0x83,0xed,0x85,0x03,0xd8,0xab] + valignq $0xab, %xmm24, %xmm18, %xmm19 {%k5} {z} + +// CHECK: valignq $123, %xmm24, %xmm18, %xmm19 +// CHECK: encoding: [0x62,0x83,0xed,0x00,0x03,0xd8,0x7b] + valignq $0x7b, %xmm24, %xmm18, %xmm19 + +// CHECK: valignq $123, (%rcx), %xmm18, %xmm19 +// CHECK: encoding: [0x62,0xe3,0xed,0x00,0x03,0x19,0x7b] + valignq $0x7b, (%rcx), %xmm18, %xmm19 + +// CHECK: valignq $123, 291(%rax,%r14,8), %xmm18, %xmm19 +// CHECK: encoding: [0x62,0xa3,0xed,0x00,0x03,0x9c,0xf0,0x23,0x01,0x00,0x00,0x7b] + valignq $0x7b, 291(%rax,%r14,8), %xmm18, %xmm19 + +// CHECK: valignq $123, (%rcx){1to2}, %xmm18, %xmm19 +// CHECK: encoding: [0x62,0xe3,0xed,0x10,0x03,0x19,0x7b] + valignq $0x7b, (%rcx){1to2}, %xmm18, %xmm19 + +// CHECK: valignq $123, 2032(%rdx), %xmm18, %xmm19 +// CHECK: encoding: [0x62,0xe3,0xed,0x00,0x03,0x5a,0x7f,0x7b] + valignq $0x7b, 2032(%rdx), %xmm18, %xmm19 + +// CHECK: valignq $123, 2048(%rdx), %xmm18, %xmm19 +// CHECK: encoding: [0x62,0xe3,0xed,0x00,0x03,0x9a,0x00,0x08,0x00,0x00,0x7b] + valignq $0x7b, 2048(%rdx), %xmm18, %xmm19 + +// CHECK: valignq $123, -2048(%rdx), %xmm18, %xmm19 +// CHECK: encoding: [0x62,0xe3,0xed,0x00,0x03,0x5a,0x80,0x7b] + valignq $0x7b, -2048(%rdx), %xmm18, %xmm19 + +// CHECK: valignq $123, -2064(%rdx), %xmm18, %xmm19 +// CHECK: encoding: [0x62,0xe3,0xed,0x00,0x03,0x9a,0xf0,0xf7,0xff,0xff,0x7b] + valignq $0x7b, -2064(%rdx), %xmm18, %xmm19 + +// CHECK: valignq $123, 1016(%rdx){1to2}, %xmm18, %xmm19 +// CHECK: encoding: [0x62,0xe3,0xed,0x10,0x03,0x5a,0x7f,0x7b] + valignq $0x7b, 1016(%rdx){1to2}, %xmm18, %xmm19 + +// CHECK: valignq $123, 1024(%rdx){1to2}, %xmm18, %xmm19 +// CHECK: encoding: [0x62,0xe3,0xed,0x10,0x03,0x9a,0x00,0x04,0x00,0x00,0x7b] + valignq $0x7b, 1024(%rdx){1to2}, %xmm18, %xmm19 + +// CHECK: valignq $123, -1024(%rdx){1to2}, %xmm18, %xmm19 +// CHECK: encoding: [0x62,0xe3,0xed,0x10,0x03,0x5a,0x80,0x7b] + valignq $0x7b, -1024(%rdx){1to2}, %xmm18, %xmm19 + +// CHECK: valignq $123, -1032(%rdx){1to2}, %xmm18, %xmm19 +// CHECK: encoding: [0x62,0xe3,0xed,0x10,0x03,0x9a,0xf8,0xfb,0xff,0xff,0x7b] + valignq $0x7b, -1032(%rdx){1to2}, %xmm18, %xmm19 + +// CHECK: valignq $171, %ymm26, %ymm24, %ymm25 +// CHECK: encoding: [0x62,0x03,0xbd,0x20,0x03,0xca,0xab] + valignq $0xab, %ymm26, %ymm24, %ymm25 + +// CHECK: valignq $171, %ymm26, %ymm24, %ymm25 {%k2} +// CHECK: encoding: [0x62,0x03,0xbd,0x22,0x03,0xca,0xab] + valignq $0xab, %ymm26, %ymm24, %ymm25 {%k2} + +// CHECK: valignq $171, %ymm26, %ymm24, %ymm25 {%k2} {z} +// CHECK: encoding: [0x62,0x03,0xbd,0xa2,0x03,0xca,0xab] + valignq $0xab, %ymm26, %ymm24, %ymm25 {%k2} {z} + +// CHECK: valignq $123, %ymm26, %ymm24, %ymm25 +// CHECK: encoding: [0x62,0x03,0xbd,0x20,0x03,0xca,0x7b] + valignq $0x7b, %ymm26, %ymm24, %ymm25 + +// CHECK: valignq $123, (%rcx), %ymm24, %ymm25 +// CHECK: encoding: [0x62,0x63,0xbd,0x20,0x03,0x09,0x7b] + valignq $0x7b, (%rcx), %ymm24, %ymm25 + +// CHECK: valignq $123, 291(%rax,%r14,8), %ymm24, %ymm25 +// CHECK: encoding: [0x62,0x23,0xbd,0x20,0x03,0x8c,0xf0,0x23,0x01,0x00,0x00,0x7b] + valignq $0x7b, 291(%rax,%r14,8), %ymm24, %ymm25 + +// CHECK: valignq $123, (%rcx){1to4}, %ymm24, %ymm25 +// CHECK: encoding: [0x62,0x63,0xbd,0x30,0x03,0x09,0x7b] + valignq $0x7b, (%rcx){1to4}, %ymm24, %ymm25 + +// CHECK: valignq $123, 4064(%rdx), %ymm24, %ymm25 +// CHECK: encoding: [0x62,0x63,0xbd,0x20,0x03,0x4a,0x7f,0x7b] + valignq $0x7b, 4064(%rdx), %ymm24, %ymm25 + +// CHECK: valignq $123, 4096(%rdx), %ymm24, %ymm25 +// CHECK: encoding: [0x62,0x63,0xbd,0x20,0x03,0x8a,0x00,0x10,0x00,0x00,0x7b] + valignq $0x7b, 4096(%rdx), %ymm24, %ymm25 + +// CHECK: valignq $123, -4096(%rdx), %ymm24, %ymm25 +// CHECK: encoding: [0x62,0x63,0xbd,0x20,0x03,0x4a,0x80,0x7b] + valignq $0x7b, -4096(%rdx), %ymm24, %ymm25 + +// CHECK: valignq $123, -4128(%rdx), %ymm24, %ymm25 +// CHECK: encoding: [0x62,0x63,0xbd,0x20,0x03,0x8a,0xe0,0xef,0xff,0xff,0x7b] + valignq $0x7b, -4128(%rdx), %ymm24, %ymm25 + +// CHECK: valignq $123, 1016(%rdx){1to4}, %ymm24, %ymm25 +// CHECK: encoding: [0x62,0x63,0xbd,0x30,0x03,0x4a,0x7f,0x7b] + valignq $0x7b, 1016(%rdx){1to4}, %ymm24, %ymm25 + +// CHECK: valignq $123, 1024(%rdx){1to4}, %ymm24, %ymm25 +// CHECK: encoding: [0x62,0x63,0xbd,0x30,0x03,0x8a,0x00,0x04,0x00,0x00,0x7b] + valignq $0x7b, 1024(%rdx){1to4}, %ymm24, %ymm25 + +// CHECK: valignq $123, -1024(%rdx){1to4}, %ymm24, %ymm25 +// CHECK: encoding: [0x62,0x63,0xbd,0x30,0x03,0x4a,0x80,0x7b] + valignq $0x7b, -1024(%rdx){1to4}, %ymm24, %ymm25 + +// CHECK: valignq $123, -1032(%rdx){1to4}, %ymm24, %ymm25 +// CHECK: encoding: [0x62,0x63,0xbd,0x30,0x03,0x8a,0xf8,0xfb,0xff,0xff,0x7b] + valignq $0x7b, -1032(%rdx){1to4}, %ymm24, %ymm25 |