1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=arm -float-abi=soft -mattr=+vfp2 %s -o - | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Workerdefine float @f1(float %a) { 4*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f1: 5*9880d681SAndroid Build Coastguard Worker; CHECK: mov r0, #0 6*9880d681SAndroid Build Coastguard Worker ret float 0.000000e+00 7*9880d681SAndroid Build Coastguard Worker} 8*9880d681SAndroid Build Coastguard Worker 9*9880d681SAndroid Build Coastguard Workerdefine float @f2(float* %v, float %u) { 10*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f2: 11*9880d681SAndroid Build Coastguard Worker; CHECK: vldr{{.*}}[ 12*9880d681SAndroid Build Coastguard Worker %tmp = load float, float* %v ; <float> [#uses=1] 13*9880d681SAndroid Build Coastguard Worker %tmp1 = fadd float %tmp, %u ; <float> [#uses=1] 14*9880d681SAndroid Build Coastguard Worker ret float %tmp1 15*9880d681SAndroid Build Coastguard Worker} 16*9880d681SAndroid Build Coastguard Worker 17*9880d681SAndroid Build Coastguard Workerdefine float @f2offset(float* %v, float %u) { 18*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f2offset: 19*9880d681SAndroid Build Coastguard Worker; CHECK: vldr{{.*}}, #4] 20*9880d681SAndroid Build Coastguard Worker %addr = getelementptr float, float* %v, i32 1 21*9880d681SAndroid Build Coastguard Worker %tmp = load float, float* %addr 22*9880d681SAndroid Build Coastguard Worker %tmp1 = fadd float %tmp, %u 23*9880d681SAndroid Build Coastguard Worker ret float %tmp1 24*9880d681SAndroid Build Coastguard Worker} 25*9880d681SAndroid Build Coastguard Worker 26*9880d681SAndroid Build Coastguard Workerdefine float @f2noffset(float* %v, float %u) { 27*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f2noffset: 28*9880d681SAndroid Build Coastguard Worker; CHECK: vldr{{.*}}, #-4] 29*9880d681SAndroid Build Coastguard Worker %addr = getelementptr float, float* %v, i32 -1 30*9880d681SAndroid Build Coastguard Worker %tmp = load float, float* %addr 31*9880d681SAndroid Build Coastguard Worker %tmp1 = fadd float %tmp, %u 32*9880d681SAndroid Build Coastguard Worker ret float %tmp1 33*9880d681SAndroid Build Coastguard Worker} 34*9880d681SAndroid Build Coastguard Worker 35*9880d681SAndroid Build Coastguard Workerdefine void @f3(float %a, float %b, float* %v) { 36*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f3: 37*9880d681SAndroid Build Coastguard Worker; CHECK: vstr{{.*}}[ 38*9880d681SAndroid Build Coastguard Worker %tmp = fadd float %a, %b ; <float> [#uses=1] 39*9880d681SAndroid Build Coastguard Worker store float %tmp, float* %v 40*9880d681SAndroid Build Coastguard Worker ret void 41*9880d681SAndroid Build Coastguard Worker} 42