1; RUN: llc -march=hexagon < %s | FileCheck %s 2 3@d = external global <16 x i32>, align 64 4 5; CHECK-LABEL: test1: 6; CHECK: q{{[0-9]}} &= vcmp.eq(v{{[0-9]+}}.b,v{{[0-9]+}}.b) 7define void @test1(<16 x i32> %a, <16 x i32> %b) #0 { 8entry: 9 %v0 = load <16 x i32>, <16 x i32>* @d, align 64 10 %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1) 11 %v2 = tail call <64 x i1> @llvm.hexagon.V6.veqb.and(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b) 12 %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1) 13 store <16 x i32> %v3, <16 x i32>* @d, align 64 14 ret void 15} 16 17; CHECK-LABEL: test2: 18; CHECK: q{{[0-9]}} &= vcmp.eq(v{{[0-9]+}}.h,v{{[0-9]+}}.h) 19define void @test2(<16 x i32> %a, <16 x i32> %b) #0 { 20entry: 21 %v0 = load <16 x i32>, <16 x i32>* @d, align 64 22 %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1) 23 %v2 = tail call <64 x i1> @llvm.hexagon.V6.veqh.and(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b) 24 %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1) 25 store <16 x i32> %v3, <16 x i32>* @d, align 64 26 ret void 27} 28 29; CHECK-LABEL: test3: 30; CHECK: q{{[0-9]}} &= vcmp.eq(v{{[0-9]+}}.w,v{{[0-9]+}}.w) 31define void @test3(<16 x i32> %a, <16 x i32> %b) #0 { 32entry: 33 %v0 = load <16 x i32>, <16 x i32>* @d, align 64 34 %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1) 35 %v2 = tail call <64 x i1> @llvm.hexagon.V6.veqw.and(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b) 36 %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1) 37 store <16 x i32> %v3, <16 x i32>* @d, align 64 38 ret void 39} 40 41; CHECK-LABEL: test4: 42; CHECK: q{{[0-9]}} &= vcmp.gt(v{{[0-9]+}}.b,v{{[0-9]+}}.b) 43define void @test4(<16 x i32> %a, <16 x i32> %b) #0 { 44entry: 45 %v0 = load <16 x i32>, <16 x i32>* @d, align 64 46 %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1) 47 %v2 = tail call <64 x i1> @llvm.hexagon.V6.vgtb.and(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b) 48 %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1) 49 store <16 x i32> %v3, <16 x i32>* @d, align 64 50 ret void 51} 52 53; CHECK-LABEL: test5: 54; CHECK: q{{[0-9]}} &= vcmp.gt(v{{[0-9]+}}.h,v{{[0-9]+}}.h) 55define void @test5(<16 x i32> %a, <16 x i32> %b) #0 { 56entry: 57 %v0 = load <16 x i32>, <16 x i32>* @d, align 64 58 %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1) 59 %v2 = tail call <64 x i1> @llvm.hexagon.V6.vgth.and(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b) 60 %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1) 61 store <16 x i32> %v3, <16 x i32>* @d, align 64 62 ret void 63} 64 65; CHECK-LABEL: test6: 66; CHECK: q{{[0-9]}} &= vcmp.gt(v{{[0-9]+}}.w,v{{[0-9]+}}.w) 67define void @test6(<16 x i32> %a, <16 x i32> %b) #0 { 68entry: 69 %v0 = load <16 x i32>, <16 x i32>* @d, align 64 70 %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1) 71 %v2 = tail call <64 x i1> @llvm.hexagon.V6.vgtw.and(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b) 72 %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1) 73 store <16 x i32> %v3, <16 x i32>* @d, align 64 74 ret void 75} 76 77; CHECK-LABEL: test7: 78; CHECK: q{{[0-9]}} &= vcmp.gt(v{{[0-9]+}}.ub,v{{[0-9]+}}.ub) 79define void @test7(<16 x i32> %a, <16 x i32> %b) #0 { 80entry: 81 %v0 = load <16 x i32>, <16 x i32>* @d, align 64 82 %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1) 83 %v2 = tail call <64 x i1> @llvm.hexagon.V6.vgtub.and(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b) 84 %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1) 85 store <16 x i32> %v3, <16 x i32>* @d, align 64 86 ret void 87} 88 89; CHECK-LABEL: test8: 90; CHECK: q{{[0-9]}} &= vcmp.gt(v{{[0-9]+}}.uh,v{{[0-9]+}}.uh) 91define void @test8(<16 x i32> %a, <16 x i32> %b) #0 { 92entry: 93 %v0 = load <16 x i32>, <16 x i32>* @d, align 64 94 %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1) 95 %v2 = tail call <64 x i1> @llvm.hexagon.V6.vgtuh.and(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b) 96 %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1) 97 store <16 x i32> %v3, <16 x i32>* @d, align 64 98 ret void 99} 100 101; CHECK-LABEL: test9: 102; CHECK: q{{[0-9]}} &= vcmp.gt(v{{[0-9]+}}.uw,v{{[0-9]+}}.uw) 103define void @test9(<16 x i32> %a, <16 x i32> %b) #0 { 104entry: 105 %v0 = load <16 x i32>, <16 x i32>* @d, align 64 106 %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1) 107 %v2 = tail call <64 x i1> @llvm.hexagon.V6.vgtuw.and(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b) 108 %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1) 109 store <16 x i32> %v3, <16 x i32>* @d, align 64 110 ret void 111} 112 113; CHECK-LABEL: test10: 114; CHECK: q{{[0-9]}} |= vcmp.eq(v{{[0-9]+}}.b,v{{[0-9]+}}.b) 115define void @test10(<16 x i32> %a, <16 x i32> %b) #0 { 116entry: 117 %v0 = load <16 x i32>, <16 x i32>* @d, align 64 118 %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1) 119 %v2 = tail call <64 x i1> @llvm.hexagon.V6.veqb.or(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b) 120 %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1) 121 store <16 x i32> %v3, <16 x i32>* @d, align 64 122 ret void 123} 124 125; CHECK-LABEL: test11: 126; CHECK: q{{[0-9]}} |= vcmp.eq(v{{[0-9]+}}.h,v{{[0-9]+}}.h) 127define void @test11(<16 x i32> %a, <16 x i32> %b) #0 { 128entry: 129 %v0 = load <16 x i32>, <16 x i32>* @d, align 64 130 %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1) 131 %v2 = tail call <64 x i1> @llvm.hexagon.V6.veqh.or(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b) 132 %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1) 133 store <16 x i32> %v3, <16 x i32>* @d, align 64 134 ret void 135} 136 137; CHECK-LABEL: test12: 138; CHECK: q{{[0-9]}} |= vcmp.eq(v{{[0-9]+}}.w,v{{[0-9]+}}.w) 139define void @test12(<16 x i32> %a, <16 x i32> %b) #0 { 140entry: 141 %v0 = load <16 x i32>, <16 x i32>* @d, align 64 142 %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1) 143 %v2 = tail call <64 x i1> @llvm.hexagon.V6.veqw.or(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b) 144 %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1) 145 store <16 x i32> %v3, <16 x i32>* @d, align 64 146 ret void 147} 148 149; CHECK-LABEL: test13: 150; CHECK: q{{[0-9]}} |= vcmp.gt(v{{[0-9]+}}.b,v{{[0-9]+}}.b) 151define void @test13(<16 x i32> %a, <16 x i32> %b) #0 { 152entry: 153 %v0 = load <16 x i32>, <16 x i32>* @d, align 64 154 %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1) 155 %v2 = tail call <64 x i1> @llvm.hexagon.V6.vgtb.or(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b) 156 %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1) 157 store <16 x i32> %v3, <16 x i32>* @d, align 64 158 ret void 159} 160 161; CHECK-LABEL: test14: 162; CHECK: q{{[0-9]}} |= vcmp.gt(v{{[0-9]+}}.h,v{{[0-9]+}}.h) 163define void @test14(<16 x i32> %a, <16 x i32> %b) #0 { 164entry: 165 %v0 = load <16 x i32>, <16 x i32>* @d, align 64 166 %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1) 167 %v2 = tail call <64 x i1> @llvm.hexagon.V6.vgth.or(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b) 168 %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1) 169 store <16 x i32> %v3, <16 x i32>* @d, align 64 170 ret void 171} 172 173; CHECK-LABEL: test15: 174; CHECK: q{{[0-9]}} |= vcmp.gt(v{{[0-9]+}}.w,v{{[0-9]+}}.w) 175define void @test15(<16 x i32> %a, <16 x i32> %b) #0 { 176entry: 177 %v0 = load <16 x i32>, <16 x i32>* @d, align 64 178 %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1) 179 %v2 = tail call <64 x i1> @llvm.hexagon.V6.vgtw.or(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b) 180 %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1) 181 store <16 x i32> %v3, <16 x i32>* @d, align 64 182 ret void 183} 184 185; CHECK-LABEL: test16: 186; CHECK: q{{[0-9]}} |= vcmp.gt(v{{[0-9]+}}.ub,v{{[0-9]+}}.ub) 187define void @test16(<16 x i32> %a, <16 x i32> %b) #0 { 188entry: 189 %v0 = load <16 x i32>, <16 x i32>* @d, align 64 190 %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1) 191 %v2 = tail call <64 x i1> @llvm.hexagon.V6.vgtub.or(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b) 192 %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1) 193 store <16 x i32> %v3, <16 x i32>* @d, align 64 194 ret void 195} 196 197; CHECK-LABEL: test17: 198; CHECK: q{{[0-9]}} |= vcmp.gt(v{{[0-9]+}}.uh,v{{[0-9]+}}.uh) 199define void @test17(<16 x i32> %a, <16 x i32> %b) #0 { 200entry: 201 %v0 = load <16 x i32>, <16 x i32>* @d, align 64 202 %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1) 203 %v2 = tail call <64 x i1> @llvm.hexagon.V6.vgtuh.or(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b) 204 %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1) 205 store <16 x i32> %v3, <16 x i32>* @d, align 64 206 ret void 207} 208 209; CHECK-LABEL: test18: 210; CHECK: q{{[0-9]}} |= vcmp.gt(v{{[0-9]+}}.uw,v{{[0-9]+}}.uw) 211define void @test18(<16 x i32> %a, <16 x i32> %b) #0 { 212entry: 213 %v0 = load <16 x i32>, <16 x i32>* @d, align 64 214 %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1) 215 %v2 = tail call <64 x i1> @llvm.hexagon.V6.vgtuw.or(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b) 216 %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1) 217 store <16 x i32> %v3, <16 x i32>* @d, align 64 218 ret void 219} 220 221; CHECK-LABEL: test19: 222; CHECK: q{{[0-9]}} ^= vcmp.eq(v{{[0-9]+}}.b,v{{[0-9]+}}.b) 223define void @test19(<16 x i32> %a, <16 x i32> %b) #0 { 224entry: 225 %v0 = load <16 x i32>, <16 x i32>* @d, align 64 226 %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1) 227 %v2 = tail call <64 x i1> @llvm.hexagon.V6.veqb.xor(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b) 228 %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1) 229 store <16 x i32> %v3, <16 x i32>* @d, align 64 230 ret void 231} 232 233; CHECK-LABEL: test20: 234; CHECK: q{{[0-9]}} ^= vcmp.eq(v{{[0-9]+}}.h,v{{[0-9]+}}.h) 235define void @test20(<16 x i32> %a, <16 x i32> %b) #0 { 236entry: 237 %v0 = load <16 x i32>, <16 x i32>* @d, align 64 238 %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1) 239 %v2 = tail call <64 x i1> @llvm.hexagon.V6.veqh.xor(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b) 240 %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1) 241 store <16 x i32> %v3, <16 x i32>* @d, align 64 242 ret void 243} 244 245; CHECK-LABEL: test21: 246; CHECK: q{{[0-9]}} ^= vcmp.eq(v{{[0-9]+}}.w,v{{[0-9]+}}.w) 247define void @test21(<16 x i32> %a, <16 x i32> %b) #0 { 248entry: 249 %v0 = load <16 x i32>, <16 x i32>* @d, align 64 250 %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1) 251 %v2 = tail call <64 x i1> @llvm.hexagon.V6.veqw.xor(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b) 252 %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1) 253 store <16 x i32> %v3, <16 x i32>* @d, align 64 254 ret void 255} 256 257; CHECK-LABEL: test22: 258; CHECK: q{{[0-9]}} ^= vcmp.gt(v{{[0-9]+}}.b,v{{[0-9]+}}.b) 259define void @test22(<16 x i32> %a, <16 x i32> %b) #0 { 260entry: 261 %v0 = load <16 x i32>, <16 x i32>* @d, align 64 262 %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1) 263 %v2 = tail call <64 x i1> @llvm.hexagon.V6.vgtb.xor(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b) 264 %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1) 265 store <16 x i32> %v3, <16 x i32>* @d, align 64 266 ret void 267} 268 269; CHECK-LABEL: test23: 270; CHECK: q{{[0-9]}} ^= vcmp.gt(v{{[0-9]+}}.h,v{{[0-9]+}}.h) 271define void @test23(<16 x i32> %a, <16 x i32> %b) #0 { 272entry: 273 %v0 = load <16 x i32>, <16 x i32>* @d, align 64 274 %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1) 275 %v2 = tail call <64 x i1> @llvm.hexagon.V6.vgth.xor(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b) 276 %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1) 277 store <16 x i32> %v3, <16 x i32>* @d, align 64 278 ret void 279} 280 281; CHECK-LABEL: test24: 282; CHECK: q{{[0-9]}} ^= vcmp.gt(v{{[0-9]+}}.w,v{{[0-9]+}}.w) 283define void @test24(<16 x i32> %a, <16 x i32> %b) #0 { 284entry: 285 %v0 = load <16 x i32>, <16 x i32>* @d, align 64 286 %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1) 287 %v2 = tail call <64 x i1> @llvm.hexagon.V6.vgtw.xor(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b) 288 %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1) 289 store <16 x i32> %v3, <16 x i32>* @d, align 64 290 ret void 291} 292 293; CHECK-LABEL: test25: 294; CHECK: q{{[0-9]}} ^= vcmp.gt(v{{[0-9]+}}.ub,v{{[0-9]+}}.ub) 295define void @test25(<16 x i32> %a, <16 x i32> %b) #0 { 296entry: 297 %v0 = load <16 x i32>, <16 x i32>* @d, align 64 298 %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1) 299 %v2 = tail call <64 x i1> @llvm.hexagon.V6.vgtub.xor(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b) 300 %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1) 301 store <16 x i32> %v3, <16 x i32>* @d, align 64 302 ret void 303} 304 305; CHECK-LABEL: test26: 306; CHECK: q{{[0-9]}} ^= vcmp.gt(v{{[0-9]+}}.uh,v{{[0-9]+}}.uh) 307define void @test26(<16 x i32> %a, <16 x i32> %b) #0 { 308entry: 309 %v0 = load <16 x i32>, <16 x i32>* @d, align 64 310 %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1) 311 %v2 = tail call <64 x i1> @llvm.hexagon.V6.vgtuh.xor(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b) 312 %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1) 313 store <16 x i32> %v3, <16 x i32>* @d, align 64 314 ret void 315} 316 317; CHECK-LABEL: test27: 318; CHECK: q{{[0-9]}} ^= vcmp.gt(v{{[0-9]+}}.uw,v{{[0-9]+}}.uw) 319define void @test27(<16 x i32> %a, <16 x i32> %b) #0 { 320entry: 321 %v0 = load <16 x i32>, <16 x i32>* @d, align 64 322 %v1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %v0, i32 -1) 323 %v2 = tail call <64 x i1> @llvm.hexagon.V6.vgtuw.xor(<64 x i1> %v1, <16 x i32> %a, <16 x i32> %b) 324 %v3 = tail call <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1> %v2, i32 -1) 325 store <16 x i32> %v3, <16 x i32>* @d, align 64 326 ret void 327} 328 329declare <64 x i1> @llvm.hexagon.V6.veqb.and(<64 x i1>, <16 x i32>, <16 x i32>) #0 330declare <64 x i1> @llvm.hexagon.V6.veqh.and(<64 x i1>, <16 x i32>, <16 x i32>) #0 331declare <64 x i1> @llvm.hexagon.V6.veqw.and(<64 x i1>, <16 x i32>, <16 x i32>) #0 332declare <64 x i1> @llvm.hexagon.V6.vgtb.and(<64 x i1>, <16 x i32>, <16 x i32>) #0 333declare <64 x i1> @llvm.hexagon.V6.vgth.and(<64 x i1>, <16 x i32>, <16 x i32>) #0 334declare <64 x i1> @llvm.hexagon.V6.vgtw.and(<64 x i1>, <16 x i32>, <16 x i32>) #0 335declare <64 x i1> @llvm.hexagon.V6.vgtub.and(<64 x i1>, <16 x i32>, <16 x i32>) #0 336declare <64 x i1> @llvm.hexagon.V6.vgtuh.and(<64 x i1>, <16 x i32>, <16 x i32>) #0 337declare <64 x i1> @llvm.hexagon.V6.vgtuw.and(<64 x i1>, <16 x i32>, <16 x i32>) #0 338declare <64 x i1> @llvm.hexagon.V6.veqb.or(<64 x i1>, <16 x i32>, <16 x i32>) #0 339declare <64 x i1> @llvm.hexagon.V6.veqh.or(<64 x i1>, <16 x i32>, <16 x i32>) #0 340declare <64 x i1> @llvm.hexagon.V6.veqw.or(<64 x i1>, <16 x i32>, <16 x i32>) #0 341declare <64 x i1> @llvm.hexagon.V6.vgtb.or(<64 x i1>, <16 x i32>, <16 x i32>) #0 342declare <64 x i1> @llvm.hexagon.V6.vgth.or(<64 x i1>, <16 x i32>, <16 x i32>) #0 343declare <64 x i1> @llvm.hexagon.V6.vgtw.or(<64 x i1>, <16 x i32>, <16 x i32>) #0 344declare <64 x i1> @llvm.hexagon.V6.vgtub.or(<64 x i1>, <16 x i32>, <16 x i32>) #0 345declare <64 x i1> @llvm.hexagon.V6.vgtuh.or(<64 x i1>, <16 x i32>, <16 x i32>) #0 346declare <64 x i1> @llvm.hexagon.V6.vgtuw.or(<64 x i1>, <16 x i32>, <16 x i32>) #0 347declare <64 x i1> @llvm.hexagon.V6.veqb.xor(<64 x i1>, <16 x i32>, <16 x i32>) #0 348declare <64 x i1> @llvm.hexagon.V6.veqh.xor(<64 x i1>, <16 x i32>, <16 x i32>) #0 349declare <64 x i1> @llvm.hexagon.V6.veqw.xor(<64 x i1>, <16 x i32>, <16 x i32>) #0 350declare <64 x i1> @llvm.hexagon.V6.vgtb.xor(<64 x i1>, <16 x i32>, <16 x i32>) #0 351declare <64 x i1> @llvm.hexagon.V6.vgth.xor(<64 x i1>, <16 x i32>, <16 x i32>) #0 352declare <64 x i1> @llvm.hexagon.V6.vgtw.xor(<64 x i1>, <16 x i32>, <16 x i32>) #0 353declare <64 x i1> @llvm.hexagon.V6.vgtub.xor(<64 x i1>, <16 x i32>, <16 x i32>) #0 354declare <64 x i1> @llvm.hexagon.V6.vgtuh.xor(<64 x i1>, <16 x i32>, <16 x i32>) #0 355declare <64 x i1> @llvm.hexagon.V6.vgtuw.xor(<64 x i1>, <16 x i32>, <16 x i32>) #0 356declare <16 x i32> @llvm.hexagon.V6.vandqrt(<64 x i1>, i32) #0 357declare <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32>, i32) #0 358 359attributes #0 = { nounwind readnone "target-cpu"="hexagonv60" "target-features"="+hvxv60,+hvx-length64b" } 360