Revert rGe6ccb57bb3f6b761f2310e97fd6ca99eff42f73e "[SLP] Add cost model for `llvm...
[llvm-project.git] / llvm / test / CodeGen / LoongArch / bstrpick_d.ll
blob5882123be1c8714840a7d8ba040cdc18e3cc3a69
1 ; RUN: llc --mtriple=loongarch64 < %s | FileCheck %s
3 define i64 @lshr40_and255(i64 %a) {
4 ; CHECK-LABEL: lshr40_and255:
5 ; CHECK:       # %bb.0:
6 ; CHECK-NEXT:    bstrpick.d $a0, $a0, 47, 40
7 ; CHECK-NEXT:    jirl $zero, $ra, 0
8   %shr = lshr i64 %a, 40
9   %and = and i64 %shr, 255
10   ret i64 %and
13 define i64 @ashr50_and511(i64 %a) {
14 ; CHECK-LABEL: ashr50_and511:
15 ; CHECK:       # %bb.0:
16 ; CHECK-NEXT:    bstrpick.d $a0, $a0, 58, 50
17 ; CHECK-NEXT:    jirl $zero, $ra, 0
18   %shr = ashr i64 %a, 50
19   %and = and i64 %shr, 511
20   ret i64 %and
23 define i64 @zext_i32_to_i64(i32 %a) {
24 ; CHECK-LABEL: zext_i32_to_i64:
25 ; CHECK:       # %bb.0:
26 ; CHECK-NEXT:    bstrpick.d $a0, $a0, 31, 0
27 ; CHECK-NEXT:    jirl $zero, $ra, 0
28   %res = zext i32 %a to i64
29   ret i64 %res
32 define i64 @and8191(i64 %a) {
33 ; CHECK-LABEL: and8191:
34 ; CHECK:       # %bb.0:
35 ; CHECK-NEXT:    bstrpick.d $a0, $a0, 12, 0
36 ; CHECK-NEXT:    jirl $zero, $ra, 0
37   %and = and i64 %a, 8191
38   ret i64 %and
41 ;; Check that andi but not bstrpick.d is generated.
42 define i64 @and4095(i64 %a) {
43 ; CHECK-LABEL: and4095:
44 ; CHECK:       # %bb.0:
45 ; CHECK-NEXT:    andi $a0, $a0, 4095
46 ; CHECK-NEXT:    jirl $zero, $ra, 0
47   %and = and i64 %a, 4095
48   ret i64 %and