|
| 1 | +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py |
1 | 2 | ; RUN: llc -mtriple=x86_64-unknown-unknown -mattr=+tbm < %s | FileCheck %s
|
2 | 3 |
|
3 | 4 | define i32 @test_x86_tbm_bextri_u32(i32 %a) nounwind readnone {
|
| 5 | +; CHECK-LABEL: test_x86_tbm_bextri_u32: |
| 6 | +; CHECK: # BB#0: # %entry |
| 7 | +; CHECK-NEXT: bextr $2814, %edi, %eax # imm = 0xAFE |
| 8 | +; CHECK-NEXT: retq |
4 | 9 | entry:
|
5 |
| - ; CHECK-LABEL: test_x86_tbm_bextri_u32: |
6 |
| - ; CHECK-NOT: mov |
7 |
| - ; CHECK: bextr $ |
8 | 10 | %0 = tail call i32 @llvm.x86.tbm.bextri.u32(i32 %a, i32 2814)
|
9 | 11 | ret i32 %0
|
10 | 12 | }
|
11 | 13 |
|
12 | 14 | declare i32 @llvm.x86.tbm.bextri.u32(i32, i32) nounwind readnone
|
13 | 15 |
|
14 | 16 | define i32 @test_x86_tbm_bextri_u32_m(i32* nocapture %a) nounwind readonly {
|
| 17 | +; CHECK-LABEL: test_x86_tbm_bextri_u32_m: |
| 18 | +; CHECK: # BB#0: # %entry |
| 19 | +; CHECK-NEXT: bextr $2814, (%rdi), %eax # imm = 0xAFE |
| 20 | +; CHECK-NEXT: retq |
15 | 21 | entry:
|
16 |
| - ; CHECK-LABEL: test_x86_tbm_bextri_u32_m: |
17 |
| - ; CHECK-NOT: mov |
18 |
| - ; CHECK: bextr $ |
19 | 22 | %tmp1 = load i32, i32* %a, align 4
|
20 | 23 | %0 = tail call i32 @llvm.x86.tbm.bextri.u32(i32 %tmp1, i32 2814)
|
21 | 24 | ret i32 %0
|
22 | 25 | }
|
23 | 26 |
|
24 | 27 | define i64 @test_x86_tbm_bextri_u64(i64 %a) nounwind readnone {
|
| 28 | +; CHECK-LABEL: test_x86_tbm_bextri_u64: |
| 29 | +; CHECK: # BB#0: # %entry |
| 30 | +; CHECK-NEXT: bextr $2814, %rdi, %rax # imm = 0xAFE |
| 31 | +; CHECK-NEXT: retq |
25 | 32 | entry:
|
26 |
| - ; CHECK-LABEL: test_x86_tbm_bextri_u64: |
27 |
| - ; CHECK-NOT: mov |
28 |
| - ; CHECK: bextr $ |
29 | 33 | %0 = tail call i64 @llvm.x86.tbm.bextri.u64(i64 %a, i64 2814)
|
30 | 34 | ret i64 %0
|
31 | 35 | }
|
32 | 36 |
|
33 | 37 | declare i64 @llvm.x86.tbm.bextri.u64(i64, i64) nounwind readnone
|
34 | 38 |
|
35 | 39 | define i64 @test_x86_tbm_bextri_u64_m(i64* nocapture %a) nounwind readonly {
|
| 40 | +; CHECK-LABEL: test_x86_tbm_bextri_u64_m: |
| 41 | +; CHECK: # BB#0: # %entry |
| 42 | +; CHECK-NEXT: bextr $2814, (%rdi), %rax # imm = 0xAFE |
| 43 | +; CHECK-NEXT: retq |
36 | 44 | entry:
|
37 |
| - ; CHECK-LABEL: test_x86_tbm_bextri_u64_m: |
38 |
| - ; CHECK-NOT: mov |
39 |
| - ; CHECK: bextr $ |
40 | 45 | %tmp1 = load i64, i64* %a, align 8
|
41 | 46 | %0 = tail call i64 @llvm.x86.tbm.bextri.u64(i64 %tmp1, i64 2814)
|
42 | 47 | ret i64 %0
|
|
0 commit comments