[docs] Add LICENSE.txt to the root of the mono-repo
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / udivrem64.r600.ll
blob62cab48c65e99ea1cbc06e9e8ec832c812e62eef
1 ;RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck -check-prefix=EG %s
3 ;EG-LABEL: {{^}}test_udiv:
4 ;EG: RECIP_UINT
5 ;EG: LSHL {{.*}}, 1,
6 ;EG: BFE_UINT
7 ;EG: BFE_UINT
8 ;EG: BFE_UINT
9 ;EG: BFE_UINT
10 ;EG: BFE_UINT
11 ;EG: BFE_UINT
12 ;EG: BFE_UINT
13 ;EG: BFE_UINT
14 ;EG: BFE_UINT
15 ;EG: BFE_UINT
16 ;EG: BFE_UINT
17 ;EG: BFE_UINT
18 ;EG: BFE_UINT
19 ;EG: BFE_UINT
20 ;EG: BFE_UINT
21 ;EG: BFE_UINT
22 ;EG: BFE_UINT
23 ;EG: BFE_UINT
24 ;EG: BFE_UINT
25 ;EG: BFE_UINT
26 ;EG: BFE_UINT
27 ;EG: BFE_UINT
28 ;EG: BFE_UINT
29 ;EG: BFE_UINT
30 ;EG: BFE_UINT
31 ;EG: BFE_UINT
32 ;EG: BFE_UINT
33 ;EG: BFE_UINT
34 ;EG: BFE_UINT
35 ;EG: BFE_UINT
36 define amdgpu_kernel void @test_udiv(i64 addrspace(1)* %out, i64 %x, i64 %y) {
37   %result = udiv i64 %x, %y
38   store i64 %result, i64 addrspace(1)* %out
39   ret void
42 ;EG-LABEL: {{^}}test_urem:
43 ;EG: RECIP_UINT
44 ;EG: BFE_UINT
45 ;EG: BFE_UINT
46 ;EG: BFE_UINT
47 ;EG: BFE_UINT
48 ;EG: BFE_UINT
49 ;EG: BFE_UINT
50 ;EG: BFE_UINT
51 ;EG: BFE_UINT
52 ;EG: BFE_UINT
53 ;EG: BFE_UINT
54 ;EG: BFE_UINT
55 ;EG: BFE_UINT
56 ;EG: BFE_UINT
57 ;EG: BFE_UINT
58 ;EG: BFE_UINT
59 ;EG: BFE_UINT
60 ;EG: BFE_UINT
61 ;EG: BFE_UINT
62 ;EG: BFE_UINT
63 ;EG: BFE_UINT
64 ;EG: BFE_UINT
65 ;EG: BFE_UINT
66 ;EG: BFE_UINT
67 ;EG: BFE_UINT
68 ;EG: BFE_UINT
69 ;EG: BFE_UINT
70 ;EG: BFE_UINT
71 ;EG: BFE_UINT
72 ;EG: BFE_UINT
73 ;EG: BFE_UINT
74 ;EG: AND_INT {{.*}}, 1,
75 define amdgpu_kernel void @test_urem(i64 addrspace(1)* %out, i64 %x, i64 %y) {
76   %result = urem i64 %x, %y
77   store i64 %result, i64 addrspace(1)* %out
78   ret void
81 ;EG-LABEL: {{^}}test_udiv3264:
82 ;EG: RECIP_UINT
83 ;EG-NOT: BFE_UINT
84 define amdgpu_kernel void @test_udiv3264(i64 addrspace(1)* %out, i64 %x, i64 %y) {
85   %1 = lshr i64 %x, 33
86   %2 = lshr i64 %y, 33
87   %result = udiv i64 %1, %2
88   store i64 %result, i64 addrspace(1)* %out
89   ret void
92 ;EG-LABEL: {{^}}test_urem3264:
93 ;EG: RECIP_UINT
94 ;EG-NOT: BFE_UINT
95 define amdgpu_kernel void @test_urem3264(i64 addrspace(1)* %out, i64 %x, i64 %y) {
96   %1 = lshr i64 %x, 33
97   %2 = lshr i64 %y, 33
98   %result = urem i64 %1, %2
99   store i64 %result, i64 addrspace(1)* %out
100   ret void
103 ;EG-LABEL: {{^}}test_udiv2364:
104 ;EG: UINT_TO_FLT
105 ;EG: UINT_TO_FLT
106 ;EG: FLT_TO_UINT
107 ;EG-NOT: RECIP_UINT
108 ;EG-NOT: BFE_UINT
109 define amdgpu_kernel void @test_udiv2364(i64 addrspace(1)* %out, i64 %x, i64 %y) {
110   %1 = lshr i64 %x, 41
111   %2 = lshr i64 %y, 41
112   %result = udiv i64 %1, %2
113   store i64 %result, i64 addrspace(1)* %out
114   ret void
117 ;EG-LABEL: {{^}}test_urem2364:
118 ;EG: UINT_TO_FLT
119 ;EG: UINT_TO_FLT
120 ;EG: FLT_TO_UINT
121 ;EG-NOT: RECIP_UINT
122 ;EG-NOT: BFE_UINT
123 define amdgpu_kernel void @test_urem2364(i64 addrspace(1)* %out, i64 %x, i64 %y) {
124   %1 = lshr i64 %x, 41
125   %2 = lshr i64 %y, 41
126   %result = urem i64 %1, %2
127   store i64 %result, i64 addrspace(1)* %out
128   ret void
131 ;EG-LABEL: {{^}}test_udiv_k:
132 define amdgpu_kernel void @test_udiv_k(i64 addrspace(1)* %out, i64 %x) {
133   %result = udiv i64 24, %x
134   store i64 %result, i64 addrspace(1)* %out
135   ret void