1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 20:12:56 +02:00
llvm-mirror/test/MC/Disassembler/PowerPC/vsx.txt
Nemanja Ivanovic 285f278c18 Scalar to vector conversions using direct moves
This patch corresponds to review:
http://reviews.llvm.org/D11471

It improves the code generated for converting a scalar to a vector value. With
direct moves from GPRs to VSRs, we no longer require expensive stack operations
for this. Subsequent patches will handle the reverse case and more general
operations between vectors and their scalar elements.

llvm-svn: 244921
2015-08-13 17:40:44 +00:00

542 lines
8.4 KiB
Plaintext

# RUN: llvm-mc --disassemble %s -triple powerpc64-unknown-linux-gnu -mcpu=pwr7 | FileCheck %s
# CHECK: lxsdx 7, 5, 31
0x7c 0xe5 0xfc 0x98
# CHECK: lxsiwax 7, 5, 31
0x7c 0xe5 0xf8 0x98
# CHECK: lxsiwzx 7, 5, 31
0x7c 0xe5 0xf8 0x18
# CHECK: lxsspx 7, 5, 31
0x7c 0xe5 0xfc 0x18
# CHECK: lxvd2x 7, 5, 31
0x7c 0xe5 0xfe 0x98
# CHECK: lxvdsx 7, 5, 31
0x7c 0xe5 0xfa 0x98
# CHECK: lxvw4x 7, 5, 31
0x7c 0xe5 0xfe 0x18
# CHECK: stxsdx 8, 5, 31
0x7d 0x05 0xfd 0x98
# CHECK: stxsiwx 8, 5, 31
0x7d 0x05 0xf9 0x18
# CHECK: stxsspx 8, 5, 31
0x7d 0x05 0xfd 0x18
# CHECK: stxvd2x 8, 5, 31
0x7d 0x05 0xff 0x98
# CHECK: stxvw4x 8, 5, 31
0x7d 0x05 0xff 0x18
# CHECK: xsabsdp 7, 27
0xf0 0xe0 0xdd 0x64
# CHECK: xsaddsp 7, 63, 27
0xf0 0xff 0xd8 0x04
# CHECK: xsadddp 7, 63, 27
0xf0 0xff 0xd9 0x04
# CHECK: xscmpodp 6, 63, 27
0xf3 0x1f 0xd9 0x5c
# CHECK: xscmpudp 6, 63, 27
0xf3 0x1f 0xd9 0x1c
# CHECK: xscpsgndp 7, 63, 27
0xf0 0xff 0xdd 0x84
# CHECK: xscvdpsp 7, 27
0xf0 0xe0 0xdc 0x24
# CHECK: xscvdpspn 7, 27
0xf0 0xe0 0xdc 0x2c
# CHECK: xscvdpsxds 7, 27
0xf0 0xe0 0xdd 0x60
# CHECK: xscvdpsxws 7, 27
0xf0 0xe0 0xd9 0x60
# CHECK: xscvdpuxds 7, 27
0xf0 0xe0 0xdd 0x20
# CHECK: xscvdpuxws 7, 27
0xf0 0xe0 0xd9 0x20
# CHECK: xscvspdp 7, 27
0xf0 0xe0 0xdd 0x24
# CHECK: xscvspdpn 7, 27
0xf0 0xe0 0xdd 0x2c
# CHECK: xscvsxdsp 7, 27
0xf0 0xe0 0xdc 0xe0
# CHECK: xscvsxddp 7, 27
0xf0 0xe0 0xdd 0xe0
# CHECK: xscvuxdsp 7, 27
0xf0 0xe0 0xdc 0xa0
# CHECK: xscvuxddp 7, 27
0xf0 0xe0 0xdd 0xa0
# CHECK: xsdivsp 7, 63, 27
0xf0 0xff 0xd8 0xc4
# CHECK: xsdivdp 7, 63, 27
0xf0 0xff 0xd9 0xc4
# CHECK: xsmaddadp 7, 63, 27
0xf0 0xff 0xd9 0x0c
# 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
# CHECK: xsmindp 7, 63, 27
0xf0 0xff 0xdd 0x44
# CHECK: xsmsubadp 7, 63, 27
0xf0 0xff 0xd9 0x8c
# 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
# CHECK: xsmuldp 7, 63, 27
0xf0 0xff 0xd9 0x84
# CHECK: xsnabsdp 7, 27
0xf0 0xe0 0xdd 0xa4
# CHECK: xsnegdp 7, 27
0xf0 0xe0 0xdd 0xe4
# CHECK: xsnmaddadp 7, 63, 27
0xf0 0xff 0xdd 0x0c
# CHECK: xsnmaddmdp 7, 63, 27
0xf0 0xff 0xdd 0x4c
# CHECK: xsnmsubadp 7, 63, 27
0xf0 0xff 0xdd 0x8c
# 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
# CHECK: xsrdpic 7, 27
0xf0 0xe0 0xd9 0xac
# CHECK: xsrdpim 7, 27
0xf0 0xe0 0xd9 0xe4
# CHECK: xsrdpip 7, 27
0xf0 0xe0 0xd9 0xa4
# CHECK: xsrdpiz 7, 27
0xf0 0xe0 0xd9 0x64
# CHECK: xsresp 7, 27
0xf0 0xe0 0xd8 0x68
# CHECK: xsredp 7, 27
0xf0 0xe0 0xd9 0x68
# CHECK: xsrsqrtesp 7, 27
0xf0 0xe0 0xd8 0x28
# CHECK: xsrsqrtedp 7, 27
0xf0 0xe0 0xd9 0x28
# CHECK: xssqrtsp 7, 27
0xf0 0xe0 0xd8 0x2c
# CHECK: xssqrtdp 7, 27
0xf0 0xe0 0xd9 0x2c
# CHECK: xssubsp 7, 63, 27
0xf0 0xff 0xd8 0x44
# CHECK: xssubdp 7, 63, 27
0xf0 0xff 0xd9 0x44
# CHECK: xstdivdp 6, 63, 27
0xf3 0x1f 0xd9 0xec
# CHECK: xstsqrtdp 6, 27
0xf3 0x00 0xd9 0xa8
# CHECK: xvabsdp 7, 27
0xf0 0xe0 0xdf 0x64
# CHECK: xvabssp 7, 27
0xf0 0xe0 0xde 0x64
# CHECK: xvadddp 7, 63, 27
0xf0 0xff 0xdb 0x04
# CHECK: xvaddsp 7, 63, 27
0xf0 0xff 0xda 0x04
# CHECK: xvcmpeqdp 7, 63, 27
0xf0 0xff 0xdb 0x1c
# CHECK: xvcmpeqdp. 7, 63, 27
0xf0 0xff 0xdf 0x1c
# CHECK: xvcmpeqsp 7, 63, 27
0xf0 0xff 0xda 0x1c
# CHECK: xvcmpeqsp. 7, 63, 27
0xf0 0xff 0xde 0x1c
# CHECK: xvcmpgedp 7, 63, 27
0xf0 0xff 0xdb 0x9c
# CHECK: xvcmpgedp. 7, 63, 27
0xf0 0xff 0xdf 0x9c
# CHECK: xvcmpgesp 7, 63, 27
0xf0 0xff 0xda 0x9c
# CHECK: xvcmpgesp. 7, 63, 27
0xf0 0xff 0xde 0x9c
# CHECK: xvcmpgtdp 7, 63, 27
0xf0 0xff 0xdb 0x5c
# CHECK: xvcmpgtdp. 7, 63, 27
0xf0 0xff 0xdf 0x5c
# CHECK: xvcmpgtsp 7, 63, 27
0xf0 0xff 0xda 0x5c
# CHECK: xvcmpgtsp. 7, 63, 27
0xf0 0xff 0xde 0x5c
# CHECK: xvcpsgndp 7, 63, 27
0xf0 0xff 0xdf 0x84
# CHECK: xvcpsgnsp 7, 63, 27
0xf0 0xff 0xde 0x84
# CHECK: xvcvdpsp 7, 27
0xf0 0xe0 0xde 0x24
# CHECK: xvcvdpsxds 7, 27
0xf0 0xe0 0xdf 0x60
# CHECK: xvcvdpsxws 7, 27
0xf0 0xe0 0xdb 0x60
# CHECK: xvcvdpuxds 7, 27
0xf0 0xe0 0xdf 0x20
# CHECK: xvcvdpuxws 7, 27
0xf0 0xe0 0xdb 0x20
# CHECK: xvcvspdp 7, 27
0xf0 0xe0 0xdf 0x24
# CHECK: xvcvspsxds 7, 27
0xf0 0xe0 0xde 0x60
# CHECK: xvcvspsxws 7, 27
0xf0 0xe0 0xda 0x60
# CHECK: xvcvspuxds 7, 27
0xf0 0xe0 0xde 0x20
# CHECK: xvcvspuxws 7, 27
0xf0 0xe0 0xda 0x20
# CHECK: xvcvsxddp 7, 27
0xf0 0xe0 0xdf 0xe0
# CHECK: xvcvsxdsp 7, 27
0xf0 0xe0 0xde 0xe0
# CHECK: xvcvsxwdp 7, 27
0xf0 0xe0 0xdb 0xe0
# CHECK: xvcvsxwsp 7, 27
0xf0 0xe0 0xda 0xe0
# CHECK: xvcvuxddp 7, 27
0xf0 0xe0 0xdf 0xa0
# CHECK: xvcvuxdsp 7, 27
0xf0 0xe0 0xde 0xa0
# CHECK: xvcvuxwdp 7, 27
0xf0 0xe0 0xdb 0xa0
# CHECK: xvcvuxwsp 7, 27
0xf0 0xe0 0xda 0xa0
# CHECK: xvdivdp 7, 63, 27
0xf0 0xff 0xdb 0xc4
# CHECK: xvdivsp 7, 63, 27
0xf0 0xff 0xda 0xc4
# CHECK: xvmaddadp 7, 63, 27
0xf0 0xff 0xdb 0x0c
# CHECK: xvmaddasp 7, 63, 27
0xf0 0xff 0xda 0x0c
# CHECK: xvmaddmdp 7, 63, 27
0xf0 0xff 0xdb 0x4c
# CHECK: xvmaddmsp 7, 63, 27
0xf0 0xff 0xda 0x4c
# CHECK: xvmaxdp 7, 63, 27
0xf0 0xff 0xdf 0x04
# CHECK: xvmaxsp 7, 63, 27
0xf0 0xff 0xde 0x04
# CHECK: xvmindp 7, 63, 27
0xf0 0xff 0xdf 0x44
# CHECK: xvminsp 7, 63, 27
0xf0 0xff 0xde 0x44
# CHECK: xvmovdp 7, 63
0xf0 0xff 0xff 0x86
# CHECK: xvmovsp 7, 63
0xf0 0xff 0xfe 0x86
# CHECK: xvmsubadp 7, 63, 27
0xf0 0xff 0xdb 0x8c
# CHECK: xvmsubasp 7, 63, 27
0xf0 0xff 0xda 0x8c
# CHECK: xvmsubmdp 7, 63, 27
0xf0 0xff 0xdb 0xcc
# CHECK: xvmsubmsp 7, 63, 27
0xf0 0xff 0xda 0xcc
# CHECK: xvmuldp 7, 63, 27
0xf0 0xff 0xdb 0x84
# CHECK: xvmulsp 7, 63, 27
0xf0 0xff 0xda 0x84
# CHECK: xvnabsdp 7, 27
0xf0 0xe0 0xdf 0xa4
# CHECK: xvnabssp 7, 27
0xf0 0xe0 0xde 0xa4
# CHECK: xvnegdp 7, 27
0xf0 0xe0 0xdf 0xe4
# CHECK: xvnegsp 7, 27
0xf0 0xe0 0xde 0xe4
# CHECK: xvnmaddadp 7, 63, 27
0xf0 0xff 0xdf 0x0c
# CHECK: xvnmaddasp 7, 63, 27
0xf0 0xff 0xde 0x0c
# CHECK: xvnmaddmdp 7, 63, 27
0xf0 0xff 0xdf 0x4c
# CHECK: xvnmaddmsp 7, 63, 27
0xf0 0xff 0xde 0x4c
# CHECK: xvnmsubadp 7, 63, 27
0xf0 0xff 0xdf 0x8c
# CHECK: xvnmsubasp 7, 63, 27
0xf0 0xff 0xde 0x8c
# CHECK: xvnmsubmdp 7, 63, 27
0xf0 0xff 0xdf 0xcc
# CHECK: xvnmsubmsp 7, 63, 27
0xf0 0xff 0xde 0xcc
# CHECK: xvrdpi 7, 27
0xf0 0xe0 0xdb 0x24
# CHECK: xvrdpic 7, 27
0xf0 0xe0 0xdb 0xac
# CHECK: xvrdpim 7, 27
0xf0 0xe0 0xdb 0xe4
# CHECK: xvrdpip 7, 27
0xf0 0xe0 0xdb 0xa4
# CHECK: xvrdpiz 7, 27
0xf0 0xe0 0xdb 0x64
# CHECK: xvredp 7, 27
0xf0 0xe0 0xdb 0x68
# CHECK: xvresp 7, 27
0xf0 0xe0 0xda 0x68
# CHECK: xvrspi 7, 27
0xf0 0xe0 0xda 0x24
# CHECK: xvrspic 7, 27
0xf0 0xe0 0xda 0xac
# CHECK: xvrspim 7, 27
0xf0 0xe0 0xda 0xe4
# CHECK: xvrspip 7, 27
0xf0 0xe0 0xda 0xa4
# CHECK: xvrspiz 7, 27
0xf0 0xe0 0xda 0x64
# CHECK: xvrsqrtedp 7, 27
0xf0 0xe0 0xdb 0x28
# CHECK: xvrsqrtesp 7, 27
0xf0 0xe0 0xda 0x28
# CHECK: xvsqrtdp 7, 27
0xf0 0xe0 0xdb 0x2c
# CHECK: xvsqrtsp 7, 27
0xf0 0xe0 0xda 0x2c
# CHECK: xvsubdp 7, 63, 27
0xf0 0xff 0xdb 0x44
# CHECK: xvsubsp 7, 63, 27
0xf0 0xff 0xda 0x44
# CHECK: xvtdivdp 6, 63, 27
0xf3 0x1f 0xdb 0xec
# CHECK: xvtdivsp 6, 63, 27
0xf3 0x1f 0xda 0xec
# CHECK: xvtsqrtdp 6, 27
0xf3 0x00 0xdb 0xa8
# CHECK: xvtsqrtsp 6, 27
0xf3 0x00 0xda 0xa8
# CHECK: xxland 7, 63, 27
0xf0 0xff 0xdc 0x14
# CHECK: xxleqv 7, 63, 27
0xf0 0xff 0xdd 0xd4
# CHECK: xxlnand 7, 63, 27
0xf0 0xff 0xdd 0x94
# CHECK: xxlorc 7, 63, 27
0xf0 0xff 0xdd 0x54
# CHECK: xxlandc 7, 63, 27
0xf0 0xff 0xdc 0x54
# CHECK: xxlnor 7, 63, 27
0xf0 0xff 0xdd 0x14
# CHECK: xxlor 7, 63, 27
0xf0 0xff 0xdc 0x94
# CHECK: xxlxor 7, 63, 27
0xf0 0xff 0xdc 0xd4
# CHECK: xxmrghd 7, 63, 27
0xf0 0xff 0xd8 0x54
# CHECK: xxmrghw 7, 63, 27
0xf0 0xff 0xd8 0x94
# CHECK: xxmrgld 7, 63, 27
0xf0 0xff 0xdb 0x54
# CHECK: xxmrglw 7, 63, 27
0xf0 0xff 0xd9 0x94
# CHECK: xxpermdi 7, 63, 27, 2
0xf0 0xff 0xda 0x54
# CHECK: xxsel 7, 63, 27, 14
0xf0 0xff 0xdb 0xb4
# CHECK: xxsldwi 7, 63, 27, 1
0xf0 0xff 0xd9 0x14
# CHECK: xxspltd 7, 63, 1
0xf0 0xff 0xfb 0x56
# CHECK: xxspltw 7, 27, 3
0xf0 0xe3 0xda 0x90
# CHECK: xxswapd 7, 63
0xf0 0xff 0xfa 0x56
# CHECK: mfvsrd 3, 0
0x7c 0x03 0x00 0x66
# CHECK: mfvsrwz 5, 0
0x7c 0x05 0x00 0xe6
# CHECK: mtvsrd 0, 3
0x7c 0x03 0x01 0x66
# CHECK: mtvsrwa 0, 3
0x7c 0x03 0x01 0xa6
# CHECK: mtvsrwz 0, 3
0x7c 0x03 0x01 0xe6