1# Check 64bit BMI instructions 2 3 .allow_index_reg 4 .text 5_start: 6 7# Test for op r16, r/m16 8 tzcnt %ax,%bx 9 tzcnt (%rcx),%bx 10 tzcnt (%rcx),%r15w 11 12# Test for op r32, r32, r/m32 13 andn %eax,%ebx,%esi 14 andn (%rcx),%ebx,%esi 15 andn %r9d,%r15d,%r10d 16 andn (%rcx),%r15d,%r10d 17 18# Test for op r32, r/m32, r32 19 bextr %eax,%ebx,%esi 20 bextr %ebx,(%rcx),%esi 21 bextr %r9d,%r15d,%r10d 22 bextr %r9d,(%rcx),%r10d 23 24# Test for op r32, r/m32 25 tzcnt %eax,%ebx 26 tzcnt (%rcx),%ebx 27 tzcnt (%rcx),%r15d 28 blsi %eax,%ebx 29 blsi (%rcx),%ebx 30 blsi (%rcx),%r15d 31 blsmsk %eax,%ebx 32 blsmsk (%rcx),%ebx 33 blsmsk (%rcx),%r15d 34 blsr %eax,%ebx 35 blsr (%rcx),%ebx 36 blsr (%rcx),%r15d 37 38# Test for op r64, r64, r/m64 39 andn %rax,%rbx,%rsi 40 andn (%rcx),%rbx,%rsi 41 andn %r9,%r15,%r10 42 andn (%rcx),%r15,%r10 43 44# Test for op r64, r/m64, r64 45 bextr %rax,%rbx,%rsi 46 bextr %rax,(%rcx),%rsi 47 bextr %r9,%r15,%r10 48 bextr %r9,(%rcx),%r10 49 50# Test for op r64, r/m64 51 tzcnt %rax,%rbx 52 tzcnt (%rcx),%rbx 53 tzcnt %r9,%r15 54 tzcnt (%rcx),%r15 55 blsi %rax,%rbx 56 blsi (%rcx),%rbx 57 blsi %r9,%r15 58 blsi (%rcx),%r15 59 blsmsk %rax,%rbx 60 blsmsk (%rcx),%rbx 61 blsmsk %r9,%r15 62 blsmsk (%rcx),%r15 63 blsr %rax,%rbx 64 blsr (%rcx),%rbx 65 blsr %r9,%r15 66 blsr (%rcx),%r15 67 68 .intel_syntax noprefix 69 70# Test for op r16, r/m16 71 tzcnt bx,ax 72 tzcnt bx,WORD PTR [rcx] 73 tzcnt r10w,WORD PTR [rcx] 74 tzcnt bx,[rcx] 75 76# Test for op r32, r32, r/m32 77 andn esi,ebx,eax 78 andn esi,ebx,DWORD PTR [rcx] 79 andn r15d,r10d,r9d 80 andn r15d,r10d,DWORD PTR [rcx] 81 andn esi,ebx,[rcx] 82 83# Test for op r32, r/m32, r32 84 bextr esi,ebx,eax 85 bextr esi,DWORD PTR [rcx],ebx 86 bextr r15d,r10d,r9d 87 bextr r15d,DWORD PTR [rcx],r9d 88 bextr esi,[rcx],ebx 89 90# Test for op r32, r/m32 91 tzcnt ebx,eax 92 tzcnt ebx,DWORD PTR [rcx] 93 tzcnt r10d,DWORD PTR [rcx] 94 tzcnt ebx,[rcx] 95 blsi ebx,eax 96 blsi ebx,DWORD PTR [rcx] 97 blsi r10d,DWORD PTR [rcx] 98 blsi ebx,[rcx] 99 blsmsk ebx,eax 100 blsmsk ebx,DWORD PTR [rcx] 101 blsmsk r10d,DWORD PTR [rcx] 102 blsmsk ebx,[rcx] 103 blsr ebx,eax 104 blsr ebx,DWORD PTR [rcx] 105 blsr r10d,DWORD PTR [rcx] 106 blsr ebx,[rcx] 107 108# Test for op r64, r64, r/m64 109 andn rsi,rbx,rax 110 andn rsi,rbx,QWORD PTR [rcx] 111 andn r10,r15,r9 112 andn r10,r15,QWORD PTR [rcx] 113 andn rsi,rbx,[rcx] 114 115# Test for op r64, r/m64, r64 116 bextr rsi,rbx,rax 117 bextr rsi,QWORD PTR [rcx],rax 118 bextr r10,r15,r9 119 bextr r10,QWORD PTR [rcx],r9 120 bextr rsi,[rcx],rax 121 122# Test for op r64, r/m64 123 tzcnt rbx,rax 124 tzcnt rbx,QWORD PTR [rcx] 125 tzcnt r15,r9 126 tzcnt r15,QWORD PTR [rcx] 127 tzcnt rbx,[rcx] 128 blsi rbx,rax 129 blsi rbx,QWORD PTR [rcx] 130 blsi r15,r9 131 blsi r15,QWORD PTR [rcx] 132 blsi rbx,[rcx] 133 blsmsk rbx,rax 134 blsmsk rbx,QWORD PTR [rcx] 135 blsmsk r15,r9 136 blsmsk r15,QWORD PTR [rcx] 137 blsmsk rbx,[rcx] 138 blsr rbx,rax 139 blsr rbx,QWORD PTR [rcx] 140 blsr r15,r9 141 blsr r15,QWORD PTR [rcx] 142 blsr rbx,[rcx] 143