From 27951cf8f8fdefbfd6b51e6dbc956f29de553d64 Mon Sep 17 00:00:00 2001 From: Sanjay Patel Date: Sat, 5 Dec 2015 20:27:10 +0000 Subject: [PATCH] Add vector fmaxnum tests that correspond to the existing fminnum tests Note: missing 256-bit tests for min and max should also be added. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254862 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/CodeGen/X86/fmaxnum.ll | 47 +++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/test/CodeGen/X86/fmaxnum.ll b/test/CodeGen/X86/fmaxnum.ll index 23678c46dba..17bd3b9b45b 100644 --- a/test/CodeGen/X86/fmaxnum.ll +++ b/test/CodeGen/X86/fmaxnum.ll @@ -7,6 +7,12 @@ declare float @llvm.maxnum.f32(float, float) declare double @llvm.maxnum.f64(double, double) declare x86_fp80 @llvm.maxnum.f80(x86_fp80, x86_fp80) +declare <2 x float> @llvm.maxnum.v2f32(<2 x float>, <2 x float>) +declare <4 x float> @llvm.maxnum.v4f32(<4 x float>, <4 x float>) +declare <2 x double> @llvm.maxnum.v2f64(<2 x double>, <2 x double>) +declare <8 x double> @llvm.maxnum.v8f64(<8 x double>, <8 x double>) + + ; CHECK-LABEL: @test_fmaxf ; CHECK: calll fmaxf define float @test_fmaxf(float %x, float %y) { @@ -48,3 +54,44 @@ define x86_fp80 @test_intrinsic_fmaxl(x86_fp80 %x, x86_fp80 %y) { %z = call x86_fp80 @llvm.maxnum.f80(x86_fp80 %x, x86_fp80 %y) readnone ret x86_fp80 %z } + +; CHECK-LABEL: @test_intrinsic_fmax_v2f32 +; CHECK: calll fmaxf +; CHECK: calll fmaxf +define <2 x float> @test_intrinsic_fmax_v2f32(<2 x float> %x, <2 x float> %y) { + %z = call <2 x float> @llvm.maxnum.v2f32(<2 x float> %x, <2 x float> %y) readnone + ret <2 x float> %z +} + +; CHECK-LABEL: @test_intrinsic_fmax_v4f32 +; CHECK: calll fmaxf +; CHECK: calll fmaxf +; CHECK: calll fmaxf +; CHECK: calll fmaxf +define <4 x float> @test_intrinsic_fmax_v4f32(<4 x float> %x, <4 x float> %y) { + %z = call <4 x float> @llvm.maxnum.v4f32(<4 x float> %x, <4 x float> %y) readnone + ret <4 x float> %z +} + +; CHECK-LABEL: @test_intrinsic_fmax_v2f64 +; CHECK: calll fmax +; CHECK: calll fmax +define <2 x double> @test_intrinsic_fmax_v2f64(<2 x double> %x, <2 x double> %y) { + %z = call <2 x double> @llvm.maxnum.v2f64(<2 x double> %x, <2 x double> %y) readnone + ret <2 x double> %z +} + +; CHECK-LABEL: @test_intrinsic_fmax_v8f64 +; CHECK: calll fmax +; CHECK: calll fmax +; CHECK: calll fmax +; CHECK: calll fmax +; CHECK: calll fmax +; CHECK: calll fmax +; CHECK: calll fmax +; CHECK: calll fmax +define <8 x double> @test_intrinsic_fmax_v8f64(<8 x double> %x, <8 x double> %y) { + %z = call <8 x double> @llvm.maxnum.v8f64(<8 x double> %x, <8 x double> %y) readnone + ret <8 x double> %z +} + -- 2.34.1