xref: /aosp_15_r20/external/llvm/test/CodeGen/AMDGPU/load-global-f64.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=amdgcn -verify-machineinstrs < %s | FileCheck -check-prefix=GCN -check-prefix=GCN-NOHSA -check-prefix=FUNC %s
2*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=amdgcn-amdhsa -mcpu=kaveri -verify-machineinstrs < %s | FileCheck -check-prefix=GCN -check-prefix=GCN-HSA -check-prefix=FUNC %s
3*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=amdgcn -mcpu=tonga -verify-machineinstrs < %s | FileCheck -check-prefix=GCN -check-prefix=GCN-NOHSA -check-prefix=FUNC %s
4*9880d681SAndroid Build Coastguard Worker
5*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_load_f64:
6*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx2 [[VAL:v\[[0-9]+:[0-9]+\]]]
7*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_store_dwordx2 [[VAL]]
8*9880d681SAndroid Build Coastguard Worker
9*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx2 [[VAL:v\[[0-9]+:[0-9]+\]]]
10*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_store_dwordx2 {{v\[[0-9]+:[0-9]+\]}}, [[VAL]]
11*9880d681SAndroid Build Coastguard Workerdefine void @global_load_f64(double addrspace(1)* %out, double addrspace(1)* %in) #0 {
12*9880d681SAndroid Build Coastguard Worker  %ld = load double, double addrspace(1)* %in
13*9880d681SAndroid Build Coastguard Worker  store double %ld, double addrspace(1)* %out
14*9880d681SAndroid Build Coastguard Worker  ret void
15*9880d681SAndroid Build Coastguard Worker}
16*9880d681SAndroid Build Coastguard Worker
17*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_load_v2f64:
18*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4
19*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4
20*9880d681SAndroid Build Coastguard Workerdefine void @global_load_v2f64(<2 x double> addrspace(1)* %out, <2 x double> addrspace(1)* %in) #0 {
21*9880d681SAndroid Build Coastguard Workerentry:
22*9880d681SAndroid Build Coastguard Worker  %ld = load <2 x double>, <2 x double> addrspace(1)* %in
23*9880d681SAndroid Build Coastguard Worker  store <2 x double> %ld, <2 x double> addrspace(1)* %out
24*9880d681SAndroid Build Coastguard Worker  ret void
25*9880d681SAndroid Build Coastguard Worker}
26*9880d681SAndroid Build Coastguard Worker
27*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_load_v3f64:
28*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4
29*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4
30*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4
31*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4
32*9880d681SAndroid Build Coastguard Workerdefine void @global_load_v3f64(<3 x double> addrspace(1)* %out, <3 x double> addrspace(1)* %in) #0 {
33*9880d681SAndroid Build Coastguard Workerentry:
34*9880d681SAndroid Build Coastguard Worker  %ld = load <3 x double>, <3 x double> addrspace(1)* %in
35*9880d681SAndroid Build Coastguard Worker  store <3 x double> %ld, <3 x double> addrspace(1)* %out
36*9880d681SAndroid Build Coastguard Worker  ret void
37*9880d681SAndroid Build Coastguard Worker}
38*9880d681SAndroid Build Coastguard Worker
39*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_load_v4f64:
40*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4
41*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4
42*9880d681SAndroid Build Coastguard Worker
43*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4
44*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4
45*9880d681SAndroid Build Coastguard Workerdefine void @global_load_v4f64(<4 x double> addrspace(1)* %out, <4 x double> addrspace(1)* %in) #0 {
46*9880d681SAndroid Build Coastguard Workerentry:
47*9880d681SAndroid Build Coastguard Worker  %ld = load <4 x double>, <4 x double> addrspace(1)* %in
48*9880d681SAndroid Build Coastguard Worker  store <4 x double> %ld, <4 x double> addrspace(1)* %out
49*9880d681SAndroid Build Coastguard Worker  ret void
50*9880d681SAndroid Build Coastguard Worker}
51*9880d681SAndroid Build Coastguard Worker
52*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_load_v8f64:
53*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4
54*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4
55*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4
56*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4
57*9880d681SAndroid Build Coastguard Worker
58*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4
59*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4
60*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4
61*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4
62*9880d681SAndroid Build Coastguard Workerdefine void @global_load_v8f64(<8 x double> addrspace(1)* %out, <8 x double> addrspace(1)* %in) #0 {
63*9880d681SAndroid Build Coastguard Workerentry:
64*9880d681SAndroid Build Coastguard Worker  %ld = load <8 x double>, <8 x double> addrspace(1)* %in
65*9880d681SAndroid Build Coastguard Worker  store <8 x double> %ld, <8 x double> addrspace(1)* %out
66*9880d681SAndroid Build Coastguard Worker  ret void
67*9880d681SAndroid Build Coastguard Worker}
68*9880d681SAndroid Build Coastguard Worker
69*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_load_v16f64:
70*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4
71*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4
72*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4
73*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4
74*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4
75*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4
76*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4
77*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4
78*9880d681SAndroid Build Coastguard Worker
79*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4
80*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4
81*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4
82*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4
83*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4
84*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4
85*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4
86*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4
87*9880d681SAndroid Build Coastguard Workerdefine void @global_load_v16f64(<16 x double> addrspace(1)* %out, <16 x double> addrspace(1)* %in) #0 {
88*9880d681SAndroid Build Coastguard Workerentry:
89*9880d681SAndroid Build Coastguard Worker  %ld = load <16 x double>, <16 x double> addrspace(1)* %in
90*9880d681SAndroid Build Coastguard Worker  store <16 x double> %ld, <16 x double> addrspace(1)* %out
91*9880d681SAndroid Build Coastguard Worker  ret void
92*9880d681SAndroid Build Coastguard Worker}
93*9880d681SAndroid Build Coastguard Worker
94*9880d681SAndroid Build Coastguard Workerattributes #0 = { nounwind }
95