brintos

brintos / llvm-project-archived public Read only

0
0
Text · 14.0 KiB · 5f7e1e6 Raw
204 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 52; RUN: llc < %s -mtriple=arm -mattr=+vfp4d16sp,+fullfp16,-bf16 -stop-after=finalize-isel | FileCheck %s --check-prefixes=CHECK-NOBF163 4; Check that the output instructions have the same fast math flags as the input5; fadd, even when bf16 is legalized to f32.6; FIXME: We should also test with +bf16, but it currently fails in instruction7; selection.8 9define bfloat @normal_fadd(bfloat %x, bfloat %y) {10  ; CHECK-NOBF16-LABEL: name: normal_fadd11  ; CHECK-NOBF16: bb.0.entry:12  ; CHECK-NOBF16-NEXT:   liveins: $r0, $r113  ; CHECK-NOBF16-NEXT: {{  $}}14  ; CHECK-NOBF16-NEXT:   [[COPY:%[0-9]+]]:gpr = COPY $r115  ; CHECK-NOBF16-NEXT:   [[COPY1:%[0-9]+]]:gpr = COPY $r016  ; CHECK-NOBF16-NEXT:   [[MOVsi:%[0-9]+]]:gpr = MOVsi [[COPY]], 130, 14 /* CC::al */, $noreg, $noreg17  ; CHECK-NOBF16-NEXT:   [[VMOVSR:%[0-9]+]]:spr = VMOVSR killed [[MOVsi]], 14 /* CC::al */, $noreg18  ; CHECK-NOBF16-NEXT:   [[MOVsi1:%[0-9]+]]:gpr = MOVsi [[COPY1]], 130, 14 /* CC::al */, $noreg, $noreg19  ; CHECK-NOBF16-NEXT:   [[VMOVSR1:%[0-9]+]]:spr = VMOVSR killed [[MOVsi1]], 14 /* CC::al */, $noreg20  ; CHECK-NOBF16-NEXT:   [[VADDS:%[0-9]+]]:spr = nofpexcept VADDS killed [[VMOVSR1]], killed [[VMOVSR]], 14 /* CC::al */, $noreg, implicit $fpscr21  ; CHECK-NOBF16-NEXT:   [[VMOVRS:%[0-9]+]]:gpr = VMOVRS killed [[VADDS]], 14 /* CC::al */, $noreg22  ; CHECK-NOBF16-NEXT:   ADJCALLSTACKDOWN 0, 0, 14 /* CC::al */, $noreg, implicit-def dead $sp, implicit $sp23  ; CHECK-NOBF16-NEXT:   $r0 = COPY [[VMOVRS]]24  ; CHECK-NOBF16-NEXT:   BL &__truncsfbf2, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit $r0, implicit-def $sp, implicit-def $r025  ; CHECK-NOBF16-NEXT:   ADJCALLSTACKUP 0, -1, 14 /* CC::al */, $noreg, implicit-def dead $sp, implicit $sp26  ; CHECK-NOBF16-NEXT:   [[COPY2:%[0-9]+]]:rgpr = COPY $r027  ; CHECK-NOBF16-NEXT:   [[VMOVHR:%[0-9]+]]:hpr = VMOVHR [[COPY2]], 14, $noreg28  ; CHECK-NOBF16-NEXT:   [[VMOVRH:%[0-9]+]]:rgpr = VMOVRH killed [[VMOVHR]], 14, $noreg29  ; CHECK-NOBF16-NEXT:   $r0 = COPY [[VMOVRH]]30  ; CHECK-NOBF16-NEXT:   MOVPCLR 14 /* CC::al */, $noreg, implicit $r031entry:32  %add = fadd bfloat %x, %y33  ret bfloat %add34}35 36define bfloat @fast_fadd(bfloat %x, bfloat %y) {37  ; CHECK-NOBF16-LABEL: name: fast_fadd38  ; CHECK-NOBF16: bb.0.entry:39  ; CHECK-NOBF16-NEXT:   liveins: $r0, $r140  ; CHECK-NOBF16-NEXT: {{  $}}41  ; CHECK-NOBF16-NEXT:   [[COPY:%[0-9]+]]:gpr = COPY $r142  ; CHECK-NOBF16-NEXT:   [[COPY1:%[0-9]+]]:gpr = COPY $r043  ; CHECK-NOBF16-NEXT:   [[MOVsi:%[0-9]+]]:gpr = MOVsi [[COPY]], 130, 14 /* CC::al */, $noreg, $noreg44  ; CHECK-NOBF16-NEXT:   [[VMOVSR:%[0-9]+]]:spr = VMOVSR killed [[MOVsi]], 14 /* CC::al */, $noreg45  ; CHECK-NOBF16-NEXT:   [[MOVsi1:%[0-9]+]]:gpr = MOVsi [[COPY1]], 130, 14 /* CC::al */, $noreg, $noreg46  ; CHECK-NOBF16-NEXT:   [[VMOVSR1:%[0-9]+]]:spr = VMOVSR killed [[MOVsi1]], 14 /* CC::al */, $noreg47  ; CHECK-NOBF16-NEXT:   [[VADDS:%[0-9]+]]:spr = nnan ninf nsz arcp contract afn reassoc nofpexcept VADDS killed [[VMOVSR1]], killed [[VMOVSR]], 14 /* CC::al */, $noreg, implicit $fpscr48  ; CHECK-NOBF16-NEXT:   [[VMOVRS:%[0-9]+]]:gpr = VMOVRS killed [[VADDS]], 14 /* CC::al */, $noreg49  ; CHECK-NOBF16-NEXT:   ADJCALLSTACKDOWN 0, 0, 14 /* CC::al */, $noreg, implicit-def dead $sp, implicit $sp50  ; CHECK-NOBF16-NEXT:   $r0 = COPY [[VMOVRS]]51  ; CHECK-NOBF16-NEXT:   BL &__truncsfbf2, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit $r0, implicit-def $sp, implicit-def $r052  ; CHECK-NOBF16-NEXT:   ADJCALLSTACKUP 0, -1, 14 /* CC::al */, $noreg, implicit-def dead $sp, implicit $sp53  ; CHECK-NOBF16-NEXT:   [[COPY2:%[0-9]+]]:rgpr = COPY $r054  ; CHECK-NOBF16-NEXT:   [[VMOVHR:%[0-9]+]]:hpr = VMOVHR [[COPY2]], 14, $noreg55  ; CHECK-NOBF16-NEXT:   [[VMOVRH:%[0-9]+]]:rgpr = VMOVRH killed [[VMOVHR]], 14, $noreg56  ; CHECK-NOBF16-NEXT:   $r0 = COPY [[VMOVRH]]57  ; CHECK-NOBF16-NEXT:   MOVPCLR 14 /* CC::al */, $noreg, implicit $r058entry:59  %add = fadd fast bfloat %x, %y60  ret bfloat %add61}62 63define bfloat @ninf_fadd(bfloat %x, bfloat %y) {64  ; CHECK-NOBF16-LABEL: name: ninf_fadd65  ; CHECK-NOBF16: bb.0.entry:66  ; CHECK-NOBF16-NEXT:   liveins: $r0, $r167  ; CHECK-NOBF16-NEXT: {{  $}}68  ; CHECK-NOBF16-NEXT:   [[COPY:%[0-9]+]]:gpr = COPY $r169  ; CHECK-NOBF16-NEXT:   [[COPY1:%[0-9]+]]:gpr = COPY $r070  ; CHECK-NOBF16-NEXT:   [[MOVsi:%[0-9]+]]:gpr = MOVsi [[COPY]], 130, 14 /* CC::al */, $noreg, $noreg71  ; CHECK-NOBF16-NEXT:   [[VMOVSR:%[0-9]+]]:spr = VMOVSR killed [[MOVsi]], 14 /* CC::al */, $noreg72  ; CHECK-NOBF16-NEXT:   [[MOVsi1:%[0-9]+]]:gpr = MOVsi [[COPY1]], 130, 14 /* CC::al */, $noreg, $noreg73  ; CHECK-NOBF16-NEXT:   [[VMOVSR1:%[0-9]+]]:spr = VMOVSR killed [[MOVsi1]], 14 /* CC::al */, $noreg74  ; CHECK-NOBF16-NEXT:   [[VADDS:%[0-9]+]]:spr = ninf nofpexcept VADDS killed [[VMOVSR1]], killed [[VMOVSR]], 14 /* CC::al */, $noreg, implicit $fpscr75  ; CHECK-NOBF16-NEXT:   [[VMOVRS:%[0-9]+]]:gpr = VMOVRS killed [[VADDS]], 14 /* CC::al */, $noreg76  ; CHECK-NOBF16-NEXT:   ADJCALLSTACKDOWN 0, 0, 14 /* CC::al */, $noreg, implicit-def dead $sp, implicit $sp77  ; CHECK-NOBF16-NEXT:   $r0 = COPY [[VMOVRS]]78  ; CHECK-NOBF16-NEXT:   BL &__truncsfbf2, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit $r0, implicit-def $sp, implicit-def $r079  ; CHECK-NOBF16-NEXT:   ADJCALLSTACKUP 0, -1, 14 /* CC::al */, $noreg, implicit-def dead $sp, implicit $sp80  ; CHECK-NOBF16-NEXT:   [[COPY2:%[0-9]+]]:rgpr = COPY $r081  ; CHECK-NOBF16-NEXT:   [[VMOVHR:%[0-9]+]]:hpr = VMOVHR [[COPY2]], 14, $noreg82  ; CHECK-NOBF16-NEXT:   [[VMOVRH:%[0-9]+]]:rgpr = VMOVRH killed [[VMOVHR]], 14, $noreg83  ; CHECK-NOBF16-NEXT:   $r0 = COPY [[VMOVRH]]84  ; CHECK-NOBF16-NEXT:   MOVPCLR 14 /* CC::al */, $noreg, implicit $r085entry:86  %add = fadd ninf bfloat %x, %y87  ret bfloat %add88}89 90; Check that when we have the right fast math flags the converts in between the91; two fadds are removed.92 93define bfloat @normal_fadd_sequence(bfloat %x, bfloat %y, bfloat %z) {94  ; CHECK-NOBF16-LABEL: name: normal_fadd_sequence95  ; CHECK-NOBF16: bb.0.entry:96  ; CHECK-NOBF16-NEXT:   liveins: $r0, $r1, $r297  ; CHECK-NOBF16-NEXT: {{  $}}98  ; CHECK-NOBF16-NEXT:   [[COPY:%[0-9]+]]:gpr = COPY $r299  ; CHECK-NOBF16-NEXT:   [[COPY1:%[0-9]+]]:gpr = COPY $r1100  ; CHECK-NOBF16-NEXT:   [[COPY2:%[0-9]+]]:gpr = COPY $r0101  ; CHECK-NOBF16-NEXT:   [[MOVsi:%[0-9]+]]:gpr = MOVsi [[COPY1]], 130, 14 /* CC::al */, $noreg, $noreg102  ; CHECK-NOBF16-NEXT:   [[VMOVSR:%[0-9]+]]:spr = VMOVSR killed [[MOVsi]], 14 /* CC::al */, $noreg103  ; CHECK-NOBF16-NEXT:   [[MOVsi1:%[0-9]+]]:gpr = MOVsi [[COPY2]], 130, 14 /* CC::al */, $noreg, $noreg104  ; CHECK-NOBF16-NEXT:   [[VMOVSR1:%[0-9]+]]:spr = VMOVSR killed [[MOVsi1]], 14 /* CC::al */, $noreg105  ; CHECK-NOBF16-NEXT:   [[VADDS:%[0-9]+]]:spr = nofpexcept VADDS killed [[VMOVSR1]], killed [[VMOVSR]], 14 /* CC::al */, $noreg, implicit $fpscr106  ; CHECK-NOBF16-NEXT:   [[VMOVRS:%[0-9]+]]:gpr = VMOVRS killed [[VADDS]], 14 /* CC::al */, $noreg107  ; CHECK-NOBF16-NEXT:   ADJCALLSTACKDOWN 0, 0, 14 /* CC::al */, $noreg, implicit-def dead $sp, implicit $sp108  ; CHECK-NOBF16-NEXT:   $r0 = COPY [[VMOVRS]]109  ; CHECK-NOBF16-NEXT:   BL &__truncsfbf2, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit $r0, implicit-def $sp, implicit-def $r0110  ; CHECK-NOBF16-NEXT:   ADJCALLSTACKUP 0, -1, 14 /* CC::al */, $noreg, implicit-def dead $sp, implicit $sp111  ; CHECK-NOBF16-NEXT:   [[COPY3:%[0-9]+]]:gpr = COPY $r0112  ; CHECK-NOBF16-NEXT:   [[MOVsi2:%[0-9]+]]:gpr = MOVsi [[COPY]], 130, 14 /* CC::al */, $noreg, $noreg113  ; CHECK-NOBF16-NEXT:   [[VMOVSR2:%[0-9]+]]:spr = VMOVSR killed [[MOVsi2]], 14 /* CC::al */, $noreg114  ; CHECK-NOBF16-NEXT:   [[MOVsi3:%[0-9]+]]:gpr = MOVsi [[COPY3]], 130, 14 /* CC::al */, $noreg, $noreg115  ; CHECK-NOBF16-NEXT:   [[VMOVSR3:%[0-9]+]]:spr = VMOVSR killed [[MOVsi3]], 14 /* CC::al */, $noreg116  ; CHECK-NOBF16-NEXT:   [[VADDS1:%[0-9]+]]:spr = nofpexcept VADDS killed [[VMOVSR3]], killed [[VMOVSR2]], 14 /* CC::al */, $noreg, implicit $fpscr117  ; CHECK-NOBF16-NEXT:   [[VMOVRS1:%[0-9]+]]:gpr = VMOVRS killed [[VADDS1]], 14 /* CC::al */, $noreg118  ; CHECK-NOBF16-NEXT:   ADJCALLSTACKDOWN 0, 0, 14 /* CC::al */, $noreg, implicit-def dead $sp, implicit $sp119  ; CHECK-NOBF16-NEXT:   $r0 = COPY [[VMOVRS1]]120  ; CHECK-NOBF16-NEXT:   BL &__truncsfbf2, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit $r0, implicit-def $sp, implicit-def $r0121  ; CHECK-NOBF16-NEXT:   ADJCALLSTACKUP 0, -1, 14 /* CC::al */, $noreg, implicit-def dead $sp, implicit $sp122  ; CHECK-NOBF16-NEXT:   [[COPY4:%[0-9]+]]:rgpr = COPY $r0123  ; CHECK-NOBF16-NEXT:   [[VMOVHR:%[0-9]+]]:hpr = VMOVHR [[COPY4]], 14, $noreg124  ; CHECK-NOBF16-NEXT:   [[VMOVRH:%[0-9]+]]:rgpr = VMOVRH killed [[VMOVHR]], 14, $noreg125  ; CHECK-NOBF16-NEXT:   $r0 = COPY [[VMOVRH]]126  ; CHECK-NOBF16-NEXT:   MOVPCLR 14 /* CC::al */, $noreg, implicit $r0127entry:128  %add1 = fadd bfloat %x, %y129  %add2 = fadd bfloat %add1, %z130  ret bfloat %add2131}132 133define bfloat @nnan_ninf_contract_fadd_sequence(bfloat %x, bfloat %y, bfloat %z) {134  ; CHECK-NOBF16-LABEL: name: nnan_ninf_contract_fadd_sequence135  ; CHECK-NOBF16: bb.0.entry:136  ; CHECK-NOBF16-NEXT:   liveins: $r0, $r1, $r2137  ; CHECK-NOBF16-NEXT: {{  $}}138  ; CHECK-NOBF16-NEXT:   [[COPY:%[0-9]+]]:gpr = COPY $r2139  ; CHECK-NOBF16-NEXT:   [[COPY1:%[0-9]+]]:gpr = COPY $r1140  ; CHECK-NOBF16-NEXT:   [[COPY2:%[0-9]+]]:gpr = COPY $r0141  ; CHECK-NOBF16-NEXT:   [[MOVsi:%[0-9]+]]:gpr = MOVsi [[COPY1]], 130, 14 /* CC::al */, $noreg, $noreg142  ; CHECK-NOBF16-NEXT:   [[VMOVSR:%[0-9]+]]:spr = VMOVSR killed [[MOVsi]], 14 /* CC::al */, $noreg143  ; CHECK-NOBF16-NEXT:   [[MOVsi1:%[0-9]+]]:gpr = MOVsi [[COPY2]], 130, 14 /* CC::al */, $noreg, $noreg144  ; CHECK-NOBF16-NEXT:   [[VMOVSR1:%[0-9]+]]:spr = VMOVSR killed [[MOVsi1]], 14 /* CC::al */, $noreg145  ; CHECK-NOBF16-NEXT:   [[VADDS:%[0-9]+]]:spr = nnan ninf contract nofpexcept VADDS killed [[VMOVSR1]], killed [[VMOVSR]], 14 /* CC::al */, $noreg, implicit $fpscr146  ; CHECK-NOBF16-NEXT:   [[MOVsi2:%[0-9]+]]:gpr = MOVsi [[COPY]], 130, 14 /* CC::al */, $noreg, $noreg147  ; CHECK-NOBF16-NEXT:   [[VMOVSR2:%[0-9]+]]:spr = VMOVSR killed [[MOVsi2]], 14 /* CC::al */, $noreg148  ; CHECK-NOBF16-NEXT:   [[VADDS1:%[0-9]+]]:spr = nnan ninf contract nofpexcept VADDS killed [[VADDS]], killed [[VMOVSR2]], 14 /* CC::al */, $noreg, implicit $fpscr149  ; CHECK-NOBF16-NEXT:   [[VMOVRS:%[0-9]+]]:gpr = VMOVRS killed [[VADDS1]], 14 /* CC::al */, $noreg150  ; CHECK-NOBF16-NEXT:   ADJCALLSTACKDOWN 0, 0, 14 /* CC::al */, $noreg, implicit-def dead $sp, implicit $sp151  ; CHECK-NOBF16-NEXT:   $r0 = COPY [[VMOVRS]]152  ; CHECK-NOBF16-NEXT:   BL &__truncsfbf2, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit $r0, implicit-def $sp, implicit-def $r0153  ; CHECK-NOBF16-NEXT:   ADJCALLSTACKUP 0, -1, 14 /* CC::al */, $noreg, implicit-def dead $sp, implicit $sp154  ; CHECK-NOBF16-NEXT:   [[COPY3:%[0-9]+]]:rgpr = COPY $r0155  ; CHECK-NOBF16-NEXT:   [[VMOVHR:%[0-9]+]]:hpr = VMOVHR [[COPY3]], 14, $noreg156  ; CHECK-NOBF16-NEXT:   [[VMOVRH:%[0-9]+]]:rgpr = VMOVRH killed [[VMOVHR]], 14, $noreg157  ; CHECK-NOBF16-NEXT:   $r0 = COPY [[VMOVRH]]158  ; CHECK-NOBF16-NEXT:   MOVPCLR 14 /* CC::al */, $noreg, implicit $r0159entry:160  %add1 = fadd nnan ninf contract bfloat %x, %y161  %add2 = fadd nnan ninf contract bfloat %add1, %z162  ret bfloat %add2163}164 165define bfloat @ninf_fadd_sequence(bfloat %x, bfloat %y, bfloat %z) {166  ; CHECK-NOBF16-LABEL: name: ninf_fadd_sequence167  ; CHECK-NOBF16: bb.0.entry:168  ; CHECK-NOBF16-NEXT:   liveins: $r0, $r1, $r2169  ; CHECK-NOBF16-NEXT: {{  $}}170  ; CHECK-NOBF16-NEXT:   [[COPY:%[0-9]+]]:gpr = COPY $r2171  ; CHECK-NOBF16-NEXT:   [[COPY1:%[0-9]+]]:gpr = COPY $r1172  ; CHECK-NOBF16-NEXT:   [[COPY2:%[0-9]+]]:gpr = COPY $r0173  ; CHECK-NOBF16-NEXT:   [[MOVsi:%[0-9]+]]:gpr = MOVsi [[COPY1]], 130, 14 /* CC::al */, $noreg, $noreg174  ; CHECK-NOBF16-NEXT:   [[VMOVSR:%[0-9]+]]:spr = VMOVSR killed [[MOVsi]], 14 /* CC::al */, $noreg175  ; CHECK-NOBF16-NEXT:   [[MOVsi1:%[0-9]+]]:gpr = MOVsi [[COPY2]], 130, 14 /* CC::al */, $noreg, $noreg176  ; CHECK-NOBF16-NEXT:   [[VMOVSR1:%[0-9]+]]:spr = VMOVSR killed [[MOVsi1]], 14 /* CC::al */, $noreg177  ; CHECK-NOBF16-NEXT:   [[VADDS:%[0-9]+]]:spr = ninf nofpexcept VADDS killed [[VMOVSR1]], killed [[VMOVSR]], 14 /* CC::al */, $noreg, implicit $fpscr178  ; CHECK-NOBF16-NEXT:   [[VMOVRS:%[0-9]+]]:gpr = VMOVRS killed [[VADDS]], 14 /* CC::al */, $noreg179  ; CHECK-NOBF16-NEXT:   ADJCALLSTACKDOWN 0, 0, 14 /* CC::al */, $noreg, implicit-def dead $sp, implicit $sp180  ; CHECK-NOBF16-NEXT:   $r0 = COPY [[VMOVRS]]181  ; CHECK-NOBF16-NEXT:   BL &__truncsfbf2, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit $r0, implicit-def $sp, implicit-def $r0182  ; CHECK-NOBF16-NEXT:   ADJCALLSTACKUP 0, -1, 14 /* CC::al */, $noreg, implicit-def dead $sp, implicit $sp183  ; CHECK-NOBF16-NEXT:   [[COPY3:%[0-9]+]]:gpr = COPY $r0184  ; CHECK-NOBF16-NEXT:   [[MOVsi2:%[0-9]+]]:gpr = MOVsi [[COPY]], 130, 14 /* CC::al */, $noreg, $noreg185  ; CHECK-NOBF16-NEXT:   [[VMOVSR2:%[0-9]+]]:spr = VMOVSR killed [[MOVsi2]], 14 /* CC::al */, $noreg186  ; CHECK-NOBF16-NEXT:   [[MOVsi3:%[0-9]+]]:gpr = MOVsi [[COPY3]], 130, 14 /* CC::al */, $noreg, $noreg187  ; CHECK-NOBF16-NEXT:   [[VMOVSR3:%[0-9]+]]:spr = VMOVSR killed [[MOVsi3]], 14 /* CC::al */, $noreg188  ; CHECK-NOBF16-NEXT:   [[VADDS1:%[0-9]+]]:spr = ninf nofpexcept VADDS killed [[VMOVSR3]], killed [[VMOVSR2]], 14 /* CC::al */, $noreg, implicit $fpscr189  ; CHECK-NOBF16-NEXT:   [[VMOVRS1:%[0-9]+]]:gpr = VMOVRS killed [[VADDS1]], 14 /* CC::al */, $noreg190  ; CHECK-NOBF16-NEXT:   ADJCALLSTACKDOWN 0, 0, 14 /* CC::al */, $noreg, implicit-def dead $sp, implicit $sp191  ; CHECK-NOBF16-NEXT:   $r0 = COPY [[VMOVRS1]]192  ; CHECK-NOBF16-NEXT:   BL &__truncsfbf2, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit $r0, implicit-def $sp, implicit-def $r0193  ; CHECK-NOBF16-NEXT:   ADJCALLSTACKUP 0, -1, 14 /* CC::al */, $noreg, implicit-def dead $sp, implicit $sp194  ; CHECK-NOBF16-NEXT:   [[COPY4:%[0-9]+]]:rgpr = COPY $r0195  ; CHECK-NOBF16-NEXT:   [[VMOVHR:%[0-9]+]]:hpr = VMOVHR [[COPY4]], 14, $noreg196  ; CHECK-NOBF16-NEXT:   [[VMOVRH:%[0-9]+]]:rgpr = VMOVRH killed [[VMOVHR]], 14, $noreg197  ; CHECK-NOBF16-NEXT:   $r0 = COPY [[VMOVRH]]198  ; CHECK-NOBF16-NEXT:   MOVPCLR 14 /* CC::al */, $noreg, implicit $r0199entry:200  %add1 = fadd ninf bfloat %x, %y201  %add2 = fadd ninf bfloat %add1, %z202  ret bfloat %add2203}204