1 ; RUN: llc < %s -mtriple=armv7-apple-darwin | FileCheck %s 2 ; RUN: llc < %s -mtriple=armv7-unknown-linux-eabi | FileCheck %s 3 4 ; Check that when optimizing for size, a literal pool load is used 5 ; instead of the (potentially faster) movw/movt pair when loading 6 ; a large constant. 7 8 @x = global i32* inttoptr (i32 305419888 to i32*), align 4 9 10 define i32 @f() optsize { 11 ; CHECK: f: 12 ; CHECK: ldr r{{.}}, {{.?}}LCPI{{.}}_{{.}} 13 ; CHECK: ldr r{{.}}, [{{(pc, )?}}r{{.}}] 14 ; CHECK: ldr r{{.}}, [r{{.}}] 15 %1 = load i32** @x, align 4 16 %2 = load i32* %1 17 ret i32 %2 18 } 19 20 define i32 @g() { 21 ; CHECK: g: 22 ; CHECK: movw 23 ; CHECK: movt 24 %1 = load i32** @x, align 4 25 %2 = load i32* %1 26 ret i32 %2 27 } 28