brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.1 KiB · e294424 Raw
66 lines · plain
1; RUN: llc -mtriple=aarch64-linux-gnu                                                  -verify-machineinstrs < %s | FileCheck %s2; RUN: llc -mtriple=aarch64-apple-darwin -code-model=large                             -verify-machineinstrs < %s | FileCheck %s --check-prefixes=LARGE3; RUN: llc -mtriple=aarch64    -code-model=tiny                              -verify-machineinstrs < %s | FileCheck %s4; RUN: llc -mtriple=aarch64-linux-gnu -global-isel                           -verify-machineinstrs < %s | FileCheck %s5 6@varf32 = global float 0.07@varf64 = global double 0.08 9define void @check_float() {10; CHECK-LABEL: check_float:11 12  %val = load float, ptr @varf3213  %newval1 = fadd float %val, 8.514  store volatile float %newval1, ptr @varf3215; CHECK-DAG: fmov {{s[0-9]+}}, #8.516 17  %newval2 = fadd float %val, 128.018  store volatile float %newval2, ptr @varf3219; CHECK-DAG: movi [[REG:v[0-9s]+]].2s, #67, lsl #2420 21; CHECK: ret22  ret void23}24 25define void @check_double() {26; CHECK-LABEL: check_double:27 28  %val = load double, ptr @varf6429  %newval1 = fadd double %val, 8.530  store volatile double %newval1, ptr @varf6431; CHECK-DAG: fmov {{d[0-9]+}}, #8.532 33  %newval2 = fadd double %val, 128.034  store volatile double %newval2, ptr @varf6435; CHECK-DAG: mov [[X128:x[0-9]+]], #463870761619161088036; CHECK-DAG: fmov {{d[0-9]+}}, [[X128]]37 38; 64-bit ORR followed by MOVK.39; CHECK-DAG: mov  [[XFP0:x[0-9]+]], #108233175884440; CHECK-DAG: movk [[XFP0]], #64764, lsl #1641; CHECK-DAG: fmov {{d[0-9]+}}, [[XFP0]]42  %newval3 = fadd double %val, 0xFCFCFC00FC43  store volatile double %newval3, ptr @varf6444 45; CHECK: ret46  ret void47}48 49; CHECK-LABEL: check_float250; CHECK:       mov [[REG:w[0-9]+]], #405951; CHECK-NEXT:  movk [[REG]], #16457, lsl #1652; CHECK-NEXT:  fmov {{s[0-9]+}}, [[REG]]53define float @check_float2() {54  ret float 3.1415927410125732421875055}56 57; LARGE-LABEL: check_double258; LARGE:       mov [[REG:x[0-9]+]], #1154459; LARGE-NEXT:  movk [[REG]], #21572, lsl #1660; LARGE-NEXT:  movk [[REG]], #8699, lsl #3261; LARGE-NEXT:  movk [[REG]], #16393, lsl #4862; LARGE-NEXT:  fmov {{d[0-9]+}}, [[REG]]63define double @check_double2() {64  ret double 3.141592653589793115997963468544185161590576171875065}66