Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 1 | ; RUN: llc -march=amdgcn -verify-machineinstrs < %s| FileCheck -check-prefix=GCN -check-prefix=SI %s |
Matt Arsenault | 7aad8fd | 2017-01-24 22:02:15 +0000 | [diff] [blame] | 2 | ; RUN: llc -march=amdgcn -mcpu=tonga -mattr=-flat-for-global -verify-machineinstrs < %s | FileCheck -check-prefix=GCN -check-prefix=VI %s |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 3 | |
| 4 | ; XXX: Merge this into setcc, once R600 supports 64-bit operations |
| 5 | |
| 6 | ;;;==========================================================================;;; |
| 7 | ;; Double comparisons |
| 8 | ;;;==========================================================================;;; |
| 9 | |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 10 | ; GCN-LABEL: {{^}}f64_oeq: |
| 11 | ; GCN: v_cmp_eq_f64 |
Matt Arsenault | 3dbeefa | 2017-03-21 21:39:51 +0000 | [diff] [blame] | 12 | define amdgpu_kernel void @f64_oeq(i32 addrspace(1)* %out, double %a, double %b) #0 { |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 13 | entry: |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 14 | %tmp0 = fcmp oeq double %a, %b |
| 15 | %tmp1 = sext i1 %tmp0 to i32 |
| 16 | store i32 %tmp1, i32 addrspace(1)* %out |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 17 | ret void |
| 18 | } |
| 19 | |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 20 | ; GCN-LABEL: {{^}}f64_ogt: |
| 21 | ; GCN: v_cmp_gt_f64 |
Matt Arsenault | 3dbeefa | 2017-03-21 21:39:51 +0000 | [diff] [blame] | 22 | define amdgpu_kernel void @f64_ogt(i32 addrspace(1)* %out, double %a, double %b) #0 { |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 23 | entry: |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 24 | %tmp0 = fcmp ogt double %a, %b |
| 25 | %tmp1 = sext i1 %tmp0 to i32 |
| 26 | store i32 %tmp1, i32 addrspace(1)* %out |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 27 | ret void |
| 28 | } |
| 29 | |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 30 | ; GCN-LABEL: {{^}}f64_oge: |
| 31 | ; GCN: v_cmp_ge_f64 |
Matt Arsenault | 3dbeefa | 2017-03-21 21:39:51 +0000 | [diff] [blame] | 32 | define amdgpu_kernel void @f64_oge(i32 addrspace(1)* %out, double %a, double %b) #0 { |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 33 | entry: |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 34 | %tmp0 = fcmp oge double %a, %b |
| 35 | %tmp1 = sext i1 %tmp0 to i32 |
| 36 | store i32 %tmp1, i32 addrspace(1)* %out |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 37 | ret void |
| 38 | } |
| 39 | |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 40 | ; GCN-LABEL: {{^}}f64_olt: |
| 41 | ; GCN: v_cmp_lt_f64 |
Matt Arsenault | 3dbeefa | 2017-03-21 21:39:51 +0000 | [diff] [blame] | 42 | define amdgpu_kernel void @f64_olt(i32 addrspace(1)* %out, double %a, double %b) #0 { |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 43 | entry: |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 44 | %tmp0 = fcmp olt double %a, %b |
| 45 | %tmp1 = sext i1 %tmp0 to i32 |
| 46 | store i32 %tmp1, i32 addrspace(1)* %out |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 47 | ret void |
| 48 | } |
| 49 | |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 50 | ; GCN-LABEL: {{^}}f64_ole: |
| 51 | ; GCN: v_cmp_le_f64 |
Matt Arsenault | 3dbeefa | 2017-03-21 21:39:51 +0000 | [diff] [blame] | 52 | define amdgpu_kernel void @f64_ole(i32 addrspace(1)* %out, double %a, double %b) #0 { |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 53 | entry: |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 54 | %tmp0 = fcmp ole double %a, %b |
| 55 | %tmp1 = sext i1 %tmp0 to i32 |
| 56 | store i32 %tmp1, i32 addrspace(1)* %out |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 57 | ret void |
| 58 | } |
| 59 | |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 60 | ; GCN-LABEL: {{^}}f64_one: |
| 61 | ; GCN: v_cmp_lg_f64_e32 vcc |
| 62 | ; GCN: v_cndmask_b32_e64 {{v[0-9]+}}, 0, -1, vcc |
Matt Arsenault | 3dbeefa | 2017-03-21 21:39:51 +0000 | [diff] [blame] | 63 | define amdgpu_kernel void @f64_one(i32 addrspace(1)* %out, double %a, double %b) #0 { |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 64 | entry: |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 65 | %tmp0 = fcmp one double %a, %b |
| 66 | %tmp1 = sext i1 %tmp0 to i32 |
| 67 | store i32 %tmp1, i32 addrspace(1)* %out |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 68 | ret void |
| 69 | } |
| 70 | |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 71 | ; GCN-LABEL: {{^}}f64_ord: |
| 72 | ; GCN: v_cmp_o_f64 |
Matt Arsenault | 3dbeefa | 2017-03-21 21:39:51 +0000 | [diff] [blame] | 73 | define amdgpu_kernel void @f64_ord(i32 addrspace(1)* %out, double %a, double %b) #0 { |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 74 | entry: |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 75 | %tmp0 = fcmp ord double %a, %b |
| 76 | %tmp1 = sext i1 %tmp0 to i32 |
| 77 | store i32 %tmp1, i32 addrspace(1)* %out |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 78 | ret void |
| 79 | } |
| 80 | |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 81 | ; GCN-LABEL: {{^}}f64_ueq: |
| 82 | ; GCN: v_cmp_nlg_f64_e32 vcc |
| 83 | ; GCN: v_cndmask_b32_e64 {{v[0-9]+}}, 0, -1, vcc |
Matt Arsenault | 3dbeefa | 2017-03-21 21:39:51 +0000 | [diff] [blame] | 84 | define amdgpu_kernel void @f64_ueq(i32 addrspace(1)* %out, double %a, double %b) #0 { |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 85 | entry: |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 86 | %tmp0 = fcmp ueq double %a, %b |
| 87 | %tmp1 = sext i1 %tmp0 to i32 |
| 88 | store i32 %tmp1, i32 addrspace(1)* %out |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 89 | ret void |
| 90 | } |
| 91 | |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 92 | ; GCN-LABEL: {{^}}f64_ugt: |
Matt Arsenault | 8b989ef | 2014-12-11 22:15:39 +0000 | [diff] [blame] | 93 | |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 94 | ; GCN: v_cmp_nle_f64_e32 vcc |
| 95 | ; GCN: v_cndmask_b32_e64 {{v[0-9]+}}, 0, -1, vcc |
Matt Arsenault | 3dbeefa | 2017-03-21 21:39:51 +0000 | [diff] [blame] | 96 | define amdgpu_kernel void @f64_ugt(i32 addrspace(1)* %out, double %a, double %b) #0 { |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 97 | entry: |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 98 | %tmp0 = fcmp ugt double %a, %b |
| 99 | %tmp1 = sext i1 %tmp0 to i32 |
| 100 | store i32 %tmp1, i32 addrspace(1)* %out |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 101 | ret void |
| 102 | } |
| 103 | |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 104 | ; GCN-LABEL: {{^}}f64_uge: |
| 105 | ; GCN: v_cmp_nlt_f64_e32 vcc |
| 106 | ; GCN: v_cndmask_b32_e64 {{v[0-9]+}}, 0, -1, vcc |
Matt Arsenault | 3dbeefa | 2017-03-21 21:39:51 +0000 | [diff] [blame] | 107 | define amdgpu_kernel void @f64_uge(i32 addrspace(1)* %out, double %a, double %b) #0 { |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 108 | entry: |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 109 | %tmp0 = fcmp uge double %a, %b |
| 110 | %tmp1 = sext i1 %tmp0 to i32 |
| 111 | store i32 %tmp1, i32 addrspace(1)* %out |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 112 | ret void |
| 113 | } |
| 114 | |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 115 | ; GCN-LABEL: {{^}}f64_ult: |
| 116 | ; GCN: v_cmp_nge_f64_e32 vcc |
| 117 | ; GCN: v_cndmask_b32_e64 {{v[0-9]+}}, 0, -1, vcc |
Matt Arsenault | 3dbeefa | 2017-03-21 21:39:51 +0000 | [diff] [blame] | 118 | define amdgpu_kernel void @f64_ult(i32 addrspace(1)* %out, double %a, double %b) #0 { |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 119 | entry: |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 120 | %tmp0 = fcmp ult double %a, %b |
| 121 | %tmp1 = sext i1 %tmp0 to i32 |
| 122 | store i32 %tmp1, i32 addrspace(1)* %out |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 123 | ret void |
| 124 | } |
| 125 | |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 126 | ; GCN-LABEL: {{^}}f64_ule: |
| 127 | ; GCN: v_cmp_ngt_f64_e32 vcc |
| 128 | ; GCN: v_cndmask_b32_e64 {{v[0-9]+}}, 0, -1, vcc |
Matt Arsenault | 3dbeefa | 2017-03-21 21:39:51 +0000 | [diff] [blame] | 129 | define amdgpu_kernel void @f64_ule(i32 addrspace(1)* %out, double %a, double %b) #0 { |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 130 | entry: |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 131 | %tmp0 = fcmp ule double %a, %b |
| 132 | %tmp1 = sext i1 %tmp0 to i32 |
| 133 | store i32 %tmp1, i32 addrspace(1)* %out |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 134 | ret void |
| 135 | } |
| 136 | |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 137 | ; GCN-LABEL: {{^}}f64_une: |
| 138 | ; GCN: v_cmp_neq_f64 |
Matt Arsenault | 3dbeefa | 2017-03-21 21:39:51 +0000 | [diff] [blame] | 139 | define amdgpu_kernel void @f64_une(i32 addrspace(1)* %out, double %a, double %b) #0 { |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 140 | entry: |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 141 | %tmp0 = fcmp une double %a, %b |
| 142 | %tmp1 = sext i1 %tmp0 to i32 |
| 143 | store i32 %tmp1, i32 addrspace(1)* %out |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 144 | ret void |
| 145 | } |
| 146 | |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 147 | ; GCN-LABEL: {{^}}f64_uno: |
| 148 | ; GCN: v_cmp_u_f64 |
Matt Arsenault | 3dbeefa | 2017-03-21 21:39:51 +0000 | [diff] [blame] | 149 | define amdgpu_kernel void @f64_uno(i32 addrspace(1)* %out, double %a, double %b) #0 { |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 150 | entry: |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 151 | %tmp0 = fcmp uno double %a, %b |
| 152 | %tmp1 = sext i1 %tmp0 to i32 |
| 153 | store i32 %tmp1, i32 addrspace(1)* %out |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 154 | ret void |
| 155 | } |
| 156 | |
| 157 | ;;;==========================================================================;;; |
| 158 | ;; 64-bit integer comparisons |
| 159 | ;;;==========================================================================;;; |
| 160 | |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 161 | ; GCN-LABEL: {{^}}i64_eq: |
| 162 | ; GCN: v_cmp_eq_u64 |
Matt Arsenault | 3dbeefa | 2017-03-21 21:39:51 +0000 | [diff] [blame] | 163 | define amdgpu_kernel void @i64_eq(i32 addrspace(1)* %out, i64 %a, i64 %b) #0 { |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 164 | entry: |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 165 | %tmp0 = icmp eq i64 %a, %b |
| 166 | %tmp1 = sext i1 %tmp0 to i32 |
| 167 | store i32 %tmp1, i32 addrspace(1)* %out |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 168 | ret void |
| 169 | } |
| 170 | |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 171 | ; GCN-LABEL: {{^}}i64_ne: |
| 172 | ; GCN: v_cmp_ne_u64 |
Matt Arsenault | 3dbeefa | 2017-03-21 21:39:51 +0000 | [diff] [blame] | 173 | define amdgpu_kernel void @i64_ne(i32 addrspace(1)* %out, i64 %a, i64 %b) #0 { |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 174 | entry: |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 175 | %tmp0 = icmp ne i64 %a, %b |
| 176 | %tmp1 = sext i1 %tmp0 to i32 |
| 177 | store i32 %tmp1, i32 addrspace(1)* %out |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 178 | ret void |
| 179 | } |
| 180 | |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 181 | ; GCN-LABEL: {{^}}i64_ugt: |
| 182 | ; GCN: v_cmp_gt_u64 |
Matt Arsenault | 3dbeefa | 2017-03-21 21:39:51 +0000 | [diff] [blame] | 183 | define amdgpu_kernel void @i64_ugt(i32 addrspace(1)* %out, i64 %a, i64 %b) #0 { |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 184 | entry: |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 185 | %tmp0 = icmp ugt i64 %a, %b |
| 186 | %tmp1 = sext i1 %tmp0 to i32 |
| 187 | store i32 %tmp1, i32 addrspace(1)* %out |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 188 | ret void |
| 189 | } |
| 190 | |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 191 | ; GCN-LABEL: {{^}}i64_uge: |
| 192 | ; GCN: v_cmp_ge_u64 |
Matt Arsenault | 3dbeefa | 2017-03-21 21:39:51 +0000 | [diff] [blame] | 193 | define amdgpu_kernel void @i64_uge(i32 addrspace(1)* %out, i64 %a, i64 %b) #0 { |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 194 | entry: |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 195 | %tmp0 = icmp uge i64 %a, %b |
| 196 | %tmp1 = sext i1 %tmp0 to i32 |
| 197 | store i32 %tmp1, i32 addrspace(1)* %out |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 198 | ret void |
| 199 | } |
| 200 | |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 201 | ; GCN-LABEL: {{^}}i64_ult: |
| 202 | ; GCN: v_cmp_lt_u64 |
Matt Arsenault | 3dbeefa | 2017-03-21 21:39:51 +0000 | [diff] [blame] | 203 | define amdgpu_kernel void @i64_ult(i32 addrspace(1)* %out, i64 %a, i64 %b) #0 { |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 204 | entry: |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 205 | %tmp0 = icmp ult i64 %a, %b |
| 206 | %tmp1 = sext i1 %tmp0 to i32 |
| 207 | store i32 %tmp1, i32 addrspace(1)* %out |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 208 | ret void |
| 209 | } |
| 210 | |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 211 | ; GCN-LABEL: {{^}}i64_ule: |
| 212 | ; GCN: v_cmp_le_u64 |
Matt Arsenault | 3dbeefa | 2017-03-21 21:39:51 +0000 | [diff] [blame] | 213 | define amdgpu_kernel void @i64_ule(i32 addrspace(1)* %out, i64 %a, i64 %b) #0 { |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 214 | entry: |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 215 | %tmp0 = icmp ule i64 %a, %b |
| 216 | %tmp1 = sext i1 %tmp0 to i32 |
| 217 | store i32 %tmp1, i32 addrspace(1)* %out |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 218 | ret void |
| 219 | } |
| 220 | |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 221 | ; GCN-LABEL: {{^}}i64_sgt: |
| 222 | ; GCN: v_cmp_gt_i64 |
Matt Arsenault | 3dbeefa | 2017-03-21 21:39:51 +0000 | [diff] [blame] | 223 | define amdgpu_kernel void @i64_sgt(i32 addrspace(1)* %out, i64 %a, i64 %b) #0 { |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 224 | entry: |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 225 | %tmp0 = icmp sgt i64 %a, %b |
| 226 | %tmp1 = sext i1 %tmp0 to i32 |
| 227 | store i32 %tmp1, i32 addrspace(1)* %out |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 228 | ret void |
| 229 | } |
| 230 | |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 231 | ; GCN-LABEL: {{^}}i64_sge: |
| 232 | ; GCN: v_cmp_ge_i64 |
Matt Arsenault | 3dbeefa | 2017-03-21 21:39:51 +0000 | [diff] [blame] | 233 | define amdgpu_kernel void @i64_sge(i32 addrspace(1)* %out, i64 %a, i64 %b) #0 { |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 234 | entry: |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 235 | %tmp0 = icmp sge i64 %a, %b |
| 236 | %tmp1 = sext i1 %tmp0 to i32 |
| 237 | store i32 %tmp1, i32 addrspace(1)* %out |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 238 | ret void |
| 239 | } |
| 240 | |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 241 | ; GCN-LABEL: {{^}}i64_slt: |
| 242 | ; GCN: v_cmp_lt_i64 |
Matt Arsenault | 3dbeefa | 2017-03-21 21:39:51 +0000 | [diff] [blame] | 243 | define amdgpu_kernel void @i64_slt(i32 addrspace(1)* %out, i64 %a, i64 %b) #0 { |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 244 | entry: |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 245 | %tmp0 = icmp slt i64 %a, %b |
| 246 | %tmp1 = sext i1 %tmp0 to i32 |
| 247 | store i32 %tmp1, i32 addrspace(1)* %out |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 248 | ret void |
| 249 | } |
| 250 | |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 251 | ; GCN-LABEL: {{^}}i64_sle: |
| 252 | ; GCN: v_cmp_le_i64 |
Matt Arsenault | 3dbeefa | 2017-03-21 21:39:51 +0000 | [diff] [blame] | 253 | define amdgpu_kernel void @i64_sle(i32 addrspace(1)* %out, i64 %a, i64 %b) #0 { |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 254 | entry: |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 255 | %tmp0 = icmp sle i64 %a, %b |
| 256 | %tmp1 = sext i1 %tmp0 to i32 |
| 257 | store i32 %tmp1, i32 addrspace(1)* %out |
Tom Stellard | c084533 | 2013-11-22 23:07:58 +0000 | [diff] [blame] | 258 | ret void |
| 259 | } |
Matt Arsenault | 2920f62 | 2016-12-22 03:21:45 +0000 | [diff] [blame] | 260 | |
| 261 | attributes #0 = { nounwind } |