35 lines · plain
1; RUN: llc < %s -mcpu=core-avx-i -mtriple=i386-pc-win32 | FileCheck %s2 3%struct_type = type { [64 x <8 x float>], <8 x float> }4 5; Function Attrs: nounwind readnone6declare i32 @llvm.x86.avx.movmsk.ps.256(<8 x float>)7 8; Function Attrs: nounwind9define i32 @equal(<8 x i32> %A) {10allocas:11 %first_alloc = alloca [64 x <8 x i32>]12 %second_alloc = alloca %struct_type13 14 %A1 = bitcast <8 x i32> %A to <8 x float>15 %A2 = call i32 @llvm.x86.avx.movmsk.ps.256(<8 x float> %A1)16 ret i32 %A217}18 19; CHECK: equal20; CHECK-NOT: vzeroupper21; CHECK: _chkstk22; CHECK: ret23 24define <8 x float> @foo(<8 x float> %y, ptr %p, double %x) {25 %i = fptoui double %x to i6426 store i64 %i, ptr %p27 %ret = fadd <8 x float> %y, %y28 ret <8 x float> %ret29}30 31; CHECK: foo32; CHECK-NOT: vzeroupper33; CHECK: {{cvtt|fist}}34; CHECK: ret35