Lines Matching refs:BEXTR
2 … -mtriple=i686-unknown-unknown -mattr=+cmov,+bmi | FileCheck %s --check-prefixes=X86,X86-SLOW-BEXTR
3 …ple=i686-unknown-unknown -mattr=+cmov,+bmi,+bmi2 | FileCheck %s --check-prefixes=X86,X86-SLOW-BEXTR
4 …< %s -mtriple=x86_64-unknown-unknown -mattr=+bmi | FileCheck %s --check-prefixes=X64,X64-SLOW-BEXTR
5 …mtriple=x86_64-unknown-unknown -mattr=+bmi,+bmi2 | FileCheck %s --check-prefixes=X64,X64-SLOW-BEXTR
6 …86-unknown-unknown -mattr=+cmov,+bmi,+fast-bextr | FileCheck %s --check-prefixes=X86,X86-FAST-BEXTR
7 …e=x86_64-unknown-unknown -mattr=+bmi,+fast-bextr | FileCheck %s --check-prefixes=X64,X64-FAST-BEXTR
347 ; X86-SLOW-BEXTR-LABEL: bextr32b:
348 ; X86-SLOW-BEXTR: # %bb.0:
349 ; X86-SLOW-BEXTR-NEXT: movl {{[0-9]+}}(%esp), %eax
350 ; X86-SLOW-BEXTR-NEXT: shrl $4, %eax
351 ; X86-SLOW-BEXTR-NEXT: andl $4095, %eax # imm = 0xFFF
352 ; X86-SLOW-BEXTR-NEXT: retl
354 ; X64-SLOW-BEXTR-LABEL: bextr32b:
355 ; X64-SLOW-BEXTR: # %bb.0:
356 ; X64-SLOW-BEXTR-NEXT: movl %edi, %eax
357 ; X64-SLOW-BEXTR-NEXT: shrl $4, %eax
358 ; X64-SLOW-BEXTR-NEXT: andl $4095, %eax # imm = 0xFFF
359 ; X64-SLOW-BEXTR-NEXT: retq
361 ; X86-FAST-BEXTR-LABEL: bextr32b:
362 ; X86-FAST-BEXTR: # %bb.0:
363 ; X86-FAST-BEXTR-NEXT: movl $3076, %eax # imm = 0xC04
364 ; X86-FAST-BEXTR-NEXT: bextrl %eax, {{[0-9]+}}(%esp), %eax
365 ; X86-FAST-BEXTR-NEXT: retl
367 ; X64-FAST-BEXTR-LABEL: bextr32b:
368 ; X64-FAST-BEXTR: # %bb.0:
369 ; X64-FAST-BEXTR-NEXT: movl $3076, %eax # imm = 0xC04
370 ; X64-FAST-BEXTR-NEXT: bextrl %eax, %edi, %eax
371 ; X64-FAST-BEXTR-NEXT: retq
395 ; X86-SLOW-BEXTR-LABEL: bextr32b_load:
396 ; X86-SLOW-BEXTR: # %bb.0:
397 ; X86-SLOW-BEXTR-NEXT: movl {{[0-9]+}}(%esp), %eax
398 ; X86-SLOW-BEXTR-NEXT: movl (%eax), %eax
399 ; X86-SLOW-BEXTR-NEXT: shrl $4, %eax
400 ; X86-SLOW-BEXTR-NEXT: andl $4095, %eax # imm = 0xFFF
401 ; X86-SLOW-BEXTR-NEXT: retl
403 ; X64-SLOW-BEXTR-LABEL: bextr32b_load:
404 ; X64-SLOW-BEXTR: # %bb.0:
405 ; X64-SLOW-BEXTR-NEXT: movl (%rdi), %eax
406 ; X64-SLOW-BEXTR-NEXT: shrl $4, %eax
407 ; X64-SLOW-BEXTR-NEXT: andl $4095, %eax # imm = 0xFFF
408 ; X64-SLOW-BEXTR-NEXT: retq
410 ; X86-FAST-BEXTR-LABEL: bextr32b_load:
411 ; X86-FAST-BEXTR: # %bb.0:
412 ; X86-FAST-BEXTR-NEXT: movl {{[0-9]+}}(%esp), %eax
413 ; X86-FAST-BEXTR-NEXT: movl $3076, %ecx # imm = 0xC04
414 ; X86-FAST-BEXTR-NEXT: bextrl %ecx, (%eax), %eax
415 ; X86-FAST-BEXTR-NEXT: retl
417 ; X64-FAST-BEXTR-LABEL: bextr32b_load:
418 ; X64-FAST-BEXTR: # %bb.0:
419 ; X64-FAST-BEXTR-NEXT: movl $3076, %eax # imm = 0xC04
420 ; X64-FAST-BEXTR-NEXT: bextrl %eax, (%rdi), %eax
421 ; X64-FAST-BEXTR-NEXT: retq
1024 ; FIXME: We should not be using the S flag from BEXTR.