1176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines// RUN: %clang_cc1 -triple thumbv8-linux-gnueabihf -target-cpu cortex-a57 -ffreestanding -O1 -emit-llvm %s -o - | FileCheck %s 2176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines 3176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines#include <arm_neon.h> 4176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines 5176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesfloat32x2_t test_vmaxnm_f32(float32x2_t a, float32x2_t b) { 6176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines // CHECK-LABEL: test_vmaxnm_f32 7176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines // CHECK: call <2 x float> @llvm.arm.neon.vmaxnm.v2f32(<2 x float> %a, <2 x float> %b) 8176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines return vmaxnm_f32(a, b); 9176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines} 10176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines 11176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesfloat32x4_t test_vmaxnmq_f32(float32x4_t a, float32x4_t b) { 12176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines // CHECK-LABEL: test_vmaxnmq_f32 13176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines // CHECK: call <4 x float> @llvm.arm.neon.vmaxnm.v4f32(<4 x float> %a, <4 x float> %b) 14176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines return vmaxnmq_f32(a, b); 15176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines} 16176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines 17176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesfloat32x2_t test_vminnm_f32(float32x2_t a, float32x2_t b) { 18176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines // CHECK-LABEL: test_vminnm_f32 19176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines // CHECK: call <2 x float> @llvm.arm.neon.vminnm.v2f32(<2 x float> %a, <2 x float> %b) 20176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines return vminnm_f32(a, b); 21176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines} 22176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines 23176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesfloat32x4_t test_vminnmq_f32(float32x4_t a, float32x4_t b) { 24176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines // CHECK-LABEL: test_vminnmq_f32 25176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines // CHECK: call <4 x float> @llvm.arm.neon.vminnm.v4f32(<4 x float> %a, <4 x float> %b) 26176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines return vminnmq_f32(a, b); 27176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines} 28