summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2010-02-02 22:00:15 +0000
committerDaniel Dunbar <daniel@zuster.org>2010-02-02 22:00:15 +0000
commit197f1f024677641dc86760c56d5fcaff7e1b52ee (patch)
treed9e441f90a3db0639769db1648236f776b788ca8 /test
parentfc89bc903ca068eac7d311158d19ddee25db7154 (diff)
downloadllvm-197f1f024677641dc86760c56d5fcaff7e1b52ee.tar.gz
llvm-197f1f024677641dc86760c56d5fcaff7e1b52ee.tar.bz2
llvm-197f1f024677641dc86760c56d5fcaff7e1b52ee.tar.xz
MCAssembler/Darwin: Add a test (on Darwin) that we assemble a bunch of
instructions exactly like 'as', and produce equivalent .o files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95143 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/MC/MachO/Darwin/dg.exp5
-rw-r--r--test/MC/MachO/Darwin/x86_32_diff_as.s550
-rw-r--r--test/lit.cfg3
3 files changed, 558 insertions, 0 deletions
diff --git a/test/MC/MachO/Darwin/dg.exp b/test/MC/MachO/Darwin/dg.exp
new file mode 100644
index 0000000000..0f34b63157
--- /dev/null
+++ b/test/MC/MachO/Darwin/dg.exp
@@ -0,0 +1,5 @@
+load_lib llvm.exp
+
+if { [llvm_supports_darwin_and_target X86] } {
+ RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{s}]]
+}
diff --git a/test/MC/MachO/Darwin/x86_32_diff_as.s b/test/MC/MachO/Darwin/x86_32_diff_as.s
new file mode 100644
index 0000000000..dd5fb55183
--- /dev/null
+++ b/test/MC/MachO/Darwin/x86_32_diff_as.s
@@ -0,0 +1,550 @@
+// Validate that we can assemble this file exactly like the platform
+// assembler.
+//
+// RUN: llvm-mc -filetype=obj -triple i386-unknown-unknown -o %t.mc.o %s
+// RUN: as -arch i386 -o %t.as.o %s
+// RUN: diff %t.mc.o %t.as.o
+
+ movb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+ movw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
+ movl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
+ movl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
+ movsbl 0xdeadbeef(%ebx,%ecx,8),%ecx
+ movswl 0xdeadbeef(%ebx,%ecx,8),%ecx
+ movzbl 0xdeadbeef(%ebx,%ecx,8),%ecx
+ movzwl 0xdeadbeef(%ebx,%ecx,8),%ecx
+ pushl 0xdeadbeef(%ebx,%ecx,8)
+ popl 0xdeadbeef(%ebx,%ecx,8)
+ lahf
+ sahf
+ addb $0xfe,0xdeadbeef(%ebx,%ecx,8)
+ addb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+ addw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
+ addl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
+ addl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
+ incl 0xdeadbeef(%ebx,%ecx,8)
+ subb $0xfe,0xdeadbeef(%ebx,%ecx,8)
+ subb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+ subw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
+ subl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
+ subl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
+ decl 0xdeadbeef(%ebx,%ecx,8)
+ sbbw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
+ sbbl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
+ sbbl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
+ cmpb $0xfe,0xdeadbeef(%ebx,%ecx,8)
+ cmpb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+ cmpw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
+ cmpl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
+ cmpl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
+ testb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+ testw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
+ testl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
+ testl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
+ andb $0xfe,0xdeadbeef(%ebx,%ecx,8)
+ andb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+ andw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
+ andl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
+ andl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
+ orb $0xfe,0xdeadbeef(%ebx,%ecx,8)
+ orb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+ orw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
+ orl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
+ orl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
+ xorb $0xfe,0xdeadbeef(%ebx,%ecx,8)
+ xorb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+ xorw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
+ xorl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
+ xorl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
+ adcb $0xfe,0xdeadbeef(%ebx,%ecx,8)
+ adcb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+ adcw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
+ adcl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
+ adcl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
+ negl 0xdeadbeef(%ebx,%ecx,8)
+ notl 0xdeadbeef(%ebx,%ecx,8)
+ cbtw
+ cwtl
+ cwtd
+ cltd
+ mull 0xdeadbeef(%ebx,%ecx,8)
+ imull 0xdeadbeef(%ebx,%ecx,8)
+ divl 0xdeadbeef(%ebx,%ecx,8)
+ idivl 0xdeadbeef(%ebx,%ecx,8)
+ roll $0,0xdeadbeef(%ebx,%ecx,8)
+ rolb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+ roll 0xdeadbeef(%ebx,%ecx,8)
+ rorl $0,0xdeadbeef(%ebx,%ecx,8)
+ rorb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+ rorl 0xdeadbeef(%ebx,%ecx,8)
+ shll $0,0xdeadbeef(%ebx,%ecx,8)
+ shlb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+ shll 0xdeadbeef(%ebx,%ecx,8)
+ shrl $0,0xdeadbeef(%ebx,%ecx,8)
+ shrb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+ shrl 0xdeadbeef(%ebx,%ecx,8)
+ sarl $0,0xdeadbeef(%ebx,%ecx,8)
+ sarb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+ sarl 0xdeadbeef(%ebx,%ecx,8)
+ call *%ecx
+ call *0xdeadbeef(%ebx,%ecx,8)
+ call *0xdeadbeef(%ebx,%ecx,8)
+ jmp *0xdeadbeef(%ebx,%ecx,8)
+ jmp *0xdeadbeef(%ebx,%ecx,8)
+ ljmpl *0xdeadbeef(%ebx,%ecx,8)
+ lret
+ leave
+ seto %bl
+ seto 0xdeadbeef(%ebx,%ecx,8)
+ setno %bl
+ setno 0xdeadbeef(%ebx,%ecx,8)
+ setb %bl
+ setb 0xdeadbeef(%ebx,%ecx,8)
+ setae %bl
+ setae 0xdeadbeef(%ebx,%ecx,8)
+ sete %bl
+ sete 0xdeadbeef(%ebx,%ecx,8)
+ setne %bl
+ setne 0xdeadbeef(%ebx,%ecx,8)
+ setbe %bl
+ setbe 0xdeadbeef(%ebx,%ecx,8)
+ seta %bl
+ seta 0xdeadbeef(%ebx,%ecx,8)
+ sets %bl
+ sets 0xdeadbeef(%ebx,%ecx,8)
+ setns %bl
+ setns 0xdeadbeef(%ebx,%ecx,8)
+ setp %bl
+ setp 0xdeadbeef(%ebx,%ecx,8)
+ setnp %bl
+ setnp 0xdeadbeef(%ebx,%ecx,8)
+ setl %bl
+ setl 0xdeadbeef(%ebx,%ecx,8)
+ setge %bl
+ setge 0xdeadbeef(%ebx,%ecx,8)
+ setle %bl
+ setle 0xdeadbeef(%ebx,%ecx,8)
+ setg %bl
+ setg 0xdeadbeef(%ebx,%ecx,8)
+ nopl 0xdeadbeef(%ebx,%ecx,8)
+ nop
+ fldl 0xdeadbeef(%ebx,%ecx,8)
+ fildl 0xdeadbeef(%ebx,%ecx,8)
+ fildll 0xdeadbeef(%ebx,%ecx,8)
+ fldt 0xdeadbeef(%ebx,%ecx,8)
+ fbld 0xdeadbeef(%ebx,%ecx,8)
+ fstl 0xdeadbeef(%ebx,%ecx,8)
+ fistl 0xdeadbeef(%ebx,%ecx,8)
+ fstpl 0xdeadbeef(%ebx,%ecx,8)
+ fistpl 0xdeadbeef(%ebx,%ecx,8)
+ fistpll 0xdeadbeef(%ebx,%ecx,8)
+ fstpt 0xdeadbeef(%ebx,%ecx,8)
+ fbstp 0xdeadbeef(%ebx,%ecx,8)
+ ficoml 0xdeadbeef(%ebx,%ecx,8)
+ ficompl 0xdeadbeef(%ebx,%ecx,8)
+ fucompp
+ ftst
+ fld1
+ fldz
+ faddl 0xdeadbeef(%ebx,%ecx,8)
+ fiaddl 0xdeadbeef(%ebx,%ecx,8)
+ fsubl 0xdeadbeef(%ebx,%ecx,8)
+ fisubl 0xdeadbeef(%ebx,%ecx,8)
+ fsubrl 0xdeadbeef(%ebx,%ecx,8)
+ fisubrl 0xdeadbeef(%ebx,%ecx,8)
+ fmull 0xdeadbeef(%ebx,%ecx,8)
+ fimull 0xdeadbeef(%ebx,%ecx,8)
+ fdivl 0xdeadbeef(%ebx,%ecx,8)
+ fidivl 0xdeadbeef(%ebx,%ecx,8)
+ fdivrl 0xdeadbeef(%ebx,%ecx,8)
+ fidivrl 0xdeadbeef(%ebx,%ecx,8)
+ fsqrt
+ fsin
+ fcos
+ fchs
+ fabs
+ fldcw 0xdeadbeef(%ebx,%ecx,8)
+ fnstcw 0xdeadbeef(%ebx,%ecx,8)
+ rdtsc
+ sysenter
+ sysexit
+ ud2
+ movnti %ecx,0xdeadbeef(%ebx,%ecx,8)
+ clflush 0xdeadbeef(%ebx,%ecx,8)
+ emms
+ movd %ecx,%mm3
+ movd 0xdeadbeef(%ebx,%ecx,8),%mm3
+ movd %ecx,%xmm5
+ movd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ movd %xmm5,%ecx
+ movd %xmm5,0xdeadbeef(%ebx,%ecx,8)
+ movq 0xdeadbeef(%ebx,%ecx,8),%mm3
+ movq %mm3,%mm3
+ movq %mm3,%mm3
+ movq %xmm5,%xmm5
+ movq %xmm5,%xmm5
+ packssdw %mm3,%mm3
+ packssdw %xmm5,%xmm5
+ packsswb %mm3,%mm3
+ packsswb %xmm5,%xmm5
+ packuswb %mm3,%mm3
+ packuswb %xmm5,%xmm5
+ paddb %mm3,%mm3
+ paddb %xmm5,%xmm5
+ paddw %mm3,%mm3
+ paddw %xmm5,%xmm5
+ paddd %mm3,%mm3
+ paddd %xmm5,%xmm5
+ paddq %mm3,%mm3
+ paddq %xmm5,%xmm5
+ paddsb %mm3,%mm3
+ paddsb %xmm5,%xmm5
+ paddsw %mm3,%mm3
+ paddsw %xmm5,%xmm5
+ paddusb %mm3,%mm3
+ paddusb %xmm5,%xmm5
+ paddusw %mm3,%mm3
+ paddusw %xmm5,%xmm5
+ pand %mm3,%mm3
+ pand %xmm5,%xmm5
+ pandn %mm3,%mm3
+ pandn %xmm5,%xmm5
+ pcmpeqb %mm3,%mm3
+ pcmpeqb %xmm5,%xmm5
+ pcmpeqw %mm3,%mm3
+ pcmpeqw %xmm5,%xmm5
+ pcmpeqd %mm3,%mm3
+ pcmpeqd %xmm5,%xmm5
+ pcmpgtb %mm3,%mm3
+ pcmpgtb %xmm5,%xmm5
+ pcmpgtw %mm3,%mm3
+ pcmpgtw %xmm5,%xmm5
+ pcmpgtd %mm3,%mm3
+ pcmpgtd %xmm5,%xmm5
+ pmaddwd %mm3,%mm3
+ pmaddwd %xmm5,%xmm5
+ pmulhw %mm3,%mm3
+ pmulhw %xmm5,%xmm5
+ pmullw %mm3,%mm3
+ pmullw %xmm5,%xmm5
+ por %mm3,%mm3
+ por %xmm5,%xmm5
+ psllw %mm3,%mm3
+ psllw %xmm5,%xmm5
+ psllw $0x7f,%mm3
+ psllw $0x7f,%xmm5
+ pslld %mm3,%mm3
+ pslld %xmm5,%xmm5
+ pslld $0x7f,%mm3
+ pslld $0x7f,%xmm5
+ psllq %mm3,%mm3
+ psllq %xmm5,%xmm5
+ psllq $0x7f,%mm3
+ psllq $0x7f,%xmm5
+ psraw %mm3,%mm3
+ psraw %xmm5,%xmm5
+ psraw $0x7f,%mm3
+ psraw $0x7f,%xmm5
+ psrad %mm3,%mm3
+ psrad %xmm5,%xmm5
+ psrad $0x7f,%mm3
+ psrad $0x7f,%xmm5
+ psrlw %mm3,%mm3
+ psrlw %xmm5,%xmm5
+ psrlw $0x7f,%mm3
+ psrlw $0x7f,%xmm5
+ psrld %mm3,%mm3
+ psrld %xmm5,%xmm5
+ psrld $0x7f,%mm3
+ psrld $0x7f,%xmm5
+ psrlq %mm3,%mm3
+ psrlq %xmm5,%xmm5
+ psrlq $0x7f,%mm3
+ psrlq $0x7f,%xmm5
+ psubb %mm3,%mm3
+ psubb %xmm5,%xmm5
+ psubw %mm3,%mm3
+ psubw %xmm5,%xmm5
+ psubd %mm3,%mm3
+ psubd %xmm5,%xmm5
+ psubq %mm3,%mm3
+ psubq %xmm5,%xmm5
+ psubsb %mm3,%mm3
+ psubsb %xmm5,%xmm5
+ psubsw %mm3,%mm3
+ psubsw %xmm5,%xmm5
+ psubusb %mm3,%mm3
+ psubusb %xmm5,%xmm5
+ psubusw %mm3,%mm3
+ psubusw %xmm5,%xmm5
+ punpckhbw %mm3,%mm3
+ punpckhbw %xmm5,%xmm5
+ punpckhwd %mm3,%mm3
+ punpckhwd %xmm5,%xmm5
+ punpckhdq %mm3,%mm3
+ punpckhdq %xmm5,%xmm5
+ punpcklbw %mm3,%mm3
+ punpcklbw %xmm5,%xmm5
+ punpcklwd %mm3,%mm3
+ punpcklwd %xmm5,%xmm5
+ punpckldq %mm3,%mm3
+ punpckldq %xmm5,%xmm5
+ pxor %mm3,%mm3
+ pxor %xmm5,%xmm5
+ addps %xmm5,%xmm5
+ addss %xmm5,%xmm5
+ andnps %xmm5,%xmm5
+ andps %xmm5,%xmm5
+ cvtpi2ps 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ cvtpi2ps %mm3,%xmm5
+ cvtps2pi 0xdeadbeef(%ebx,%ecx,8),%mm3
+ cvtps2pi %xmm5,%mm3
+ cvtsi2ss %ecx,%xmm5
+ cvtsi2ss 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ cvttps2pi 0xdeadbeef(%ebx,%ecx,8),%mm3
+ cvttps2pi %xmm5,%mm3
+ cvttss2si 0xdeadbeef(%ebx,%ecx,8),%ecx
+ cvttss2si %xmm5,%ecx
+ divps %xmm5,%xmm5
+ divss %xmm5,%xmm5
+ ldmxcsr 0xdeadbeef(%ebx,%ecx,8)
+ maskmovq %mm3,%mm3
+ maxps %xmm5,%xmm5
+ maxss %xmm5,%xmm5
+ minps %xmm5,%xmm5
+ minss %xmm5,%xmm5
+ movaps 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ movaps %xmm5,%xmm5
+ movaps %xmm5,0xdeadbeef(%ebx,%ecx,8)
+ movaps %xmm5,%xmm5
+ movhlps %xmm5,%xmm5
+ movhps %xmm5,0xdeadbeef(%ebx,%ecx,8)
+ movlhps %xmm5,%xmm5
+ movlps %xmm5,0xdeadbeef(%ebx,%ecx,8)
+ movmskps %xmm5,%ecx
+ movntps %xmm5,0xdeadbeef(%ebx,%ecx,8)
+ movntq %mm3,0xdeadbeef(%ebx,%ecx,8)
+ movntdq %xmm5,0xdeadbeef(%ebx,%ecx,8)
+ movss 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ movss %xmm5,%xmm5
+ movss %xmm5,0xdeadbeef(%ebx,%ecx,8)
+ movss %xmm5,%xmm5
+ movups 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ movups %xmm5,%xmm5
+ movups %xmm5,0xdeadbeef(%ebx,%ecx,8)
+ movups %xmm5,%xmm5
+ mulps %xmm5,%xmm5
+ mulss %xmm5,%xmm5
+ orps %xmm5,%xmm5
+ pavgb %mm3,%mm3
+ pavgb %xmm5,%xmm5
+ pavgw %mm3,%mm3
+ pavgw %xmm5,%xmm5
+ pmaxsw %mm3,%mm3
+ pmaxsw %xmm5,%xmm5
+ pmaxub %mm3,%mm3
+ pmaxub %xmm5,%xmm5
+ pminsw %mm3,%mm3
+ pminsw %xmm5,%xmm5
+ pminub %mm3,%mm3
+ pminub %xmm5,%xmm5
+ pmovmskb %mm3,%ecx
+ pmovmskb %xmm5,%ecx
+ pmulhuw %mm3,%mm3
+ pmulhuw %xmm5,%xmm5
+ prefetchnta 0xdeadbeef(%ebx,%ecx,8)
+ prefetcht0 0xdeadbeef(%ebx,%ecx,8)
+ prefetcht1 0xdeadbeef(%ebx,%ecx,8)
+ prefetcht2 0xdeadbeef(%ebx,%ecx,8)
+ psadbw %mm3,%mm3
+ psadbw %xmm5,%xmm5
+ rcpps 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ rcpps %xmm5,%xmm5
+ rcpss 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ rcpss %xmm5,%xmm5
+ rsqrtps 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ rsqrtps %xmm5,%xmm5
+ rsqrtss 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ rsqrtss %xmm5,%xmm5
+ sqrtps 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ sqrtps %xmm5,%xmm5
+ sqrtss 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ sqrtss %xmm5,%xmm5
+ stmxcsr 0xdeadbeef(%ebx,%ecx,8)
+ subps %xmm5,%xmm5
+ subss %xmm5,%xmm5
+ ucomiss 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ ucomiss %xmm5,%xmm5
+ unpckhps %xmm5,%xmm5
+ unpcklps %xmm5,%xmm5
+ xorps %xmm5,%xmm5
+ addpd %xmm5,%xmm5
+ addsd %xmm5,%xmm5
+ andnpd %xmm5,%xmm5
+ andpd %xmm5,%xmm5
+ comisd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ comisd %xmm5,%xmm5
+ cvtpi2pd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ cvtpi2pd %mm3,%xmm5
+ cvtsi2sd %ecx,%xmm5
+ cvtsi2sd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ divpd %xmm5,%xmm5
+ divsd %xmm5,%xmm5
+ maxpd %xmm5,%xmm5
+ maxsd %xmm5,%xmm5
+ minpd %xmm5,%xmm5
+ minsd %xmm5,%xmm5
+ movapd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ movapd %xmm5,%xmm5
+ movapd %xmm5,0xdeadbeef(%ebx,%ecx,8)
+ movapd %xmm5,%xmm5
+ movhpd %xmm5,0xdeadbeef(%ebx,%ecx,8)
+ movlpd %xmm5,0xdeadbeef(%ebx,%ecx,8)
+ movmskpd %xmm5,%ecx
+ movntpd %xmm5,0xdeadbeef(%ebx,%ecx,8)
+ movsd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ movsd %xmm5,%xmm5
+ movsd %xmm5,0xdeadbeef(%ebx,%ecx,8)
+ movsd %xmm5,%xmm5
+ movupd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ movupd %xmm5,%xmm5
+ movupd %xmm5,0xdeadbeef(%ebx,%ecx,8)
+ movupd %xmm5,%xmm5
+ mulpd %xmm5,%xmm5
+ mulsd %xmm5,%xmm5
+ orpd %xmm5,%xmm5
+ sqrtpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ sqrtpd %xmm5,%xmm5
+ sqrtsd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ sqrtsd %xmm5,%xmm5
+ subpd %xmm5,%xmm5
+ subsd %xmm5,%xmm5
+ ucomisd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ ucomisd %xmm5,%xmm5
+ unpckhpd %xmm5,%xmm5
+ unpcklpd %xmm5,%xmm5
+ xorpd %xmm5,%xmm5
+ cvtdq2pd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ cvtdq2pd %xmm5,%xmm5
+ cvtpd2dq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ cvtpd2dq %xmm5,%xmm5
+ cvtdq2ps 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ cvtdq2ps %xmm5,%xmm5
+ cvtpd2pi 0xdeadbeef(%ebx,%ecx,8),%mm3
+ cvtpd2pi %xmm5,%mm3
+ cvtps2dq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ cvtps2dq %xmm5,%xmm5
+ cvtsd2ss 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ cvtsd2ss %xmm5,%xmm5
+ cvtss2sd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ cvtss2sd %xmm5,%xmm5
+ cvttpd2pi 0xdeadbeef(%ebx,%ecx,8),%mm3
+ cvttpd2pi %xmm5,%mm3
+ cvttsd2si 0xdeadbeef(%ebx,%ecx,8),%ecx
+ cvttsd2si %xmm5,%ecx
+ maskmovdqu %xmm5,%xmm5
+ movdqa 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ movdqa %xmm5,%xmm5
+ movdqa %xmm5,0xdeadbeef(%ebx,%ecx,8)
+ movdqa %xmm5,%xmm5
+ movdqu 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ movdqu %xmm5,0xdeadbeef(%ebx,%ecx,8)
+ movdq2q %xmm5,%mm3
+ movq2dq %mm3,%xmm5
+ pmuludq %mm3,%mm3
+ pmuludq %xmm5,%xmm5
+ pslldq $0x7f,%xmm5
+ psrldq $0x7f,%xmm5
+ punpckhqdq %xmm5,%xmm5
+ punpcklqdq %xmm5,%xmm5
+ addsubpd %xmm5,%xmm5
+ addsubps %xmm5,%xmm5
+ haddpd %xmm5,%xmm5
+ haddps %xmm5,%xmm5
+ hsubpd %xmm5,%xmm5
+ hsubps %xmm5,%xmm5
+ lddqu 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ movddup 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ movddup %xmm5,%xmm5
+ movshdup 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ movshdup %xmm5,%xmm5
+ movsldup 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ movsldup %xmm5,%xmm5
+ phaddw %mm3,%mm3
+ phaddw %xmm5,%xmm5
+ phaddd %mm3,%mm3
+ phaddd %xmm5,%xmm5
+ phaddsw %mm3,%mm3
+ phaddsw %xmm5,%xmm5
+ phsubw %mm3,%mm3
+ phsubw %xmm5,%xmm5
+ phsubd %mm3,%mm3
+ phsubd %xmm5,%xmm5
+ phsubsw %mm3,%mm3
+ phsubsw %xmm5,%xmm5
+ pmaddubsw %mm3,%mm3
+ pmaddubsw %xmm5,%xmm5
+ pmulhrsw %mm3,%mm3
+ pmulhrsw %xmm5,%xmm5
+ pshufb %mm3,%mm3
+ pshufb %xmm5,%xmm5
+ psignb %mm3,%mm3
+ psignb %xmm5,%xmm5
+ psignw %mm3,%mm3
+ psignw %xmm5,%xmm5
+ psignd %mm3,%mm3
+ psignd %xmm5,%xmm5
+ pabsb 0xdeadbeef(%ebx,%ecx,8),%mm3
+ pabsb %mm3,%mm3
+ pabsb 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ pabsb %xmm5,%xmm5
+ pabsw 0xdeadbeef(%ebx,%ecx,8),%mm3
+ pabsw %mm3,%mm3
+ pabsw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ pabsw %xmm5,%xmm5
+ pabsd 0xdeadbeef(%ebx,%ecx,8),%mm3
+ pabsd %mm3,%mm3
+ pabsd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ pabsd %xmm5,%xmm5
+ femms
+ packusdw %xmm5,%xmm5
+ pcmpeqq %xmm5,%xmm5
+ phminposuw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ phminposuw %xmm5,%xmm5
+ pmaxsb %xmm5,%xmm5
+ pmaxsd %xmm5,%xmm5
+ pmaxud %xmm5,%xmm5
+ pmaxuw %xmm5,%xmm5
+ pminsb %xmm5,%xmm5
+ pminsd %xmm5,%xmm5
+ pminud %xmm5,%xmm5
+ pminuw %xmm5,%xmm5
+ pmovsxbw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ pmovsxbw %xmm5,%xmm5
+ pmovsxbd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ pmovsxbd %xmm5,%xmm5
+ pmovsxbq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ pmovsxbq %xmm5,%xmm5
+ pmovsxwd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ pmovsxwd %xmm5,%xmm5
+ pmovsxwq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ pmovsxwq %xmm5,%xmm5
+ pmovsxdq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ pmovsxdq %xmm5,%xmm5
+ pmovzxbw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ pmovzxbw %xmm5,%xmm5
+ pmovzxbd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ pmovzxbd %xmm5,%xmm5
+ pmovzxbq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ pmovzxbq %xmm5,%xmm5
+ pmovzxwd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ pmovzxwd %xmm5,%xmm5
+ pmovzxwq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ pmovzxwq %xmm5,%xmm5
+ pmovzxdq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ pmovzxdq %xmm5,%xmm5
+ pmuldq %xmm5,%xmm5
+ pmulld %xmm5,%xmm5
+ ptest 0xdeadbeef(%ebx,%ecx,8),%xmm5
+ ptest %xmm5,%xmm5
+ pcmpgtq %xmm5,%xmm5
diff --git a/test/lit.cfg b/test/lit.cfg
index 8e85168205..3b45bf9bd3 100644
--- a/test/lit.cfg
+++ b/test/lit.cfg
@@ -127,6 +127,9 @@ targets = set(site_exp["TARGETS_TO_BUILD"].split())
def llvm_supports_target(name):
return name in targets
+def llvm_supports_darwin_and_target(name):
+ return 'darwin' in config.target_triple and llvm_supports_target(name)
+
langs = set(site_exp['llvmgcc_langs'].split(','))
def llvm_gcc_supports(name):
return name in langs