[Reassociate] Canonicalize constants to RHS operand.
[oota-llvm.git] / test / Transforms / Reassociate / fast-ReassociateVector.ll
1 ; RUN: opt < %s -reassociate -S | FileCheck %s
2
3 ; Canonicalize operands, but don't optimize floating point vector operations.
4 define <4 x float> @test1() {
5 ; CHECK-LABEL: test1
6 ; CHECK-NEXT: %tmp1 = fsub fast <4 x float> zeroinitializer, zeroinitializer
7 ; CHECK-NEXT: %tmp2 = fmul fast <4 x float> %tmp1, zeroinitializer
8
9   %tmp1 = fsub fast <4 x float> zeroinitializer, zeroinitializer
10   %tmp2 = fmul fast <4 x float> zeroinitializer, %tmp1
11   ret <4 x float> %tmp2
12 }
13
14 ; We don't currently commute integer vector operations.
15 define <2 x i32> @test2(<2 x i32> %x, <2 x i32> %y) {
16 ; CHECK-LABEL: test2
17 ; CHECK-NEXT: %tmp1 = add <2 x i32> %x, %y
18 ; CHECK-NEXT: %tmp2 = add <2 x i32> %y, %x
19 ; CHECK-NEXT: %tmp3 = add <2 x i32> %tmp1, %tmp2
20
21   %tmp1 = add <2 x i32> %x, %y
22   %tmp2 = add <2 x i32> %y, %x
23   %tmp3 = add <2 x i32> %tmp1, %tmp2
24   ret <2 x i32> %tmp3
25 }