llvm.org GIT mirror llvm / testing test / CodeGen / ARM / fpmem.ll
testing

Tree @testing (Download .tar.gz)

fpmem.ll @testing

27b1252
32bd5f4
6263f94
8b2b8a1
b935031
6263f94
32bd5f4
 
6263f94
8b2b8a1
ffc658b
7c9c6ed
ae3a0be
6263f94
32bd5f4
3f3a6f6
11ebe3d
8b2b8a1
ffc658b
198d8ba
7c9c6ed
11ebe3d
 
 
 
 
8b2b8a1
ffc658b
198d8ba
7c9c6ed
11ebe3d
 
 
 
6263f94
8b2b8a1
ffc658b
ae3a0be
6263f94
 
3f3a6f6
; RUN: llc -mtriple=arm -float-abi=soft -mattr=+vfp2 %s -o - | FileCheck %s

define float @f1(float %a) {
; CHECK-LABEL: f1:
; CHECK: mov r0, #0
        ret float 0.000000e+00
}

define float @f2(float* %v, float %u) {
; CHECK-LABEL: f2:
; CHECK: vldr{{.*}}[
        %tmp = load float, float* %v           ; <float> [#uses=1]
        %tmp1 = fadd float %tmp, %u              ; <float> [#uses=1]
        ret float %tmp1
}

define float @f2offset(float* %v, float %u) {
; CHECK-LABEL: f2offset:
; CHECK: vldr{{.*}}, #4]
        %addr = getelementptr float, float* %v, i32 1
        %tmp = load float, float* %addr
        %tmp1 = fadd float %tmp, %u
        ret float %tmp1
}

define float @f2noffset(float* %v, float %u) {
; CHECK-LABEL: f2noffset:
; CHECK: vldr{{.*}}, #-4]
        %addr = getelementptr float, float* %v, i32 -1
        %tmp = load float, float* %addr
        %tmp1 = fadd float %tmp, %u
        ret float %tmp1
}

define void @f3(float %a, float %b, float* %v) {
; CHECK-LABEL: f3:
; CHECK: vstr{{.*}}[
        %tmp = fadd float %a, %b         ; <float> [#uses=1]
        store float %tmp, float* %v
        ret void
}