[RISCV][VLOPT] Add vector narrowing integer right shift instructions to isSupportedIn...
[llvm-project.git] / llvm / test / CodeGen / PowerPC / and-mask.ll
blobe5664f92b3c9e8e4b146c7cc87dfebd725455f86
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s
3 ; RUN: llc -mtriple=powerpc64-ibm-aix-xcoff < %s | FileCheck %s
5 ; mask 0xFFFFFFFE
6 define i32 @test1(i32 %a) {
7 ; CHECK-LABEL: test1:
8 ; CHECK:       # %bb.0:
9 ; CHECK-NEXT:    rlwinm 3, 3, 0, 0, 30
10 ; CHECK-NEXT:    blr
11   %and = and i32 %a, -2
12   ret i32 %and
15 ; mask 0xFFFFFFFFFFFFFFF9
16 define i64 @test2(i64 %a) {
17 ; CHECK-LABEL: test2:
18 ; CHECK:       # %bb.0:
19 ; CHECK-NEXT:    rldicl 3, 3, 61, 2
20 ; CHECK-NEXT:    rotldi 3, 3, 3
21 ; CHECK-NEXT:    blr
22   %and = and i64 %a, -7
23   ret i64 %and
26 ; mask: 0xFFFFFFC00000
27 define i64 @test3(i64 %a) {
28 ; CHECK-LABEL: test3:
29 ; CHECK:       # %bb.0:
30 ; CHECK-NEXT:    rldicl 3, 3, 42, 22
31 ; CHECK-NEXT:    rldicl 3, 3, 22, 16
32 ; CHECK-NEXT:    blr
33   %and = and i64 %a, 281474972516352
34   ret i64 %and
37 ; mask: 0xC000000FF
38 define i64 @test4(i64 %a) {
39 ; CHECK-LABEL: test4:
40 ; CHECK:       # %bb.0:
41 ; CHECK-NEXT:    rldicl 3, 3, 30, 26
42 ; CHECK-NEXT:    rldicl 3, 3, 34, 28
43 ; CHECK-NEXT:    blr
44   %and = and i64 %a, 51539607807
45   ret i64 %and
48 ; mask: 0xFFC0FFFF
49 define i64 @test5(i64 %a) {
50 ; CHECK-LABEL: test5:
51 ; CHECK:       # %bb.0:
52 ; CHECK-NEXT:    rldicl 3, 3, 42, 6
53 ; CHECK-NEXT:    rldicl 3, 3, 22, 32
54 ; CHECK-NEXT:    blr
55   %and = and i64 %a, 4290838527
56   ret i64 %and
59 ; mask: 0x3FC0FFE0
60 define i64 @test6(i64 %a) {
61 ; CHECK-LABEL: test6:
62 ; CHECK:       # %bb.0:
63 ; CHECK-NEXT:    lis 4, 16320
64 ; CHECK-NEXT:    ori 4, 4, 65504
65 ; CHECK-NEXT:    and 3, 3, 4
66 ; CHECK-NEXT:    blr
67   %and = and i64 %a, 1069613024
68   ret i64 %and
71 ; mask: 0x3FC000001FFFF
72 define i64 @test7(i64 %a) {
73 ; CHECK-LABEL: test7:
74 ; CHECK:       # %bb.0:
75 ; CHECK-NEXT:    rldicl 3, 3, 22, 25
76 ; CHECK-NEXT:    rldicl 3, 3, 42, 14
77 ; CHECK-NEXT:    blr
78   %and = and i64 %a, 1121501860462591
79   ret i64 %and