1 ; RUN: llc -march=hexagon -O0 < %s | FileCheck %s
4 ; CHECK: = cmp.eq(r1:0,r3:2)
5 define i32 @test00(i64 %Rs, i64 %Rt) #0 {
7 %0 = tail call i32 @llvm.hexagon.C2.cmpeqp(i64 %Rs, i64 %Rt)
11 ; CHECK-LABEL: @test01
12 ; CHECK: = cmp.gt(r1:0,r3:2)
13 define i32 @test01(i64 %Rs, i64 %Rt) #0 {
15 %0 = tail call i32 @llvm.hexagon.C2.cmpgtp(i64 %Rs, i64 %Rt)
19 ; CHECK-LABEL: @test02
20 ; CHECK: = cmp.gtu(r1:0,r3:2)
21 define i32 @test02(i64 %Rs, i64 %Rt) #0 {
23 %0 = tail call i32 @llvm.hexagon.C2.cmpgtup(i64 %Rs, i64 %Rt)
27 ; CHECK-LABEL: @test10
28 ; CHECK: = cmp.eq(r0,r1)
29 define i32 @test10(i32 %Rs, i32 %Rt) #0 {
31 %0 = tail call i32 @llvm.hexagon.A4.rcmpeq(i32 %Rs, i32 %Rt)
35 ; CHECK-LABEL: @test11
36 ; CHECK: = !cmp.eq(r0,r1)
37 define i32 @test11(i32 %Rs, i32 %Rt) #0 {
39 %0 = tail call i32 @llvm.hexagon.A4.rcmpneq(i32 %Rs, i32 %Rt)
43 ; CHECK-LABEL: @test12
44 ; CHECK: = cmp.eq(r0,#23)
45 define i32 @test12(i32 %Rs) #0 {
47 %0 = tail call i32 @llvm.hexagon.A4.rcmpeqi(i32 %Rs, i32 23)
51 ; CHECK-LABEL: @test13
52 ; CHECK: = !cmp.eq(r0,#47)
53 define i32 @test13(i32 %Rs) #0 {
55 %0 = tail call i32 @llvm.hexagon.A4.rcmpneqi(i32 %Rs, i32 47)
59 ; CHECK-LABEL: @test20
60 ; CHECK: = cmpb.eq(r0,r1)
61 define i32 @test20(i32 %Rs, i32 %Rt) #0 {
63 %0 = tail call i32 @llvm.hexagon.A4.cmpbeq(i32 %Rs, i32 %Rt)
67 ; CHECK-LABEL: @test21
68 ; CHECK: = cmpb.gt(r0,r1)
69 define i32 @test21(i32 %Rs, i32 %Rt) #0 {
71 %0 = tail call i32 @llvm.hexagon.A4.cmpbgt(i32 %Rs, i32 %Rt)
75 ; CHECK-LABEL: @test22
76 ; CHECK: = cmpb.gtu(r0,r1)
77 define i32 @test22(i32 %Rs, i32 %Rt) #0 {
79 %0 = tail call i32 @llvm.hexagon.A4.cmpbgtu(i32 %Rs, i32 %Rt)
83 ; CHECK-LABEL: @test23
84 ; CHECK: = cmpb.eq(r0,#56)
85 define i32 @test23(i32 %Rs) #0 {
87 %0 = tail call i32 @llvm.hexagon.A4.cmpbeqi(i32 %Rs, i32 56)
91 ; CHECK-LABEL: @test24
92 ; CHECK: = cmpb.gt(r0,#29)
93 define i32 @test24(i32 %Rs) #0 {
95 %0 = tail call i32 @llvm.hexagon.A4.cmpbgti(i32 %Rs, i32 29)
99 ; CHECK-LABEL: @test25
100 ; CHECK: = cmpb.gtu(r0,#111)
101 define i32 @test25(i32 %Rs) #0 {
103 %0 = tail call i32 @llvm.hexagon.A4.cmpbgtui(i32 %Rs, i32 111)
107 ; CHECK-LABEL: @test30
108 ; CHECK: = cmph.eq(r0,r1)
109 define i32 @test30(i32 %Rs, i32 %Rt) #0 {
111 %0 = tail call i32 @llvm.hexagon.A4.cmpheq(i32 %Rs, i32 %Rt)
115 ; CHECK-LABEL: @test31
116 ; CHECK: = cmph.gt(r0,r1)
117 define i32 @test31(i32 %Rs, i32 %Rt) #0 {
119 %0 = tail call i32 @llvm.hexagon.A4.cmphgt(i32 %Rs, i32 %Rt)
123 ; CHECK-LABEL: @test32
124 ; CHECK: = cmph.gtu(r0,r1)
125 define i32 @test32(i32 %Rs, i32 %Rt) #0 {
127 %0 = tail call i32 @llvm.hexagon.A4.cmphgtu(i32 %Rs, i32 %Rt)
131 ; CHECK-LABEL: @test33
132 ; CHECK: = cmph.eq(r0,#-123)
133 define i32 @test33(i32 %Rs) #0 {
135 %0 = tail call i32 @llvm.hexagon.A4.cmpheqi(i32 %Rs, i32 -123)
139 ; CHECK-LABEL: @test34
140 ; CHECK: = cmph.gt(r0,#-3)
141 define i32 @test34(i32 %Rs) #0 {
143 %0 = tail call i32 @llvm.hexagon.A4.cmphgti(i32 %Rs, i32 -3)
147 ; CHECK-LABEL: @test35
148 ; CHECK: = cmph.gtu(r0,#13)
149 define i32 @test35(i32 %Rs) #0 {
151 %0 = tail call i32 @llvm.hexagon.A4.cmphgtui(i32 %Rs, i32 13)
155 ; CHECK-LABEL: @test40
156 ; CHECK: = vmux(p0,r3:2,r5:4)
157 define i64 @test40(i32 %Pu, i64 %Rs, i64 %Rt) #0 {
159 %0 = tail call i64 @llvm.hexagon.C2.vmux(i32 %Pu, i64 %Rs, i64 %Rt)
163 ; CHECK-LABEL: @test41
164 ; CHECK: = any8(vcmpb.eq(r1:0,r3:2))
165 define i32 @test41(i64 %Rs, i64 %Rt) #0 {
167 %0 = tail call i32 @llvm.hexagon.A4.vcmpbeq.any(i64 %Rs, i64 %Rt)
171 ; CHECK-LABEL: @test50
172 ; CHECK: = add(r1:0,r3:2)
173 define i64 @test50(i64 %Rs, i64 %Rt) #0 {
175 %0 = tail call i64 @llvm.hexagon.A2.addp(i64 %Rs, i64 %Rt)
179 ; CHECK-LABEL: @test51
180 ; CHECK: = add(r1:0,r3:2):sat
181 define i64 @test51(i64 %Rs, i64 %Rt) #0 {
183 %0 = tail call i64 @llvm.hexagon.A2.addpsat(i64 %Rs, i64 %Rt)
187 ; CHECK-LABEL: @test52
188 ; CHECK: = sub(r1:0,r3:2)
189 define i64 @test52(i64 %Rs, i64 %Rt) #0 {
191 %0 = tail call i64 @llvm.hexagon.A2.subp(i64 %Rs, i64 %Rt)
195 ; CHECK-LABEL: @test53
196 ; CHECK: = add(r1:0,r3:2):raw:
197 define i64 @test53(i32 %Rs, i64 %Rt) #0 {
199 %0 = tail call i64 @llvm.hexagon.A2.addsp(i32 %Rs, i64 %Rt)
203 ; CHECK-LABEL: @test54
204 ; CHECK: = and(r1:0,r3:2)
205 define i64 @test54(i64 %Rs, i64 %Rt) #0 {
207 %0 = tail call i64 @llvm.hexagon.A2.andp(i64 %Rs, i64 %Rt)
211 ; CHECK-LABEL: @test55
212 ; CHECK: = or(r1:0,r3:2)
213 define i64 @test55(i64 %Rs, i64 %Rt) #0 {
215 %0 = tail call i64 @llvm.hexagon.A2.orp(i64 %Rs, i64 %Rt)
219 ; CHECK-LABEL: @test56
220 ; CHECK: = xor(r1:0,r3:2)
221 define i64 @test56(i64 %Rs, i64 %Rt) #0 {
223 %0 = tail call i64 @llvm.hexagon.A2.xorp(i64 %Rs, i64 %Rt)
227 ; CHECK-LABEL: @test57
228 ; CHECK: = and(r1:0,~r3:2)
229 define i64 @test57(i64 %Rs, i64 %Rt) #0 {
231 %0 = tail call i64 @llvm.hexagon.A4.andnp(i64 %Rs, i64 %Rt)
235 ; CHECK-LABEL: @test58
236 ; CHECK: = or(r1:0,~r3:2)
237 define i64 @test58(i64 %Rs, i64 %Rt) #0 {
239 %0 = tail call i64 @llvm.hexagon.A4.ornp(i64 %Rs, i64 %Rt)
243 ; CHECK-LABEL: @test60
244 ; CHECK: = add(r0.l,r1.l)
245 define i32 @test60(i32 %Rs, i32 %Rt) #0 {
247 %0 = tail call i32 @llvm.hexagon.A2.addh.l16.ll(i32 %Rs, i32 %Rt)
251 ; CHECK-LABEL: @test61
252 ; CHECK: = add(r0.l,r1.h)
253 define i32 @test61(i32 %Rs, i32 %Rt) #0 {
255 %0 = tail call i32 @llvm.hexagon.A2.addh.l16.hl(i32 %Rs, i32 %Rt)
259 ; CHECK-LABEL: @test62
260 ; CHECK: = add(r0.l,r1.l):sat
261 define i32 @test62(i32 %Rs, i32 %Rt) #0 {
263 %0 = tail call i32 @llvm.hexagon.A2.addh.l16.sat.ll(i32 %Rs, i32 %Rt)
267 ; CHECK-LABEL: @test63
268 ; CHECK: = add(r0.l,r1.h):sat
269 define i32 @test63(i32 %Rs, i32 %Rt) #0 {
271 %0 = tail call i32 @llvm.hexagon.A2.addh.l16.sat.hl(i32 %Rs, i32 %Rt)
275 ; CHECK-LABEL: @test64
276 ; CHECK: = add(r0.l,r1.l):<<16
277 define i32 @test64(i32 %Rs, i32 %Rt) #0 {
279 %0 = tail call i32 @llvm.hexagon.A2.addh.h16.ll(i32 %Rs, i32 %Rt)
283 ; CHECK-LABEL: @test65
284 ; CHECK: = add(r0.l,r1.h):<<16
285 define i32 @test65(i32 %Rs, i32 %Rt) #0 {
287 %0 = tail call i32 @llvm.hexagon.A2.addh.h16.lh(i32 %Rs, i32 %Rt)
291 ; CHECK-LABEL: @test66
292 ; CHECK: = add(r0.h,r1.l):<<16
293 define i32 @test66(i32 %Rs, i32 %Rt) #0 {
295 %0 = tail call i32 @llvm.hexagon.A2.addh.h16.hl(i32 %Rs, i32 %Rt)
299 ; CHECK-LABEL: @test67
300 ; CHECK: = add(r0.h,r1.h):<<16
301 define i32 @test67(i32 %Rs, i32 %Rt) #0 {
303 %0 = tail call i32 @llvm.hexagon.A2.addh.h16.hh(i32 %Rs, i32 %Rt)
307 ; CHECK-LABEL: @test68
308 ; CHECK: = add(r0.l,r1.l):sat:<<16
309 define i32 @test68(i32 %Rs, i32 %Rt) #0 {
311 %0 = tail call i32 @llvm.hexagon.A2.addh.h16.sat.ll(i32 %Rs, i32 %Rt)
315 ; CHECK-LABEL: @test69
316 ; CHECK: = add(r0.l,r1.h):sat:<<16
317 define i32 @test69(i32 %Rs, i32 %Rt) #0 {
319 %0 = tail call i32 @llvm.hexagon.A2.addh.h16.sat.lh(i32 %Rs, i32 %Rt)
323 ; CHECK-LABEL: @test6A
324 ; CHECK: = add(r0.h,r1.l):sat:<<16
325 define i32 @test6A(i32 %Rs, i32 %Rt) #0 {
327 %0 = tail call i32 @llvm.hexagon.A2.addh.h16.sat.hl(i32 %Rs, i32 %Rt)
331 ; CHECK-LABEL: @test6B
332 ; CHECK: = add(r0.h,r1.h):sat:<<16
333 define i32 @test6B(i32 %Rs, i32 %Rt) #0 {
335 %0 = tail call i32 @llvm.hexagon.A2.addh.h16.sat.hh(i32 %Rs, i32 %Rt)
339 ; CHECK-LABEL: @test70
340 ; CHECK: = sub(r0.l,r1.l)
341 define i32 @test70(i32 %Rs, i32 %Rt) #0 {
343 %0 = tail call i32 @llvm.hexagon.A2.subh.l16.ll(i32 %Rs, i32 %Rt)
347 ; CHECK-LABEL: @test71
348 ; CHECK: = sub(r0.l,r1.h)
349 define i32 @test71(i32 %Rs, i32 %Rt) #0 {
351 %0 = tail call i32 @llvm.hexagon.A2.subh.l16.hl(i32 %Rs, i32 %Rt)
355 ; CHECK-LABEL: @test72
356 ; CHECK: = sub(r0.l,r1.l):sat
357 define i32 @test72(i32 %Rs, i32 %Rt) #0 {
359 %0 = tail call i32 @llvm.hexagon.A2.subh.l16.sat.ll(i32 %Rs, i32 %Rt)
363 ; CHECK-LABEL: @test73
364 ; CHECK: = sub(r0.l,r1.h):sat
365 define i32 @test73(i32 %Rs, i32 %Rt) #0 {
367 %0 = tail call i32 @llvm.hexagon.A2.subh.l16.sat.hl(i32 %Rs, i32 %Rt)
371 ; CHECK-LABEL: @test74
372 ; CHECK: = sub(r0.l,r1.l):<<16
373 define i32 @test74(i32 %Rs, i32 %Rt) #0 {
375 %0 = tail call i32 @llvm.hexagon.A2.subh.h16.ll(i32 %Rs, i32 %Rt)
379 ; CHECK-LABEL: @test75
380 ; CHECK: = sub(r0.l,r1.h):<<16
381 define i32 @test75(i32 %Rs, i32 %Rt) #0 {
383 %0 = tail call i32 @llvm.hexagon.A2.subh.h16.lh(i32 %Rs, i32 %Rt)
387 ; CHECK-LABEL: @test76
388 ; CHECK: = sub(r0.h,r1.l):<<16
389 define i32 @test76(i32 %Rs, i32 %Rt) #0 {
391 %0 = tail call i32 @llvm.hexagon.A2.subh.h16.hl(i32 %Rs, i32 %Rt)
395 ; CHECK-LABEL: @test77
396 ; CHECK: = sub(r0.h,r1.h):<<16
397 define i32 @test77(i32 %Rs, i32 %Rt) #0 {
399 %0 = tail call i32 @llvm.hexagon.A2.subh.h16.hh(i32 %Rs, i32 %Rt)
403 ; CHECK-LABEL: @test78
404 ; CHECK: = sub(r0.l,r1.l):sat:<<16
405 define i32 @test78(i32 %Rs, i32 %Rt) #0 {
407 %0 = tail call i32 @llvm.hexagon.A2.subh.h16.sat.ll(i32 %Rs, i32 %Rt)
411 ; CHECK-LABEL: @test79
412 ; CHECK: = sub(r0.l,r1.h):sat:<<16
413 define i32 @test79(i32 %Rs, i32 %Rt) #0 {
415 %0 = tail call i32 @llvm.hexagon.A2.subh.h16.sat.lh(i32 %Rs, i32 %Rt)
419 ; CHECK-LABEL: @test7A
420 ; CHECK: = sub(r0.h,r1.l):sat:<<16
421 define i32 @test7A(i32 %Rs, i32 %Rt) #0 {
423 %0 = tail call i32 @llvm.hexagon.A2.subh.h16.sat.hl(i32 %Rs, i32 %Rt)
427 ; CHECK-LABEL: @test7B
428 ; CHECK: = sub(r0.h,r1.h):sat:<<16
429 define i32 @test7B(i32 %Rs, i32 %Rt) #0 {
431 %0 = tail call i32 @llvm.hexagon.A2.subh.h16.sat.hh(i32 %Rs, i32 %Rt)
435 ; CHECK-LABEL: @test90
436 ; CHECK: = and(#1,asl(r0,#2))
437 define i32 @test90(i32 %Rs) #0 {
439 %0 = tail call i32 @llvm.hexagon.S4.andi.asl.ri(i32 1, i32 %Rs, i32 2)
443 ; CHECK-LABEL: @test91
444 ; CHECK: = or(#1,asl(r0,#2))
445 define i32 @test91(i32 %Rs) #0 {
447 %0 = tail call i32 @llvm.hexagon.S4.ori.asl.ri(i32 1, i32 %Rs, i32 2)
451 ; CHECK-LABEL: @test92
452 ; CHECK: = add(#1,asl(r0,#2))
453 define i32 @test92(i32 %Rs) #0 {
455 %0 = tail call i32 @llvm.hexagon.S4.addi.asl.ri(i32 1, i32 %Rs, i32 2)
459 ; CHECK-LABEL: @test93
460 ; CHECK: = sub(#1,asl(r0,#2))
461 define i32 @test93(i32 %Rs) #0 {
463 %0 = tail call i32 @llvm.hexagon.S4.subi.asl.ri(i32 1, i32 %Rs, i32 2)
467 ; CHECK-LABEL: @test94
468 ; CHECK: = and(#1,lsr(r0,#2))
469 define i32 @test94(i32 %Rs) #0 {
471 %0 = tail call i32 @llvm.hexagon.S4.andi.lsr.ri(i32 1, i32 %Rs, i32 2)
475 ; CHECK-LABEL: @test95
476 ; CHECK: = or(#1,lsr(r0,#2))
477 define i32 @test95(i32 %Rs) #0 {
479 %0 = tail call i32 @llvm.hexagon.S4.ori.lsr.ri(i32 1, i32 %Rs, i32 2)
483 ; CHECK-LABEL: @test96
484 ; CHECK: = add(#1,lsr(r0,#2))
485 define i32 @test96(i32 %Rs) #0 {
487 %0 = tail call i32 @llvm.hexagon.S4.addi.lsr.ri(i32 1, i32 %Rs, i32 2)
491 ; CHECK-LABEL: @test97
492 ; CHECK: = sub(#1,lsr(r0,#2))
493 define i32 @test97(i32 %Rs) #0 {
495 %0 = tail call i32 @llvm.hexagon.S4.subi.lsr.ri(i32 1, i32 %Rs, i32 2)
499 ; CHECK-LABEL: @test100
500 ; CHECK: = bitsplit(r0,r1)
501 define i64 @test100(i32 %Rs, i32 %Rt) #0 {
503 %0 = tail call i64 @llvm.hexagon.A4.bitsplit(i32 %Rs, i32 %Rt)
507 ; CHECK-LABEL: @test101
508 ; CHECK: = modwrap(r0,r1)
509 define i32 @test101(i32 %Rs, i32 %Rt) #0 {
511 %0 = tail call i32 @llvm.hexagon.A4.modwrapu(i32 %Rs, i32 %Rt)
515 ; CHECK-LABEL: @test102
516 ; CHECK: = parity(r1:0,r3:2)
517 define i32 @test102(i64 %Rs, i64 %Rt) #0 {
519 %0 = tail call i32 @llvm.hexagon.S2.parityp(i64 %Rs, i64 %Rt)
523 ; CHECK-LABEL: @test103
524 ; CHECK: = parity(r0,r1)
525 define i32 @test103(i32 %Rs, i32 %Rt) #0 {
527 %0 = tail call i32 @llvm.hexagon.S4.parity(i32 %Rs, i32 %Rt)
531 declare i32 @llvm.hexagon.C2.cmpeqp(i64, i64) #1
532 declare i32 @llvm.hexagon.C2.cmpgtp(i64, i64) #1
533 declare i32 @llvm.hexagon.C2.cmpgtup(i64, i64) #1
534 declare i32 @llvm.hexagon.A4.rcmpeq(i32, i32) #1
535 declare i32 @llvm.hexagon.A4.rcmpneq(i32, i32) #1
536 declare i32 @llvm.hexagon.A4.rcmpeqi(i32, i32) #1
537 declare i32 @llvm.hexagon.A4.rcmpneqi(i32, i32) #1
538 declare i32 @llvm.hexagon.A4.cmpbeq(i32, i32) #1
539 declare i32 @llvm.hexagon.A4.cmpbgt(i32, i32) #1
540 declare i32 @llvm.hexagon.A4.cmpbgtu(i32, i32) #1
541 declare i32 @llvm.hexagon.A4.cmpbeqi(i32, i32) #1
542 declare i32 @llvm.hexagon.A4.cmpbgti(i32, i32) #1
543 declare i32 @llvm.hexagon.A4.cmpbgtui(i32, i32) #1
544 declare i32 @llvm.hexagon.A4.cmpheq(i32, i32) #1
545 declare i32 @llvm.hexagon.A4.cmphgt(i32, i32) #1
546 declare i32 @llvm.hexagon.A4.cmphgtu(i32, i32) #1
547 declare i32 @llvm.hexagon.A4.cmpheqi(i32, i32) #1
548 declare i32 @llvm.hexagon.A4.cmphgti(i32, i32) #1
549 declare i32 @llvm.hexagon.A4.cmphgtui(i32, i32) #1
550 declare i64 @llvm.hexagon.C2.vmux(i32, i64, i64) #1
551 declare i32 @llvm.hexagon.A4.vcmpbeq.any(i64, i64) #1
552 declare i64 @llvm.hexagon.A2.addp(i64, i64) #1
553 declare i64 @llvm.hexagon.A2.addpsat(i64, i64) #1
554 declare i64 @llvm.hexagon.A2.subp(i64, i64) #1
555 declare i64 @llvm.hexagon.A2.addsp(i32, i64) #1
556 declare i64 @llvm.hexagon.A2.andp(i64, i64) #1
557 declare i64 @llvm.hexagon.A2.orp(i64, i64) #1
558 declare i64 @llvm.hexagon.A2.xorp(i64, i64) #1
559 declare i64 @llvm.hexagon.A4.ornp(i64, i64) #1
560 declare i64 @llvm.hexagon.A4.andnp(i64, i64) #1
561 declare i32 @llvm.hexagon.A2.addh.l16.ll(i32, i32) #1
562 declare i32 @llvm.hexagon.A2.addh.l16.hl(i32, i32) #1
563 declare i32 @llvm.hexagon.A2.addh.l16.sat.ll(i32, i32) #1
564 declare i32 @llvm.hexagon.A2.addh.l16.sat.hl(i32, i32) #1
565 declare i32 @llvm.hexagon.A2.addh.h16.ll(i32, i32) #1
566 declare i32 @llvm.hexagon.A2.addh.h16.lh(i32, i32) #1
567 declare i32 @llvm.hexagon.A2.addh.h16.hl(i32, i32) #1
568 declare i32 @llvm.hexagon.A2.addh.h16.hh(i32, i32) #1
569 declare i32 @llvm.hexagon.A2.addh.h16.sat.ll(i32, i32) #1
570 declare i32 @llvm.hexagon.A2.addh.h16.sat.lh(i32, i32) #1
571 declare i32 @llvm.hexagon.A2.addh.h16.sat.hl(i32, i32) #1
572 declare i32 @llvm.hexagon.A2.addh.h16.sat.hh(i32, i32) #1
573 declare i32 @llvm.hexagon.A2.subh.l16.ll(i32, i32) #1
574 declare i32 @llvm.hexagon.A2.subh.l16.hl(i32, i32) #1
575 declare i32 @llvm.hexagon.A2.subh.l16.sat.ll(i32, i32) #1
576 declare i32 @llvm.hexagon.A2.subh.l16.sat.hl(i32, i32) #1
577 declare i32 @llvm.hexagon.A2.subh.h16.ll(i32, i32) #1
578 declare i32 @llvm.hexagon.A2.subh.h16.lh(i32, i32) #1
579 declare i32 @llvm.hexagon.A2.subh.h16.hl(i32, i32) #1
580 declare i32 @llvm.hexagon.A2.subh.h16.hh(i32, i32) #1
581 declare i32 @llvm.hexagon.A2.subh.h16.sat.ll(i32, i32) #1
582 declare i32 @llvm.hexagon.A2.subh.h16.sat.lh(i32, i32) #1
583 declare i32 @llvm.hexagon.A2.subh.h16.sat.hl(i32, i32) #1
584 declare i32 @llvm.hexagon.A2.subh.h16.sat.hh(i32, i32) #1
585 declare i64 @llvm.hexagon.A4.bitsplit(i32, i32) #1
586 declare i32 @llvm.hexagon.A4.modwrapu(i32, i32) #1
587 declare i32 @llvm.hexagon.S2.parityp(i64, i64) #1
588 declare i32 @llvm.hexagon.S4.parity(i32, i32) #1
589 declare i32 @llvm.hexagon.S4.andi.asl.ri(i32, i32, i32) #1
590 declare i32 @llvm.hexagon.S4.ori.asl.ri(i32, i32, i32) #1
591 declare i32 @llvm.hexagon.S4.addi.asl.ri(i32, i32, i32) #1
592 declare i32 @llvm.hexagon.S4.subi.asl.ri(i32, i32, i32) #1
593 declare i32 @llvm.hexagon.S4.andi.lsr.ri(i32, i32, i32) #1
594 declare i32 @llvm.hexagon.S4.ori.lsr.ri(i32, i32, i32) #1
595 declare i32 @llvm.hexagon.S4.addi.lsr.ri(i32, i32, i32) #1
596 declare i32 @llvm.hexagon.S4.subi.lsr.ri(i32, i32, i32) #1
598 attributes #0 = { nounwind readnone "less-precise-fpmad"="false" "frame-pointer"="all" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
599 attributes #1 = { nounwind readnone }