blob: 677421ff5a67ecb5dc4da57fe98ae50964a4818f [file] [log] [blame]
# Check 64bit BMI2 instructions
.allow_index_reg
.text
_start:
# Test for op r32, r/m32, imm8
rorx $7,%eax,%ebx
rorx $7,(%rcx),%ebx
rorx $7,%r9d,%r15d
rorx $7,(%rcx),%r15d
# Test for op r32, r32, r/m32
mulx %eax,%ebx,%esi
mulx (%rcx),%ebx,%esi
mulx %r9d,%r15d,%r10d
mulx (%rcx),%r15d,%r10d
pdep %eax,%ebx,%esi
pdep (%rcx),%ebx,%esi
pdep %r9d,%r15d,%r10d
pdep (%rcx),%r15d,%r10d
pext %eax,%ebx,%esi
pext (%rcx),%ebx,%esi
pext %r9d,%r15d,%r10d
pext (%rcx),%r15d,%r10d
# Test for op r32, r/m32, r32
bzhi %eax,%ebx,%esi
bzhi %ebx,(%rcx),%esi
bzhi %r9d,%r15d,%r10d
bzhi %r9d,(%rcx),%r10d
sarx %eax,%ebx,%esi
sarx %ebx,(%rcx),%esi
sarx %r9d,%r15d,%r10d
sarx %r9d,(%rcx),%r10d
shlx %eax,%ebx,%esi
shlx %ebx,(%rcx),%esi
shlx %r9d,%r15d,%r10d
shlx %r9d,(%rcx),%r10d
shrx %eax,%ebx,%esi
shrx %ebx,(%rcx),%esi
shrx %r9d,%r15d,%r10d
shrx %r9d,(%rcx),%r10d
# Test for op r64, r/m64, imm8
rorx $7,%rax,%rbx
rorx $7,(%rcx),%rbx
rorx $7,%r9,%r15
rorx $7,(%rcx),%r15
# Test for op r64, r64, r/m64
mulx %rax,%rbx,%rsi
mulx (%rcx),%rbx,%rsi
mulx %r9,%r15,%r10
mulx (%rcx),%r15,%r10
pdep %rax,%rbx,%rsi
pdep (%rcx),%rbx,%rsi
pdep %r9,%r15,%r10
pdep (%rcx),%r15,%r10
pext %rax,%rbx,%rsi
pext (%rcx),%rbx,%rsi
pext %r9,%r15,%r10
pext (%rcx),%r15,%r10
# Test for op r64, r/m64, r64
bzhi %rax,%rbx,%rsi
bzhi %rax,(%rcx),%rsi
bzhi %r9,%r15,%r10
bzhi %r9,(%rcx),%r10
sarx %rax,%rbx,%rsi
sarx %rax,(%rcx),%rsi
sarx %r9,%r15,%r10
sarx %r9,(%rcx),%r10
shlx %rax,%rbx,%rsi
shlx %rax,(%rcx),%rsi
shlx %r9,%r15,%r10
shlx %r9,(%rcx),%r10
shrx %rax,%rbx,%rsi
shrx %rax,(%rcx),%rsi
shrx %r9,%r15,%r10
shrx %r9,(%rcx),%r10
.intel_syntax noprefix
# Test for op r32, r/m32, imm8
rorx ebx,eax,7
rorx ebx,DWORD PTR [rcx],7
rorx r10d,r9d,7
rorx r10d,DWORD PTR [rcx],7
rorx ebx,[rcx],7
# Test for op r32, r32, r/m32
mulx esi,ebx,eax
mulx esi,ebx,DWORD PTR [rcx]
mulx r15d,r10d,r9d
mulx r15d,r10d,DWORD PTR [rcx]
mulx esi,ebx,[rcx]
pdep esi,ebx,eax
pdep esi,ebx,DWORD PTR [rcx]
pdep r15d,r10d,r9d
pdep r15d,r10d,DWORD PTR [rcx]
pdep esi,ebx,[rcx]
pext esi,ebx,eax
pext esi,ebx,DWORD PTR [rcx]
pext r15d,r10d,r9d
pext r15d,r10d,DWORD PTR [rcx]
pext esi,ebx,[rcx]
# Test for op r32, r/m32, r32
bzhi esi,ebx,eax
bzhi esi,DWORD PTR [rcx],ebx
bzhi r15d,r10d,r9d
bzhi r15d,DWORD PTR [rcx],r9d
bzhi esi,[rcx],ebx
sarx esi,ebx,eax
sarx esi,DWORD PTR [rcx],ebx
sarx r15d,r10d,r9d
sarx r15d,DWORD PTR [rcx],r9d
sarx esi,[rcx],ebx
shlx esi,ebx,eax
shlx esi,DWORD PTR [rcx],ebx
shlx r15d,r10d,r9d
shlx r15d,DWORD PTR [rcx],r9d
shlx esi,[rcx],ebx
shrx esi,ebx,eax
shrx esi,DWORD PTR [rcx],ebx
shrx r15d,r10d,r9d
shrx r15d,DWORD PTR [rcx],r9d
shrx esi,[rcx],ebx
# Test for op r64, r/m64, imm8
rorx rbx,rax,7
rorx rbx,QWORD PTR [rcx],7
rorx r15,r9,7
rorx r15,QWORD PTR [rcx],7
rorx rbx,[rcx],7
# Test for op r64, r64, r/m64
mulx rsi,rbx,rax
mulx rsi,rbx,QWORD PTR [rcx]
mulx r10,r15,r9
mulx r10,r15,QWORD PTR [rcx]
mulx rsi,rbx,[rcx]
pdep rsi,rbx,rax
pdep rsi,rbx,QWORD PTR [rcx]
pdep r10,r15,r9
pdep r10,r15,QWORD PTR [rcx]
pdep rsi,rbx,[rcx]
pext rsi,rbx,rax
pext rsi,rbx,QWORD PTR [rcx]
pext r10,r15,r9
pext r10,r15,QWORD PTR [rcx]
pext rsi,rbx,[rcx]
# Test for op r64, r/m64, r64
bzhi rsi,rbx,rax
bzhi rsi,QWORD PTR [rcx],rax
bzhi r10,r15,r9
bzhi r10,QWORD PTR [rcx],r9
bzhi rsi,[rcx],rax
sarx rsi,rbx,rax
sarx rsi,QWORD PTR [rcx],rax
sarx r10,r15,r9
sarx r10,QWORD PTR [rcx],r9
sarx rsi,[rcx],rax
shlx rsi,rbx,rax
shlx rsi,QWORD PTR [rcx],rax
shlx r10,r15,r9
shlx r10,QWORD PTR [rcx],r9
shlx rsi,[rcx],rax
shrx rsi,rbx,rax
shrx rsi,QWORD PTR [rcx],rax
shrx r10,r15,r9
shrx r10,QWORD PTR [rcx],r9
shrx rsi,[rcx],rax