brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.8 KiB · 1697430 Raw
65 lines · c
1// RUN: %clang_cc1 -triple arm64-none-linux-gnu -target-feature +v8.5a\2// RUN: -flax-vector-conversions=none -disable-O0-optnone -emit-llvm -o - %s \3// RUN: | opt -S -passes=mem2reg \4// RUN: | FileCheck %s5 6// REQUIRES: aarch64-registered-target7 8#include <arm_acle.h>9 10// CHECK-LABEL: test_rint32zf11// CHECK:  [[RND:%.*]] =  call float @llvm.aarch64.frint32z.f32(float %a)12// CHECK:  ret float [[RND]]13float test_rint32zf(float a) {14  return __rint32zf(a);15}16 17// CHECK-LABEL: test_rint32z18// CHECK:  [[RND:%.*]] =  call double @llvm.aarch64.frint32z.f64(double %a)19// CHECK:  ret double [[RND]]20double test_rint32z(double a) {21  return __rint32z(a);22}23 24// CHECK-LABEL: test_rint64zf25// CHECK:  [[RND:%.*]] =  call float @llvm.aarch64.frint64z.f32(float %a)26// CHECK:  ret float [[RND]]27float test_rint64zf(float a) {28  return __rint64zf(a);29}30 31// CHECK-LABEL: test_rint64z32// CHECK:  [[RND:%.*]] =  call double @llvm.aarch64.frint64z.f64(double %a)33// CHECK:  ret double [[RND]]34double test_rint64z(double a) {35  return __rint64z(a);36}37 38// CHECK-LABEL: test_rint32xf39// CHECK:  [[RND:%.*]] =  call float @llvm.aarch64.frint32x.f32(float %a)40// CHECK:  ret float [[RND]]41float test_rint32xf(float a) {42  return __rint32xf(a);43}44 45// CHECK-LABEL: test_rint32x46// CHECK:  [[RND:%.*]] =  call double @llvm.aarch64.frint32x.f64(double %a)47// CHECK:  ret double [[RND]]48double test_rint32x(double a) {49  return __rint32x(a);50}51 52// CHECK-LABEL: test_rint64xf53// CHECK:  [[RND:%.*]] =  call float @llvm.aarch64.frint64x.f32(float %a)54// CHECK:  ret float [[RND]]55float test_rint64xf(float a) {56  return __rint64xf(a);57}58 59// CHECK-LABEL: test_rint64x60// CHECK:  [[RND:%.*]] =  call double @llvm.aarch64.frint64x.f64(double %a)61// CHECK:  ret double [[RND]]62double test_rint64x(double a) {63  return __rint64x(a);64}65