# 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