1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00
llvm-mirror/test/MC/X86/SSE3-32.s
Craig Topper a3d65c2594 [X86][SSE]: Adding full coverage of MC encoding tests for the SSE isa sets.<NFC>
Summary:
NFC.
Adding MC regressions tests to cover all the SSE ISA sets as follows:
SSE, SSE2, SSE3, SSE4, SSE42, SSEMXCSR, SSE_PREFETCH, SSSE3

This patch is part of a larger task to cover MC encoding of all X86 ISA Sets.
See revision: https://reviews.llvm.org/D39952

Patch by Gadi Haber and Wang Tianqing

Reviewers: RKSimon, zvi, craig.topper, AndreiGrischenko, gadi.haber, LuoYuanke

Reviewed By: craig.topper

Subscribers: jfb, llvm-commits

Differential Revision: https://reviews.llvm.org/D40387

llvm-svn: 352955
2019-02-02 06:21:54 +00:00

359 lines
11 KiB
ArmAsm

// RUN: llvm-mc -triple i386-unknown-unknown --show-encoding %s | FileCheck %s
// CHECK: addsubpd -485498096(%edx,%eax,4), %xmm1
// CHECK: encoding: [0x66,0x0f,0xd0,0x8c,0x82,0x10,0xe3,0x0f,0xe3]
addsubpd -485498096(%edx,%eax,4), %xmm1
// CHECK: addsubpd 485498096(%edx,%eax,4), %xmm1
// CHECK: encoding: [0x66,0x0f,0xd0,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]
addsubpd 485498096(%edx,%eax,4), %xmm1
// CHECK: addsubpd 485498096(%edx), %xmm1
// CHECK: encoding: [0x66,0x0f,0xd0,0x8a,0xf0,0x1c,0xf0,0x1c]
addsubpd 485498096(%edx), %xmm1
// CHECK: addsubpd 485498096, %xmm1
// CHECK: encoding: [0x66,0x0f,0xd0,0x0d,0xf0,0x1c,0xf0,0x1c]
addsubpd 485498096, %xmm1
// CHECK: addsubpd 64(%edx,%eax), %xmm1
// CHECK: encoding: [0x66,0x0f,0xd0,0x4c,0x02,0x40]
addsubpd 64(%edx,%eax), %xmm1
// CHECK: addsubpd (%edx), %xmm1
// CHECK: encoding: [0x66,0x0f,0xd0,0x0a]
addsubpd (%edx), %xmm1
// CHECK: addsubpd %xmm1, %xmm1
// CHECK: encoding: [0x66,0x0f,0xd0,0xc9]
addsubpd %xmm1, %xmm1
// CHECK: addsubps -485498096(%edx,%eax,4), %xmm1
// CHECK: encoding: [0xf2,0x0f,0xd0,0x8c,0x82,0x10,0xe3,0x0f,0xe3]
addsubps -485498096(%edx,%eax,4), %xmm1
// CHECK: addsubps 485498096(%edx,%eax,4), %xmm1
// CHECK: encoding: [0xf2,0x0f,0xd0,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]
addsubps 485498096(%edx,%eax,4), %xmm1
// CHECK: addsubps 485498096(%edx), %xmm1
// CHECK: encoding: [0xf2,0x0f,0xd0,0x8a,0xf0,0x1c,0xf0,0x1c]
addsubps 485498096(%edx), %xmm1
// CHECK: addsubps 485498096, %xmm1
// CHECK: encoding: [0xf2,0x0f,0xd0,0x0d,0xf0,0x1c,0xf0,0x1c]
addsubps 485498096, %xmm1
// CHECK: addsubps 64(%edx,%eax), %xmm1
// CHECK: encoding: [0xf2,0x0f,0xd0,0x4c,0x02,0x40]
addsubps 64(%edx,%eax), %xmm1
// CHECK: addsubps (%edx), %xmm1
// CHECK: encoding: [0xf2,0x0f,0xd0,0x0a]
addsubps (%edx), %xmm1
// CHECK: addsubps %xmm1, %xmm1
// CHECK: encoding: [0xf2,0x0f,0xd0,0xc9]
addsubps %xmm1, %xmm1
// CHECK: fisttpl -485498096(%edx,%eax,4)
// CHECK: encoding: [0xdb,0x8c,0x82,0x10,0xe3,0x0f,0xe3]
fisttpl -485498096(%edx,%eax,4)
// CHECK: fisttpl 485498096(%edx,%eax,4)
// CHECK: encoding: [0xdb,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]
fisttpl 485498096(%edx,%eax,4)
// CHECK: fisttpl 485498096(%edx)
// CHECK: encoding: [0xdb,0x8a,0xf0,0x1c,0xf0,0x1c]
fisttpl 485498096(%edx)
// CHECK: fisttpl 485498096
// CHECK: encoding: [0xdb,0x0d,0xf0,0x1c,0xf0,0x1c]
fisttpl 485498096
// CHECK: fisttpl 64(%edx,%eax)
// CHECK: encoding: [0xdb,0x4c,0x02,0x40]
fisttpl 64(%edx,%eax)
// CHECK: fisttpl (%edx)
// CHECK: encoding: [0xdb,0x0a]
fisttpl (%edx)
// CHECK: fisttpll -485498096(%edx,%eax,4)
// CHECK: encoding: [0xdd,0x8c,0x82,0x10,0xe3,0x0f,0xe3]
fisttpll -485498096(%edx,%eax,4)
// CHECK: fisttpll 485498096(%edx,%eax,4)
// CHECK: encoding: [0xdd,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]
fisttpll 485498096(%edx,%eax,4)
// CHECK: fisttpll 485498096(%edx)
// CHECK: encoding: [0xdd,0x8a,0xf0,0x1c,0xf0,0x1c]
fisttpll 485498096(%edx)
// CHECK: fisttpll 485498096
// CHECK: encoding: [0xdd,0x0d,0xf0,0x1c,0xf0,0x1c]
fisttpll 485498096
// CHECK: fisttpll 64(%edx,%eax)
// CHECK: encoding: [0xdd,0x4c,0x02,0x40]
fisttpll 64(%edx,%eax)
// CHECK: fisttpll (%edx)
// CHECK: encoding: [0xdd,0x0a]
fisttpll (%edx)
// CHECK: fisttps -485498096(%edx,%eax,4)
// CHECK: encoding: [0xdf,0x8c,0x82,0x10,0xe3,0x0f,0xe3]
fisttps -485498096(%edx,%eax,4)
// CHECK: fisttps 485498096(%edx,%eax,4)
// CHECK: encoding: [0xdf,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]
fisttps 485498096(%edx,%eax,4)
// CHECK: fisttps 485498096(%edx)
// CHECK: encoding: [0xdf,0x8a,0xf0,0x1c,0xf0,0x1c]
fisttps 485498096(%edx)
// CHECK: fisttps 485498096
// CHECK: encoding: [0xdf,0x0d,0xf0,0x1c,0xf0,0x1c]
fisttps 485498096
// CHECK: fisttps 64(%edx,%eax)
// CHECK: encoding: [0xdf,0x4c,0x02,0x40]
fisttps 64(%edx,%eax)
// CHECK: fisttps (%edx)
// CHECK: encoding: [0xdf,0x0a]
fisttps (%edx)
// CHECK: haddpd -485498096(%edx,%eax,4), %xmm1
// CHECK: encoding: [0x66,0x0f,0x7c,0x8c,0x82,0x10,0xe3,0x0f,0xe3]
haddpd -485498096(%edx,%eax,4), %xmm1
// CHECK: haddpd 485498096(%edx,%eax,4), %xmm1
// CHECK: encoding: [0x66,0x0f,0x7c,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]
haddpd 485498096(%edx,%eax,4), %xmm1
// CHECK: haddpd 485498096(%edx), %xmm1
// CHECK: encoding: [0x66,0x0f,0x7c,0x8a,0xf0,0x1c,0xf0,0x1c]
haddpd 485498096(%edx), %xmm1
// CHECK: haddpd 485498096, %xmm1
// CHECK: encoding: [0x66,0x0f,0x7c,0x0d,0xf0,0x1c,0xf0,0x1c]
haddpd 485498096, %xmm1
// CHECK: haddpd 64(%edx,%eax), %xmm1
// CHECK: encoding: [0x66,0x0f,0x7c,0x4c,0x02,0x40]
haddpd 64(%edx,%eax), %xmm1
// CHECK: haddpd (%edx), %xmm1
// CHECK: encoding: [0x66,0x0f,0x7c,0x0a]
haddpd (%edx), %xmm1
// CHECK: haddpd %xmm1, %xmm1
// CHECK: encoding: [0x66,0x0f,0x7c,0xc9]
haddpd %xmm1, %xmm1
// CHECK: haddps -485498096(%edx,%eax,4), %xmm1
// CHECK: encoding: [0xf2,0x0f,0x7c,0x8c,0x82,0x10,0xe3,0x0f,0xe3]
haddps -485498096(%edx,%eax,4), %xmm1
// CHECK: haddps 485498096(%edx,%eax,4), %xmm1
// CHECK: encoding: [0xf2,0x0f,0x7c,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]
haddps 485498096(%edx,%eax,4), %xmm1
// CHECK: haddps 485498096(%edx), %xmm1
// CHECK: encoding: [0xf2,0x0f,0x7c,0x8a,0xf0,0x1c,0xf0,0x1c]
haddps 485498096(%edx), %xmm1
// CHECK: haddps 485498096, %xmm1
// CHECK: encoding: [0xf2,0x0f,0x7c,0x0d,0xf0,0x1c,0xf0,0x1c]
haddps 485498096, %xmm1
// CHECK: haddps 64(%edx,%eax), %xmm1
// CHECK: encoding: [0xf2,0x0f,0x7c,0x4c,0x02,0x40]
haddps 64(%edx,%eax), %xmm1
// CHECK: haddps (%edx), %xmm1
// CHECK: encoding: [0xf2,0x0f,0x7c,0x0a]
haddps (%edx), %xmm1
// CHECK: haddps %xmm1, %xmm1
// CHECK: encoding: [0xf2,0x0f,0x7c,0xc9]
haddps %xmm1, %xmm1
// CHECK: hsubpd -485498096(%edx,%eax,4), %xmm1
// CHECK: encoding: [0x66,0x0f,0x7d,0x8c,0x82,0x10,0xe3,0x0f,0xe3]
hsubpd -485498096(%edx,%eax,4), %xmm1
// CHECK: hsubpd 485498096(%edx,%eax,4), %xmm1
// CHECK: encoding: [0x66,0x0f,0x7d,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]
hsubpd 485498096(%edx,%eax,4), %xmm1
// CHECK: hsubpd 485498096(%edx), %xmm1
// CHECK: encoding: [0x66,0x0f,0x7d,0x8a,0xf0,0x1c,0xf0,0x1c]
hsubpd 485498096(%edx), %xmm1
// CHECK: hsubpd 485498096, %xmm1
// CHECK: encoding: [0x66,0x0f,0x7d,0x0d,0xf0,0x1c,0xf0,0x1c]
hsubpd 485498096, %xmm1
// CHECK: hsubpd 64(%edx,%eax), %xmm1
// CHECK: encoding: [0x66,0x0f,0x7d,0x4c,0x02,0x40]
hsubpd 64(%edx,%eax), %xmm1
// CHECK: hsubpd (%edx), %xmm1
// CHECK: encoding: [0x66,0x0f,0x7d,0x0a]
hsubpd (%edx), %xmm1
// CHECK: hsubpd %xmm1, %xmm1
// CHECK: encoding: [0x66,0x0f,0x7d,0xc9]
hsubpd %xmm1, %xmm1
// CHECK: hsubps -485498096(%edx,%eax,4), %xmm1
// CHECK: encoding: [0xf2,0x0f,0x7d,0x8c,0x82,0x10,0xe3,0x0f,0xe3]
hsubps -485498096(%edx,%eax,4), %xmm1
// CHECK: hsubps 485498096(%edx,%eax,4), %xmm1
// CHECK: encoding: [0xf2,0x0f,0x7d,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]
hsubps 485498096(%edx,%eax,4), %xmm1
// CHECK: hsubps 485498096(%edx), %xmm1
// CHECK: encoding: [0xf2,0x0f,0x7d,0x8a,0xf0,0x1c,0xf0,0x1c]
hsubps 485498096(%edx), %xmm1
// CHECK: hsubps 485498096, %xmm1
// CHECK: encoding: [0xf2,0x0f,0x7d,0x0d,0xf0,0x1c,0xf0,0x1c]
hsubps 485498096, %xmm1
// CHECK: hsubps 64(%edx,%eax), %xmm1
// CHECK: encoding: [0xf2,0x0f,0x7d,0x4c,0x02,0x40]
hsubps 64(%edx,%eax), %xmm1
// CHECK: hsubps (%edx), %xmm1
// CHECK: encoding: [0xf2,0x0f,0x7d,0x0a]
hsubps (%edx), %xmm1
// CHECK: hsubps %xmm1, %xmm1
// CHECK: encoding: [0xf2,0x0f,0x7d,0xc9]
hsubps %xmm1, %xmm1
// CHECK: lddqu -485498096(%edx,%eax,4), %xmm1
// CHECK: encoding: [0xf2,0x0f,0xf0,0x8c,0x82,0x10,0xe3,0x0f,0xe3]
lddqu -485498096(%edx,%eax,4), %xmm1
// CHECK: lddqu 485498096(%edx,%eax,4), %xmm1
// CHECK: encoding: [0xf2,0x0f,0xf0,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]
lddqu 485498096(%edx,%eax,4), %xmm1
// CHECK: lddqu 485498096(%edx), %xmm1
// CHECK: encoding: [0xf2,0x0f,0xf0,0x8a,0xf0,0x1c,0xf0,0x1c]
lddqu 485498096(%edx), %xmm1
// CHECK: lddqu 485498096, %xmm1
// CHECK: encoding: [0xf2,0x0f,0xf0,0x0d,0xf0,0x1c,0xf0,0x1c]
lddqu 485498096, %xmm1
// CHECK: lddqu 64(%edx,%eax), %xmm1
// CHECK: encoding: [0xf2,0x0f,0xf0,0x4c,0x02,0x40]
lddqu 64(%edx,%eax), %xmm1
// CHECK: lddqu (%edx), %xmm1
// CHECK: encoding: [0xf2,0x0f,0xf0,0x0a]
lddqu (%edx), %xmm1
// CHECK: monitor
// CHECK: encoding: [0x0f,0x01,0xc8]
monitor
// CHECK: movddup -485498096(%edx,%eax,4), %xmm1
// CHECK: encoding: [0xf2,0x0f,0x12,0x8c,0x82,0x10,0xe3,0x0f,0xe3]
movddup -485498096(%edx,%eax,4), %xmm1
// CHECK: movddup 485498096(%edx,%eax,4), %xmm1
// CHECK: encoding: [0xf2,0x0f,0x12,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]
movddup 485498096(%edx,%eax,4), %xmm1
// CHECK: movddup 485498096(%edx), %xmm1
// CHECK: encoding: [0xf2,0x0f,0x12,0x8a,0xf0,0x1c,0xf0,0x1c]
movddup 485498096(%edx), %xmm1
// CHECK: movddup 485498096, %xmm1
// CHECK: encoding: [0xf2,0x0f,0x12,0x0d,0xf0,0x1c,0xf0,0x1c]
movddup 485498096, %xmm1
// CHECK: movddup 64(%edx,%eax), %xmm1
// CHECK: encoding: [0xf2,0x0f,0x12,0x4c,0x02,0x40]
movddup 64(%edx,%eax), %xmm1
// CHECK: movddup (%edx), %xmm1
// CHECK: encoding: [0xf2,0x0f,0x12,0x0a]
movddup (%edx), %xmm1
// CHECK: movddup %xmm1, %xmm1
// CHECK: encoding: [0xf2,0x0f,0x12,0xc9]
movddup %xmm1, %xmm1
// CHECK: movshdup -485498096(%edx,%eax,4), %xmm1
// CHECK: encoding: [0xf3,0x0f,0x16,0x8c,0x82,0x10,0xe3,0x0f,0xe3]
movshdup -485498096(%edx,%eax,4), %xmm1
// CHECK: movshdup 485498096(%edx,%eax,4), %xmm1
// CHECK: encoding: [0xf3,0x0f,0x16,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]
movshdup 485498096(%edx,%eax,4), %xmm1
// CHECK: movshdup 485498096(%edx), %xmm1
// CHECK: encoding: [0xf3,0x0f,0x16,0x8a,0xf0,0x1c,0xf0,0x1c]
movshdup 485498096(%edx), %xmm1
// CHECK: movshdup 485498096, %xmm1
// CHECK: encoding: [0xf3,0x0f,0x16,0x0d,0xf0,0x1c,0xf0,0x1c]
movshdup 485498096, %xmm1
// CHECK: movshdup 64(%edx,%eax), %xmm1
// CHECK: encoding: [0xf3,0x0f,0x16,0x4c,0x02,0x40]
movshdup 64(%edx,%eax), %xmm1
// CHECK: movshdup (%edx), %xmm1
// CHECK: encoding: [0xf3,0x0f,0x16,0x0a]
movshdup (%edx), %xmm1
// CHECK: movshdup %xmm1, %xmm1
// CHECK: encoding: [0xf3,0x0f,0x16,0xc9]
movshdup %xmm1, %xmm1
// CHECK: movsldup -485498096(%edx,%eax,4), %xmm1
// CHECK: encoding: [0xf3,0x0f,0x12,0x8c,0x82,0x10,0xe3,0x0f,0xe3]
movsldup -485498096(%edx,%eax,4), %xmm1
// CHECK: movsldup 485498096(%edx,%eax,4), %xmm1
// CHECK: encoding: [0xf3,0x0f,0x12,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]
movsldup 485498096(%edx,%eax,4), %xmm1
// CHECK: movsldup 485498096(%edx), %xmm1
// CHECK: encoding: [0xf3,0x0f,0x12,0x8a,0xf0,0x1c,0xf0,0x1c]
movsldup 485498096(%edx), %xmm1
// CHECK: movsldup 485498096, %xmm1
// CHECK: encoding: [0xf3,0x0f,0x12,0x0d,0xf0,0x1c,0xf0,0x1c]
movsldup 485498096, %xmm1
// CHECK: movsldup 64(%edx,%eax), %xmm1
// CHECK: encoding: [0xf3,0x0f,0x12,0x4c,0x02,0x40]
movsldup 64(%edx,%eax), %xmm1
// CHECK: movsldup (%edx), %xmm1
// CHECK: encoding: [0xf3,0x0f,0x12,0x0a]
movsldup (%edx), %xmm1
// CHECK: movsldup %xmm1, %xmm1
// CHECK: encoding: [0xf3,0x0f,0x12,0xc9]
movsldup %xmm1, %xmm1
// CHECK: mwait
// CHECK: encoding: [0x0f,0x01,0xc9]
mwait