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) }