summaryrefslogtreecommitdiff
path: root/test/CodeGen/PowerPC/and-elim.ll
blob: ae1f57d07d29abc77a378c43231b40a1fb52cd34 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
; 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
}