blob: e519dde33a0db02c07166ed36255408391b1114e [file] [log] [blame]
Bob Wilsonedf04672010-11-17 21:25:27 +00001; RUN: llc < %s -march=thumb | FileCheck %s
2; Test the ARMGlobalMerge pass. Use -march=thumb because it has a small
3; value for the maximum offset (127).
4
5; A local array that exceeds the maximum offset should not be merged.
6; CHECK: g0:
7@g0 = internal global [32 x i32] [ i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 1, i32 2 ]
8
Bob Wilson72831dc2010-11-17 21:25:33 +00009; CHECK: _MergedGlobals:
Bob Wilsonedf04672010-11-17 21:25:27 +000010@g1 = internal global i32 1
11@g2 = internal global i32 2
Bob Wilson619a3722010-11-17 21:25:36 +000012
13; Make sure that the complete variable fits within the range of the maximum
14; offset. Having the starting offset in range is not sufficient.
15; When this works properly, @g3 is placed in a separate chunk of merged globals.
16; CHECK: _MergedGlobals1:
17@g3 = internal global [30 x i32] [ i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10 ]