1; RUN: llc -verify-machineinstrs < %s -mtriple=powerpc64-apple-darwin | FileCheck %s 2 3define i1 @and_cmp1(i32 %x, i32 %y) { 4; CHECK-LABEL: and_cmp1: 5; CHECK: andc [[REG1:r[0-9]+]], r4, r3 6; CHECK: cntlzw [[REG2:r[0-9]+]], [[REG1]] 7; CHECK: rlwinm r3, [[REG2]], 27, 31, 31 8; CHECK: blr 9 10 %and = and i32 %x, %y 11 %cmp = icmp eq i32 %and, %y 12 ret i1 %cmp 13} 14 15define i1 @and_cmp_const(i32 %x) { 16; CHECK-LABEL: and_cmp_const: 17; CHECK: li [[REG1:r[0-9]+]], 43 18; CHECK: andc [[REG2:r[0-9]+]], [[REG1]], r3 19; CHECK: cntlzw [[REG3:r[0-9]+]], [[REG2]] 20; CHECK: rlwinm r3, [[REG3]], 27, 31, 31 21; CHECK: blr 22 23 %and = and i32 %x, 43 24 %cmp = icmp eq i32 %and, 43 25 ret i1 %cmp 26} 27 28define i1 @foo(i32 %i) { 29; CHECK-LABEL: foo: 30; CHECK: lis [[REG1:r[0-9]+]], 4660 31; CHECK: ori [[REG2:r[0-9]+]], [[REG1]], 22136 32; CHECK: andc [[REG3:r[0-9]+]], [[REG2]], r3 33; CHECK: cntlzw [[REG4:r[0-9]+]], [[REG3]] 34; CHECK: rlwinm r3, [[REG4]], 27, 31, 31 35; CHECK: blr 36 37 %and = and i32 %i, 305419896 38 %cmp = icmp eq i32 %and, 305419896 39 ret i1 %cmp 40} 41 42