1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2; RUN: llc < %s -mtriple=i686-unknown -mattr=+avx | FileCheck %s --check-prefix=X32 3; RUN: llc < %s -mtriple=x86_64-unknown -mattr=+avx | FileCheck %s --check-prefix=X64 4 5define <4 x i64> @autogen_SD88863() { 6; X32-LABEL: autogen_SD88863: 7; X32: # BB#0: # %BB 8; X32-NEXT: vpermilps {{.*#+}} xmm0 = xmm0[2,3,0,1] 9; X32-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm0 10; X32-NEXT: vxorpd %xmm1, %xmm1, %xmm1 11; X32-NEXT: vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2],ymm1[3] 12; X32-NEXT: movb $1, %al 13; X32-NEXT: .p2align 4, 0x90 14; X32-NEXT: .LBB0_1: # %CF 15; X32-NEXT: # =>This Inner Loop Header: Depth=1 16; X32-NEXT: testb %al, %al 17; X32-NEXT: jne .LBB0_1 18; X32-NEXT: # BB#2: # %CF240 19; X32-NEXT: retl 20; 21; X64-LABEL: autogen_SD88863: 22; X64: # BB#0: # %BB 23; X64-NEXT: vpermilps {{.*#+}} xmm0 = xmm0[2,3,0,1] 24; X64-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm0 25; X64-NEXT: vxorpd %xmm1, %xmm1, %xmm1 26; X64-NEXT: vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2],ymm1[3] 27; X64-NEXT: movb $1, %al 28; X64-NEXT: .p2align 4, 0x90 29; X64-NEXT: .LBB0_1: # %CF 30; X64-NEXT: # =>This Inner Loop Header: Depth=1 31; X64-NEXT: testb %al, %al 32; X64-NEXT: jne .LBB0_1 33; X64-NEXT: # BB#2: # %CF240 34; X64-NEXT: retq 35BB: 36 %I26 = insertelement <4 x i64> undef, i64 undef, i32 2 37 br label %CF 38 39CF: 40 %E66 = extractelement <4 x i64> %I26, i32 1 41 %I68 = insertelement <4 x i64> zeroinitializer, i64 %E66, i32 2 42 %Cmp72 = icmp eq i32 0, 0 43 br i1 %Cmp72, label %CF, label %CF240 44 45CF240: 46 ret <4 x i64> %I68 47} 48