| # Check 32bit BMI instructions |
| |
| .allow_index_reg |
| .text |
| _start: |
| |
| # Test for op r16, r/m16 |
| tzcnt %ax,%bx |
| tzcnt (%ecx),%bx |
| |
| # Test for op r32, r32, r/m32 |
| andn %eax,%ebx,%esi |
| andn (%ecx),%ebx,%esi |
| |
| # Test for op r32, r/m32, r32 |
| bextr %eax,%ebx,%esi |
| bextr %ebx,(%ecx),%esi |
| |
| # Test for op r32, r/m32 |
| tzcnt %eax,%ebx |
| tzcnt (%ecx),%ebx |
| blsi %eax,%ebx |
| blsi (%ecx),%ebx |
| blsmsk %eax,%ebx |
| blsmsk (%ecx),%ebx |
| blsr %eax,%ebx |
| blsr (%ecx),%ebx |
| |
| .intel_syntax noprefix |
| |
| # Test for op r16, r/m16 |
| tzcnt bx,ax |
| tzcnt bx,WORD PTR [ecx] |
| tzcnt bx,[ecx] |
| |
| # Test for op r32, r32, r/m32 |
| andn esi,ebx,eax |
| andn esi,ebx,DWORD PTR [ecx] |
| andn esi,ebx,[ecx] |
| |
| # Test for op r32, r/m32, r32 |
| bextr esi,ebx,eax |
| bextr esi,DWORD PTR [ecx],ebx |
| bextr esi,[ecx],ebx |
| |
| # Test for op r32, r/m32 |
| tzcnt ebx,eax |
| tzcnt ebx,DWORD PTR [ecx] |
| tzcnt ebx,[ecx] |
| blsi ebx,eax |
| blsi ebx,DWORD PTR [ecx] |
| blsi ebx,[ecx] |
| blsmsk ebx,eax |
| blsmsk ebx,DWORD PTR [ecx] |
| blsmsk ebx,[ecx] |
| blsr ebx,eax |
| blsr ebx,DWORD PTR [ecx] |
| blsr ebx,[ecx] |