1 ; RUN: llc < %s -march=x86 -mattr=sse4.1 -mcpu=nehalem -stack-alignment=16 > %t 2 ; RUN: grep pmul %t | count 12 3 ; RUN: grep mov %t | count 14 4 5 define <4 x i32> @a(<4 x i32> %i) nounwind { 6 %A = mul <4 x i32> %i, < i32 117, i32 117, i32 117, i32 117 > 7 ret <4 x i32> %A 8 } 9 define <2 x i64> @b(<2 x i64> %i) nounwind { 10 %A = mul <2 x i64> %i, < i64 117, i64 117 > 11 ret <2 x i64> %A 12 } 13 define <4 x i32> @c(<4 x i32> %i, <4 x i32> %j) nounwind { 14 %A = mul <4 x i32> %i, %j 15 ret <4 x i32> %A 16 } 17 define <2 x i64> @d(<2 x i64> %i, <2 x i64> %j) nounwind { 18 %A = mul <2 x i64> %i, %j 19 ret <2 x i64> %A 20 } 21 ; Use a call to force spills. 22 declare void @foo() 23 define <4 x i32> @e(<4 x i32> %i, <4 x i32> %j) nounwind { 24 call void @foo() 25 %A = mul <4 x i32> %i, %j 26 ret <4 x i32> %A 27 } 28 define <2 x i64> @f(<2 x i64> %i, <2 x i64> %j) nounwind { 29 call void @foo() 30 %A = mul <2 x i64> %i, %j 31 ret <2 x i64> %A 32 } 33