1*e63455d5SPeter Smith// RUN: llvm-mc %s --triple=arm-linux-gnueabihf -filetype=obj | llvm-objdump --no-show-raw-insn --triple=armv7 -d - | FileCheck %s 2*e63455d5SPeter Smith 3*e63455d5SPeter Smith// Check that the architectural nop is only produced for subtargets that 4*e63455d5SPeter Smith// support it. This includes nop padding for alignment. 5*e63455d5SPeter Smith .syntax unified 6*e63455d5SPeter Smith .arch armv6 7*e63455d5SPeter Smithfoo: 8*e63455d5SPeter Smith mov r1, r0 9*e63455d5SPeter Smith nop 10*e63455d5SPeter Smith .p2align 4 11*e63455d5SPeter Smith bx lr 12*e63455d5SPeter Smith 13*e63455d5SPeter Smith .arch armv7-a 14*e63455d5SPeter Smithbar: 15*e63455d5SPeter Smith mov r1, r0 16*e63455d5SPeter Smith nop 17*e63455d5SPeter Smith .p2align 4 18*e63455d5SPeter Smith bx lr 19*e63455d5SPeter Smith 20*e63455d5SPeter Smith .arch armv4t 21*e63455d5SPeter Smithbaz: 22*e63455d5SPeter Smith mov r1, r0 23*e63455d5SPeter Smith nop 24*e63455d5SPeter Smith .p2align 4 25*e63455d5SPeter Smith bx lr 26*e63455d5SPeter Smith 27*e63455d5SPeter Smith// CHECK: 00000000 <foo>: 28*e63455d5SPeter Smith// CHECK-NEXT: 0: mov r1, r0 29*e63455d5SPeter Smith// CHECK-NEXT: 4: mov r0, r0 30*e63455d5SPeter Smith// CHECK-NEXT: 8: mov r0, r0 31*e63455d5SPeter Smith// CHECK-NEXT: c: mov r0, r0 32*e63455d5SPeter Smith// CHECK-NEXT: 10: bx lr 33*e63455d5SPeter Smith 34*e63455d5SPeter Smith// CHECK: 00000014 <bar>: 35*e63455d5SPeter Smith// CHECK-NEXT: 14: mov r1, r0 36*e63455d5SPeter Smith// CHECK-NEXT: 18: nop 37*e63455d5SPeter Smith// CHECK-NEXT: 1c: nop 38*e63455d5SPeter Smith// CHECK-NEXT: 20: bx lr 39*e63455d5SPeter Smith 40*e63455d5SPeter Smith// CHECK: 00000024 <baz>: 41*e63455d5SPeter Smith// CHECK-NEXT: 24: mov r1, r0 42*e63455d5SPeter Smith// CHECK-NEXT: 28: mov r0, r0 43*e63455d5SPeter Smith// CHECK-NEXT: 2c: mov r0, r0 44*e63455d5SPeter Smith// CHECK-NEXT: 30: bx lr 45