# 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]