|  | ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py | 
|  | ; RUN: llc -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s | 
|  | ; RUN: llc -mtriple=powerpc64-ibm-aix-xcoff < %s | FileCheck %s | 
|  |  | 
|  | ; mask 0xFFFFFFFE | 
|  | define i32 @test1(i32 %a) { | 
|  | ; CHECK-LABEL: test1: | 
|  | ; CHECK:       # %bb.0: | 
|  | ; CHECK-NEXT:    rlwinm 3, 3, 0, 0, 30 | 
|  | ; CHECK-NEXT:    blr | 
|  | %and = and i32 %a, -2 | 
|  | ret i32 %and | 
|  | } | 
|  |  | 
|  | ; mask 0xFFFFFFFFFFFFFFF9 | 
|  | define i64 @test2(i64 %a) { | 
|  | ; CHECK-LABEL: test2: | 
|  | ; CHECK:       # %bb.0: | 
|  | ; CHECK-NEXT:    rldicl 3, 3, 61, 2 | 
|  | ; CHECK-NEXT:    rotldi 3, 3, 3 | 
|  | ; CHECK-NEXT:    blr | 
|  | %and = and i64 %a, -7 | 
|  | ret i64 %and | 
|  | } | 
|  |  | 
|  | ; mask: 0xFFFFFFC00000 | 
|  | define i64 @test3(i64 %a) { | 
|  | ; CHECK-LABEL: test3: | 
|  | ; CHECK:       # %bb.0: | 
|  | ; CHECK-NEXT:    rldicl 3, 3, 42, 22 | 
|  | ; CHECK-NEXT:    rldicl 3, 3, 22, 16 | 
|  | ; CHECK-NEXT:    blr | 
|  | %and = and i64 %a, 281474972516352 | 
|  | ret i64 %and | 
|  | } | 
|  |  | 
|  | ; mask: 0xC000000FF | 
|  | define i64 @test4(i64 %a) { | 
|  | ; CHECK-LABEL: test4: | 
|  | ; CHECK:       # %bb.0: | 
|  | ; CHECK-NEXT:    rldicl 3, 3, 30, 26 | 
|  | ; CHECK-NEXT:    rldicl 3, 3, 34, 28 | 
|  | ; CHECK-NEXT:    blr | 
|  | %and = and i64 %a, 51539607807 | 
|  | ret i64 %and | 
|  | } | 
|  |  | 
|  | ; mask: 0xFFC0FFFF | 
|  | define i64 @test5(i64 %a) { | 
|  | ; CHECK-LABEL: test5: | 
|  | ; CHECK:       # %bb.0: | 
|  | ; CHECK-NEXT:    rldicl 3, 3, 42, 6 | 
|  | ; CHECK-NEXT:    rldicl 3, 3, 22, 32 | 
|  | ; CHECK-NEXT:    blr | 
|  | %and = and i64 %a, 4290838527 | 
|  | ret i64 %and | 
|  | } | 
|  |  | 
|  | ; mask: 0x3FC0FFE0 | 
|  | define i64 @test6(i64 %a) { | 
|  | ; CHECK-LABEL: test6: | 
|  | ; CHECK:       # %bb.0: | 
|  | ; CHECK-NEXT:    lis 4, 16320 | 
|  | ; CHECK-NEXT:    ori 4, 4, 65504 | 
|  | ; CHECK-NEXT:    and 3, 3, 4 | 
|  | ; CHECK-NEXT:    blr | 
|  | %and = and i64 %a, 1069613024 | 
|  | ret i64 %and | 
|  | } | 
|  |  | 
|  | ; mask: 0x3FC000001FFFF | 
|  | define i64 @test7(i64 %a) { | 
|  | ; CHECK-LABEL: test7: | 
|  | ; CHECK:       # %bb.0: | 
|  | ; CHECK-NEXT:    rldicl 3, 3, 22, 25 | 
|  | ; CHECK-NEXT:    rldicl 3, 3, 42, 14 | 
|  | ; CHECK-NEXT:    blr | 
|  | %and = and i64 %a, 1121501860462591 | 
|  | ret i64 %and | 
|  | } |