blob: 5e6fbeb1caccb0db5dc2358ad6a611241292f923 [file] [log] [blame]
Chandler Carruth8ffa7c82012-04-22 10:11:26 +00001; RUN: opt < %s -reassociate -S | FileCheck %s
Chris Lattnerf97c7f52006-03-04 09:35:02 +00002
Chandler Carruth8ffa7c82012-04-22 10:11:26 +00003define i32 @test1(i32 %a, i32 %b) {
4; CHECK: @test1
5; CHECK: mul i32 %a, %a
6; CHECK-NEXT: mul i32 %a, 2
7; CHECK-NEXT: add
8; CHECK-NEXT: mul
9; CHECK-NEXT: add
10; CHECK-NEXT: ret
Chandler Carruthf6f57532012-04-22 10:11:23 +000011
12entry:
13 %tmp.2 = mul i32 %a, %a
14 %tmp.5 = shl i32 %a, 1
15 %tmp.6 = mul i32 %tmp.5, %b
16 %tmp.10 = mul i32 %b, %b
17 %tmp.7 = add i32 %tmp.6, %tmp.2
18 %tmp.11 = add i32 %tmp.7, %tmp.10
Tanya Lattner0ea4c8d2008-03-19 04:36:04 +000019 ret i32 %tmp.11
Chris Lattnerf97c7f52006-03-04 09:35:02 +000020}
21
Chandler Carruth8ffa7c82012-04-22 10:11:26 +000022define i32 @test2(i32 %t) {
23; CHECK: @test2
24; CHECK: mul
25; CHECK-NEXT: add
26; CHECK-NEXT: ret
27
28entry:
29 %a = mul i32 %t, 6
30 %b = mul i32 %t, 36
31 %c = add i32 %b, 15
32 %d = add i32 %c, %a
33 ret i32 %d
34}
35