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 6 declare i32 @llvm.x86.avx.movmsk.ps.256(<8 x float>) 7 8 ; Function Attrs: nounwind 9 define i32 @equal(<8 x i32> %A) { 10 allocas: 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 24 define <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: _ftol2 34 ; CHECK: ret 35