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