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