xref: /minix3/external/bsd/llvm/dist/clang/test/CodeGen/arm-neon-numeric-maxmin.c (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1*0a6a1f1dSLionel Sambuc // RUN: %clang_cc1 -triple thumbv8-linux-gnueabihf -target-cpu cortex-a57 -ffreestanding -O1 -emit-llvm %s -o - | FileCheck %s
2*0a6a1f1dSLionel Sambuc 
3*0a6a1f1dSLionel Sambuc #include <arm_neon.h>
4*0a6a1f1dSLionel Sambuc 
test_vmaxnm_f32(float32x2_t a,float32x2_t b)5*0a6a1f1dSLionel Sambuc float32x2_t test_vmaxnm_f32(float32x2_t a, float32x2_t b) {
6*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmaxnm_f32
7*0a6a1f1dSLionel Sambuc   // CHECK: call <2 x float> @llvm.arm.neon.vmaxnm.v2f32(<2 x float> %a, <2 x float> %b)
8*0a6a1f1dSLionel Sambuc   return vmaxnm_f32(a, b);
9*0a6a1f1dSLionel Sambuc }
10*0a6a1f1dSLionel Sambuc 
test_vmaxnmq_f32(float32x4_t a,float32x4_t b)11*0a6a1f1dSLionel Sambuc float32x4_t test_vmaxnmq_f32(float32x4_t a, float32x4_t b) {
12*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmaxnmq_f32
13*0a6a1f1dSLionel Sambuc   // CHECK: call <4 x float> @llvm.arm.neon.vmaxnm.v4f32(<4 x float> %a, <4 x float> %b)
14*0a6a1f1dSLionel Sambuc   return vmaxnmq_f32(a, b);
15*0a6a1f1dSLionel Sambuc }
16*0a6a1f1dSLionel Sambuc 
test_vminnm_f32(float32x2_t a,float32x2_t b)17*0a6a1f1dSLionel Sambuc float32x2_t test_vminnm_f32(float32x2_t a, float32x2_t b) {
18*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vminnm_f32
19*0a6a1f1dSLionel Sambuc   // CHECK: call <2 x float> @llvm.arm.neon.vminnm.v2f32(<2 x float> %a, <2 x float> %b)
20*0a6a1f1dSLionel Sambuc   return vminnm_f32(a, b);
21*0a6a1f1dSLionel Sambuc }
22*0a6a1f1dSLionel Sambuc 
test_vminnmq_f32(float32x4_t a,float32x4_t b)23*0a6a1f1dSLionel Sambuc float32x4_t test_vminnmq_f32(float32x4_t a, float32x4_t b) {
24*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vminnmq_f32
25*0a6a1f1dSLionel Sambuc   // CHECK: call <4 x float> @llvm.arm.neon.vminnm.v4f32(<4 x float> %a, <4 x float> %b)
26*0a6a1f1dSLionel Sambuc   return vminnmq_f32(a, b);
27*0a6a1f1dSLionel Sambuc }
28