@@ -1020,6 +1020,19 @@ fn llvm_fixup_input<'ll, 'tcx>(
10201020 value
10211021}
10221022}
1023+ (
1024+ InlineAsmRegClass :: Arm (
1025+ ArmInlineAsmRegClass :: dreg
1026+ |ArmInlineAsmRegClass :: dreg_low8
1027+ |ArmInlineAsmRegClass :: dreg_low16
1028+ |ArmInlineAsmRegClass :: qreg
1029+ |ArmInlineAsmRegClass :: qreg_low4
1030+ |ArmInlineAsmRegClass :: qreg_low8,
1031+ ) ,
1032+ Abi :: Vector { element, count : count @( 4 |8 ) } ,
1033+ ) if element. primitive ( ) ==Primitive :: Float ( Float :: F16 ) =>{
1034+ bx. bitcast ( value, bx. type_vector ( bx. type_i16 ( ) , count) )
1035+ }
10231036( InlineAsmRegClass :: Mips ( MipsInlineAsmRegClass :: reg) , Abi :: Scalar ( s) ) =>{
10241037match s. primitive ( ) {
10251038// MIPS only supports register-length arithmetics.
@@ -1130,6 +1143,19 @@ fn llvm_fixup_output<'ll, 'tcx>(
11301143 value
11311144}
11321145}
1146+ (
1147+ InlineAsmRegClass :: Arm (
1148+ ArmInlineAsmRegClass :: dreg
1149+ |ArmInlineAsmRegClass :: dreg_low8
1150+ |ArmInlineAsmRegClass :: dreg_low16
1151+ |ArmInlineAsmRegClass :: qreg
1152+ |ArmInlineAsmRegClass :: qreg_low4
1153+ |ArmInlineAsmRegClass :: qreg_low8,
1154+ ) ,
1155+ Abi :: Vector { element, count : count @( 4 |8 ) } ,
1156+ ) if element. primitive ( ) ==Primitive :: Float ( Float :: F16 ) =>{
1157+ bx. bitcast ( value, bx. type_vector ( bx. type_f16 ( ) , count) )
1158+ }
11331159( InlineAsmRegClass :: Mips ( MipsInlineAsmRegClass :: reg) , Abi :: Scalar ( s) ) =>{
11341160match s. primitive ( ) {
11351161// MIPS only supports register-length arithmetics.
@@ -1233,6 +1259,19 @@ fn llvm_fixup_output_type<'ll, 'tcx>(
12331259 layout. llvm_type ( cx)
12341260}
12351261}
1262+ (
1263+ InlineAsmRegClass :: Arm (
1264+ ArmInlineAsmRegClass :: dreg
1265+ |ArmInlineAsmRegClass :: dreg_low8
1266+ |ArmInlineAsmRegClass :: dreg_low16
1267+ |ArmInlineAsmRegClass :: qreg
1268+ |ArmInlineAsmRegClass :: qreg_low4
1269+ |ArmInlineAsmRegClass :: qreg_low8,
1270+ ) ,
1271+ Abi :: Vector { element, count : count @( 4 |8 ) } ,
1272+ ) if element. primitive ( ) ==Primitive :: Float ( Float :: F16 ) =>{
1273+ cx. type_vector ( cx. type_i16 ( ) , count)
1274+ }
12361275( InlineAsmRegClass :: Mips ( MipsInlineAsmRegClass :: reg) , Abi :: Scalar ( s) ) =>{
12371276match s. primitive ( ) {
12381277// MIPS only supports register-length arithmetics.