81 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s3; RUN: llc -mtriple=powerpc64-ibm-aix-xcoff < %s | FileCheck %s4 5; mask 0xFFFFFFFE6define i32 @test1(i32 %a) {7; CHECK-LABEL: test1:8; CHECK: # %bb.0:9; CHECK-NEXT: rlwinm 3, 3, 0, 0, 3010; CHECK-NEXT: blr11 %and = and i32 %a, -212 ret i32 %and13}14 15; mask 0xFFFFFFFFFFFFFFF916define i64 @test2(i64 %a) {17; CHECK-LABEL: test2:18; CHECK: # %bb.0:19; CHECK-NEXT: rldicl 3, 3, 61, 220; CHECK-NEXT: rotldi 3, 3, 321; CHECK-NEXT: blr22 %and = and i64 %a, -723 ret i64 %and24}25 26; mask: 0xFFFFFFC0000027define i64 @test3(i64 %a) {28; CHECK-LABEL: test3:29; CHECK: # %bb.0:30; CHECK-NEXT: rldicl 3, 3, 42, 2231; CHECK-NEXT: rldicl 3, 3, 22, 1632; CHECK-NEXT: blr33 %and = and i64 %a, 28147497251635234 ret i64 %and35}36 37; mask: 0xC000000FF38define i64 @test4(i64 %a) {39; CHECK-LABEL: test4:40; CHECK: # %bb.0:41; CHECK-NEXT: rldicl 3, 3, 30, 2642; CHECK-NEXT: rldicl 3, 3, 34, 2843; CHECK-NEXT: blr44 %and = and i64 %a, 5153960780745 ret i64 %and46}47 48; mask: 0xFFC0FFFF49define i64 @test5(i64 %a) {50; CHECK-LABEL: test5:51; CHECK: # %bb.0:52; CHECK-NEXT: rldicl 3, 3, 42, 653; CHECK-NEXT: rldicl 3, 3, 22, 3254; CHECK-NEXT: blr55 %and = and i64 %a, 429083852756 ret i64 %and57}58 59; mask: 0x3FC0FFE060define i64 @test6(i64 %a) {61; CHECK-LABEL: test6:62; CHECK: # %bb.0:63; CHECK-NEXT: lis 4, 1632064; CHECK-NEXT: ori 4, 4, 6550465; CHECK-NEXT: and 3, 3, 466; CHECK-NEXT: blr67 %and = and i64 %a, 106961302468 ret i64 %and69}70 71; mask: 0x3FC000001FFFF72define i64 @test7(i64 %a) {73; CHECK-LABEL: test7:74; CHECK: # %bb.0:75; CHECK-NEXT: rldicl 3, 3, 22, 2576; CHECK-NEXT: rldicl 3, 3, 42, 1477; CHECK-NEXT: blr78 %and = and i64 %a, 112150186046259179 ret i64 %and80}81