brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.0 KiB · ae55288 Raw
128 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 42; RUN: llc < %s -mtriple=arm64-linux-gnu | FileCheck %s3; RUN: llc < %s -mtriple=arm64-linux-gnu -global-isel | FileCheck %s4 5define float @test_fminv_v2f32(<2 x float> %in) {6; CHECK-LABEL: test_fminv_v2f32:7; CHECK:       // %bb.0:8; CHECK-NEXT:    fminp s0, v0.2s9; CHECK-NEXT:    ret10  %min = call float @llvm.aarch64.neon.fminv.f32.v2f32(<2 x float> %in)11  ret float %min12}13 14define float @test_fminv_v4f32(<4 x float> %in) {15; CHECK-LABEL: test_fminv_v4f32:16; CHECK:       // %bb.0:17; CHECK-NEXT:    fminv s0, v0.4s18; CHECK-NEXT:    ret19  %min = call float @llvm.aarch64.neon.fminv.f32.v4f32(<4 x float> %in)20  ret float %min21}22 23define double @test_fminv_v2f64(<2 x double> %in) {24; CHECK-LABEL: test_fminv_v2f64:25; CHECK:       // %bb.0:26; CHECK-NEXT:    fminp d0, v0.2d27; CHECK-NEXT:    ret28  %min = call double @llvm.aarch64.neon.fminv.f64.v2f64(<2 x double> %in)29  ret double %min30}31 32declare float @llvm.aarch64.neon.fminv.f32.v2f32(<2 x float>)33declare float @llvm.aarch64.neon.fminv.f32.v4f32(<4 x float>)34declare double @llvm.aarch64.neon.fminv.f64.v2f64(<2 x double>)35 36define float @test_fmaxv_v2f32(<2 x float> %in) {37; CHECK-LABEL: test_fmaxv_v2f32:38; CHECK:       // %bb.0:39; CHECK-NEXT:    fmaxp s0, v0.2s40; CHECK-NEXT:    ret41  %max = call float @llvm.aarch64.neon.fmaxv.f32.v2f32(<2 x float> %in)42  ret float %max43}44 45define float @test_fmaxv_v4f32(<4 x float> %in) {46; CHECK-LABEL: test_fmaxv_v4f32:47; CHECK:       // %bb.0:48; CHECK-NEXT:    fmaxv s0, v0.4s49; CHECK-NEXT:    ret50  %max = call float @llvm.aarch64.neon.fmaxv.f32.v4f32(<4 x float> %in)51  ret float %max52}53 54define double @test_fmaxv_v2f64(<2 x double> %in) {55; CHECK-LABEL: test_fmaxv_v2f64:56; CHECK:       // %bb.0:57; CHECK-NEXT:    fmaxp d0, v0.2d58; CHECK-NEXT:    ret59  %max = call double @llvm.aarch64.neon.fmaxv.f64.v2f64(<2 x double> %in)60  ret double %max61}62 63declare float @llvm.aarch64.neon.fmaxv.f32.v2f32(<2 x float>)64declare float @llvm.aarch64.neon.fmaxv.f32.v4f32(<4 x float>)65declare double @llvm.aarch64.neon.fmaxv.f64.v2f64(<2 x double>)66 67define float @test_fminnmv_v2f32(<2 x float> %in) {68; CHECK-LABEL: test_fminnmv_v2f32:69; CHECK:       // %bb.0:70; CHECK-NEXT:    fminnmp s0, v0.2s71; CHECK-NEXT:    ret72  %minnm = call float @llvm.aarch64.neon.fminnmv.f32.v2f32(<2 x float> %in)73  ret float %minnm74}75 76define float @test_fminnmv_v4f32(<4 x float> %in) {77; CHECK-LABEL: test_fminnmv_v4f32:78; CHECK:       // %bb.0:79; CHECK-NEXT:    fminnmv s0, v0.4s80; CHECK-NEXT:    ret81  %minnm = call float @llvm.aarch64.neon.fminnmv.f32.v4f32(<4 x float> %in)82  ret float %minnm83}84 85define double @test_fminnmv_v2f64(<2 x double> %in) {86; CHECK-LABEL: test_fminnmv_v2f64:87; CHECK:       // %bb.0:88; CHECK-NEXT:    fminnmp d0, v0.2d89; CHECK-NEXT:    ret90  %minnm = call double @llvm.aarch64.neon.fminnmv.f64.v2f64(<2 x double> %in)91  ret double %minnm92}93 94declare float @llvm.aarch64.neon.fminnmv.f32.v2f32(<2 x float>)95declare float @llvm.aarch64.neon.fminnmv.f32.v4f32(<4 x float>)96declare double @llvm.aarch64.neon.fminnmv.f64.v2f64(<2 x double>)97 98define float @test_fmaxnmv_v2f32(<2 x float> %in) {99; CHECK-LABEL: test_fmaxnmv_v2f32:100; CHECK:       // %bb.0:101; CHECK-NEXT:    fmaxnmp s0, v0.2s102; CHECK-NEXT:    ret103  %maxnm = call float @llvm.aarch64.neon.fmaxnmv.f32.v2f32(<2 x float> %in)104  ret float %maxnm105}106 107define float @test_fmaxnmv_v4f32(<4 x float> %in) {108; CHECK-LABEL: test_fmaxnmv_v4f32:109; CHECK:       // %bb.0:110; CHECK-NEXT:    fmaxnmv s0, v0.4s111; CHECK-NEXT:    ret112  %maxnm = call float @llvm.aarch64.neon.fmaxnmv.f32.v4f32(<4 x float> %in)113  ret float %maxnm114}115 116define double @test_fmaxnmv_v2f64(<2 x double> %in) {117; CHECK-LABEL: test_fmaxnmv_v2f64:118; CHECK:       // %bb.0:119; CHECK-NEXT:    fmaxnmp d0, v0.2d120; CHECK-NEXT:    ret121  %maxnm = call double @llvm.aarch64.neon.fmaxnmv.f64.v2f64(<2 x double> %in)122  ret double %maxnm123}124 125declare float @llvm.aarch64.neon.fmaxnmv.f32.v2f32(<2 x float>)126declare float @llvm.aarch64.neon.fmaxnmv.f32.v4f32(<4 x float>)127declare double @llvm.aarch64.neon.fmaxnmv.f64.v2f64(<2 x double>)128