Files
wasmtime/cranelift/filetests/filetests/isa/riscv64/fcvt-small.clif
Trevor Elliott f04decc4a1 Use capstone to validate precise-output tests (#5780)
Use the capstone library to disassemble precise-output tests, in addition to pretty-printing their vcode.
2023-02-15 16:35:10 -08:00

211 lines
3.7 KiB
Plaintext

test compile precise-output
set unwind_info=false
target riscv64
function u0:0(i8) -> f32 {
block0(v0: i8):
v1 = fcvt_from_uint.f32 v0
return v1
}
; VCode:
; block0:
; fcvt.s.lu fa0,a0
; ret
;
; Disassembled:
; block0: ; offset 0x0
; fcvt.s.lu fa0, a0
; ret
function u0:0(i8) -> f64 {
block0(v0: i8):
v1 = fcvt_from_uint.f64 v0
return v1
}
; VCode:
; block0:
; fcvt.d.lu fa0,a0
; ret
;
; Disassembled:
; block0: ; offset 0x0
; fcvt.d.lu fa0, a0
; ret
function u0:0(i16) -> f32 {
block0(v0: i16):
v1 = fcvt_from_uint.f32 v0
return v1
}
; VCode:
; block0:
; fcvt.s.lu fa0,a0
; ret
;
; Disassembled:
; block0: ; offset 0x0
; fcvt.s.lu fa0, a0
; ret
function u0:0(i16) -> f64 {
block0(v0: i16):
v1 = fcvt_from_uint.f64 v0
return v1
}
; VCode:
; block0:
; fcvt.d.lu fa0,a0
; ret
;
; Disassembled:
; block0: ; offset 0x0
; fcvt.d.lu fa0, a0
; ret
function u0:0(f32) -> i8 {
block0(v0: f32):
v1 = fcvt_to_uint.i8 v0
return v1
}
; VCode:
; block0:
; fcvt_to_uint.i8 a0,fa0##in_ty=f32 tmp=ft3
; ret
;
; Disassembled:
; block0: ; offset 0x0
; feq.s a0, fa0, fa0
; beqz a0, 0x40
; auipc t6, 0
; lwu t6, 0xc(t6)
; j 8
; .byte 0x00, 0x00, 0x80, 0xbf
; fmv.w.x ft3, t6
; fle.s a0, fa0, ft3
; beqz a0, 8
; .byte 0x00, 0x00, 0x00, 0x00 ; trap: int_ovf
; lui t6, 0x43800
; fmv.w.x ft3, t6
; fle.s a0, ft3, fa0
; beqz a0, 8
; .byte 0x00, 0x00, 0x00, 0x00 ; trap: int_ovf
; fcvt.wu.s a0, fa0, rtz
; j 8
; .byte 0x00, 0x00, 0x00, 0x00 ; trap: bad_toint
; ret
function u0:0(f64) -> i8 {
block0(v0: f64):
v1 = fcvt_to_uint.i8 v0
return v1
}
; VCode:
; block0:
; fcvt_to_uint.i8 a0,fa0##in_ty=f64 tmp=ft3
; ret
;
; Disassembled:
; block0: ; offset 0x0
; feq.d a0, fa0, fa0
; beqz a0, 0x54
; auipc t6, 0
; ld t6, 0xc(t6)
; j 0xc
; .byte 0x00, 0x00, 0x00, 0x00
; .byte 0x00, 0x00, 0xf0, 0xbf
; fmv.d.x ft3, t6
; fle.d a0, fa0, ft3
; beqz a0, 8
; .byte 0x00, 0x00, 0x00, 0x00 ; trap: int_ovf
; auipc t6, 0
; ld t6, 0xc(t6)
; j 0xc
; .byte 0x00, 0x00, 0x00, 0x00
; .byte 0x00, 0x00, 0x70, 0x40
; fmv.d.x ft3, t6
; fle.d a0, ft3, fa0
; beqz a0, 8
; .byte 0x00, 0x00, 0x00, 0x00 ; trap: int_ovf
; fcvt.wu.d a0, fa0, rtz
; j 8
; .byte 0x00, 0x00, 0x00, 0x00 ; trap: bad_toint
; ret
function u0:0(f32) -> i16 {
block0(v0: f32):
v1 = fcvt_to_uint.i16 v0
return v1
}
; VCode:
; block0:
; fcvt_to_uint.i16 a0,fa0##in_ty=f32 tmp=ft3
; ret
;
; Disassembled:
; block0: ; offset 0x0
; feq.s a0, fa0, fa0
; beqz a0, 0x40
; auipc t6, 0
; lwu t6, 0xc(t6)
; j 8
; .byte 0x00, 0x00, 0x80, 0xbf
; fmv.w.x ft3, t6
; fle.s a0, fa0, ft3
; beqz a0, 8
; .byte 0x00, 0x00, 0x00, 0x00 ; trap: int_ovf
; lui t6, 0x47800
; fmv.w.x ft3, t6
; fle.s a0, ft3, fa0
; beqz a0, 8
; .byte 0x00, 0x00, 0x00, 0x00 ; trap: int_ovf
; fcvt.wu.s a0, fa0, rtz
; j 8
; .byte 0x00, 0x00, 0x00, 0x00 ; trap: bad_toint
; ret
function u0:0(f64) -> i16 {
block0(v0: f64):
v1 = fcvt_to_uint.i16 v0
return v1
}
; VCode:
; block0:
; fcvt_to_uint.i16 a0,fa0##in_ty=f64 tmp=ft3
; ret
;
; Disassembled:
; block0: ; offset 0x0
; feq.d a0, fa0, fa0
; beqz a0, 0x54
; auipc t6, 0
; ld t6, 0xc(t6)
; j 0xc
; .byte 0x00, 0x00, 0x00, 0x00
; .byte 0x00, 0x00, 0xf0, 0xbf
; fmv.d.x ft3, t6
; fle.d a0, fa0, ft3
; beqz a0, 8
; .byte 0x00, 0x00, 0x00, 0x00 ; trap: int_ovf
; auipc t6, 0
; ld t6, 0xc(t6)
; j 0xc
; .byte 0x00, 0x00, 0x00, 0x00
; .byte 0x00, 0x00, 0xf0, 0x40
; fmv.d.x ft3, t6
; fle.d a0, ft3, fa0
; beqz a0, 8
; .byte 0x00, 0x00, 0x00, 0x00 ; trap: int_ovf
; fcvt.wu.d a0, fa0, rtz
; j 8
; .byte 0x00, 0x00, 0x00, 0x00 ; trap: bad_toint
; ret