1# RUN: llvm-mc -triple=hexagon -filetype=obj -mhvx %s | llvm-objdump --mhvx -d - | FileCheck %s 2 3# Verify that the .align directive emits the proper insn packets. 4 5{ r1 = sub(#1, r1) } 6# CHECK: 76414021 { r1 = sub(#1,r1) 7# CHECK-NEXT: 7f004000 nop 8# CHECK-NEXT: 7f004000 nop 9# CHECK-NEXT: 7f00c000 nop } 10 11.align 16 12{ r1 = sub(#1, r1) 13 r2 = sub(#1, r2) } 14# CHECK: 76414021 { r1 = sub(#1,r1) 15# CHECK-NEXT: 76424022 r2 = sub(#1,r2) 16# CHECK-NEXT: 7f004000 nop 17# CHECK-NEXT: 7f00c000 nop } 18 19.p2align 5 20{ r1 = sub(#1, r1) 21 r2 = sub(#1, r2) 22 r3 = sub(#1, r3) } 23# CHECK: 76434023 r3 = sub(#1,r3) 24# CHECK-NEXT: 7f00c000 nop } 25 26.align 16 27{ r1 = sub(#1, r1) 28 r2 = sub(#1, r2) 29 r3 = sub(#1, r3) 30 r4 = sub(#1, r4) } 31 32# Don't pad packets that can't be padded e.g. solo insts 33# CHECK: 9200c020 { r0 = vextract(v0,r0) } 34r0 = vextract(v0, r0) 35.align 128 36# CHECK: 76414021 { r1 = sub(#1,r1) 37# CHECK-NEXT: 7f00c000 nop } 38{ r1 = sub(#1, r1) } 39 40#CHECK: { r1 = sub(#1,r1) 41#CHECK: r2 = sub(#1,r2) 42#CHECK: r3 = sub(#1,r3) } 43.falign 44.align 8 45{ r1 = sub(#1, r1) 46 r2 = sub(#1, r2) 47 r3 = sub(#1, r3) } 48 49# CHECK: { immext(#0) 50# CHECK: r0 = sub(##1,r0) 51# CHECK: immext(#0) 52# CHECK: r1 = sub(##1,r1) } 53# CHECK: { nop 54# CHECK: nop 55# CHECK: nop } 56# CHECK: { r0 = sub(#1,r0) } 57{ r0 = sub (##1, r0) 58 r1 = sub (##1, r1) } 59.align 16 60{ r0 = sub (#1, r0) } 61