| Reid Spencer | ea8b07e | 2007-03-23 20:48:34 +0000 | [diff] [blame^] | 1 | ; This test makes sure that div instructions are properly eliminated. |
| 2 | ; This test is for Integer BitWidth >= 64 && BitWidth <= 1024. |
| 3 | ; |
| 4 | |
| 5 | ; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep div |
| 6 | |
| 7 | implementation |
| 8 | |
| 9 | define i333 @test1(i333 %X) { |
| 10 | %Y = udiv i333 %X, 70368744177664 |
| 11 | ret i333 %Y |
| 12 | } |
| 13 | |
| 14 | define i499 @test2(i499 %X) { |
| 15 | %tmp.0 = shl i499 4096, 197 |
| 16 | %Y = udiv i499 %X, %tmp.0 |
| 17 | ret i499 %Y |
| 18 | } |
| 19 | |
| 20 | define i599 @test3(i599 %X, bool %C) { |
| 21 | %V = select bool %C, i599 70368744177664, i599 4096 |
| 22 | %R = udiv i599 %X, %V |
| 23 | ret i599 %R |
| 24 | } |