Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / lld / test / ELF / linkerscript / avr5.test
blob5e52c945bae869d07cfb1ca2ccbd8a31b02e8a53
1 # REQUIRES: avr
3 ## Test ld.lld supports OUTPUT_FORMAT/OUTPUT_ARCH for AVR output.
5 # RUN: split-file %s %t
6 # RUN: llvm-mc -filetype=obj -triple=avr -mcpu=atmega328 %t/avr5.s -o %t/avr5.o
7 # RUN: ld.lld %t/avr5.o -T %t/avr5.lds -o %t/avr5a.out
8 # RUN: llvm-objdump --no-print-imm-hex --mcpu=atmega328 -d %t/avr5a.out | FileCheck %s --check-prefix=RELOC
9 # RUN: ld.lld %t/avr5.o -Ttext=0 -Tdata=0x800 -e _start -o %t/avr5b.out
10 # RUN: llvm-objdump --no-print-imm-hex --mcpu=atmega328 -d %t/avr5b.out | FileCheck %s --check-prefix=RELOC
12 # RELOC:      ldi  r24, 2
13 # RELOC-NEXT: ldi  r25, 8
15 # RUN: llvm-readelf --headers %t/avr5a.out | FileCheck %s --check-prefix=HEAD
16 # RUN: llvm-readelf --headers %t/avr5b.out | FileCheck %s --check-prefix=HEAD
18 # HEAD: Atmel AVR 8-bit microcontroller
19 # HEAD: 0x85, EF_AVR_ARCH_AVR5, relaxable
21 # HEAD:      Name     Type      Address   Off     Size
22 # HEAD-NEXT:          NULL      00000000  000000  000000
23 # HEAD-NEXT: .text    PROGBITS  00000000  001000  000006
24 # HEAD-NEXT: .data    PROGBITS  00000800  001800  000004
26 #--- avr5.s
27         .text
28         .globl _start
29         .p2align 1
30 _start:
31         ldi   r24, lo8(def) ; Load lower byte of variable def 16-bit address to r24
32         ldi   r25, hi8(def) ; Load higher byte of variable def 16-bit address to r25
33         rjmp  _start
35         .section .data
36         .type abc, @object
37         .type def, @object
38         .globl abc
39         .globl def
40 abc:
41         .short 100
42 def:
43         .short 200
45 #--- avr5.lds
46 OUTPUT_FORMAT("elf32-avr", "elf32-avr", "elf32-avr")
47 OUTPUT_ARCH(avr:5)
48 ENTRY(_start)
49 SECTIONS {
50         .text 0x000: { *(.text*) }
51         .data 0x800: { *(.data*) }