Changeset View
Changeset View
Standalone View
Standalone View
clang/test/CodeGen/arm-neon-numeric-maxmin.c
Context not available. | |||||
#include <arm_neon.h> | #include <arm_neon.h> | ||||
// CHECK-LABEL: define <2 x float> @test_vmaxnm_f32(<2 x float> %a, <2 x float> %b) #0 { | // CHECK-LABEL: define noundef <2 x float> @test_vmaxnm_f32(<2 x float> noundef %a, <2 x float> noundef %b) #0 { | ||||
// CHECK: [[VMAXNM_V2_I:%.*]] = call <2 x float> @llvm.arm.neon.vmaxnm.v2f32(<2 x float> %a, <2 x float> %b) #3 | // CHECK: [[VMAXNM_V2_I:%.*]] = call <2 x float> @llvm.arm.neon.vmaxnm.v2f32(<2 x float> %a, <2 x float> %b) #3 | ||||
// CHECK: ret <2 x float> [[VMAXNM_V2_I]] | // CHECK: ret <2 x float> [[VMAXNM_V2_I]] | ||||
float32x2_t test_vmaxnm_f32(float32x2_t a, float32x2_t b) { | float32x2_t test_vmaxnm_f32(float32x2_t a, float32x2_t b) { | ||||
return vmaxnm_f32(a, b); | return vmaxnm_f32(a, b); | ||||
} | } | ||||
// CHECK-LABEL: define <4 x float> @test_vmaxnmq_f32(<4 x float> %a, <4 x float> %b) #1 { | // CHECK-LABEL: define noundef <4 x float> @test_vmaxnmq_f32(<4 x float> noundef %a, <4 x float> noundef %b) #1 { | ||||
// CHECK: [[VMAXNMQ_V2_I:%.*]] = call <4 x float> @llvm.arm.neon.vmaxnm.v4f32(<4 x float> %a, <4 x float> %b) #3 | // CHECK: [[VMAXNMQ_V2_I:%.*]] = call <4 x float> @llvm.arm.neon.vmaxnm.v4f32(<4 x float> %a, <4 x float> %b) #3 | ||||
// CHECK: ret <4 x float> [[VMAXNMQ_V2_I]] | // CHECK: ret <4 x float> [[VMAXNMQ_V2_I]] | ||||
float32x4_t test_vmaxnmq_f32(float32x4_t a, float32x4_t b) { | float32x4_t test_vmaxnmq_f32(float32x4_t a, float32x4_t b) { | ||||
return vmaxnmq_f32(a, b); | return vmaxnmq_f32(a, b); | ||||
} | } | ||||
// CHECK-LABEL: define <2 x float> @test_vminnm_f32(<2 x float> %a, <2 x float> %b) #0 { | // CHECK-LABEL: define noundef <2 x float> @test_vminnm_f32(<2 x float> noundef %a, <2 x float> noundef %b) #0 { | ||||
// CHECK: [[VMINNM_V2_I:%.*]] = call <2 x float> @llvm.arm.neon.vminnm.v2f32(<2 x float> %a, <2 x float> %b) #3 | // CHECK: [[VMINNM_V2_I:%.*]] = call <2 x float> @llvm.arm.neon.vminnm.v2f32(<2 x float> %a, <2 x float> %b) #3 | ||||
// CHECK: ret <2 x float> [[VMINNM_V2_I]] | // CHECK: ret <2 x float> [[VMINNM_V2_I]] | ||||
float32x2_t test_vminnm_f32(float32x2_t a, float32x2_t b) { | float32x2_t test_vminnm_f32(float32x2_t a, float32x2_t b) { | ||||
return vminnm_f32(a, b); | return vminnm_f32(a, b); | ||||
} | } | ||||
// CHECK-LABEL: define <4 x float> @test_vminnmq_f32(<4 x float> %a, <4 x float> %b) #1 { | // CHECK-LABEL: define noundef <4 x float> @test_vminnmq_f32(<4 x float> noundef %a, <4 x float> noundef %b) #1 { | ||||
// CHECK: [[VMINNMQ_V2_I:%.*]] = call <4 x float> @llvm.arm.neon.vminnm.v4f32(<4 x float> %a, <4 x float> %b) #3 | // CHECK: [[VMINNMQ_V2_I:%.*]] = call <4 x float> @llvm.arm.neon.vminnm.v4f32(<4 x float> %a, <4 x float> %b) #3 | ||||
// CHECK: ret <4 x float> [[VMINNMQ_V2_I]] | // CHECK: ret <4 x float> [[VMINNMQ_V2_I]] | ||||
float32x4_t test_vminnmq_f32(float32x4_t a, float32x4_t b) { | float32x4_t test_vminnmq_f32(float32x4_t a, float32x4_t b) { | ||||
Context not available. |