1*9880d681SAndroid Build Coastguard Worker; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=i386-unknown -mattr=+sse4.1 | FileCheck %s --check-prefix=X32 3*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=x86_64-unknown -mattr=+sse4.1 | FileCheck %s --check-prefix=X64 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @var_insert2(<4 x i32> %x, i32 %val, i32 %idx) nounwind { 6*9880d681SAndroid Build Coastguard Worker; X32-LABEL: var_insert2: 7*9880d681SAndroid Build Coastguard Worker; X32: # BB#0: # %entry 8*9880d681SAndroid Build Coastguard Worker; X32-NEXT: movd {{.*#+}} xmm0 = mem[0],zero,zero,zero 9*9880d681SAndroid Build Coastguard Worker; X32-NEXT: pinsrd $3, {{[0-9]+}}(%esp), %xmm0 10*9880d681SAndroid Build Coastguard Worker; X32-NEXT: retl 11*9880d681SAndroid Build Coastguard Worker; 12*9880d681SAndroid Build Coastguard Worker; X64-LABEL: var_insert2: 13*9880d681SAndroid Build Coastguard Worker; X64: # BB#0: # %entry 14*9880d681SAndroid Build Coastguard Worker; X64-NEXT: movd %edi, %xmm0 15*9880d681SAndroid Build Coastguard Worker; X64-NEXT: pinsrd $3, %esi, %xmm0 16*9880d681SAndroid Build Coastguard Worker; X64-NEXT: retq 17*9880d681SAndroid Build Coastguard Workerentry: 18*9880d681SAndroid Build Coastguard Worker %tmp3 = insertelement <4 x i32> undef, i32 %val, i32 0 19*9880d681SAndroid Build Coastguard Worker %tmp4 = insertelement <4 x i32> %tmp3, i32 %idx, i32 3 20*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %tmp4 21*9880d681SAndroid Build Coastguard Worker} 22