87 lines · plain
1; RUN: llc -verify-machineinstrs -mtriple=powerpc-unknown-linux-gnu < %s | FileCheck %s2 3declare float @fmaxf(float, float)4declare double @fmax(double, double)5declare ppc_fp128 @fmaxl(ppc_fp128, ppc_fp128)6declare float @llvm.maxnum.f32(float, float)7declare double @llvm.maxnum.f64(double, double)8declare ppc_fp128 @llvm.maxnum.ppcf128(ppc_fp128, ppc_fp128)9 10declare <2 x float> @llvm.maxnum.v2f32(<2 x float>, <2 x float>)11declare <4 x float> @llvm.maxnum.v4f32(<4 x float>, <4 x float>)12declare <8 x float> @llvm.maxnum.v8f32(<8 x float>, <8 x float>)13 14; CHECK-LABEL: @test_fmaxf15; CHECK: bl fmaxf16define float @test_fmaxf(float %x, float %y) {17 %z = call float @fmaxf(float %x, float %y) readnone18 ret float %z19}20 21; CHECK-LABEL: @test_fmax22; CHECK: bl fmax23define double @test_fmax(double %x, double %y) {24 %z = call double @fmax(double %x, double %y) readnone25 ret double %z26}27 28; CHECK-LABEL: @test_fmaxl29; CHECK: bl fmaxl30define ppc_fp128 @test_fmaxl(ppc_fp128 %x, ppc_fp128 %y) {31 %z = call ppc_fp128 @fmaxl(ppc_fp128 %x, ppc_fp128 %y) readnone32 ret ppc_fp128 %z33}34 35; CHECK-LABEL: @test_intrinsic_fmaxf36; CHECK: bl fmaxf37define float @test_intrinsic_fmaxf(float %x, float %y) {38 %z = call float @llvm.maxnum.f32(float %x, float %y) readnone39 ret float %z40}41 42; CHECK-LABEL: @test_intrinsic_fmax43; CHECK: bl fmax44define double @test_intrinsic_fmax(double %x, double %y) {45 %z = call double @llvm.maxnum.f64(double %x, double %y) readnone46 ret double %z47}48 49; CHECK-LABEL: @test_intrinsic_fmaxl50; CHECK: bl fmaxl51define ppc_fp128 @test_intrinsic_fmaxl(ppc_fp128 %x, ppc_fp128 %y) {52 %z = call ppc_fp128 @llvm.maxnum.ppcf128(ppc_fp128 %x, ppc_fp128 %y) readnone53 ret ppc_fp128 %z54}55 56; CHECK-LABEL: @test_intrinsic_fmaxf_v2f3257; CHECK: bl fmaxf58; CHECK: bl fmaxf59define <2 x float> @test_intrinsic_fmaxf_v2f32(<2 x float> %x, <2 x float> %y) {60 %z = call <2 x float> @llvm.maxnum.v2f32(<2 x float> %x, <2 x float> %y) readnone61 ret <2 x float> %z62}63 64; CHECK-LABEL: @test_intrinsic_fmaxf_v4f3265; CHECK: bl fmaxf66; CHECK: bl fmaxf67; CHECK: bl fmaxf68; CHECK: bl fmaxf69define <4 x float> @test_intrinsic_fmaxf_v4f32(<4 x float> %x, <4 x float> %y) {70 %z = call <4 x float> @llvm.maxnum.v4f32(<4 x float> %x, <4 x float> %y) readnone71 ret <4 x float> %z72}73 74; CHECK-LABEL: @test_intrinsic_fmaxf_v8f3275; CHECK: bl fmaxf76; CHECK: bl fmaxf77; CHECK: bl fmaxf78; CHECK: bl fmaxf79; CHECK: bl fmaxf80; CHECK: bl fmaxf81; CHECK: bl fmaxf82; CHECK: bl fmaxf83define <8 x float> @test_intrinsic_fmaxf_v8f32(<8 x float> %x, <8 x float> %y) {84 %z = call <8 x float> @llvm.maxnum.v8f32(<8 x float> %x, <8 x float> %y) readnone85 ret <8 x float> %z86}87