Chris Lattner | dd17394 | 2010-04-14 03:54:58 +0000 | [diff] [blame^] | 1 | // RUN: %clang_cc1 -faltivec -triple powerpc-unknown-unknown -emit-llvm %s -o - | FileCheck %s |
| 2 | |
| 3 | #include "altivec.h" |
| 4 | |
| 5 | int main () |
| 6 | { |
| 7 | vector char vc = { -1, 2, -3, 4, -5, 6, -7, 8, -9, 10, -11, 12, -13, 14, -15, 16 }; |
| 8 | vector signed char vsc = { 1, -2, 3, -4, 5, -6, 7, -8, 9, -10, 11, -12, 13, -14, 15, -16 }; |
| 9 | vector unsigned char vuc = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 }; |
| 10 | vector short vs = { -1, 2, -3, 4, -5, 6, -7, 8 }; |
| 11 | vector unsigned short vus = { 1, 2, 3, 4, 5, 6, 7, 8 }; |
| 12 | vector int vi = { -1, 2, -3, 4 }; |
| 13 | vector unsigned int vui = { 1, 2, 3, 4 }; |
| 14 | vector float vf = { -1.5, 2.5, -3.5, 4.5 }; |
| 15 | |
| 16 | vector char res_vc; |
| 17 | vector unsigned char res_vuc; |
| 18 | vector short res_vs; |
| 19 | vector unsigned short res_vus; |
| 20 | vector int res_vi; |
| 21 | vector unsigned int res_vui; |
| 22 | vector float res_vf; |
| 23 | |
| 24 | int param_i; |
| 25 | int res_i; |
| 26 | |
| 27 | /* vec_abs */ |
| 28 | vsc = vec_abs(vsc); // CHECK: sub <16 x i8> zeroinitializer |
| 29 | // CHECK: @llvm.ppc.altivec.vmaxsb |
| 30 | |
| 31 | vs = __builtin_vec_abs(vs); // CHECK: sub <8 x i16> zeroinitializer |
| 32 | // CHECK: @llvm.ppc.altivec.vmaxsh |
| 33 | |
| 34 | vi = vec_abs(vi); // CHECK: sub <4 x i32> zeroinitializer |
| 35 | // CHECK: @llvm.ppc.altivec.vmaxsw |
| 36 | |
| 37 | vf = vec_abs(vf); // CHECK: store <4 x i32> <i32 2147483647, i32 2147483647, i32 2147483647, i32 2147483647> |
| 38 | // CHECK: and <4 x i32> |
| 39 | |
| 40 | /* vec_abs */ |
| 41 | vsc = vec_abss(vsc); // CHECK: @llvm.ppc.altivec.vsubsbs |
| 42 | // CHECK: @llvm.ppc.altivec.vmaxsb |
| 43 | |
| 44 | vs = __builtin_vec_abss(vs); // CHECK: @llvm.ppc.altivec.vsubshs |
| 45 | // CHECK: @llvm.ppc.altivec.vmaxsh |
| 46 | |
| 47 | vi = vec_abss(vi); // CHECK: @llvm.ppc.altivec.vsubsws |
| 48 | // CHECK: @llvm.ppc.altivec.vmaxsw |
| 49 | |
| 50 | /* vec_add */ |
| 51 | res_vc = vec_add(vc, vc); // CHECK: add nsw <16 x i8> |
| 52 | res_vuc = vec_vaddubm(vuc, vuc); // CHECK: add <16 x i8> |
| 53 | res_vs = __builtin_altivec_vadduhm(vs, vs); // CHECK: add nsw <8 x i16> |
| 54 | res_vus = vec_vadduhm(vus, vus); // CHECK: add <8 x i16> |
| 55 | res_vi = __builtin_vec_vadduwm(vi, vi); // CHECK: add nsw <4 x i32> |
| 56 | res_vui = vec_vadduwm(vui, vui); // CHECK: add <4 x i32> |
| 57 | res_vf = __builtin_vec_vaddfp(vf, vf); // CHECK: fadd <4 x float> |
| 58 | |
| 59 | /* vec_addc */ |
| 60 | res_vui = vec_vaddcuw(vui, vui); // HECK: @llvm.ppc.altivec.vaddcuw |
| 61 | |
| 62 | /* vec_adds */ |
| 63 | res_vc = vec_adds(vc, vc); // CHECK: @llvm.ppc.altivec.vaddsbs |
| 64 | res_vuc = vec_vaddubs(vuc, vuc); // CHECK: @llvm.ppc.altivec.vaddubs |
| 65 | res_vs = __builtin_vec_vaddshs(vs, vs); // CHECK: @llvm.ppc.altivec.vaddshs |
| 66 | res_vus = vec_vadduhs(vus, vus); // CHECK: @llvm.ppc.altivec.vadduhs |
| 67 | res_vi = __builtin_vec_vaddsws(vi, vi); // CHECK: @llvm.ppc.altivec.vaddsws |
| 68 | res_vui = vec_vadduws(vui, vui); // CHECK: @llvm.ppc.altivec.vadduws |
| 69 | |
| 70 | /* vec_sub */ |
| 71 | res_vc = vec_sub(vsc, vsc); // CHECK: sub nsw <16 x i8> |
| 72 | res_vuc = vec_vsububm(vuc, vuc); // CHECK: sub <16 x i8> |
| 73 | res_vs = __builtin_altivec_vsubuhm(vs, vs); // CHECK: sub nsw <8 x i16> |
| 74 | res_vus = vec_vsubuhm(vus, vus); // CHECK: sub <8 x i16> |
| 75 | res_vi = __builtin_vec_vsubuwm(vi, vi); // CHECK: sub nsw <4 x i32> |
| 76 | res_vui = vec_vsubuwm(vui, vui); // CHECK: sub <4 x i32> |
| 77 | res_vf = __builtin_vec_vsubfp(vf, vf); // CHECK: fsub <4 x float> |
| 78 | |
| 79 | /* vec_subs */ |
| 80 | res_vc = vec_subs(vc, vc); // CHECK: @llvm.ppc.altivec.vsubsbs |
| 81 | res_vuc = vec_vsububs(vuc, vuc); // CHECK: @llvm.ppc.altivec.vsububs |
| 82 | res_vs = __builtin_vec_vsubshs(vs, vs); // CHECK: @llvm.ppc.altivec.vsubshs |
| 83 | res_vus = vec_vsubuhs(vus, vus); // CHECK: @llvm.ppc.altivec.vsubuhs |
| 84 | res_vi = __builtin_vec_vsubsws(vi, vi); // CHECK: @llvm.ppc.altivec.vsubsws |
| 85 | res_vui = vec_vsubuws(vui, vui); // CHECK: @llvm.ppc.altivec.vsubuws |
| 86 | |
| 87 | /* vec_avg */ |
| 88 | res_vc = vec_avg(vsc, vsc); // CHECK: @llvm.ppc.altivec.vavgsb |
| 89 | res_vuc = __builtin_vec_vavgub(vuc, vuc); // CHECK: @llvm.ppc.altivec.vavgub |
| 90 | res_vs = vec_vavgsh(vs, vs); // CHECK: @llvm.ppc.altivec.vavgsh |
| 91 | res_vus = __builtin_vec_vavguh(vus, vus); // CHECK: @llvm.ppc.altivec.vavguh |
| 92 | res_vi = vec_vavgsw(vi, vi); // CHECK: @llvm.ppc.altivec.vavgsw |
| 93 | res_vui = __builtin_vec_vavguw(vui, vui); // CHECK: @llvm.ppc.altivec.vavguw |
| 94 | |
| 95 | /* vec_st */ |
| 96 | param_i = 5; |
| 97 | vec_st(vc, 0, &res_vc); // CHECK: @llvm.ppc.altivec.stvx |
| 98 | __builtin_vec_st(vuc, param_i, &res_vuc); // CHECK: @llvm.ppc.altivec.stvx |
| 99 | vec_stvx(vs, 1, &res_vs); // CHECK: @llvm.ppc.altivec.stvx |
| 100 | vec_st(vus, 1000, &res_vus); // CHECK: @llvm.ppc.altivec.stvx |
| 101 | vec_st(vi, 0, &res_vi); // CHECK: @llvm.ppc.altivec.stvx |
| 102 | vec_st(vui, 0, &res_vui); // CHECK: @llvm.ppc.altivec.stvx |
| 103 | vec_st(vf, 0, &res_vf); // CHECK: @llvm.ppc.altivec.stvx |
| 104 | |
| 105 | /* vec_stl */ |
| 106 | param_i = 10000; |
| 107 | vec_stl(vc, param_i, &res_vc); // CHECK: @llvm.ppc.altivec.stvxl |
| 108 | __builtin_vec_stl(vuc, 1, &res_vuc); // CHECK: @llvm.ppc.altivec.stvxl |
| 109 | vec_stvxl(vs, 0, &res_vs); // CHECK: @llvm.ppc.altivec.stvxl |
| 110 | vec_stl(vus, 0, &res_vus); // CHECK: @llvm.ppc.altivec.stvxl |
| 111 | vec_stl(vi, 0, &res_vi); // CHECK: @llvm.ppc.altivec.stvxl |
| 112 | vec_stl(vui, 0, &res_vui); // CHECK: @llvm.ppc.altivec.stvxl |
| 113 | vec_stl(vf, 0, &res_vf); // CHECK: @llvm.ppc.altivec.stvxl |
| 114 | |
| 115 | /* vec_ste */ |
| 116 | param_i = 10000; |
| 117 | vec_ste(vc, param_i, &res_vc); // CHECK: @llvm.ppc.altivec.stvebx |
| 118 | vec_stvebx(vuc, 1, &res_vuc); // CHECK: @llvm.ppc.altivec.stvebx |
| 119 | __builtin_vec_stvehx(vs, 0, &res_vs); // CHECK: @llvm.ppc.altivec.stvehx |
| 120 | vec_stvehx(vus, 0, &res_vus); // CHECK: @llvm.ppc.altivec.stvehx |
| 121 | vec_stvewx(vi, 0, &res_vi); // CHECK: @llvm.ppc.altivec.stvewx |
| 122 | __builtin_vec_stvewx(vui, 0, &res_vui); // CHECK: @llvm.ppc.altivec.stvewx |
| 123 | vec_stvewx(vf, 0, &res_vf); // CHECK: @llvm.ppc.altivec.stvewx |
| 124 | |
| 125 | /* vec_cmpb */ |
| 126 | res_vi = vec_vcmpbfp(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpbfp |
| 127 | |
| 128 | /* vec_cmpeq */ |
| 129 | res_vi = vec_cmpeq(vc, vc); // CHECK: @llvm.ppc.altivec.vcmpequb |
| 130 | res_vi = __builtin_vec_cmpeq(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpequb |
| 131 | res_vi = vec_cmpeq(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpequh |
| 132 | res_vi = vec_cmpeq(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpequh |
| 133 | res_vi = vec_cmpeq(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpequw |
| 134 | res_vi = vec_cmpeq(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpequw |
| 135 | res_vi = vec_cmpeq(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpeqfp |
| 136 | |
| 137 | /* vec_cmpge */ |
| 138 | res_vi = __builtin_vec_cmpge(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgefp |
| 139 | |
| 140 | /* vec_cmpgt */ |
| 141 | res_vi = vec_cmpgt(vc, vc); // CHECK: @llvm.ppc.altivec.vcmpgtsb |
| 142 | res_vi = vec_vcmpgtub(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpgtub |
| 143 | res_vi = __builtin_vec_vcmpgtsh(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpgtsh |
| 144 | res_vi = vec_cmpgt(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpgtuh |
| 145 | res_vi = vec_cmpgt(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpgtsw |
| 146 | res_vi = vec_cmpgt(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpgtuw |
| 147 | res_vi = vec_cmpgt(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgtfp |
| 148 | |
| 149 | /* vec_cmple */ |
| 150 | res_vi = __builtin_vec_cmple(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgefp |
| 151 | |
| 152 | /* vec_cmplt */ |
| 153 | res_vi = vec_cmplt(vc, vc); // CHECK: @llvm.ppc.altivec.vcmpgtsb |
| 154 | res_vi = __builtin_vec_cmplt(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpgtub |
| 155 | res_vi = vec_cmplt(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpgtsh |
| 156 | res_vi = vec_cmplt(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpgtuh |
| 157 | res_vi = vec_cmplt(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpgtsw |
| 158 | res_vi = vec_cmplt(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpgtuw |
| 159 | res_vi = vec_cmplt(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgtfp |
| 160 | |
| 161 | /* vec_max */ |
| 162 | res_vc = vec_max(vc, vc); // CHECK: @llvm.ppc.altivec.vmaxsb |
| 163 | res_vuc = __builtin_vec_vmaxub(vuc, vuc); // CHECK: @llvm.ppc.altivec.vmaxub |
| 164 | res_vs = vec_vmaxsh(vs, vs); // CHECK: @llvm.ppc.altivec.vmaxsh |
| 165 | res_vus = vec_max(vus, vus); // CHECK: @llvm.ppc.altivec.vmaxuh |
| 166 | res_vi = __builtin_vec_vmaxsw(vi, vi); // CHECK: @llvm.ppc.altivec.vmaxsw |
| 167 | res_vui = vec_vmaxuw(vui, vui); // CHECK: @llvm.ppc.altivec.vmaxuw |
| 168 | res_vf = __builtin_vec_max(vf, vf); // CHECK: @llvm.ppc.altivec.vmaxfp |
| 169 | |
| 170 | /* vec_mfvscr */ |
| 171 | vf = vec_mfvscr(); // CHECK: @llvm.ppc.altivec.mfvscr |
| 172 | |
| 173 | /* vec_min */ |
| 174 | res_vc = vec_min(vc, vc); // CHECK: @llvm.ppc.altivec.vminsb |
| 175 | res_vuc = __builtin_vec_vminub(vuc, vuc); // CHECK: @llvm.ppc.altivec.vminub |
| 176 | res_vs = vec_vminsh(vs, vs); // CHECK: @llvm.ppc.altivec.vminsh |
| 177 | res_vus = vec_min(vus, vus); // CHECK: @llvm.ppc.altivec.vminuh |
| 178 | res_vi = __builtin_vec_vminsw(vi, vi); // CHECK: @llvm.ppc.altivec.vminsw |
| 179 | res_vui = vec_vminuw(vui, vui); // CHECK: @llvm.ppc.altivec.vminuw |
| 180 | res_vf = __builtin_vec_min(vf, vf); // CHECK: @llvm.ppc.altivec.vminfp |
| 181 | |
| 182 | /* vec_mtvscr */ |
| 183 | vec_mtvscr(vc); // CHECK: @llvm.ppc.altivec.mtvscr |
| 184 | |
| 185 | /* ------------------------------ predicates -------------------------------------- */ |
| 186 | |
| 187 | res_i = __builtin_vec_vcmpeq_p(__CR6_EQ, vc, vui); // CHECK: @llvm.ppc.altivec.vcmpeqfp.p |
| 188 | res_i = __builtin_vec_vcmpge_p(__CR6_EQ, vs, vi); // CHECK: @llvm.ppc.altivec.vcmpgefp.p |
| 189 | res_i = __builtin_vec_vcmpgt_p(__CR6_EQ, vuc, vf); // CHECK: @llvm.ppc.altivec.vcmpgtfp.p |
| 190 | |
| 191 | /* vec_all_eq */ |
| 192 | res_i = vec_all_eq(vc, vc); // CHECK: @llvm.ppc.altivec.vcmpequb.p |
| 193 | res_i = vec_all_eq(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpequb.p |
| 194 | res_i = vec_all_eq(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpequh.p |
| 195 | res_i = vec_all_eq(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpequh.p |
| 196 | res_i = vec_all_eq(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpequw.p |
| 197 | res_i = vec_all_eq(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpequw.p |
| 198 | res_i = vec_all_eq(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpeqfp.p |
| 199 | |
| 200 | /* vec_all_ge */ |
| 201 | res_i = vec_all_ge(vc, vc); // CHECK: @llvm.ppc.altivec.vcmpgtsb.p |
| 202 | res_i = vec_all_ge(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p |
| 203 | res_i = vec_all_ge(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpgtsh.p |
| 204 | res_i = vec_all_ge(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p |
| 205 | res_i = vec_all_ge(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpgtsw.p |
| 206 | res_i = vec_all_ge(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p |
| 207 | res_i = vec_all_ge(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgtfp.p |
| 208 | |
| 209 | /* vec_all_gt */ |
| 210 | res_i = vec_all_gt(vc, vc); // CHECK: @llvm.ppc.altivec.vcmpgtsb.p |
| 211 | res_i = vec_all_gt(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p |
| 212 | res_i = vec_all_gt(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpgtsh.p |
| 213 | res_i = vec_all_gt(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p |
| 214 | res_i = vec_all_gt(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpgtsw.p |
| 215 | res_i = vec_all_gt(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p |
| 216 | res_i = vec_all_gt(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgtfp.p |
| 217 | |
| 218 | /* vec_all_in */ |
| 219 | res_i = vec_all_in(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpbfp.p |
| 220 | |
| 221 | /* vec_all_le */ |
| 222 | res_i = vec_all_le(vc, vc); // CHECK: @llvm.ppc.altivec.vcmpgtsb.p |
| 223 | res_i = vec_all_le(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p |
| 224 | res_i = vec_all_le(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpgtsh.p |
| 225 | res_i = vec_all_le(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p |
| 226 | res_i = vec_all_le(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpgtsw.p |
| 227 | res_i = vec_all_le(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p |
| 228 | res_i = vec_all_le(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgtfp.p |
| 229 | |
| 230 | /* vec_all_nan */ |
| 231 | res_i = vec_all_nan(vf); // CHECK: @llvm.ppc.altivec.vcmpeqfp.p |
| 232 | |
| 233 | /* vec_all_ne */ |
| 234 | res_i = vec_all_ne(vc, vc); // CHECK: @llvm.ppc.altivec.vcmpequb.p |
| 235 | res_i = vec_all_ne(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpequb.p |
| 236 | res_i = vec_all_ne(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpequh.p |
| 237 | res_i = vec_all_ne(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpequh.p |
| 238 | res_i = vec_all_ne(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpequw.p |
| 239 | res_i = vec_all_ne(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpequw.p |
| 240 | res_i = vec_all_ne(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpeqfp.p |
| 241 | |
| 242 | /* vec_all_nge */ |
| 243 | res_i = vec_all_nge(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgefp.p |
| 244 | |
| 245 | /* vec_all_ngt */ |
| 246 | res_i = vec_all_ngt(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgtfp.p |
| 247 | |
| 248 | /* vec_all_nle */ |
| 249 | res_i = vec_all_nle(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgefp.p |
| 250 | |
| 251 | /* vec_all_nlt */ |
| 252 | res_i = vec_all_nlt(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgtfp.p |
| 253 | |
| 254 | /* vec_all_numeric */ |
| 255 | res_i = vec_all_numeric(vf); // CHECK: @llvm.ppc.altivec.vcmpeqfp.p |
| 256 | |
| 257 | /* vec_any_eq */ |
| 258 | res_i = vec_any_eq(vc, vc); // CHECK: @llvm.ppc.altivec.vcmpequb.p |
| 259 | res_i = vec_any_eq(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpequb.p |
| 260 | res_i = vec_any_eq(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpequh.p |
| 261 | res_i = vec_any_eq(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpequh.p |
| 262 | res_i = vec_any_eq(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpequw.p |
| 263 | res_i = vec_any_eq(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpequw.p |
| 264 | res_i = vec_any_eq(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpeqfp.p |
| 265 | |
| 266 | /* vec_any_ge */ |
| 267 | res_i = vec_any_ge(vc, vc); // CHECK: @llvm.ppc.altivec.vcmpgtsb.p |
| 268 | res_i = vec_any_ge(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p |
| 269 | res_i = vec_any_ge(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpgtsh.p |
| 270 | res_i = vec_any_ge(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p |
| 271 | res_i = vec_any_ge(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpgtsw.p |
| 272 | res_i = vec_any_ge(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p |
| 273 | res_i = vec_any_ge(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgtfp.p |
| 274 | |
| 275 | /* vec_any_gt */ |
| 276 | res_i = vec_any_gt(vc, vc); // CHECK: @llvm.ppc.altivec.vcmpgtsb.p |
| 277 | res_i = vec_any_gt(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p |
| 278 | res_i = vec_any_gt(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpgtsh.p |
| 279 | res_i = vec_any_gt(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p |
| 280 | res_i = vec_any_gt(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpgtsw.p |
| 281 | res_i = vec_any_gt(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p |
| 282 | res_i = vec_any_gt(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgtfp.p |
| 283 | |
| 284 | /* vec_any_le */ |
| 285 | res_i = vec_any_le(vc, vc); // CHECK: @llvm.ppc.altivec.vcmpgtsb.p |
| 286 | res_i = vec_any_le(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p |
| 287 | res_i = vec_any_le(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpgtsh.p |
| 288 | res_i = vec_any_le(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p |
| 289 | res_i = vec_any_le(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpgtsw.p |
| 290 | res_i = vec_any_le(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p |
| 291 | res_i = vec_any_le(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgtfp.p |
| 292 | |
| 293 | /* vec_any_lt */ |
| 294 | res_i = vec_any_lt(vc, vc); // CHECK: @llvm.ppc.altivec.vcmpgtsb.p |
| 295 | res_i = vec_any_lt(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p |
| 296 | res_i = vec_any_lt(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpgtsh.p |
| 297 | res_i = vec_any_lt(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p |
| 298 | res_i = vec_any_lt(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpgtsw.p |
| 299 | res_i = vec_any_lt(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p |
| 300 | res_i = vec_any_lt(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgtfp.p |
| 301 | |
| 302 | /* vec_any_nan */ |
| 303 | res_i = vec_any_nan(vf); // CHECK: @llvm.ppc.altivec.vcmpeqfp.p |
| 304 | |
| 305 | /* vec_any_ne */ |
| 306 | res_i = vec_any_ne(vc, vc); // CHECK: @llvm.ppc.altivec.vcmpequb.p |
| 307 | res_i = vec_any_ne(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpequb.p |
| 308 | res_i = vec_any_ne(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpequh.p |
| 309 | res_i = vec_any_ne(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpequh.p |
| 310 | res_i = vec_any_ne(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpequw.p |
| 311 | res_i = vec_any_ne(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpequw.p |
| 312 | res_i = vec_any_ne(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpeqfp.p |
| 313 | |
| 314 | /* vec_any_nge */ |
| 315 | res_i = vec_any_nge(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgefp.p |
| 316 | |
| 317 | /* vec_any_ngt */ |
| 318 | res_i = vec_any_ngt(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgtfp.p |
| 319 | |
| 320 | /* vec_any_nle */ |
| 321 | res_i = vec_any_nle(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgefp.p |
| 322 | |
| 323 | /* vec_any_nlt */ |
| 324 | res_i = vec_any_nlt(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgtfp.p |
| 325 | |
| 326 | /* vec_any_numeric */ |
| 327 | res_i = vec_any_numeric(vf); // CHECK: @llvm.ppc.altivec.vcmpeqfp.p |
| 328 | |
| 329 | /* vec_any_out */ |
| 330 | res_i = vec_any_out(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpbfp.p |
| 331 | |
| 332 | return 0; |
| 333 | } |