blob: e83c97612d936232080ef885755a0902d1b1c474 [file] [log] [blame]
Reid Spencerea8b07e2007-03-23 20:48:34 +00001; 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
7implementation
8
9define i333 @test1(i333 %X) {
10 %Y = udiv i333 %X, 70368744177664
11 ret i333 %Y
12}
13
14define i499 @test2(i499 %X) {
15 %tmp.0 = shl i499 4096, 197
16 %Y = udiv i499 %X, %tmp.0
17 ret i499 %Y
18}
19
20define 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}