1 ; RUN: llc -march=amdgcn -verify-machineinstrs < %s | FileCheck -check-prefix=GCN %s 2 ; RUN: llc -march=amdgcn -mcpu=tonga -verify-machineinstrs < %s | FileCheck -check-prefix=GCN %s 3 4 ; GCN-LABEL: {{^}}extract_vector_elt_v3f64_2: 5 ; GCN: buffer_load_dwordx4 6 ; GCN: buffer_load_dwordx2 7 ; GCN: buffer_store_dwordx2 8 define void @extract_vector_elt_v3f64_2(double addrspace(1)* %out, <3 x double> addrspace(1)* %in) #0 { 9 %ld = load volatile <3 x double>, <3 x double> addrspace(1)* %in 10 %elt = extractelement <3 x double> %ld, i32 2 11 store volatile double %elt, double addrspace(1)* %out 12 ret void 13 } 14 15 ; GCN-LABEL: {{^}}dyn_extract_vector_elt_v3f64: 16 define void @dyn_extract_vector_elt_v3f64(double addrspace(1)* %out, <3 x double> %foo, i32 %elt) #0 { 17 %dynelt = extractelement <3 x double> %foo, i32 %elt 18 store volatile double %dynelt, double addrspace(1)* %out 19 ret void 20 } 21 22 ; GCN-LABEL: {{^}}dyn_extract_vector_elt_v4f64: 23 define void @dyn_extract_vector_elt_v4f64(double addrspace(1)* %out, <4 x double> %foo, i32 %elt) #0 { 24 %dynelt = extractelement <4 x double> %foo, i32 %elt 25 store volatile double %dynelt, double addrspace(1)* %out 26 ret void 27 } 28 29 attributes #0 = { nounwind } 30