Add custom legalization for floating point constants.
Use the simplest expansion which materializes the bits of the floating point constant as an integer and then bit-casts to the floating point type. In the future, we may want to use constant pools instead. Either way, we need custom legalization. Also add a legalize_monomorphic() function to the Python targetISA class which permits the configuration of a default legalization action for monomorphic instructions, just like legalize_type() does for polymorphic instructions.
This commit is contained in:
@@ -52,3 +52,19 @@ ebb0(v1: i32):
|
||||
; check: $new:
|
||||
; nextln: return
|
||||
}
|
||||
|
||||
function %f32const() -> f32 {
|
||||
ebb0:
|
||||
v1 = f32const 0x1.0p1
|
||||
; check: $(tmp=$V) = iconst.i32
|
||||
; check: $v1 = bitcast.f32 $tmp
|
||||
return v1
|
||||
}
|
||||
|
||||
function %f64const() -> f64 {
|
||||
ebb0:
|
||||
v1 = f64const 0x1.0p1
|
||||
; check: $(tmp=$V) = iconst.i64
|
||||
; check: $v1 = bitcast.f64 $tmp
|
||||
return v1
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user