1; RUN: llc < %s -mcpu=core-avx-i -mtriple=i386-pc-win32 | FileCheck %s 2 3%struct_type = type { [64 x <8 x float>], <8 x float> } 4 5; Function Attrs: nounwind readnone 6declare i32 @llvm.x86.avx.movmsk.ps.256(<8 x float>) 7 8; Function Attrs: nounwind 9define i32 @equal(<8 x i32> %A) { 10allocas: 11 %first_alloc = alloca [64 x <8 x i32>] 12 %second_alloc = alloca %struct_type 13 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 %A2 17} 18 19; CHECK: equal 20; CHECK-NOT: vzeroupper 21; CHECK: _chkstk 22; CHECK: ret 23 24define <8 x float> @foo(<8 x float> %y, i64* %p, double %x) { 25 %i = fptoui double %x to i64 26 store i64 %i, i64* %p 27 %ret = fadd <8 x float> %y, %y 28 ret <8 x float> %ret 29} 30 31; CHECK: foo 32; CHECK-NOT: vzeroupper 33; CHECK: {{cvtt|fist}} 34; CHECK: ret 35