[RISCV] Support f32/f64 libcalls for sin/cos/pow/log/log2/log10/exp/exp2
[llvm-project.git] / llvm / test / CodeGen / PowerPC / fp-strict-minmax.ll
blob7663708e6b4e92625ba27fd1465232979e66b9e8
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -verify-machineinstrs -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \
3 ; RUN:   < %s -mtriple=powerpc64-unknown-linux -mcpu=pwr8 | FileCheck %s
4 ; RUN: llc -verify-machineinstrs -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \
5 ; RUN:  < %s -mtriple=powerpc64le-unknown-linux -mcpu=pwr9 | FileCheck %s
7 declare <4 x float> @llvm.experimental.constrained.maxnum.v4f32(<4 x float>, <4 x float>, metadata)
8 declare <2 x double> @llvm.experimental.constrained.maxnum.v2f64(<2 x double>, <2 x double>, metadata)
9 declare <4 x float> @llvm.experimental.constrained.minnum.v4f32(<4 x float>, <4 x float>, metadata)
10 declare <2 x double> @llvm.experimental.constrained.minnum.v2f64(<2 x double>, <2 x double>, metadata)
12 define <4 x float> @fmaxnum_v4f32(<4 x float> %vf0, <4 x float> %vf1) #0 {
13 ; CHECK-LABEL: fmaxnum_v4f32:
14 ; CHECK:       # %bb.0:
15 ; CHECK-NEXT:    xvmaxsp v2, v2, v3
16 ; CHECK-NEXT:    blr
17   %res = call <4 x float> @llvm.experimental.constrained.maxnum.v4f32(
18                         <4 x float> %vf0, <4 x float> %vf1,
19                         metadata !"fpexcept.strict") #0
20   ret <4 x float> %res
23 define <2 x double> @fmaxnum_v2f64(<2 x double> %vf0, <2 x double> %vf1) #0 {
24 ; CHECK-LABEL: fmaxnum_v2f64:
25 ; CHECK:       # %bb.0:
26 ; CHECK-NEXT:    xvmaxdp v2, v2, v3
27 ; CHECK-NEXT:    blr
28   %res = call <2 x double> @llvm.experimental.constrained.maxnum.v2f64(
29                         <2 x double> %vf0, <2 x double> %vf1,
30                         metadata !"fpexcept.strict") #0
31   ret <2 x double> %res
35 define <4 x float> @fminnum_v4f32(<4 x float> %vf0, <4 x float> %vf1) #0 {
36 ; CHECK-LABEL: fminnum_v4f32:
37 ; CHECK:       # %bb.0:
38 ; CHECK-NEXT:    xvminsp v2, v2, v3
39 ; CHECK-NEXT:    blr
40   %res = call <4 x float> @llvm.experimental.constrained.minnum.v4f32(
41                         <4 x float> %vf0, <4 x float> %vf1,
42                         metadata !"fpexcept.strict") #0
43   ret <4 x float> %res
46 define <2 x double> @fminnum_v2f64(<2 x double> %vf0, <2 x double> %vf1) #0 {
47 ; CHECK-LABEL: fminnum_v2f64:
48 ; CHECK:       # %bb.0:
49 ; CHECK-NEXT:    xvmindp v2, v2, v3
50 ; CHECK-NEXT:    blr
51   %res = call <2 x double> @llvm.experimental.constrained.minnum.v2f64(
52                         <2 x double> %vf0, <2 x double> %vf1,
53                         metadata !"fpexcept.strict") #0
54   ret <2 x double> %res
57 attributes #0 = { strictfp }