Skip to content
Commit 85f28409 authored by Daniel Trujillo's avatar Daniel Trujillo Committed by Roger Ferrer
Browse files

Squashed to prevent conflicts in rebase because of existing changes in InsertVSETVLI.cpp

Implement parser/encoder and printer

Update the error message now printed in the invalid tests

Initial implementation of bfloat

Prevent use of 'this' and fix the comparison to include the alternative format bit

Continue the implementation of bfloat16. Stuck at the bitcast conversion from bf16 to i16

Promote bf16 to f32 when the target doesn't support it

This is modeled after the half-precision fp support. Two new nodes are
introduced for casting from and to bf16. Since casting from bf16 is a
simple operation I opted to always directly lower it to integer
arithmetic. The other way round is more complicated if you want to
preserve IEEE semantics, so it's handled by a new __truncsfbf2
compiler-rt builtin.

This is of course very bare bones, but sufficient to get a semi-softened
fadd on x86.

Possible future improvements:
 - Targets with bf16 conversion instructions can now make fp_to_bf16 legal
 - The software conversion to bf16 can be replaced by a trivial
   implementation under fast math.

Differential Revision: https://reviews.llvm.org/D126953

Implement a missing function after cherry-picking, and cleanup lowerSTORE

Fix can't legalize result type

Implement tests with b16 in vsetvli and fix an error with vfnmadd

Implement the alternative b16 format in EPI InstrInfo, and simplify a bit the management of widened type info

Delete X86 and PowerPC tests that don't pass now
parent 1bc258a3
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment