beetrees
3 months ago
committed by
GitHub
31 changed files with 897 additions and 39 deletions
@ -0,0 +1,35 @@ |
|||
test compile precise-output |
|||
target aarch64 has_fp16 |
|||
|
|||
function %bitcast_f16_to_i16(f16) -> i16 { |
|||
block0(v0: f16): |
|||
v1 = bitcast.i16 v0 |
|||
return v1 |
|||
} |
|||
|
|||
; VCode: |
|||
; block0: |
|||
; umov w0, v0.h[0] |
|||
; ret |
|||
; |
|||
; Disassembled: |
|||
; block0: ; offset 0x0 |
|||
; umov w0, v0.h[0] |
|||
; ret |
|||
|
|||
function %bitcast_i16_to_f16(i16) -> f16 { |
|||
block0(v0: i16): |
|||
v1 = bitcast.f16 v0 |
|||
return v1 |
|||
} |
|||
|
|||
; VCode: |
|||
; block0: |
|||
; fmov h0, w0 |
|||
; ret |
|||
; |
|||
; Disassembled: |
|||
; block0: ; offset 0x0 |
|||
; fmov h0, w0 |
|||
; ret |
|||
|
@ -0,0 +1,70 @@ |
|||
test compile precise-output |
|||
set unwind_info=false |
|||
target aarch64 has_fp16 |
|||
|
|||
function %f() -> f16 { |
|||
block0: |
|||
v0 = f16const 0x1.0 |
|||
return v0 |
|||
} |
|||
|
|||
; VCode: |
|||
; block0: |
|||
; fmov h0, #1 |
|||
; ret |
|||
; |
|||
; Disassembled: |
|||
; block0: ; offset 0x0 |
|||
; fmov h0, #1.00000000 |
|||
; ret |
|||
|
|||
function %f() -> f16 { |
|||
block0: |
|||
v0 = f16const 0x32.0 |
|||
return v0 |
|||
} |
|||
|
|||
; VCode: |
|||
; block0: |
|||
; movz w0, #21056 |
|||
; fmov h0, w0 |
|||
; ret |
|||
; |
|||
; Disassembled: |
|||
; block0: ; offset 0x0 |
|||
; mov w0, #0x5240 |
|||
; fmov h0, w0 |
|||
; ret |
|||
|
|||
function %f() -> f16 { |
|||
block0: |
|||
v0 = f16const 0x0.0 |
|||
return v0 |
|||
} |
|||
|
|||
; VCode: |
|||
; block0: |
|||
; movi v0.2s, #0 |
|||
; ret |
|||
; |
|||
; Disassembled: |
|||
; block0: ; offset 0x0 |
|||
; movi v0.2s, #0 |
|||
; ret |
|||
|
|||
function %f() -> f16 { |
|||
block0: |
|||
v0 = f16const -0x10.0 |
|||
return v0 |
|||
} |
|||
|
|||
; VCode: |
|||
; block0: |
|||
; fmov h0, #-16 |
|||
; ret |
|||
; |
|||
; Disassembled: |
|||
; block0: ; offset 0x0 |
|||
; fmov h0, #-16.00000000 |
|||
; ret |
|||
|
@ -0,0 +1,36 @@ |
|||
test compile precise-output |
|||
set unwind_info=false |
|||
target aarch64 |
|||
|
|||
function %load_f16(i64) -> f16 { |
|||
block0(v0: i64): |
|||
v1 = load.f16 v0 |
|||
return v1 |
|||
} |
|||
|
|||
; VCode: |
|||
; block0: |
|||
; ldr h0, [x0] |
|||
; ret |
|||
; |
|||
; Disassembled: |
|||
; block0: ; offset 0x0 |
|||
; ldr h0, [x0] ; trap: heap_oob |
|||
; ret |
|||
|
|||
function %load_f128(i64) -> f128 { |
|||
block0(v0: i64): |
|||
v1 = load.f128 v0 |
|||
return v1 |
|||
} |
|||
|
|||
; VCode: |
|||
; block0: |
|||
; ldr q0, [x0] |
|||
; ret |
|||
; |
|||
; Disassembled: |
|||
; block0: ; offset 0x0 |
|||
; ldr q0, [x0] ; trap: heap_oob |
|||
; ret |
|||
|
@ -0,0 +1,21 @@ |
|||
test compile precise-output |
|||
target aarch64 has_fp16 |
|||
|
|||
function %select_f16(i8, f16, f16) -> f16 { |
|||
block0(v0: i8, v1: f16, v2: f16): |
|||
v3 = select.f16 v0, v1, v2 |
|||
return v3 |
|||
} |
|||
|
|||
; VCode: |
|||
; block0: |
|||
; ands wzr, w0, #255 |
|||
; fcsel h0, h0, h1, ne |
|||
; ret |
|||
; |
|||
; Disassembled: |
|||
; block0: ; offset 0x0 |
|||
; tst w0, #0xff |
|||
; fcsel h0, h0, h1, ne |
|||
; ret |
|||
|
@ -0,0 +1,36 @@ |
|||
test compile precise-output |
|||
set unwind_info=false |
|||
target aarch64 |
|||
|
|||
function %store_f16(f16, i64) { |
|||
block0(v0: f16, v1: i64): |
|||
store.f16 v0, v1 |
|||
return |
|||
} |
|||
|
|||
; VCode: |
|||
; block0: |
|||
; str h0, [x0] |
|||
; ret |
|||
; |
|||
; Disassembled: |
|||
; block0: ; offset 0x0 |
|||
; str h0, [x0] ; trap: heap_oob |
|||
; ret |
|||
|
|||
function %store_f128(f128, i64) { |
|||
block0(v0: f128, v1: i64): |
|||
store.f128 v0, v1 |
|||
return |
|||
} |
|||
|
|||
; VCode: |
|||
; block0: |
|||
; str q0, [x0] |
|||
; ret |
|||
; |
|||
; Disassembled: |
|||
; block0: ; offset 0x0 |
|||
; str q0, [x0] ; trap: heap_oob |
|||
; ret |
|||
|
Loading…
Reference in new issue