; RUN: llvm-upgrade < %s | llvm-as | llc -march=ppc32 && ; RUN: llvm-upgrade < %s | llvm-as | llc -march=ppc32 | not grep rlwin void %test(ubyte* %P) { %W = load ubyte* %P %X = shl ubyte %W, ubyte 1 %Y = add ubyte %X, 2 %Z = and ubyte %Y, 254 ; dead and store ubyte %Z, ubyte* %P ret void } ushort %test2(ushort %crc) { ; No and's should be needed for the ushorts here. %tmp.1 = shr ushort %crc, ubyte 1 %tmp.7 = xor ushort %tmp.1, 40961 ret ushort %tmp.7 }