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