; RUN: llc < %s -mtriple=x86_64-pc-linux -mcpu=corei7-avx | FileCheck %s define <4 x i3> @test1(<4 x i3>* %in) nounwind { %ret = load <4 x i3>* %in, align 1 ret <4 x i3> %ret } ; CHECK: test1 ; CHECK: movzwl ; CHECK: shrl $3 ; CHECK: andl $7 ; CHECK: andl $7 ; CHECK: vmovd ; CHECK: pinsrd $1 ; CHECK: shrl $6 ; CHECK: andl $7 ; CHECK: pinsrd $2 ; CHECK: shrl $9 ; CHECK: andl $7 ; CHECK: pinsrd $3 ; CHECK: ret define <4 x i1> @test2(<4 x i1>* %in) nounwind { %ret = load <4 x i1>* %in, align 1 ret <4 x i1> %ret } ; CHECK: test2 ; CHECK: movzbl ; CHECK: shrl ; CHECK: andl $1 ; CHECK: andl $1 ; CHECK: vmovd ; CHECK: pinsrd $1 ; CHECK: shrl $2 ; CHECK: andl $1 ; CHECK: pinsrd $2 ; CHECK: shrl $3 ; CHECK: andl $1 ; CHECK: pinsrd $3 ; CHECK: ret define <4 x i64> @test3(<4 x i1>* %in) nounwind { %wide.load35 = load <4 x i1>* %in, align 1 %sext = sext <4 x i1> %wide.load35 to <4 x i64> ret <4 x i64> %sext } ; CHECK: test3 ; CHECK: movzbl ; CHECK: shrl ; CHECK: andl $1 ; CHECK: andl $1 ; CHECK: vmovd ; CHECK: pinsrd $1 ; CHECK: shrl $2 ; CHECK: andl $1 ; CHECK: pinsrd $2 ; CHECK: shrl $3 ; CHECK: andl $1 ; CHECK: pinsrd $3 ; CHECK: pslld ; CHECK: psrad ; CHECK: pmovsxdq ; CHECK: pmovsxdq ; CHECK: ret