150
|
1 ;RUN: llc < %s -march=r600 -mcpu=redwood | FileCheck -allow-deprecated-dag-overlap %s --check-prefix=EG --check-prefix=FUNC
|
|
2 ;RUN: llc < %s -march=r600 -mcpu=cayman | FileCheck -allow-deprecated-dag-overlap %s --check-prefix=CM --check-prefix=FUNC
|
|
3 ;RUN: llc < %s -march=amdgcn -mcpu=tahiti | FileCheck -allow-deprecated-dag-overlap %s --check-prefix=SI --check-prefix=FUNC
|
|
4 ;RUN: llc < %s -march=amdgcn -mcpu=tonga | FileCheck -allow-deprecated-dag-overlap %s --check-prefix=SI --check-prefix=FUNC
|
|
5
|
|
6 ;FUNC-LABEL: {{^}}test:
|
|
7 ;EG: LOG_IEEE
|
|
8 ;CM-DAG: LOG_IEEE T{{[0-9]+\.[XYZW]}} (MASKED)
|
|
9 ;CM-DAG: LOG_IEEE T{{[0-9]+\.[XYZW]}} (MASKED)
|
|
10 ;CM-DAG: LOG_IEEE T{{[0-9]+\.[XYZW]}} (MASKED)
|
|
11 ;CM-DAG: LOG_IEEE T{{[0-9]+\.[XYZW]}}
|
|
12 ;SI: v_log_f32
|
|
13
|
|
14 define amdgpu_kernel void @test(float addrspace(1)* %out, float %in) {
|
|
15 entry:
|
|
16 %0 = call float @llvm.log2.f32(float %in)
|
|
17 store float %0, float addrspace(1)* %out
|
|
18 ret void
|
|
19 }
|
|
20
|
|
21 ;FUNC-LABEL: {{^}}testv2:
|
|
22 ;EG: LOG_IEEE
|
|
23 ;EG: LOG_IEEE
|
|
24 ; FIXME: We should be able to merge these packets together on Cayman so we
|
|
25 ; have a maximum of 4 instructions.
|
|
26 ;CM-DAG: LOG_IEEE T{{[0-9]+\.[XYZW]}} (MASKED)
|
|
27 ;CM-DAG: LOG_IEEE T{{[0-9]+\.[XYZW]}} (MASKED)
|
|
28 ;CM-DAG: LOG_IEEE T{{[0-9]+\.[XYZW]}} (MASKED)
|
|
29 ;CM-DAG: LOG_IEEE T{{[0-9]+\.[XYZW]}} (MASKED)
|
|
30 ;CM-DAG: LOG_IEEE T{{[0-9]+\.[XYZW]}} (MASKED)
|
|
31 ;CM-DAG: LOG_IEEE T{{[0-9]+\.[XYZW]}} (MASKED)
|
|
32 ;CM-DAG: LOG_IEEE T{{[0-9]+\.[XYZW]}}
|
|
33 ;CM-DAG: LOG_IEEE T{{[0-9]+\.[XYZW]}}
|
|
34 ;SI: v_log_f32
|
|
35 ;SI: v_log_f32
|
|
36
|
|
37 define amdgpu_kernel void @testv2(<2 x float> addrspace(1)* %out, <2 x float> %in) {
|
|
38 entry:
|
|
39 %0 = call <2 x float> @llvm.log2.v2f32(<2 x float> %in)
|
|
40 store <2 x float> %0, <2 x float> addrspace(1)* %out
|
|
41 ret void
|
|
42 }
|
|
43
|
|
44 ;FUNC-LABEL: {{^}}testv4:
|
|
45 ;EG: LOG_IEEE
|
|
46 ;EG: LOG_IEEE
|
|
47 ;EG: LOG_IEEE
|
|
48 ;EG: LOG_IEEE
|
|
49 ; FIXME: We should be able to merge these packets together on Cayman so we
|
|
50 ; have a maximum of 4 instructions.
|
|
51 ;CM-DAG: LOG_IEEE T{{[0-9]+\.[XYZW]}} (MASKED)
|
|
52 ;CM-DAG: LOG_IEEE T{{[0-9]+\.[XYZW]}} (MASKED)
|
|
53 ;CM-DAG: LOG_IEEE T{{[0-9]+\.[XYZW]}} (MASKED)
|
|
54 ;CM-DAG: LOG_IEEE T{{[0-9]+\.[XYZW]}} (MASKED)
|
|
55 ;CM-DAG: LOG_IEEE T{{[0-9]+\.[XYZW]}} (MASKED)
|
|
56 ;CM-DAG: LOG_IEEE T{{[0-9]+\.[XYZW]}} (MASKED)
|
|
57 ;CM-DAG: LOG_IEEE T{{[0-9]+\.[XYZW]}} (MASKED)
|
|
58 ;CM-DAG: LOG_IEEE T{{[0-9]+\.[XYZW]}} (MASKED)
|
|
59 ;CM-DAG: LOG_IEEE T{{[0-9]+\.[XYZW]}} (MASKED)
|
|
60 ;CM-DAG: LOG_IEEE T{{[0-9]+\.[XYZW]}} (MASKED)
|
|
61 ;CM-DAG: LOG_IEEE T{{[0-9]+\.[XYZW]}} (MASKED)
|
|
62 ;CM-DAG: LOG_IEEE T{{[0-9]+\.[XYZW]}} (MASKED)
|
|
63 ;CM-DAG: LOG_IEEE T{{[0-9]+\.[XYZW]}}
|
|
64 ;CM-DAG: LOG_IEEE T{{[0-9]+\.[XYZW]}}
|
|
65 ;CM-DAG: LOG_IEEE T{{[0-9]+\.[XYZW]}}
|
|
66 ;CM-DAG: LOG_IEEE T{{[0-9]+\.[XYZW]}}
|
|
67 ;SI: v_log_f32
|
|
68 ;SI: v_log_f32
|
|
69 ;SI: v_log_f32
|
|
70 ;SI: v_log_f32
|
|
71 define amdgpu_kernel void @testv4(<4 x float> addrspace(1)* %out, <4 x float> %in) {
|
|
72 entry:
|
|
73 %0 = call <4 x float> @llvm.log2.v4f32(<4 x float> %in)
|
|
74 store <4 x float> %0, <4 x float> addrspace(1)* %out
|
|
75 ret void
|
|
76 }
|
|
77
|
|
78 declare float @llvm.log2.f32(float) readnone
|
|
79 declare <2 x float> @llvm.log2.v2f32(<2 x float>) readnone
|
|
80 declare <4 x float> @llvm.log2.v4f32(<4 x float>) readnone
|