Files
wasmtime/cranelift/filetests/filetests/isa/aarch64/simd.clif

130 lines
1.9 KiB
Plaintext

test compile precise-output
set unwind_info=false
target aarch64
function %f1() -> i64x2 {
block0:
v0 = iconst.i64 281474976710657
v1 = splat.i64x2 v0
return v1
}
; block0:
; movz x1, #1
; movk x1, x1, #1, LSL #48
; dup v0.2d, x1
; ret
function %f2() -> i16x8 {
block0:
v0 = iconst.i32 42679
v1 = ireduce.i16 v0
v2 = splat.i16x8 v1
return v2
}
; block0:
; movz x1, #42679
; dup v0.8h, w1
; ret
function %f4(i32, i8x16, i8x16) -> i8x16 {
block0(v0: i32, v1: i8x16, v2: i8x16):
v3 = select v0, v1, v2
return v3
}
; block0:
; subs wzr, w0, wzr
; vcsel v0.16b, v0.16b, v1.16b, ne (if-then-else diamond)
; ret
function %f5(i64) -> i8x16 {
block0(v0: i64):
v1 = load.i8 v0
v2 = splat.i8x16 v1
return v2
}
; block0:
; ld1r { v0.16b }, [x0]
; ret
function %f6(i64, i64) -> i8x16, i8x16 {
block0(v0: i64, v1: i64):
v2 = load.i8 v0
v3 = load.i8 v1
v4 = splat.i8x16 v2
v5 = splat.i8x16 v3
return v4, v5
}
; block0:
; ld1r { v0.16b }, [x0]
; ld1r { v1.16b }, [x1]
; ret
function %f7(i64, i64) -> i8x16, i8x16 {
block0(v0: i64, v1: i64):
v2 = load.i8 v0
v3 = load.i8 v1
v4 = splat.i8x16 v3
v5 = splat.i8x16 v2
return v4, v5
}
; block0:
; ldrb w5, [x0]
; ld1r { v0.16b }, [x1]
; dup v1.16b, w5
; ret
function %f8(i64, i64) -> i8x16, i8x16 {
block0(v0: i64, v1: i64):
v2 = load.i8 v0
v3 = splat.i8x16 v2
v4 = splat.i8x16 v2
return v3, v4
}
; block0:
; ldrb w5, [x0]
; dup v0.16b, w5
; dup v1.16b, w5
; ret
function %f9() -> i32x2 {
block0:
v0 = iconst.i32 4278190335
v1 = splat.i32x2 v0
return v1
}
; block0:
; movi v1.2d, #18374687579166474495
; fmov d0, d1
; ret
function %f10() -> i32x4 {
block0:
v0 = iconst.i32 4293918720
v1 = splat.i32x4 v0
return v1
}
; block0:
; mvni v0.4s, #15, MSL #16
; ret
function %f11() -> f32x4 {
block0:
v0 = f32const 0x1.5
v1 = splat.f32x4 v0
return v1
}
; block0:
; fmov v0.4s, #1.3125
; ret