Home | History | Annotate | Download | only in X86
      1 ; RUN: llc -mtriple=x86_64-unknown-unknown -march=x86-64 -mattr=+tbm < %s | FileCheck %s
      2 
      3 define i32 @test_x86_tbm_bextri_u32(i32 %a) nounwind readnone {
      4 entry:
      5   ; CHECK-LABEL: test_x86_tbm_bextri_u32:
      6   ; CHECK-NOT: mov
      7   ; CHECK: bextr $
      8   %0 = tail call i32 @llvm.x86.tbm.bextri.u32(i32 %a, i32 2814)
      9   ret i32 %0
     10 }
     11 
     12 declare i32 @llvm.x86.tbm.bextri.u32(i32, i32) nounwind readnone
     13 
     14 define i32 @test_x86_tbm_bextri_u32_m(i32* nocapture %a) nounwind readonly {
     15 entry:
     16   ; CHECK-LABEL: test_x86_tbm_bextri_u32_m:
     17   ; CHECK-NOT: mov
     18   ; CHECK: bextr $
     19   %tmp1 = load i32, i32* %a, align 4
     20   %0 = tail call i32 @llvm.x86.tbm.bextri.u32(i32 %tmp1, i32 2814)
     21   ret i32 %0
     22 }
     23 
     24 define i64 @test_x86_tbm_bextri_u64(i64 %a) nounwind readnone {
     25 entry:
     26   ; CHECK-LABEL: test_x86_tbm_bextri_u64:
     27   ; CHECK-NOT: mov
     28   ; CHECK: bextr $
     29   %0 = tail call i64 @llvm.x86.tbm.bextri.u64(i64 %a, i64 2814)
     30   ret i64 %0
     31 }
     32 
     33 declare i64 @llvm.x86.tbm.bextri.u64(i64, i64) nounwind readnone
     34 
     35 define i64 @test_x86_tbm_bextri_u64_m(i64* nocapture %a) nounwind readonly {
     36 entry:
     37   ; CHECK-LABEL: test_x86_tbm_bextri_u64_m:
     38   ; CHECK-NOT: mov
     39   ; CHECK: bextr $
     40   %tmp1 = load i64, i64* %a, align 8
     41   %0 = tail call i64 @llvm.x86.tbm.bextri.u64(i64 %tmp1, i64 2814)
     42   ret i64 %0
     43 }
     44