| Dan Gohman | 1880092 | 2009-09-11 18:01:28 +0000 | [diff] [blame] | 1 | ; RUN: opt < %s -instcombine -S | not grep 34 |
| Chris Lattner | 1cc1217 | 2004-02-23 20:19:51 +0000 | [diff] [blame] | 2 | |
| Tanya Lattner | 5640bd1 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 3 | define i32 @test(i32 %X) { |
| 4 | ; Do not fold into shr X, 34, as this uses undefined behavior! |
| 5 | %Y = ashr i32 %X, 17 ; <i32> [#uses=1] |
| 6 | %Z = ashr i32 %Y, 17 ; <i32> [#uses=1] |
| 7 | ret i32 %Z |
| Chris Lattner | 1cc1217 | 2004-02-23 20:19:51 +0000 | [diff] [blame] | 8 | } |
| Chris Lattner | 7eaa535 | 2004-02-23 20:24:16 +0000 | [diff] [blame] | 9 | |
| Tanya Lattner | 5640bd1 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 10 | define i32 @test2(i32 %X) { |
| 11 | ; Do not fold into shl X, 34, as this uses undefined behavior! |
| 12 | %Y = shl i32 %X, 17 ; <i32> [#uses=1] |
| 13 | %Z = shl i32 %Y, 17 ; <i32> [#uses=1] |
| 14 | ret i32 %Z |
| Chris Lattner | 7eaa535 | 2004-02-23 20:24:16 +0000 | [diff] [blame] | 15 | } |