xref: /llvm-project/clang/test/CodeGen/LoongArch/builtin-flt-approximate.c (revision fcb8342a219ada8ec641790a4c8a9f969d7d64ee)
1*fcb8342aSAmi-zhang // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --version 4
2*fcb8342aSAmi-zhang // RUN: %clang_cc1 -triple loongarch32 -target-feature +f -target-feature +frecipe -O2 -emit-llvm %s -o - | FileCheck %s
3*fcb8342aSAmi-zhang // RUN: %clang_cc1 -triple loongarch64 -target-feature +f -target-feature +frecipe -O2 -emit-llvm %s -o - | FileCheck %s
4*fcb8342aSAmi-zhang 
5*fcb8342aSAmi-zhang #include <larchintrin.h>
6*fcb8342aSAmi-zhang 
7*fcb8342aSAmi-zhang // CHECK-LABEL: @frecipe_s
8*fcb8342aSAmi-zhang // CHECK-NEXT:  entry:
9*fcb8342aSAmi-zhang // CHECK-NEXT:    [[TMP0:%.*]] = tail call float @llvm.loongarch.frecipe.s(float [[A:%.*]])
10*fcb8342aSAmi-zhang // CHECK-NEXT:    ret float [[TMP0]]
11*fcb8342aSAmi-zhang //
frecipe_s(float _1)12*fcb8342aSAmi-zhang float frecipe_s (float _1)
13*fcb8342aSAmi-zhang {
14*fcb8342aSAmi-zhang   return __builtin_loongarch_frecipe_s (_1);
15*fcb8342aSAmi-zhang }
16*fcb8342aSAmi-zhang 
17*fcb8342aSAmi-zhang // CHECK-LABEL: @frsqrte_s
18*fcb8342aSAmi-zhang // CHECK-NEXT:  entry:
19*fcb8342aSAmi-zhang // CHECK-NEXT:    [[TMP0:%.*]] = tail call float @llvm.loongarch.frsqrte.s(float [[A:%.*]])
20*fcb8342aSAmi-zhang // CHECK-NEXT:    ret float [[TMP0]]
21*fcb8342aSAmi-zhang //
frsqrte_s(float _1)22*fcb8342aSAmi-zhang float frsqrte_s (float _1)
23*fcb8342aSAmi-zhang {
24*fcb8342aSAmi-zhang   return __builtin_loongarch_frsqrte_s (_1);
25*fcb8342aSAmi-zhang }
26*fcb8342aSAmi-zhang 
27*fcb8342aSAmi-zhang // CHECK-LABEL: @frecipe_s_alia
28*fcb8342aSAmi-zhang // CHECK-NEXT:  entry:
29*fcb8342aSAmi-zhang // CHECK-NEXT:    [[TMP0:%.*]] = tail call float @llvm.loongarch.frecipe.s(float [[A:%.*]])
30*fcb8342aSAmi-zhang // CHECK-NEXT:    ret float [[TMP0]]
31*fcb8342aSAmi-zhang //
frecipe_s_alia(float _1)32*fcb8342aSAmi-zhang float frecipe_s_alia (float _1)
33*fcb8342aSAmi-zhang {
34*fcb8342aSAmi-zhang   return __frecipe_s (_1);
35*fcb8342aSAmi-zhang }
36*fcb8342aSAmi-zhang 
37*fcb8342aSAmi-zhang // CHECK-LABEL: @frsqrte_s_alia
38*fcb8342aSAmi-zhang // CHECK-NEXT:  entry:
39*fcb8342aSAmi-zhang // CHECK-NEXT:    [[TMP0:%.*]] = tail call float @llvm.loongarch.frsqrte.s(float [[A:%.*]])
40*fcb8342aSAmi-zhang // CHECK-NEXT:    ret float [[TMP0]]
41*fcb8342aSAmi-zhang //
frsqrte_s_alia(float _1)42*fcb8342aSAmi-zhang float frsqrte_s_alia (float _1)
43*fcb8342aSAmi-zhang {
44*fcb8342aSAmi-zhang   return __frsqrte_s (_1);
45*fcb8342aSAmi-zhang }
46