1; RUN: llc -march=x86-64 -mtriple=x86_64-apple-darwin -mcpu=corei7-avx -o - < %s | FileCheck %s 2 3;CHECK-LABEL: wideloads: 4;CHECK: vmovaps 5;CHECK: vinsertf128 6;CHECK: vmovaps 7;CHECK-NOT: vinsertf128 8;CHECK: ret 9 10define void @wideloads(<8 x float>* %a, <8 x float>* %b, <8 x float>* %c) nounwind uwtable noinline ssp { 11 %v0 = load <8 x float>, <8 x float>* %a, align 16 ; <---- unaligned! 12 %v1 = load <8 x float>, <8 x float>* %b, align 32 ; <---- aligned! 13 %m0 = fcmp olt <8 x float> %v1, %v0 14 %v2 = load <8 x float>, <8 x float>* %c, align 32 ; <---- aligned! 15 %m1 = fcmp olt <8 x float> %v2, %v0 16 %mand = and <8 x i1> %m1, %m0 17 %r = zext <8 x i1> %mand to <8 x i32> 18 store <8 x i32> %r, <8 x i32>* undef, align 32 19 ret void 20} 21 22; CHECK: widestores 23; loads: 24; CHECK: vmovaps 25; CHECK: vmovaps 26; stores: 27; CHECK: vmovaps 28; CHECK: vextractf128 29; CHECK: vmovaps 30;CHECK: ret 31 32define void @widestores(<8 x float>* %a, <8 x float>* %b, <8 x float>* %c) nounwind uwtable noinline ssp { 33 %v0 = load <8 x float>, <8 x float>* %a, align 32 34 %v1 = load <8 x float>, <8 x float>* %b, align 32 35 store <8 x float> %v0, <8 x float>* %b, align 32 ; <--- aligned 36 store <8 x float> %v1, <8 x float>* %a, align 16 ; <--- unaligned 37 ret void 38} 39 40