Krzysztof Parzyszek | 50b5493 | 2017-12-11 18:57:54 +0000 | [diff] [blame] | 1 | # RUN: llvm-mc -arch=hexagon -mcpu=hexagonv60 -mhvx -filetype=obj %s | llvm-objdump -arch=hexagon -mcpu=hexagonv60 -mhvx -d - | FileCheck %s |
Krzysztof Parzyszek | 19cc1fb | 2016-04-28 16:43:16 +0000 | [diff] [blame] | 2 | |
Krzysztof Parzyszek | 13fc4ae | 2016-05-09 18:22:07 +0000 | [diff] [blame] | 3 | .L0: |
| 4 | |
| 5 | # CHECK: 5c00c000 { if (p0) jump:nt |
| 6 | if (p0) jump .L0 |
| 7 | |
| 8 | # CHECK: 5cffe1fe { if (!p1) jump:nt |
| 9 | if (!p1) jump .L0 |
| 10 | |
| 11 | # CHECK: 5340c200 { if (p2) jumpr:nt |
| 12 | if (p2) jumpr r0 |
| 13 | |
| 14 | # CHECK: 5361c300 { if (!p3) jumpr:nt |
| 15 | if (!p3) jumpr r1 |
| 16 | |
Krzysztof Parzyszek | 7f4371b | 2017-02-10 15:33:13 +0000 | [diff] [blame] | 17 | # CHECK: 1c2eceee { v14 = vxor(v14,v14) } |
Krzysztof Parzyszek | 19cc1fb | 2016-04-28 16:43:16 +0000 | [diff] [blame] | 18 | v14 = #0 |
| 19 | |
Krzysztof Parzyszek | 7f4371b | 2017-02-10 15:33:13 +0000 | [diff] [blame] | 20 | # CHECK: 1c9edea0 { v1:0.w = vsub(v31:30.w,v31:30.w) } |
Krzysztof Parzyszek | 19cc1fb | 2016-04-28 16:43:16 +0000 | [diff] [blame] | 21 | v1:0 = #0 |
| 22 | |
| 23 | # CHECK: 1f42c3e0 { v1:0 = vcombine(v3,v2) } |
| 24 | v1:0 = v3:2 |
Krzysztof Parzyszek | a59d9016 | 2016-04-28 19:49:18 +0000 | [diff] [blame] | 25 | |
| 26 | # CHECK: 1f90cf00 { q0 = vcmp.eq(v15.b,v16.b) } |
| 27 | q0 = vcmp.eq(v15.ub, v16.ub) |
| 28 | |
| 29 | # CHECK: 1c92f101 { q1 &= vcmp.eq(v17.b,v18.b) } |
| 30 | q1 &= vcmp.eq(v17.ub, v18.ub) |
| 31 | |
| 32 | # CHECK: 1c94f342 { q2 |= vcmp.eq(v19.b,v20.b) } |
| 33 | q2 |= vcmp.eq(v19.ub, v20.ub) |
| 34 | |
| 35 | # CHECK: 1c96f583 { q3 ^= vcmp.eq(v21.b,v22.b) } |
| 36 | q3 ^= vcmp.eq(v21.ub, v22.ub) |
| 37 | |
| 38 | # CHECK: 1f81c004 { q0 = vcmp.eq(v0.h,v1.h) } |
| 39 | q0 = vcmp.eq(v0.uh, v1.uh) |
| 40 | |
| 41 | # CHECK: 1c83e205 { q1 &= vcmp.eq(v2.h,v3.h) } |
| 42 | q1 &= vcmp.eq(v2.uh, v3.uh) |
| 43 | |
| 44 | # CHECK: 1c85e446 { q2 |= vcmp.eq(v4.h,v5.h) } |
| 45 | q2 |= vcmp.eq(v4.uh, v5.uh) |
| 46 | |
| 47 | # CHECK: 1c87e687 { q3 ^= vcmp.eq(v6.h,v7.h) } |
| 48 | q3 ^= vcmp.eq(v6.uh, v7.uh) |
| 49 | |
| 50 | # CHECK: 1f89c808 { q0 = vcmp.eq(v8.w,v9.w) } |
| 51 | q0 = vcmp.eq(v8.uw, v9.uw) |
| 52 | |
| 53 | # CHECK: 1c8aea09 { q1 &= vcmp.eq(v10.w,v10.w) } |
| 54 | q1 &= vcmp.eq(v10.uw, v10.uw) |
| 55 | |
Krzysztof Parzyszek | 7f4371b | 2017-02-10 15:33:13 +0000 | [diff] [blame] | 56 | # CHECK: 1c8ceb4a { q2 |= vcmp.eq(v11.w,v12.w) } |
Krzysztof Parzyszek | a59d9016 | 2016-04-28 19:49:18 +0000 | [diff] [blame] | 57 | q2 |= vcmp.eq(v11.uw, v12.uw) |
| 58 | |
| 59 | # CHECK: 1c8eed8b { q3 ^= vcmp.eq(v13.w,v14.w) } |
| 60 | q3 ^= vcmp.eq(v13.uw, v14.uw) |
Krzysztof Parzyszek | 8cb434a | 2016-05-05 18:38:35 +0000 | [diff] [blame] | 61 | |
| 62 | # CHECK: 2800c00f { v15 = vmem(r0+#0) } |
| 63 | v15 = vmem(r0) |
| 64 | |
| 65 | # CHECK: 2841c010 { v16 = vmem(r1+#0):nt } |
| 66 | v16 = vmem(r1):nt |
| 67 | |
| 68 | # CHECK: 2822c011 { vmem(r2+#0) = v17 } |
| 69 | vmem(r2) = v17 |
| 70 | |
| 71 | # CHECK: 2863c012 { vmem(r3+#0):nt = v18 } |
| 72 | vmem(r3):nt = v18 |
| 73 | |
| 74 | # CHECK: 2884c013 { if (q0) vmem(r4+#0) = v19 } |
| 75 | if (q0) vmem(r4) = v19 |
| 76 | |
| 77 | # CHECK: 2885c834 { if (!q1) vmem(r5+#0) = v20 } |
| 78 | if (!q1) vmem(r5) = v20 |
| 79 | |
| 80 | # CHECK: 28c6d015 { if (q2) vmem(r6+#0):nt = v21 } |
| 81 | if (q2) vmem(r6):nt = v21 |
| 82 | |
| 83 | # CHECK: 28c7d836 { if (!q3) vmem(r7+#0):nt = v22 } |
| 84 | if (!q3) vmem(r7):nt = v22 |
| 85 | |
| 86 | # CHECK: 28a8c017 { if (p0) vmem(r8+#0) = v23 } |
| 87 | if (p0) vmem(r8) = v23 |
| 88 | |
| 89 | # CHECK: 28a9c838 { if (!p1) vmem(r9+#0) = v24 } |
| 90 | if (!p1) vmem(r9) = v24 |
| 91 | |
| 92 | # CHECK: 28ead019 { if (p2) vmem(r10+#0):nt = v25 } |
| 93 | if (p2) vmem(r10):nt = v25 |
| 94 | |
| 95 | # CHECK: 28ebd83a { if (!p3) vmem(r11+#0):nt = v26 } |
| 96 | if (!p3) vmem(r11):nt = v26 |
| 97 | |
| 98 | # CHECK: 282cc022 vmem(r12+#0) = v27.new |
| 99 | { |
| 100 | v27 = vxor(v28, v29) |
| 101 | vmem(r12) = v27.new |
| 102 | } |
| 103 | |
| 104 | # CHECK: 286dc022 vmem(r13+#0):nt = v30.new |
| 105 | { |
| 106 | v30 = vxor(v31, v0) |
| 107 | vmem(r13):nt = v30.new |
| 108 | } |
| 109 | |
| 110 | # CHECK: 280ec0e1 { v1 = vmemu(r14+#0) } |
| 111 | v1 = vmemu(r14) |
| 112 | |
| 113 | # CHECK: 282fc0e2 { vmemu(r15+#0) = v2 } |
| 114 | vmemu(r15) = v2 |
| 115 | |
| 116 | # CHECK: 28b0c0c3 { if (p0) vmemu(r16+#0) = v3 } |
| 117 | if (p0) vmemu(r16) = v3 |
| 118 | |
| 119 | # CHECK: 28b1c8e4 { if (!p1) vmemu(r17+#0) = v4 } |
| 120 | if (!p1) vmemu(r17) = v4 |
| 121 | |