1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=aarch64-none-linux-gnu -disable-fp-elim < %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker@var = global i32 0 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Workerdeclare void @bar() 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Workerdefine void @test_w29_reserved() { 7*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_w29_reserved: 8*9880d681SAndroid Build Coastguard Worker; CHECK: add x29, sp, #{{[0-9]+}} 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard Worker %val1 = load volatile i32, i32* @var 11*9880d681SAndroid Build Coastguard Worker %val2 = load volatile i32, i32* @var 12*9880d681SAndroid Build Coastguard Worker %val3 = load volatile i32, i32* @var 13*9880d681SAndroid Build Coastguard Worker %val4 = load volatile i32, i32* @var 14*9880d681SAndroid Build Coastguard Worker %val5 = load volatile i32, i32* @var 15*9880d681SAndroid Build Coastguard Worker %val6 = load volatile i32, i32* @var 16*9880d681SAndroid Build Coastguard Worker %val7 = load volatile i32, i32* @var 17*9880d681SAndroid Build Coastguard Worker %val8 = load volatile i32, i32* @var 18*9880d681SAndroid Build Coastguard Worker %val9 = load volatile i32, i32* @var 19*9880d681SAndroid Build Coastguard Worker 20*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: ldr w29, 21*9880d681SAndroid Build Coastguard Worker 22*9880d681SAndroid Build Coastguard Worker ; Call to prevent fp-elim that occurs regardless in leaf functions. 23*9880d681SAndroid Build Coastguard Worker call void @bar() 24*9880d681SAndroid Build Coastguard Worker 25*9880d681SAndroid Build Coastguard Worker store volatile i32 %val1, i32* @var 26*9880d681SAndroid Build Coastguard Worker store volatile i32 %val2, i32* @var 27*9880d681SAndroid Build Coastguard Worker store volatile i32 %val3, i32* @var 28*9880d681SAndroid Build Coastguard Worker store volatile i32 %val4, i32* @var 29*9880d681SAndroid Build Coastguard Worker store volatile i32 %val5, i32* @var 30*9880d681SAndroid Build Coastguard Worker store volatile i32 %val6, i32* @var 31*9880d681SAndroid Build Coastguard Worker store volatile i32 %val7, i32* @var 32*9880d681SAndroid Build Coastguard Worker store volatile i32 %val8, i32* @var 33*9880d681SAndroid Build Coastguard Worker store volatile i32 %val9, i32* @var 34*9880d681SAndroid Build Coastguard Worker 35*9880d681SAndroid Build Coastguard Worker ret void 36*9880d681SAndroid Build Coastguard Worker; CHECK: ret 37*9880d681SAndroid Build Coastguard Worker} 38