1*9880d681SAndroid Build Coastguard Worker; RUN: opt -cost-model -analyze -mtriple=amdgcn-unknown-amdhsa < %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker; CHECK: 'insertelement_v2i32' 4*9880d681SAndroid Build Coastguard Worker; CHECK: estimated cost of 0 for {{.*}} insertelement <2 x i32> 5*9880d681SAndroid Build Coastguard Workerdefine void @insertelement_v2i32(<2 x i32> addrspace(1)* %out, <2 x i32> addrspace(1)* %vaddr) { 6*9880d681SAndroid Build Coastguard Worker %vec = load <2 x i32>, <2 x i32> addrspace(1)* %vaddr 7*9880d681SAndroid Build Coastguard Worker %insert = insertelement <2 x i32> %vec, i32 1, i32 123 8*9880d681SAndroid Build Coastguard Worker store <2 x i32> %insert, <2 x i32> addrspace(1)* %out 9*9880d681SAndroid Build Coastguard Worker ret void 10*9880d681SAndroid Build Coastguard Worker} 11*9880d681SAndroid Build Coastguard Worker 12*9880d681SAndroid Build Coastguard Worker; CHECK: 'insertelement_v2i64' 13*9880d681SAndroid Build Coastguard Worker; CHECK: estimated cost of 0 for {{.*}} insertelement <2 x i64> 14*9880d681SAndroid Build Coastguard Workerdefine void @insertelement_v2i64(<2 x i64> addrspace(1)* %out, <2 x i64> addrspace(1)* %vaddr) { 15*9880d681SAndroid Build Coastguard Worker %vec = load <2 x i64>, <2 x i64> addrspace(1)* %vaddr 16*9880d681SAndroid Build Coastguard Worker %insert = insertelement <2 x i64> %vec, i64 1, i64 123 17*9880d681SAndroid Build Coastguard Worker store <2 x i64> %insert, <2 x i64> addrspace(1)* %out 18*9880d681SAndroid Build Coastguard Worker ret void 19*9880d681SAndroid Build Coastguard Worker} 20*9880d681SAndroid Build Coastguard Worker 21*9880d681SAndroid Build Coastguard Worker; CHECK: 'insertelement_v2i16' 22*9880d681SAndroid Build Coastguard Worker; CHECK: estimated cost of 0 for {{.*}} insertelement <2 x i16> 23*9880d681SAndroid Build Coastguard Workerdefine void @insertelement_v2i16(<2 x i16> addrspace(1)* %out, <2 x i16> addrspace(1)* %vaddr) { 24*9880d681SAndroid Build Coastguard Worker %vec = load <2 x i16>, <2 x i16> addrspace(1)* %vaddr 25*9880d681SAndroid Build Coastguard Worker %insert = insertelement <2 x i16> %vec, i16 1, i16 123 26*9880d681SAndroid Build Coastguard Worker store <2 x i16> %insert, <2 x i16> addrspace(1)* %out 27*9880d681SAndroid Build Coastguard Worker ret void 28*9880d681SAndroid Build Coastguard Worker} 29*9880d681SAndroid Build Coastguard Worker 30*9880d681SAndroid Build Coastguard Worker; CHECK: 'insertelement_v2i8' 31*9880d681SAndroid Build Coastguard Worker; CHECK: estimated cost of 0 for {{.*}} insertelement <2 x i8> 32*9880d681SAndroid Build Coastguard Workerdefine void @insertelement_v2i8(<2 x i8> addrspace(1)* %out, <2 x i8> addrspace(1)* %vaddr) { 33*9880d681SAndroid Build Coastguard Worker %vec = load <2 x i8>, <2 x i8> addrspace(1)* %vaddr 34*9880d681SAndroid Build Coastguard Worker %insert = insertelement <2 x i8> %vec, i8 1, i8 123 35*9880d681SAndroid Build Coastguard Worker store <2 x i8> %insert, <2 x i8> addrspace(1)* %out 36*9880d681SAndroid Build Coastguard Worker ret void 37*9880d681SAndroid Build Coastguard Worker} 38