Reid Spencer | c33a34f | 2007-01-05 18:31:56 +0000 | [diff] [blame] | 1 | ; RUN: llvm-as < %s | llc -march=ppc32 && |
2 | ; RUN: llvm-as < %s | llc -march=ppc32 | not grep rlwin | ||||
Chris Lattner | 1628947 | 2005-10-10 21:21:36 +0000 | [diff] [blame] | 3 | |
Reid Spencer | e3ff5ad | 2007-01-26 08:25:06 +0000 | [diff] [blame] | 4 | define void @test(i8* %P) { |
Reid Spencer | c33a34f | 2007-01-05 18:31:56 +0000 | [diff] [blame] | 5 | %W = load i8* %P |
Reid Spencer | 832254e | 2007-02-02 02:16:23 +0000 | [diff] [blame^] | 6 | %X = shl i8 %W, 1 |
Reid Spencer | c33a34f | 2007-01-05 18:31:56 +0000 | [diff] [blame] | 7 | %Y = add i8 %X, 2 |
8 | %Z = and i8 %Y, 254 ; dead and | ||||
9 | store i8 %Z, i8* %P | ||||
Chris Lattner | 1628947 | 2005-10-10 21:21:36 +0000 | [diff] [blame] | 10 | ret void |
11 | } | ||||
Chris Lattner | cfdbb7c | 2006-02-27 00:20:23 +0000 | [diff] [blame] | 12 | |
Reid Spencer | e3ff5ad | 2007-01-26 08:25:06 +0000 | [diff] [blame] | 13 | define i16 @test2(i16 zext %crc) zext { |
Reid Spencer | c33a34f | 2007-01-05 18:31:56 +0000 | [diff] [blame] | 14 | ; No and's should be needed for the i16s here. |
Reid Spencer | 832254e | 2007-02-02 02:16:23 +0000 | [diff] [blame^] | 15 | %tmp.1 = lshr i16 %crc, 1 |
Reid Spencer | c33a34f | 2007-01-05 18:31:56 +0000 | [diff] [blame] | 16 | %tmp.7 = xor i16 %tmp.1, 40961 |
17 | ret i16 %tmp.7 | ||||
Chris Lattner | cfdbb7c | 2006-02-27 00:20:23 +0000 | [diff] [blame] | 18 | } |
19 |