blob: ef222c9d1401218357828fbd8f49ee47f07589d0 [file] [log] [blame]
# Check 64bit BMI instructions
.allow_index_reg
.text
_start:
# Test for op r16, r/m16
tzcnt %ax,%bx
tzcnt (%rcx),%bx
tzcnt (%rcx),%r15w
# Test for op r32, r32, r/m32
andn %eax,%ebx,%esi
andn (%rcx),%ebx,%esi
andn %r9d,%r15d,%r10d
andn (%rcx),%r15d,%r10d
# Test for op r32, r/m32, r32
bextr %eax,%ebx,%esi
bextr %ebx,(%rcx),%esi
bextr %r9d,%r15d,%r10d
bextr %r9d,(%rcx),%r10d
# Test for op r32, r/m32
tzcnt %eax,%ebx
tzcnt (%rcx),%ebx
tzcnt (%rcx),%r15d
blsi %eax,%ebx
blsi (%rcx),%ebx
blsi (%rcx),%r15d
blsmsk %eax,%ebx
blsmsk (%rcx),%ebx
blsmsk (%rcx),%r15d
blsr %eax,%ebx
blsr (%rcx),%ebx
blsr (%rcx),%r15d
# Test for op r64, r64, r/m64
andn %rax,%rbx,%rsi
andn (%rcx),%rbx,%rsi
andn %r9,%r15,%r10
andn (%rcx),%r15,%r10
# Test for op r64, r/m64, r64
bextr %rax,%rbx,%rsi
bextr %rax,(%rcx),%rsi
bextr %r9,%r15,%r10
bextr %r9,(%rcx),%r10
# Test for op r64, r/m64
tzcnt %rax,%rbx
tzcnt (%rcx),%rbx
tzcnt %r9,%r15
tzcnt (%rcx),%r15
blsi %rax,%rbx
blsi (%rcx),%rbx
blsi %r9,%r15
blsi (%rcx),%r15
blsmsk %rax,%rbx
blsmsk (%rcx),%rbx
blsmsk %r9,%r15
blsmsk (%rcx),%r15
blsr %rax,%rbx
blsr (%rcx),%rbx
blsr %r9,%r15
blsr (%rcx),%r15
.intel_syntax noprefix
# Test for op r16, r/m16
tzcnt bx,ax
tzcnt bx,WORD PTR [rcx]
tzcnt r10w,WORD PTR [rcx]
tzcnt bx,[rcx]
# Test for op r32, r32, r/m32
andn esi,ebx,eax
andn esi,ebx,DWORD PTR [rcx]
andn r15d,r10d,r9d
andn r15d,r10d,DWORD PTR [rcx]
andn esi,ebx,[rcx]
# Test for op r32, r/m32, r32
bextr esi,ebx,eax
bextr esi,DWORD PTR [rcx],ebx
bextr r15d,r10d,r9d
bextr r15d,DWORD PTR [rcx],r9d
bextr esi,[rcx],ebx
# Test for op r32, r/m32
tzcnt ebx,eax
tzcnt ebx,DWORD PTR [rcx]
tzcnt r10d,DWORD PTR [rcx]
tzcnt ebx,[rcx]
blsi ebx,eax
blsi ebx,DWORD PTR [rcx]
blsi r10d,DWORD PTR [rcx]
blsi ebx,[rcx]
blsmsk ebx,eax
blsmsk ebx,DWORD PTR [rcx]
blsmsk r10d,DWORD PTR [rcx]
blsmsk ebx,[rcx]
blsr ebx,eax
blsr ebx,DWORD PTR [rcx]
blsr r10d,DWORD PTR [rcx]
blsr ebx,[rcx]
# Test for op r64, r64, r/m64
andn rsi,rbx,rax
andn rsi,rbx,QWORD PTR [rcx]
andn r10,r15,r9
andn r10,r15,QWORD PTR [rcx]
andn rsi,rbx,[rcx]
# Test for op r64, r/m64, r64
bextr rsi,rbx,rax
bextr rsi,QWORD PTR [rcx],rax
bextr r10,r15,r9
bextr r10,QWORD PTR [rcx],r9
bextr rsi,[rcx],rax
# Test for op r64, r/m64
tzcnt rbx,rax
tzcnt rbx,QWORD PTR [rcx]
tzcnt r15,r9
tzcnt r15,QWORD PTR [rcx]
tzcnt rbx,[rcx]
blsi rbx,rax
blsi rbx,QWORD PTR [rcx]
blsi r15,r9
blsi r15,QWORD PTR [rcx]
blsi rbx,[rcx]
blsmsk rbx,rax
blsmsk rbx,QWORD PTR [rcx]
blsmsk r15,r9
blsmsk r15,QWORD PTR [rcx]
blsmsk rbx,[rcx]
blsr rbx,rax
blsr rbx,QWORD PTR [rcx]
blsr r15,r9
blsr r15,QWORD PTR [rcx]
blsr rbx,[rcx]