brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.0 KiB · ae0a9b1 Raw
99 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple aarch64 -mattr=+fullfp16 -global-isel -global-isel-abort=1 -verify-machineinstrs %s -o - | FileCheck %s3define half @test_s16(half %a) #0 {4; CHECK-LABEL: test_s16:5; CHECK:       // %bb.0: // %entry6; CHECK-NEXT:    movi d1, #00000000000000007; CHECK-NEXT:    fmax h0, h0, h18; CHECK-NEXT:    ret9entry:10  %fcmp = fcmp olt half %a, 0.011  %sel = select i1 %fcmp, half 0.0, half %a12  ret half %sel13}14 15define float @test_s32(float %a) #0 {16; CHECK-LABEL: test_s32:17; CHECK:       // %bb.0: // %entry18; CHECK-NEXT:    movi d1, #000000000000000019; CHECK-NEXT:    fmax s0, s0, s120; CHECK-NEXT:    ret21entry:22  %fcmp = fcmp olt float %a, 0.023  %sel = select i1 %fcmp, float 0.0, float %a24  ret float %sel25}26 27define double @test_s64(double %a) #0 {28; CHECK-LABEL: test_s64:29; CHECK:       // %bb.0: // %entry30; CHECK-NEXT:    movi d1, #000000000000000031; CHECK-NEXT:    fmax d0, d0, d132; CHECK-NEXT:    ret33entry:34  %fcmp = fcmp olt double %a, 0.035  %sel = select i1 %fcmp, double 0.0, double %a36  ret double %sel37}38 39define <4 x half> @test_v4s16(<4 x half> %a) #0 {40; CHECK-LABEL: test_v4s16:41; CHECK:       // %bb.0: // %entry42; CHECK-NEXT:    movi v1.2d, #000000000000000043; CHECK-NEXT:    fmax v0.4h, v0.4h, v1.4h44; CHECK-NEXT:    ret45entry:46  %fcmp = fcmp olt <4 x half> %a, zeroinitializer47  %sel = select <4 x i1> %fcmp, <4 x half> zeroinitializer, <4 x half> %a48  ret <4 x half> %sel49}50 51define <8 x half> @test_v8s16(<8 x half> %a) #0 {52; CHECK-LABEL: test_v8s16:53; CHECK:       // %bb.0: // %entry54; CHECK-NEXT:    movi v1.2d, #000000000000000055; CHECK-NEXT:    fmax v0.8h, v0.8h, v1.8h56; CHECK-NEXT:    ret57entry:58  %fcmp = fcmp olt <8 x half> %a, zeroinitializer59  %sel = select <8 x i1> %fcmp, <8 x half> zeroinitializer, <8 x half> %a60  ret <8 x half> %sel61}62 63define <2 x float> @test_v2s32(<2 x float> %a) #0 {64; CHECK-LABEL: test_v2s32:65; CHECK:       // %bb.0: // %entry66; CHECK-NEXT:    movi v1.2d, #000000000000000067; CHECK-NEXT:    fmax v0.2s, v0.2s, v1.2s68; CHECK-NEXT:    ret69entry:70  %fcmp = fcmp olt <2 x float> %a, zeroinitializer71  %sel = select <2 x i1> %fcmp, <2 x float> zeroinitializer, <2 x float> %a72  ret <2 x float> %sel73}74 75define <4 x float> @test_v4s32(<4 x float> %a) #0 {76; CHECK-LABEL: test_v4s32:77; CHECK:       // %bb.0: // %entry78; CHECK-NEXT:    movi v1.2d, #000000000000000079; CHECK-NEXT:    fmax v0.4s, v0.4s, v1.4s80; CHECK-NEXT:    ret81entry:82  %fcmp = fcmp olt <4 x float> %a, zeroinitializer83  %sel = select <4 x i1> %fcmp, <4 x float> zeroinitializer, <4 x float> %a84  ret <4 x float> %sel85}86 87define <2 x double> @test_v2s64(<2 x double> %a) #0 {88; CHECK-LABEL: test_v2s64:89; CHECK:       // %bb.0: // %entry90; CHECK-NEXT:    movi v1.2d, #000000000000000091; CHECK-NEXT:    fmax v0.2d, v0.2d, v1.2d92; CHECK-NEXT:    ret93entry:94  %fcmp = fcmp olt <2 x double> %a, zeroinitializer95  %sel = select <2 x i1> %fcmp, <2 x double> zeroinitializer, <2 x double> %a96  ret <2 x double> %sel97}98 99