; RUN: opt < %s -reassociate -S | FileCheck %s ; Don't handle floating point vector operations. define <4 x float> @test1() { ; CHECK-LABEL: test1 ; CHECK-NEXT: %tmp1 = fsub fast <4 x float> zeroinitializer, zeroinitializer ; CHECK-NEXT: %tmp2 = fmul fast <4 x float> zeroinitializer, %tmp1 %tmp1 = fsub fast <4 x float> zeroinitializer, zeroinitializer %tmp2 = fmul fast <4 x float> zeroinitializer, %tmp1 ret <4 x float> %tmp2 } ; We don't currently commute integer vector operations. define <2 x i32> @test2(<2 x i32> %x, <2 x i32> %y) { ; CHECK-LABEL: test2 ; CHECK-NEXT: %tmp1 = add <2 x i32> %x, %y ; CHECK-NEXT: %tmp2 = add <2 x i32> %y, %x ; CHECK-NEXT: %tmp3 = add <2 x i32> %tmp1, %tmp2 %tmp1 = add <2 x i32> %x, %y %tmp2 = add <2 x i32> %y, %x %tmp3 = add <2 x i32> %tmp1, %tmp2 ret <2 x i32> %tmp3 }