# RUN: llvm-mc -triple=hexagon -filetype=obj -mhvx %s | llvm-objdump --mattr=+hvx -d - | FileCheck %s # Verify that the .align directive emits the proper insn packets. { r1 = sub(#1, r1) } # CHECK: 76414021 { r1 = sub(#1,r1) # CHECK-NEXT: 7f004000 nop # CHECK-NEXT: 7f004000 nop # CHECK-NEXT: 7f00c000 nop } .align 16 { r1 = sub(#1, r1) r2 = sub(#1, r2) } # CHECK: 76414021 { r1 = sub(#1,r1) # CHECK-NEXT: 76424022 r2 = sub(#1,r2) # CHECK-NEXT: 7f004000 nop # CHECK-NEXT: 7f00c000 nop } .p2align 5 { r1 = sub(#1, r1) r2 = sub(#1, r2) r3 = sub(#1, r3) } # CHECK: 76434023 r3 = sub(#1,r3) # CHECK-NEXT: 7f00c000 nop } .align 16 { r1 = sub(#1, r1) r2 = sub(#1, r2) r3 = sub(#1, r3) r4 = sub(#1, r4) } # Don't pad packets that can't be padded e.g. solo insts # CHECK: 9200c020 { r0 = vextract(v0,r0) } r0 = vextract(v0, r0) .align 128 # CHECK: 76414021 { r1 = sub(#1,r1) # CHECK-NEXT: 7f00c000 nop } { r1 = sub(#1, r1) } #CHECK: { r1 = sub(#1,r1) #CHECK: r2 = sub(#1,r2) #CHECK: r3 = sub(#1,r3) } .falign .align 8 { r1 = sub(#1, r1) r2 = sub(#1, r2) r3 = sub(#1, r3) } # CHECK: { immext(#0) # CHECK: r0 = sub(##1,r0) # CHECK: immext(#0) # CHECK: r1 = sub(##1,r1) } # CHECK: { nop # CHECK: nop # CHECK: nop } # CHECK: { r0 = sub(#1,r0) } { r0 = sub (##1, r0) r1 = sub (##1, r1) } .align 16 { r0 = sub (#1, r0) }