[clang] Fix crashes when passing VLA to va_arg (#119563)
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / sdivrem64.r600.ll
blob3d85662914d2cdd1882117a13d5224a01f74fdf9
1 ;RUN: llc -mtriple=r600 -mcpu=redwood -amdgpu-bypass-slow-div=0 < %s | FileCheck -check-prefix=EG %s
3 ;EG-LABEL: {{^}}s_test_sdiv:
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 @s_test_sdiv(ptr addrspace(1) %out, i64 %x, i64 %y) {
37   %result = sdiv i64 %x, %y
38   store i64 %result, ptr addrspace(1) %out
39   ret void
42 ;EG-LABEL: {{^}}s_test_srem:
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 @s_test_srem(ptr addrspace(1) %out, i64 %x, i64 %y) {
76   %result = urem i64 %x, %y
77   store i64 %result, ptr addrspace(1) %out
78   ret void
81 ;EG-LABEL: {{^}}test_sdiv3264:
82 ;EG: RECIP_UINT
83 ;EG-NOT: BFE_UINT
84 define amdgpu_kernel void @test_sdiv3264(ptr addrspace(1) %out, i64 %x, i64 %y) {
85   %1 = ashr i64 %x, 33
86   %2 = ashr i64 %y, 33
87   %result = sdiv i64 %1, %2
88   store i64 %result, ptr addrspace(1) %out
89   ret void
92 ;EG-LABEL: {{^}}test_srem3264:
93 ;EG: RECIP_UINT
94 ;EG-NOT: BFE_UINT
95 define amdgpu_kernel void @test_srem3264(ptr addrspace(1) %out, i64 %x, i64 %y) {
96   %1 = ashr i64 %x, 33
97   %2 = ashr i64 %y, 33
98   %result = srem i64 %1, %2
99   store i64 %result, ptr addrspace(1) %out
100   ret void
103 ;EG-LABEL: {{^}}test_sdiv2464:
104 ;EG: INT_TO_FLT
105 ;EG: INT_TO_FLT
106 ;EG: FLT_TO_INT
107 ;EG-NOT: RECIP_UINT
108 ;EG-NOT: BFE_UINT
109 define amdgpu_kernel void @test_sdiv2464(ptr addrspace(1) %out, i64 %x, i64 %y) {
110   %1 = ashr i64 %x, 40
111   %2 = ashr i64 %y, 40
112   %result = sdiv i64 %1, %2
113   store i64 %result, ptr addrspace(1) %out
114   ret void
117 ;EG-LABEL: {{^}}test_srem2464:
118 ;EG: INT_TO_FLT
119 ;EG: INT_TO_FLT
120 ;EG: FLT_TO_INT
121 ;EG-NOT: RECIP_UINT
122 ;EG-NOT: BFE_UINT
123 define amdgpu_kernel void @test_srem2464(ptr addrspace(1) %out, i64 %x, i64 %y) {
124   %1 = ashr i64 %x, 40
125   %2 = ashr i64 %y, 40
126   %result = srem i64 %1, %2
127   store i64 %result, ptr addrspace(1) %out
128   ret void