1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mattr=+avx -mtriple=i686-pc-win32 | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Workerdefine void @endless_loop() { 4*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: endless_loop: 5*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: # BB#0: 6*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps (%eax), %ymm0 7*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vextractf128 $1, %ymm0, %xmm0 8*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,0,1,1] 9*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vpshufd {{.*#+}} xmm1 = xmm0[0,1,0,1] 10*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm1 11*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vxorps %ymm2, %ymm2, %ymm2 12*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5,6],ymm1[7] 13*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0],ymm2[1,2,3,4,5,6,7] 14*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %ymm0, (%eax) 15*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vmovaps %ymm1, (%eax) 16*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: vzeroupper 17*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retl 18*9880d681SAndroid Build Coastguard Workerentry: 19*9880d681SAndroid Build Coastguard Worker %0 = load <8 x i32>, <8 x i32> addrspace(1)* undef, align 32 20*9880d681SAndroid Build Coastguard Worker %1 = shufflevector <8 x i32> %0, <8 x i32> undef, <16 x i32> <i32 4, i32 4, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef> 21*9880d681SAndroid Build Coastguard Worker %2 = shufflevector <16 x i32> <i32 undef, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 undef>, <16 x i32> %1, <16 x i32> <i32 16, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 17> 22*9880d681SAndroid Build Coastguard Worker store <16 x i32> %2, <16 x i32> addrspace(1)* undef, align 64 23*9880d681SAndroid Build Coastguard Worker ret void 24*9880d681SAndroid Build Coastguard Worker} 25