Files
wasmtime/cranelift/filetests/filetests/isa/s390x/vec-shift-rotate.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

672 lines
10 KiB
Plaintext

test compile precise-output
target s390x
function %rotr_i64x4_reg(i64x2, i64) -> i64x2 {
block0(v0: i64x2, v1: i64):
v2 = rotr.i64x2 v0, v1
return v2
}
; VCode:
; block0:
; lcr %r5, %r2
; verllg %v24, %v24, 0(%r5)
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; lcr %r5, %r2
; verllg %v24, %v24, 0(%r5)
; br %r14
function %rotr_i64x4_imm(i64x2) -> i64x2 {
block0(v0: i64x2):
v1 = iconst.i32 17
v2 = rotr.i64x2 v0, v1
return v2
}
; VCode:
; block0:
; verllg %v24, %v24, 47
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; verllg %v24, %v24, 0x2f
; br %r14
function %rotr_i32x4_reg(i32x4, i32) -> i32x4 {
block0(v0: i32x4, v1: i32):
v2 = rotr.i32x4 v0, v1
return v2
}
; VCode:
; block0:
; lcr %r5, %r2
; verllf %v24, %v24, 0(%r5)
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; lcr %r5, %r2
; verllf %v24, %v24, 0(%r5)
; br %r14
function %rotr_i32x4_imm(i32x4) -> i32x4 {
block0(v0: i32x4):
v1 = iconst.i32 17
v2 = rotr.i32x4 v0, v1
return v2
}
; VCode:
; block0:
; verllf %v24, %v24, 15
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; verllf %v24, %v24, 0xf
; br %r14
function %rotr_i16x8_reg(i16x8, i16) -> i16x8 {
block0(v0: i16x8, v1: i16):
v2 = rotr.i16x8 v0, v1
return v2
}
; VCode:
; block0:
; lcr %r5, %r2
; verllh %v24, %v24, 0(%r5)
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; lcr %r5, %r2
; verllh %v24, %v24, 0(%r5)
; br %r14
function %rotr_i16x8_imm(i16x8) -> i16x8 {
block0(v0: i16x8):
v1 = iconst.i32 10
v2 = rotr.i16x8 v0, v1
return v2
}
; VCode:
; block0:
; verllh %v24, %v24, 6
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; verllh %v24, %v24, 6
; br %r14
function %rotr_i8x16_reg(i8x16, i8) -> i8x16 {
block0(v0: i8x16, v1: i8):
v2 = rotr.i8x16 v0, v1
return v2
}
; VCode:
; block0:
; lcr %r5, %r2
; verllb %v24, %v24, 0(%r5)
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; lcr %r5, %r2
; verllb %v24, %v24, 0(%r5)
; br %r14
function %rotr_i8x16_imm(i8x16) -> i8x16 {
block0(v0: i8x16):
v1 = iconst.i32 3
v2 = rotr.i8x16 v0, v1
return v2
}
; VCode:
; block0:
; verllb %v24, %v24, 5
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; verllb %v24, %v24, 5
; br %r14
function %rotl_i64x2_reg(i64x2, i64) -> i64x2 {
block0(v0: i64x2, v1: i64):
v2 = rotl.i64x2 v0, v1
return v2
}
; VCode:
; block0:
; verllg %v24, %v24, 0(%r2)
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; verllg %v24, %v24, 0(%r2)
; br %r14
function %rotl_i64x2_imm(i64x2) -> i64x2 {
block0(v0: i64x2):
v1 = iconst.i32 17
v2 = rotl.i64x2 v0, v1
return v2
}
; VCode:
; block0:
; verllg %v24, %v24, 17
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; verllg %v24, %v24, 0x11
; br %r14
function %rotl_i32x4_reg(i32x4, i32) -> i32x4 {
block0(v0: i32x4, v1: i32):
v2 = rotl.i32x4 v0, v1
return v2
}
; VCode:
; block0:
; verllf %v24, %v24, 0(%r2)
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; verllf %v24, %v24, 0(%r2)
; br %r14
function %rotl_i32x4_imm(i32x4) -> i32x4 {
block0(v0: i32x4):
v1 = iconst.i32 17
v2 = rotl.i32x4 v0, v1
return v2
}
; VCode:
; block0:
; verllf %v24, %v24, 17
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; verllf %v24, %v24, 0x11
; br %r14
function %rotl_i16x8_reg(i16x8, i16) -> i16x8 {
block0(v0: i16x8, v1: i16):
v2 = rotl.i16x8 v0, v1
return v2
}
; VCode:
; block0:
; verllh %v24, %v24, 0(%r2)
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; verllh %v24, %v24, 0(%r2)
; br %r14
function %rotl_i16x8_imm(i16x8) -> i16x8 {
block0(v0: i16x8):
v1 = iconst.i32 10
v2 = rotl.i16x8 v0, v1
return v2
}
; VCode:
; block0:
; verllh %v24, %v24, 10
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; verllh %v24, %v24, 0xa
; br %r14
function %rotl_i8x16_reg(i8x16, i8) -> i8x16 {
block0(v0: i8x16, v1: i8):
v2 = rotl.i8x16 v0, v1
return v2
}
; VCode:
; block0:
; verllb %v24, %v24, 0(%r2)
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; verllb %v24, %v24, 0(%r2)
; br %r14
function %rotr_i8x16_imm(i8x16) -> i8x16 {
block0(v0: i8x16):
v1 = iconst.i32 3
v2 = rotl.i8x16 v0, v1
return v2
}
; VCode:
; block0:
; verllb %v24, %v24, 3
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; verllb %v24, %v24, 3
; br %r14
function %ushr_i64x2_reg(i64x2, i64) -> i64x2 {
block0(v0: i64x2, v1: i64):
v2 = ushr.i64x2 v0, v1
return v2
}
; VCode:
; block0:
; vesrlg %v24, %v24, 0(%r2)
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; vesrlg %v24, %v24, 0(%r2)
; br %r14
function %ushr_i64x2_imm(i64x2) -> i64x2 {
block0(v0: i64x2):
v1 = iconst.i32 17
v2 = ushr.i64x2 v0, v1
return v2
}
; VCode:
; block0:
; vesrlg %v24, %v24, 17
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; vesrlg %v24, %v24, 0x11
; br %r14
function %ushr_i32x4_reg(i32x4, i32) -> i32x4 {
block0(v0: i32x4, v1: i32):
v2 = ushr.i32x4 v0, v1
return v2
}
; VCode:
; block0:
; vesrlf %v24, %v24, 0(%r2)
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; vesrlf %v24, %v24, 0(%r2)
; br %r14
function %ushr_i32x4_imm(i32x4) -> i32x4 {
block0(v0: i32x4):
v1 = iconst.i32 17
v2 = ushr.i32x4 v0, v1
return v2
}
; VCode:
; block0:
; vesrlf %v24, %v24, 17
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; vesrlf %v24, %v24, 0x11
; br %r14
function %ushr_i16x8_reg(i16x8, i16) -> i16x8 {
block0(v0: i16x8, v1: i16):
v2 = ushr.i16x8 v0, v1
return v2
}
; VCode:
; block0:
; vesrlh %v24, %v24, 0(%r2)
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; vesrlh %v24, %v24, 0(%r2)
; br %r14
function %ushr_i16x8_imm(i16x8) -> i16x8 {
block0(v0: i16x8):
v1 = iconst.i32 10
v2 = ushr.i16x8 v0, v1
return v2
}
; VCode:
; block0:
; vesrlh %v24, %v24, 10
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; vesrlh %v24, %v24, 0xa
; br %r14
function %ushr_i8x16_reg(i8x16, i8) -> i8x16 {
block0(v0: i8x16, v1: i8):
v2 = ushr.i8x16 v0, v1
return v2
}
; VCode:
; block0:
; vesrlb %v24, %v24, 0(%r2)
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; vesrlb %v24, %v24, 0(%r2)
; br %r14
function %ushr_i8x16_imm(i8x16) -> i8x16 {
block0(v0: i8x16):
v1 = iconst.i32 3
v2 = ushr.i8x16 v0, v1
return v2
}
; VCode:
; block0:
; vesrlb %v24, %v24, 3
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; vesrlb %v24, %v24, 3
; br %r14
function %ishl_i64x2_reg(i64x2, i64) -> i64x2 {
block0(v0: i64x2, v1: i64):
v2 = ishl.i64x2 v0, v1
return v2
}
; VCode:
; block0:
; veslg %v24, %v24, 0(%r2)
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; veslg %v24, %v24, 0(%r2)
; br %r14
function %ishl_i64x2_imm(i64x2) -> i64x2 {
block0(v0: i64x2):
v1 = iconst.i32 17
v2 = ishl.i64x2 v0, v1
return v2
}
; VCode:
; block0:
; veslg %v24, %v24, 17
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; veslg %v24, %v24, 0x11
; br %r14
function %ishl_i32x4_reg(i32x4, i32) -> i32x4 {
block0(v0: i32x4, v1: i32):
v2 = ishl.i32x4 v0, v1
return v2
}
; VCode:
; block0:
; veslf %v24, %v24, 0(%r2)
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; veslf %v24, %v24, 0(%r2)
; br %r14
function %ishl_i32x4_imm(i32x4) -> i32x4 {
block0(v0: i32x4):
v1 = iconst.i32 17
v2 = ishl.i32x4 v0, v1
return v2
}
; VCode:
; block0:
; veslf %v24, %v24, 17
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; veslf %v24, %v24, 0x11
; br %r14
function %ishl_i16x8_reg(i16x8, i16) -> i16x8 {
block0(v0: i16x8, v1: i16):
v2 = ishl.i16x8 v0, v1
return v2
}
; VCode:
; block0:
; veslh %v24, %v24, 0(%r2)
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; veslh %v24, %v24, 0(%r2)
; br %r14
function %ishl_i16x8_imm(i16x8) -> i16x8 {
block0(v0: i16x8):
v1 = iconst.i32 10
v2 = ishl.i16x8 v0, v1
return v2
}
; VCode:
; block0:
; veslh %v24, %v24, 10
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; veslh %v24, %v24, 0xa
; br %r14
function %ishl_i8x16_reg(i8x16, i8) -> i8x16 {
block0(v0: i8x16, v1: i8):
v2 = ishl.i8x16 v0, v1
return v2
}
; VCode:
; block0:
; veslb %v24, %v24, 0(%r2)
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; veslb %v24, %v24, 0(%r2)
; br %r14
function %ishl_i8x16_imm(i8x16) -> i8x16 {
block0(v0: i8x16):
v1 = iconst.i32 3
v2 = ishl.i8x16 v0, v1
return v2
}
; VCode:
; block0:
; veslb %v24, %v24, 3
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; veslb %v24, %v24, 3
; br %r14
function %sshr_i64x2_reg(i64x2, i64) -> i64x2 {
block0(v0: i64x2, v1: i64):
v2 = sshr.i64x2 v0, v1
return v2
}
; VCode:
; block0:
; vesrag %v24, %v24, 0(%r2)
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; vesrag %v24, %v24, 0(%r2)
; br %r14
function %sshr_i64x2_imm(i64x2) -> i64x2 {
block0(v0: i64x2):
v1 = iconst.i32 17
v2 = sshr.i64x2 v0, v1
return v2
}
; VCode:
; block0:
; vesrag %v24, %v24, 17
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; vesrag %v24, %v24, 0x11
; br %r14
function %sshr_i32x4_reg(i32x4, i32) -> i32x4 {
block0(v0: i32x4, v1: i32):
v2 = sshr.i32x4 v0, v1
return v2
}
; VCode:
; block0:
; vesraf %v24, %v24, 0(%r2)
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; vesraf %v24, %v24, 0(%r2)
; br %r14
function %sshr_i32x4_imm(i32x4) -> i32x4 {
block0(v0: i32x4):
v1 = iconst.i32 17
v2 = sshr.i32x4 v0, v1
return v2
}
; VCode:
; block0:
; vesraf %v24, %v24, 17
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; vesraf %v24, %v24, 0x11
; br %r14
function %sshr_i16x8_reg(i16x8, i16) -> i16x8 {
block0(v0: i16x8, v1: i16):
v2 = sshr.i16x8 v0, v1
return v2
}
; VCode:
; block0:
; vesrah %v24, %v24, 0(%r2)
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; vesrah %v24, %v24, 0(%r2)
; br %r14
function %sshr_i16x8_imm(i16x8) -> i16x8 {
block0(v0: i16x8):
v1 = iconst.i32 10
v2 = sshr.i16x8 v0, v1
return v2
}
; VCode:
; block0:
; vesrah %v24, %v24, 10
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; vesrah %v24, %v24, 0xa
; br %r14
function %sshr_i8x16_reg(i8x16, i8) -> i8x16 {
block0(v0: i8x16, v1: i8):
v2 = sshr.i8x16 v0, v1
return v2
}
; VCode:
; block0:
; vesrab %v24, %v24, 0(%r2)
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; vesrab %v24, %v24, 0(%r2)
; br %r14
function %sshr_i8x16_imm(i8x16) -> i8x16 {
block0(v0: i8x16):
v1 = iconst.i32 3
v2 = sshr.i8x16 v0, v1
return v2
}
; VCode:
; block0:
; vesrab %v24, %v24, 3
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; vesrab %v24, %v24, 3
; br %r14