1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00
llvm-mirror/test/CodeGen/ARM/elf-lcomm-align.ll
Ulrich Weigand d899cee68f Never use .lcomm on platforms where it does not accept an alignment
argument.  Instead, use a pair of .local and .comm directives.

This avoids spurious differences between binaries built by the
integrated assembler vs. those built by the external assembler,
since the external assembler may impose alignment requirements
on .lcomm symbols where the integrated assembler does not.

llvm-svn: 168704
2012-11-27 16:11:16 +00:00

16 lines
442 B
LLVM

; RUN: llc < %s -mtriple=arm-linux-gnueabi -O0 | FileCheck %s
; run with -O0 to avoid arm global merging.
@c = internal global i8 0, align 1
@x = internal global i32 0, align 4
; .lcomm doesn't support alignment, so we always use .local/.comm.
; CHECK: .local c
; CHECK-NEXT: .comm c,1,1
; CHECK: .local x
; CHECK-NEXT: .comm x,4,4
define i32 @foo() nounwind {
ret i32 sub (i32 ptrtoint (i8* @c to i32), i32 ptrtoint (i32* @x to i32))
}