Cranelift: use regalloc2 constraints on caller side of ABI code. (#4892)

* Cranelift: use regalloc2 constraints on caller side of ABI code.

This PR updates the shared ABI code and backends to use register-operand
constraints rather than explicit pinned-vreg moves for register
arguments and return values.

The s390x backend was not updated, because it has its own implementation
of ABI code. Ideally we could converge back to the code shared by x64
and aarch64 (which didn't exist when s390x ported calls to ISLE, so the
current situation is underestandable, to be clear!). I'll leave this for
future work.

This PR exposed several places where regalloc2 needed to be a bit more
flexible with constraints; it requires regalloc2#74 to be merged and
pulled in.

* Update to regalloc2 0.3.3.

In addition to version bump, this required removing two asserts as
`SpillSlot`s no longer carry their class (so we can't assert that they
have the correct class).

* Review comments.

* Filetest updates.

* Add cargo-vet audit for regalloc2 0.3.2 -> 0.3.3 upgrade.

* Update to regalloc2 0.4.0.
This commit is contained in:
Chris Fallin
2022-09-20 18:17:04 -07:00
committed by GitHub
parent 8b245178a5
commit 05cbd667c7
63 changed files with 1476 additions and 1177 deletions

View File

@@ -69,9 +69,10 @@ block0(v0: i64, v1: i64, v2: i64):
}
; block0:
; add x0, x0, x2
; add x0, x0, x1
; ldr w0, [x0, #48]
; mov x6, x0
; add x6, x6, x2
; add x6, x6, x1
; ldr w0, [x6, #48]
; ret
function %f10(i64, i64, i64) -> i32 {
@@ -232,11 +233,11 @@ block0(v0: i64):
}
; block0:
; mov x6, x0
; ldp x7, x1, [x6]
; mov x11, x7
; stp x11, x1, [x0]
; mov x0, x7
; mov x8, x0
; mov x6, x8
; ldp x0, x1, [x6]
; mov x7, x8
; stp x0, x1, [x7]
; ret
function %i128_imm_offset(i64) -> i128 {
@@ -247,11 +248,11 @@ block0(v0: i64):
}
; block0:
; mov x6, x0
; ldp x7, x1, [x6, #16]
; mov x11, x7
; stp x11, x1, [x0, #16]
; mov x0, x7
; mov x8, x0
; mov x6, x8
; ldp x0, x1, [x6, #16]
; mov x7, x8
; stp x0, x1, [x7, #16]
; ret
function %i128_imm_offset_large(i64) -> i128 {
@@ -262,11 +263,11 @@ block0(v0: i64):
}
; block0:
; mov x6, x0
; ldp x7, x1, [x6, #504]
; mov x11, x7
; stp x11, x1, [x0, #504]
; mov x0, x7
; mov x8, x0
; mov x6, x8
; ldp x0, x1, [x6, #504]
; mov x7, x8
; stp x0, x1, [x7, #504]
; ret
function %i128_imm_offset_negative_large(i64) -> i128 {
@@ -277,11 +278,11 @@ block0(v0: i64):
}
; block0:
; mov x6, x0
; ldp x7, x1, [x6, #-512]
; mov x11, x7
; stp x11, x1, [x0, #-512]
; mov x0, x7
; mov x8, x0
; mov x6, x8
; ldp x0, x1, [x6, #-512]
; mov x7, x8
; stp x0, x1, [x7, #-512]
; ret
function %i128_add_offset(i64) -> i128 {
@@ -293,11 +294,11 @@ block0(v0: i64):
}
; block0:
; mov x6, x0
; ldp x7, x1, [x6, #32]
; mov x11, x7
; stp x11, x1, [x0, #32]
; mov x0, x7
; mov x8, x0
; mov x6, x8
; ldp x0, x1, [x6, #32]
; mov x7, x8
; stp x0, x1, [x7, #32]
; ret
function %i128_32bit_sextend_simple(i32) -> i128 {
@@ -327,13 +328,13 @@ block0(v0: i64, v1: i32):
}
; block0:
; mov x7, x0
; mov x11, x0
; mov x7, x11
; add x7, x7, x1, SXTW
; ldp x9, x10, [x7, #24]
; add x0, x0, x1, SXTW
; mov x14, x9
; ldp x0, x10, [x7, #24]
; mov x9, x11
; add x9, x9, x1, SXTW
; mov x1, x10
; stp x14, x1, [x0, #24]
; mov x0, x9
; stp x0, x1, [x9, #24]
; ret

View File

@@ -109,3 +109,4 @@ block0(v0: i64):
; blr x4
; ldp fp, lr, [sp], #16
; ret

View File

@@ -79,7 +79,7 @@ block0(v0: i8):
; stp fp, lr, [sp, #-16]!
; mov fp, sp
; block0:
; mov x15, x0
; mov x8, x0
; sub sp, sp, #16
; virtual_sp_offset_adjust 16
; movz x0, #42
@@ -90,9 +90,9 @@ block0(v0: i8):
; movz x5, #42
; movz x6, #42
; movz x7, #42
; strb w15, [sp]
; ldr x14, 8 ; b 12 ; data TestCase(%g) + 0
; blr x14
; strb w8, [sp]
; ldr x8, 8 ; b 12 ; data TestCase(%g) + 0
; blr x8
; add sp, sp, #16
; virtual_sp_offset_adjust -16
; ldp fp, lr, [sp], #16
@@ -105,7 +105,7 @@ block0(v0: i8):
}
; block0:
; mov x15, x0
; mov x8, x0
; mov x13, x1
; movz x0, #42
; movz x1, #42
@@ -115,7 +115,8 @@ block0(v0: i8):
; movz x5, #42
; movz x6, #42
; movz x7, #42
; strb w15, [x13]
; mov x11, x8
; strb w11, [x13]
; ret
function %f8() {
@@ -140,26 +141,26 @@ block0:
; mov fp, sp
; sub sp, sp, #48
; block0:
; ldr x8, 8 ; b 12 ; data TestCase(%g0) + 0
; blr x8
; ldr x9, 8 ; b 12 ; data TestCase(%g0) + 0
; blr x9
; str q0, [sp, #32]
; ldr x9, 8 ; b 12 ; data TestCase(%g1) + 0
; blr x9
; str q0, [sp, #16]
; ldr x10, 8 ; b 12 ; data TestCase(%g1) + 0
; blr x10
; ldr x9, 8 ; b 12 ; data TestCase(%g1) + 0
; blr x9
; str q0, [sp]
; ldr x12, 8 ; b 12 ; data TestCase(%g2) + 0
; blr x12
; ldr x9, 8 ; b 12 ; data TestCase(%g2) + 0
; blr x9
; ldr x10, 8 ; b 12 ; data TestCase(%g3) + 0
; ldr q0, [sp, #32]
; ldr x14, 8 ; b 12 ; data TestCase(%g3) + 0
; blr x14
; blr x10
; ldr x11, 8 ; b 12 ; data TestCase(%g4) + 0
; ldr q0, [sp, #16]
; ldr x0, 8 ; b 12 ; data TestCase(%g4) + 0
; blr x0
; blr x11
; ldr x12, 8 ; b 12 ; data TestCase(%g4) + 0
; ldr q0, [sp]
; ldr x2, 8 ; b 12 ; data TestCase(%g4) + 0
; blr x2
; blr x12
; add sp, sp, #48
; ldp fp, lr, [sp], #16
; ret
@@ -184,26 +185,26 @@ block0:
; mov fp, sp
; sub sp, sp, #48
; block0:
; ldr x8, 8 ; b 12 ; data TestCase(%g0) + 0
; blr x8
; ldr x9, 8 ; b 12 ; data TestCase(%g0) + 0
; blr x9
; str q0, [sp, #32]
; ldr x9, 8 ; b 12 ; data TestCase(%g0) + 0
; blr x9
; str q0, [sp, #16]
; ldr x10, 8 ; b 12 ; data TestCase(%g0) + 0
; blr x10
; ldr x9, 8 ; b 12 ; data TestCase(%g0) + 0
; blr x9
; str q0, [sp]
; ldr x12, 8 ; b 12 ; data TestCase(%g1) + 0
; blr x12
; ldr x9, 8 ; b 12 ; data TestCase(%g1) + 0
; blr x9
; ldr x10, 8 ; b 12 ; data TestCase(%g2) + 0
; ldr q0, [sp, #32]
; ldr x14, 8 ; b 12 ; data TestCase(%g2) + 0
; blr x14
; blr x10
; ldr x11, 8 ; b 12 ; data TestCase(%g2) + 0
; ldr q0, [sp, #16]
; ldr x0, 8 ; b 12 ; data TestCase(%g2) + 0
; blr x0
; blr x11
; ldr x12, 8 ; b 12 ; data TestCase(%g2) + 0
; ldr q0, [sp]
; ldr x2, 8 ; b 12 ; data TestCase(%g2) + 0
; blr x2
; blr x12
; add sp, sp, #48
; ldp fp, lr, [sp], #16
; ret
@@ -232,26 +233,26 @@ block0:
; mov fp, sp
; sub sp, sp, #48
; block0:
; ldr x8, 8 ; b 12 ; data TestCase(%g0) + 0
; blr x8
; ldr x9, 8 ; b 12 ; data TestCase(%g0) + 0
; blr x9
; str q0, [sp, #32]
; ldr x9, 8 ; b 12 ; data TestCase(%g1) + 0
; blr x9
; str q0, [sp, #16]
; ldr x10, 8 ; b 12 ; data TestCase(%g2) + 0
; blr x10
; ldr x9, 8 ; b 12 ; data TestCase(%g2) + 0
; blr x9
; str q0, [sp]
; ldr x12, 8 ; b 12 ; data TestCase(%g3) + 0
; blr x12
; ldr x9, 8 ; b 12 ; data TestCase(%g3) + 0
; blr x9
; ldr x10, 8 ; b 12 ; data TestCase(%g4) + 0
; ldr q0, [sp, #32]
; ldr x14, 8 ; b 12 ; data TestCase(%g4) + 0
; blr x14
; blr x10
; ldr x11, 8 ; b 12 ; data TestCase(%g5) + 0
; ldr q0, [sp, #16]
; ldr x0, 8 ; b 12 ; data TestCase(%g5) + 0
; blr x0
; blr x11
; ldr x12, 8 ; b 12 ; data TestCase(%g6) + 0
; ldr q0, [sp]
; ldr x2, 8 ; b 12 ; data TestCase(%g6) + 0
; blr x2
; blr x12
; add sp, sp, #48
; ldp fp, lr, [sp], #16
; ret
@@ -279,12 +280,11 @@ block0(v0: i64):
; stp fp, lr, [sp, #-16]!
; mov fp, sp
; block0:
; mov x7, x0
; mov x1, x0
; movz x0, #42
; movz x2, #42
; mov x1, x7
; ldr x9, 8 ; b 12 ; data TestCase(%f11) + 0
; blr x9
; ldr x7, 8 ; b 12 ; data TestCase(%f11) + 0
; blr x7
; ldp fp, lr, [sp], #16
; ret
@@ -311,12 +311,11 @@ block0(v0: i64):
; stp fp, lr, [sp, #-16]!
; mov fp, sp
; block0:
; mov x7, x0
; mov x2, x0
; movz x3, #42
; movz x0, #42
; mov x2, x7
; ldr x9, 8 ; b 12 ; data TestCase(%f12) + 0
; blr x9
; ldr x7, 8 ; b 12 ; data TestCase(%f12) + 0
; blr x7
; ldp fp, lr, [sp], #16
; ret
@@ -343,12 +342,11 @@ block0(v0: i64):
; stp fp, lr, [sp, #-16]!
; mov fp, sp
; block0:
; mov x7, x0
; mov x1, x0
; movz x2, #42
; movz x0, #42
; mov x1, x7
; ldr x9, 8 ; b 12 ; data TestCase(%f13) + 0
; blr x9
; ldr x7, 8 ; b 12 ; data TestCase(%f13) + 0
; blr x7
; ldp fp, lr, [sp], #16
; ret
@@ -376,20 +374,19 @@ block0(v0: i128, v1: i64):
; stp fp, lr, [sp, #-16]!
; mov fp, sp
; block0:
; mov x11, x2
; mov x6, x2
; sub sp, sp, #16
; virtual_sp_offset_adjust 16
; mov x10, x0
; mov x12, x1
; mov x2, x10
; mov x3, x12
; mov x4, x10
; mov x5, x12
; mov x6, x11
; str x10, [sp]
; str x12, [sp, #8]
; ldr x7, 8 ; b 12 ; data TestCase(%f14) + 0
; blr x7
; str x0, [sp]
; mov x4, x0
; str x1, [sp, #8]
; mov x5, x1
; ldr x12, 8 ; b 12 ; data TestCase(%f14) + 0
; mov x0, x4
; mov x2, x4
; mov x1, x5
; mov x3, x5
; blr x12
; add sp, sp, #16
; virtual_sp_offset_adjust -16
; ldp fp, lr, [sp], #16
@@ -419,20 +416,19 @@ block0(v0: i128, v1: i64):
; stp fp, lr, [sp, #-16]!
; mov fp, sp
; block0:
; mov x11, x2
; mov x6, x2
; sub sp, sp, #16
; virtual_sp_offset_adjust 16
; mov x10, x0
; mov x12, x1
; mov x2, x10
; mov x3, x12
; mov x4, x10
; mov x5, x12
; mov x6, x11
; str x10, [sp]
; str x12, [sp, #8]
; ldr x7, 8 ; b 12 ; data TestCase(%f15) + 0
; blr x7
; str x0, [sp]
; mov x4, x0
; str x1, [sp, #8]
; mov x5, x1
; ldr x12, 8 ; b 12 ; data TestCase(%f15) + 0
; mov x0, x4
; mov x2, x4
; mov x1, x5
; mov x3, x5
; blr x12
; add sp, sp, #16
; virtual_sp_offset_adjust -16
; ldp fp, lr, [sp], #16
@@ -496,8 +492,8 @@ block0(v0: i64):
; str x24, [sp, #-16]!
; block0:
; mov x24, x8
; ldr x5, 8 ; b 12 ; data TestCase(%g) + 0
; blr x5
; ldr x4, 8 ; b 12 ; data TestCase(%g) + 0
; blr x4
; mov x8, x24
; ldr x24, [sp], #16
; ldp fp, lr, [sp], #16

View File

@@ -918,8 +918,9 @@ block0(v0: f32x4, v1: f32x4, v2: f32x4):
}
; block0:
; fmla v2.4s, v2.4s, v0.4s, v1.4s
; mov v0.16b, v2.16b
; mov v5.16b, v2.16b
; fmla v5.4s, v5.4s, v0.4s, v1.4s
; mov v0.16b, v5.16b
; ret
function %f79(f32x2, f32x2, f32x2) -> f32x2 {
@@ -929,8 +930,9 @@ block0(v0: f32x2, v1: f32x2, v2: f32x2):
}
; block0:
; fmla v2.2s, v2.2s, v0.2s, v1.2s
; mov v0.16b, v2.16b
; mov v5.16b, v2.16b
; fmla v5.2s, v5.2s, v0.2s, v1.2s
; mov v0.16b, v5.16b
; ret
function %f80(f64x2, f64x2, f64x2) -> f64x2 {
@@ -940,8 +942,9 @@ block0(v0: f64x2, v1: f64x2, v2: f64x2):
}
; block0:
; fmla v2.2d, v2.2d, v0.2d, v1.2d
; mov v0.16b, v2.16b
; mov v5.16b, v2.16b
; fmla v5.2d, v5.2d, v0.2d, v1.2d
; mov v0.16b, v5.16b
; ret
function %f81(f32x2, f32x2) -> f32x2 {

View File

@@ -67,15 +67,15 @@ block3(v7: r64, v8: r64):
; mov fp, sp
; sub sp, sp, #32
; block0:
; str x1, [sp, #16]
; str x0, [sp, #8]
; ldr x1, 8 ; b 12 ; data TestCase(%f) + 0
; blr x1
; mov x3, sp
; str x1, [sp, #16]
; ldr x3, 8 ; b 12 ; data TestCase(%f) + 0
; blr x3
; mov x2, sp
; ldr x9, [sp, #8]
; str x9, [x3]
; and w4, w0, #1
; cbz x4, label1 ; b label3
; str x9, [x2]
; and w3, w0, #1
; cbz x3, label1 ; b label3
; block1:
; b label2
; block2:
@@ -89,8 +89,8 @@ block3(v7: r64, v8: r64):
; ldr x1, [sp, #16]
; b label5
; block5:
; mov x5, sp
; ldr x2, [x5]
; mov x4, sp
; ldr x2, [x4]
; add sp, sp, #32
; ldp fp, lr, [sp], #16
; ret

View File

@@ -9,8 +9,9 @@ block0(v0: i16x4, v1: i16x4):
}
; block0:
; mov v0.d[1], v0.d[1], v1.d[0]
; sqxtn v0.8b, v0.8h
; mov v4.16b, v0.16b
; mov v4.d[1], v4.d[1], v1.d[0]
; sqxtn v0.8b, v4.8h
; ret
function %snarrow_i16x8(i16x8, i16x8) -> i8x16 {
@@ -31,8 +32,9 @@ block0(v0: i32x2, v1: i32x2):
}
; block0:
; mov v0.d[1], v0.d[1], v1.d[0]
; sqxtn v0.4h, v0.4s
; mov v4.16b, v0.16b
; mov v4.d[1], v4.d[1], v1.d[0]
; sqxtn v0.4h, v4.4s
; ret
function %snarrow_i32x4(i32x4, i32x4) -> i16x8 {
@@ -64,8 +66,9 @@ block0(v0: i16x4, v1: i16x4):
}
; block0:
; mov v0.d[1], v0.d[1], v1.d[0]
; sqxtun v0.8b, v0.8h
; mov v4.16b, v0.16b
; mov v4.d[1], v4.d[1], v1.d[0]
; sqxtun v0.8b, v4.8h
; ret
function %unarrow_i16x8(i16x8, i16x8) -> i8x16 {
@@ -86,8 +89,9 @@ block0(v0: i32x2, v1: i32x2):
}
; block0:
; mov v0.d[1], v0.d[1], v1.d[0]
; sqxtun v0.4h, v0.4s
; mov v4.16b, v0.16b
; mov v4.d[1], v4.d[1], v1.d[0]
; sqxtun v0.4h, v4.4s
; ret
function %unarrow_i32x4(i32x4, i32x4) -> i16x8 {
@@ -119,8 +123,9 @@ block0(v0: i16x4, v1: i16x4):
}
; block0:
; mov v0.d[1], v0.d[1], v1.d[0]
; uqxtn v0.8b, v0.8h
; mov v4.16b, v0.16b
; mov v4.d[1], v4.d[1], v1.d[0]
; uqxtn v0.8b, v4.8h
; ret
function %uunarrow_i16x8(i16x8, i16x8) -> i8x16 {
@@ -141,8 +146,9 @@ block0(v0: i32x2, v1: i32x2):
}
; block0:
; mov v0.d[1], v0.d[1], v1.d[0]
; uqxtn v0.4h, v0.4s
; mov v4.16b, v0.16b
; mov v4.d[1], v4.d[1], v1.d[0]
; uqxtn v0.4h, v4.4s
; ret
function %uunarrow_i32x4(i32x4, i32x4) -> i16x8 {

View File

@@ -20,8 +20,9 @@ block0(v0: i32):
; block0:
; mov x25, x0
; elf_tls_get_addr x0, userextname0
; mov x7, x25
; mov x1, x0
; mov x0, x25
; mov x0, x7
; ldp d8, d9, [sp], #16
; ldp d10, d11, [sp], #16
; ldp d12, d13, [sp], #16

View File

@@ -41,12 +41,13 @@ block0(v0: i64, v1: i16, v2: i16, v3: i64):
; block0:
; lgr %r9, %r4
; sllk %r4, %r5, 3
; nill %r5, 65532
; lrvr %r2, %r3
; lgr %r2, %r5
; nill %r2, 65532
; lrvr %r5, %r3
; lgr %r3, %r9
; lrvr %r3, %r3
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 16(%r4) ; rxsbg %r1, %r2, 176, 64, 48 ; jglh 1f ; risbgn %r1, %r3, 48, 64, 48 ; rll %r1, %r1, 16(%r4) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; l %r0, 0(%r2)
; 0: rll %r1, %r0, 16(%r4) ; rxsbg %r1, %r5, 176, 64, 48 ; jglh 1f ; risbgn %r1, %r3, 48, 64, 48 ; rll %r1, %r1, 16(%r4) ; cs %r0, %r1, 0(%r2) ; jglh 0b ; 1:
; rll %r2, %r0, 0(%r4)
; lrvr %r2, %r2
; lmg %r9, %r15, 72(%r15)
@@ -62,10 +63,11 @@ block0(v0: i64, v1: i8, v2: i8, v3: i64):
; block0:
; lgr %r11, %r4
; sllk %r4, %r5, 3
; nill %r5, 65532
; lcr %r2, %r4
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r4) ; rxsbg %r1, %r3, 160, 40, 24 ; jglh 1f ; risbgn %r1, %r11, 32, 40, 24 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; lgr %r2, %r5
; nill %r2, 65532
; lcr %r5, %r4
; l %r0, 0(%r2)
; 0: rll %r1, %r0, 0(%r4) ; rxsbg %r1, %r3, 160, 40, 24 ; jglh 1f ; risbgn %r1, %r11, 32, 40, 24 ; rll %r1, %r1, 0(%r5) ; cs %r0, %r1, 0(%r2) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r4)
; lmg %r11, %r15, 88(%r15)
; br %r14

View File

@@ -31,13 +31,17 @@ block0(v0: i64, v1: i16, v2: i16, v3: i64):
return v4
}
; stmg %r6, %r15, 48(%r15)
; block0:
; lgr %r2, %r4
; lgr %r6, %r4
; sllk %r4, %r5, 3
; nill %r5, 65532
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r4) ; rxsbg %r1, %r3, 160, 48, 16 ; jglh 1f ; risbgn %r1, %r2, 32, 48, 16 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; lgr %r2, %r5
; nill %r2, 65532
; l %r0, 0(%r2)
; lgr %r5, %r6
; 0: rll %r1, %r0, 0(%r4) ; rxsbg %r1, %r3, 160, 48, 16 ; jglh 1f ; risbgn %r1, %r5, 32, 48, 16 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r2) ; jglh 0b ; 1:
; rll %r2, %r0, 16(%r4)
; lmg %r6, %r15, 48(%r15)
; br %r14
function %atomic_cas_i8(i64, i8, i8, i64) -> i8 {
@@ -50,10 +54,11 @@ block0(v0: i64, v1: i8, v2: i8, v3: i64):
; block0:
; lgr %r11, %r4
; sllk %r4, %r5, 3
; nill %r5, 65532
; lcr %r2, %r4
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r4) ; rxsbg %r1, %r3, 160, 40, 24 ; jglh 1f ; risbgn %r1, %r11, 32, 40, 24 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; lgr %r2, %r5
; nill %r2, 65532
; lcr %r5, %r4
; l %r0, 0(%r2)
; 0: rll %r1, %r0, 0(%r4) ; rxsbg %r1, %r3, 160, 40, 24 ; jglh 1f ; risbgn %r1, %r11, 32, 40, 24 ; rll %r1, %r1, 0(%r5) ; cs %r0, %r1, 0(%r2) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r4)
; lmg %r11, %r15, 88(%r15)
; br %r14

View File

@@ -32,12 +32,12 @@ block0(v0: i64, v1: i64, v2: i16):
}
; block0:
; lgr %r5, %r4
; sllk %r4, %r3, 3
; nill %r3, 65532
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 0(%r4) ; rnsbg %r1, %r5, 32, 48, 16 ; xilf %r1, 4294901760 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r2, %r0, 16(%r4)
; sllk %r2, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r2) ; rnsbg %r1, %r4, 32, 48, 16 ; xilf %r1, 4294901760 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r2, %r0, 16(%r2)
; br %r14
function %atomic_rmw_nand_i8(i64, i64, i8) -> i8 {
@@ -46,14 +46,16 @@ block0(v0: i64, v1: i64, v2: i8):
return v3
}
; stmg %r11, %r15, 88(%r15)
; block0:
; lgr %r2, %r4
; sllk %r4, %r3, 3
; nill %r3, 65532
; lcr %r5, %r4
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 0(%r4) ; rnsbg %r1, %r2, 32, 40, 24 ; xilf %r1, 4278190080 ; rll %r1, %r1, 0(%r5) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r4)
; sllk %r11, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; lcr %r2, %r11
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r11) ; rnsbg %r1, %r4, 32, 40, 24 ; xilf %r1, 4278190080 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r11)
; lmg %r11, %r15, 88(%r15)
; br %r14
function %atomic_rmw_nand_i64(i64, i64, i64) -> i64 {
@@ -89,13 +91,13 @@ block0(v0: i64, v1: i64, v2: i16):
}
; block0:
; lgr %r2, %r4
; sllk %r4, %r3, 3
; nill %r3, 65532
; lrvr %r5, %r2
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 16(%r4) ; rnsbg %r1, %r5, 48, 64, 48 ; xilf %r1, 65535 ; rll %r1, %r1, 16(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r3, %r0, 0(%r4)
; sllk %r2, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; lrvr %r4, %r4
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 16(%r2) ; rnsbg %r1, %r4, 48, 64, 48 ; xilf %r1, 65535 ; rll %r1, %r1, 16(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r3, %r0, 0(%r2)
; lrvr %r2, %r3
; br %r14
@@ -105,13 +107,15 @@ block0(v0: i64, v1: i64, v2: i8):
return v3
}
; stmg %r11, %r15, 88(%r15)
; block0:
; lgr %r2, %r4
; sllk %r4, %r3, 3
; nill %r3, 65532
; lcr %r5, %r4
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 0(%r4) ; rnsbg %r1, %r2, 32, 40, 24 ; xilf %r1, 4278190080 ; rll %r1, %r1, 0(%r5) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r4)
; sllk %r11, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; lcr %r2, %r11
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r11) ; rnsbg %r1, %r4, 32, 40, 24 ; xilf %r1, 4278190080 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r11)
; lmg %r11, %r15, 88(%r15)
; br %r14

View File

@@ -38,13 +38,13 @@ block0(v0: i64, v1: i64, v2: i16):
}
; block0:
; lgr %r2, %r4
; sllk %r4, %r3, 3
; nill %r3, 65532
; lrvr %r5, %r2
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 16(%r4) ; risbgn %r1, %r5, 48, 64, 48 ; rll %r1, %r1, 16(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r3, %r0, 0(%r4)
; sllk %r2, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; lrvr %r4, %r4
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 16(%r2) ; risbgn %r1, %r4, 48, 64, 48 ; rll %r1, %r1, 16(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r3, %r0, 0(%r2)
; lrvr %r2, %r3
; br %r14
@@ -54,14 +54,16 @@ block0(v0: i64, v1: i64, v2: i8):
return v3
}
; stmg %r11, %r15, 88(%r15)
; block0:
; lgr %r2, %r4
; sllk %r4, %r3, 3
; nill %r3, 65532
; lcr %r5, %r4
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 0(%r4) ; risbgn %r1, %r2, 32, 40, 24 ; rll %r1, %r1, 0(%r5) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r4)
; sllk %r11, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; lcr %r2, %r11
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r11) ; risbgn %r1, %r4, 32, 40, 24 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r11)
; lmg %r11, %r15, 88(%r15)
; br %r14
function %atomic_rmw_add_i64(i64, i64, i64) -> i64 {
@@ -95,13 +97,13 @@ block0(v0: i64, v1: i64, v2: i16):
}
; block0:
; lgr %r2, %r4
; sllk %r4, %r3, 3
; nill %r3, 65532
; sllk %r5, %r2, 16
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 16(%r4) ; lrvr %r1, %r1 ; ar %r1, %r5 ; lrvr %r1, %r1 ; rll %r1, %r1, 16(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r3, %r0, 0(%r4)
; sllk %r2, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; sllk %r4, %r4, 16
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 16(%r2) ; lrvr %r1, %r1 ; ar %r1, %r4 ; lrvr %r1, %r1 ; rll %r1, %r1, 16(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r3, %r0, 0(%r2)
; lrvr %r2, %r3
; br %r14
@@ -111,14 +113,17 @@ block0(v0: i64, v1: i64, v2: i8):
return v3
}
; stmg %r11, %r15, 88(%r15)
; block0:
; sllk %r2, %r3, 3
; nill %r3, 65532
; sllk %r5, %r4, 24
; lcr %r4, %r2
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 0(%r2) ; ar %r1, %r5 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r2)
; sllk %r11, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; sllk %r4, %r4, 24
; lcr %r2, %r11
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r11) ; ar %r1, %r4 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r11)
; lmg %r11, %r15, 88(%r15)
; br %r14
function %atomic_rmw_sub_i64(i64, i64, i64) -> i64 {
@@ -152,13 +157,13 @@ block0(v0: i64, v1: i64, v2: i16):
}
; block0:
; lgr %r2, %r4
; sllk %r4, %r3, 3
; nill %r3, 65532
; sllk %r5, %r2, 16
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 16(%r4) ; lrvr %r1, %r1 ; sr %r1, %r5 ; lrvr %r1, %r1 ; rll %r1, %r1, 16(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r3, %r0, 0(%r4)
; sllk %r2, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; sllk %r4, %r4, 16
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 16(%r2) ; lrvr %r1, %r1 ; sr %r1, %r4 ; lrvr %r1, %r1 ; rll %r1, %r1, 16(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r3, %r0, 0(%r2)
; lrvr %r2, %r3
; br %r14
@@ -168,14 +173,17 @@ block0(v0: i64, v1: i64, v2: i8):
return v3
}
; stmg %r11, %r15, 88(%r15)
; block0:
; sllk %r2, %r3, 3
; nill %r3, 65532
; sllk %r5, %r4, 24
; lcr %r4, %r2
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 0(%r2) ; sr %r1, %r5 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r2)
; sllk %r11, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; sllk %r4, %r4, 24
; lcr %r2, %r11
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r11) ; sr %r1, %r4 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r11)
; lmg %r11, %r15, 88(%r15)
; br %r14
function %atomic_rmw_and_i64(i64, i64, i64) -> i64 {
@@ -209,13 +217,13 @@ block0(v0: i64, v1: i64, v2: i16):
}
; block0:
; lgr %r2, %r4
; sllk %r4, %r3, 3
; nill %r3, 65532
; lrvr %r5, %r2
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 16(%r4) ; rnsbg %r1, %r5, 48, 64, 48 ; rll %r1, %r1, 16(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r3, %r0, 0(%r4)
; sllk %r2, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; lrvr %r4, %r4
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 16(%r2) ; rnsbg %r1, %r4, 48, 64, 48 ; rll %r1, %r1, 16(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r3, %r0, 0(%r2)
; lrvr %r2, %r3
; br %r14
@@ -225,14 +233,16 @@ block0(v0: i64, v1: i64, v2: i8):
return v3
}
; stmg %r11, %r15, 88(%r15)
; block0:
; lgr %r2, %r4
; sllk %r4, %r3, 3
; nill %r3, 65532
; lcr %r5, %r4
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 0(%r4) ; rnsbg %r1, %r2, 32, 40, 24 ; rll %r1, %r1, 0(%r5) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r4)
; sllk %r11, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; lcr %r2, %r11
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r11) ; rnsbg %r1, %r4, 32, 40, 24 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r11)
; lmg %r11, %r15, 88(%r15)
; br %r14
function %atomic_rmw_or_i64(i64, i64, i64) -> i64 {
@@ -266,13 +276,13 @@ block0(v0: i64, v1: i64, v2: i16):
}
; block0:
; lgr %r2, %r4
; sllk %r4, %r3, 3
; nill %r3, 65532
; lrvr %r5, %r2
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 16(%r4) ; rosbg %r1, %r5, 48, 64, 48 ; rll %r1, %r1, 16(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r3, %r0, 0(%r4)
; sllk %r2, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; lrvr %r4, %r4
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 16(%r2) ; rosbg %r1, %r4, 48, 64, 48 ; rll %r1, %r1, 16(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r3, %r0, 0(%r2)
; lrvr %r2, %r3
; br %r14
@@ -282,14 +292,16 @@ block0(v0: i64, v1: i64, v2: i8):
return v3
}
; stmg %r11, %r15, 88(%r15)
; block0:
; lgr %r2, %r4
; sllk %r4, %r3, 3
; nill %r3, 65532
; lcr %r5, %r4
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 0(%r4) ; rosbg %r1, %r2, 32, 40, 24 ; rll %r1, %r1, 0(%r5) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r4)
; sllk %r11, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; lcr %r2, %r11
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r11) ; rosbg %r1, %r4, 32, 40, 24 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r11)
; lmg %r11, %r15, 88(%r15)
; br %r14
function %atomic_rmw_xor_i64(i64, i64, i64) -> i64 {
@@ -323,13 +335,13 @@ block0(v0: i64, v1: i64, v2: i16):
}
; block0:
; lgr %r2, %r4
; sllk %r4, %r3, 3
; nill %r3, 65532
; lrvr %r5, %r2
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 16(%r4) ; rxsbg %r1, %r5, 48, 64, 48 ; rll %r1, %r1, 16(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r3, %r0, 0(%r4)
; sllk %r2, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; lrvr %r4, %r4
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 16(%r2) ; rxsbg %r1, %r4, 48, 64, 48 ; rll %r1, %r1, 16(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r3, %r0, 0(%r2)
; lrvr %r2, %r3
; br %r14
@@ -339,14 +351,16 @@ block0(v0: i64, v1: i64, v2: i8):
return v3
}
; stmg %r11, %r15, 88(%r15)
; block0:
; lgr %r2, %r4
; sllk %r4, %r3, 3
; nill %r3, 65532
; lcr %r5, %r4
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 0(%r4) ; rxsbg %r1, %r2, 32, 40, 24 ; rll %r1, %r1, 0(%r5) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r4)
; sllk %r11, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; lcr %r2, %r11
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r11) ; rxsbg %r1, %r4, 32, 40, 24 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r11)
; lmg %r11, %r15, 88(%r15)
; br %r14
function %atomic_rmw_nand_i64(i64, i64, i64) -> i64 {
@@ -382,13 +396,13 @@ block0(v0: i64, v1: i64, v2: i16):
}
; block0:
; lgr %r2, %r4
; sllk %r4, %r3, 3
; nill %r3, 65532
; lrvr %r5, %r2
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 16(%r4) ; rnsbg %r1, %r5, 48, 64, 48 ; xilf %r1, 65535 ; rll %r1, %r1, 16(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r3, %r0, 0(%r4)
; sllk %r2, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; lrvr %r4, %r4
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 16(%r2) ; rnsbg %r1, %r4, 48, 64, 48 ; xilf %r1, 65535 ; rll %r1, %r1, 16(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r3, %r0, 0(%r2)
; lrvr %r2, %r3
; br %r14
@@ -398,14 +412,16 @@ block0(v0: i64, v1: i64, v2: i8):
return v3
}
; stmg %r11, %r15, 88(%r15)
; block0:
; lgr %r2, %r4
; sllk %r4, %r3, 3
; nill %r3, 65532
; lcr %r5, %r4
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 0(%r4) ; rnsbg %r1, %r2, 32, 40, 24 ; xilf %r1, 4278190080 ; rll %r1, %r1, 0(%r5) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r4)
; sllk %r11, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; lcr %r2, %r11
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r11) ; rnsbg %r1, %r4, 32, 40, 24 ; xilf %r1, 4278190080 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r11)
; lmg %r11, %r15, 88(%r15)
; br %r14
function %atomic_rmw_smin_i64(i64, i64, i64) -> i64 {
@@ -439,13 +455,13 @@ block0(v0: i64, v1: i64, v2: i16):
}
; block0:
; lgr %r2, %r4
; sllk %r4, %r3, 3
; nill %r3, 65532
; sllk %r5, %r2, 16
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 16(%r4) ; lrvr %r1, %r1 ; cr %r5, %r1 ; jgnl 1f ; risbgn %r1, %r5, 32, 48, 0 ; lrvr %r1, %r1 ; rll %r1, %r1, 16(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r3, %r0, 0(%r4)
; sllk %r2, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; sllk %r4, %r4, 16
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 16(%r2) ; lrvr %r1, %r1 ; cr %r4, %r1 ; jgnl 1f ; risbgn %r1, %r4, 32, 48, 0 ; lrvr %r1, %r1 ; rll %r1, %r1, 16(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r3, %r0, 0(%r2)
; lrvr %r2, %r3
; br %r14
@@ -455,14 +471,17 @@ block0(v0: i64, v1: i64, v2: i8):
return v3
}
; stmg %r11, %r15, 88(%r15)
; block0:
; sllk %r2, %r3, 3
; nill %r3, 65532
; sllk %r5, %r4, 24
; lcr %r4, %r2
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 0(%r2) ; cr %r5, %r1 ; jgnl 1f ; risbgn %r1, %r5, 32, 40, 0 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r2)
; sllk %r11, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; sllk %r4, %r4, 24
; lcr %r2, %r11
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r11) ; cr %r4, %r1 ; jgnl 1f ; risbgn %r1, %r4, 32, 40, 0 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r11)
; lmg %r11, %r15, 88(%r15)
; br %r14
function %atomic_rmw_smax_i64(i64, i64, i64) -> i64 {
@@ -496,13 +515,13 @@ block0(v0: i64, v1: i64, v2: i16):
}
; block0:
; lgr %r2, %r4
; sllk %r4, %r3, 3
; nill %r3, 65532
; sllk %r5, %r2, 16
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 16(%r4) ; lrvr %r1, %r1 ; cr %r5, %r1 ; jgnh 1f ; risbgn %r1, %r5, 32, 48, 0 ; lrvr %r1, %r1 ; rll %r1, %r1, 16(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r3, %r0, 0(%r4)
; sllk %r2, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; sllk %r4, %r4, 16
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 16(%r2) ; lrvr %r1, %r1 ; cr %r4, %r1 ; jgnh 1f ; risbgn %r1, %r4, 32, 48, 0 ; lrvr %r1, %r1 ; rll %r1, %r1, 16(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r3, %r0, 0(%r2)
; lrvr %r2, %r3
; br %r14
@@ -512,14 +531,17 @@ block0(v0: i64, v1: i64, v2: i8):
return v3
}
; stmg %r11, %r15, 88(%r15)
; block0:
; sllk %r2, %r3, 3
; nill %r3, 65532
; sllk %r5, %r4, 24
; lcr %r4, %r2
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 0(%r2) ; cr %r5, %r1 ; jgnh 1f ; risbgn %r1, %r5, 32, 40, 0 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r2)
; sllk %r11, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; sllk %r4, %r4, 24
; lcr %r2, %r11
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r11) ; cr %r4, %r1 ; jgnh 1f ; risbgn %r1, %r4, 32, 40, 0 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r11)
; lmg %r11, %r15, 88(%r15)
; br %r14
function %atomic_rmw_umin_i64(i64, i64, i64) -> i64 {
@@ -553,13 +575,13 @@ block0(v0: i64, v1: i64, v2: i16):
}
; block0:
; lgr %r2, %r4
; sllk %r4, %r3, 3
; nill %r3, 65532
; sllk %r5, %r2, 16
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 16(%r4) ; lrvr %r1, %r1 ; clr %r5, %r1 ; jgnl 1f ; risbgn %r1, %r5, 32, 48, 0 ; lrvr %r1, %r1 ; rll %r1, %r1, 16(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r3, %r0, 0(%r4)
; sllk %r2, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; sllk %r4, %r4, 16
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 16(%r2) ; lrvr %r1, %r1 ; clr %r4, %r1 ; jgnl 1f ; risbgn %r1, %r4, 32, 48, 0 ; lrvr %r1, %r1 ; rll %r1, %r1, 16(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r3, %r0, 0(%r2)
; lrvr %r2, %r3
; br %r14
@@ -569,14 +591,17 @@ block0(v0: i64, v1: i64, v2: i8):
return v3
}
; stmg %r11, %r15, 88(%r15)
; block0:
; sllk %r2, %r3, 3
; nill %r3, 65532
; sllk %r5, %r4, 24
; lcr %r4, %r2
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 0(%r2) ; clr %r5, %r1 ; jgnl 1f ; risbgn %r1, %r5, 32, 40, 0 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r2)
; sllk %r11, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; sllk %r4, %r4, 24
; lcr %r2, %r11
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r11) ; clr %r4, %r1 ; jgnl 1f ; risbgn %r1, %r4, 32, 40, 0 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r11)
; lmg %r11, %r15, 88(%r15)
; br %r14
function %atomic_rmw_umax_i64(i64, i64, i64) -> i64 {
@@ -610,13 +635,13 @@ block0(v0: i64, v1: i64, v2: i16):
}
; block0:
; lgr %r2, %r4
; sllk %r4, %r3, 3
; nill %r3, 65532
; sllk %r5, %r2, 16
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 16(%r4) ; lrvr %r1, %r1 ; clr %r5, %r1 ; jgnh 1f ; risbgn %r1, %r5, 32, 48, 0 ; lrvr %r1, %r1 ; rll %r1, %r1, 16(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r3, %r0, 0(%r4)
; sllk %r2, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; sllk %r4, %r4, 16
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 16(%r2) ; lrvr %r1, %r1 ; clr %r4, %r1 ; jgnh 1f ; risbgn %r1, %r4, 32, 48, 0 ; lrvr %r1, %r1 ; rll %r1, %r1, 16(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r3, %r0, 0(%r2)
; lrvr %r2, %r3
; br %r14
@@ -626,13 +651,16 @@ block0(v0: i64, v1: i64, v2: i8):
return v3
}
; stmg %r11, %r15, 88(%r15)
; block0:
; sllk %r2, %r3, 3
; nill %r3, 65532
; sllk %r5, %r4, 24
; lcr %r4, %r2
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 0(%r2) ; clr %r5, %r1 ; jgnh 1f ; risbgn %r1, %r5, 32, 40, 0 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r2)
; sllk %r11, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; sllk %r4, %r4, 24
; lcr %r2, %r11
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r11) ; clr %r4, %r1 ; jgnh 1f ; risbgn %r1, %r4, 32, 40, 0 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r11)
; lmg %r11, %r15, 88(%r15)
; br %r14

View File

@@ -36,12 +36,12 @@ block0(v0: i64, v1: i64, v2: i16):
}
; block0:
; lgr %r5, %r4
; sllk %r4, %r3, 3
; nill %r3, 65532
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 0(%r4) ; risbgn %r1, %r5, 32, 48, 16 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r2, %r0, 16(%r4)
; sllk %r2, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r2) ; risbgn %r1, %r4, 32, 48, 16 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r2, %r0, 16(%r2)
; br %r14
function %atomic_rmw_xchg_i8(i64, i64, i8) -> i8 {
@@ -50,14 +50,16 @@ block0(v0: i64, v1: i64, v2: i8):
return v3
}
; stmg %r11, %r15, 88(%r15)
; block0:
; lgr %r2, %r4
; sllk %r4, %r3, 3
; nill %r3, 65532
; lcr %r5, %r4
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 0(%r4) ; risbgn %r1, %r2, 32, 40, 24 ; rll %r1, %r1, 0(%r5) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r4)
; sllk %r11, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; lcr %r2, %r11
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r11) ; risbgn %r1, %r4, 32, 40, 24 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r11)
; lmg %r11, %r15, 88(%r15)
; br %r14
function %atomic_rmw_add_i64(i64, i64) -> i64 {
@@ -87,13 +89,13 @@ block0(v0: i64, v1: i64, v2: i16):
}
; block0:
; lgr %r5, %r4
; sllk %r4, %r3, 3
; nill %r3, 65532
; sllk %r5, %r5, 16
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 0(%r4) ; ar %r1, %r5 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r2, %r0, 16(%r4)
; sllk %r2, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; sllk %r4, %r4, 16
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r2) ; ar %r1, %r4 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r2, %r0, 16(%r2)
; br %r14
function %atomic_rmw_add_i8(i64, i64, i8) -> i8 {
@@ -102,14 +104,17 @@ block0(v0: i64, v1: i64, v2: i8):
return v3
}
; stmg %r11, %r15, 88(%r15)
; block0:
; sllk %r2, %r3, 3
; nill %r3, 65532
; sllk %r5, %r4, 24
; lcr %r4, %r2
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 0(%r2) ; ar %r1, %r5 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r2)
; sllk %r11, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; sllk %r4, %r4, 24
; lcr %r2, %r11
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r11) ; ar %r1, %r4 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r11)
; lmg %r11, %r15, 88(%r15)
; br %r14
function %atomic_rmw_sub_i64(i64, i64) -> i64 {
@@ -141,13 +146,13 @@ block0(v0: i64, v1: i64, v2: i16):
}
; block0:
; lgr %r5, %r4
; sllk %r4, %r3, 3
; nill %r3, 65532
; sllk %r5, %r5, 16
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 0(%r4) ; sr %r1, %r5 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r2, %r0, 16(%r4)
; sllk %r2, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; sllk %r4, %r4, 16
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r2) ; sr %r1, %r4 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r2, %r0, 16(%r2)
; br %r14
function %atomic_rmw_sub_i8(i64, i64, i8) -> i8 {
@@ -156,14 +161,17 @@ block0(v0: i64, v1: i64, v2: i8):
return v3
}
; stmg %r11, %r15, 88(%r15)
; block0:
; sllk %r2, %r3, 3
; nill %r3, 65532
; sllk %r5, %r4, 24
; lcr %r4, %r2
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 0(%r2) ; sr %r1, %r5 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r2)
; sllk %r11, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; sllk %r4, %r4, 24
; lcr %r2, %r11
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r11) ; sr %r1, %r4 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r11)
; lmg %r11, %r15, 88(%r15)
; br %r14
function %atomic_rmw_and_i64(i64, i64) -> i64 {
@@ -193,12 +201,12 @@ block0(v0: i64, v1: i64, v2: i16):
}
; block0:
; lgr %r5, %r4
; sllk %r4, %r3, 3
; nill %r3, 65532
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 0(%r4) ; rnsbg %r1, %r5, 32, 48, 16 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r2, %r0, 16(%r4)
; sllk %r2, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r2) ; rnsbg %r1, %r4, 32, 48, 16 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r2, %r0, 16(%r2)
; br %r14
function %atomic_rmw_and_i8(i64, i64, i8) -> i8 {
@@ -207,14 +215,16 @@ block0(v0: i64, v1: i64, v2: i8):
return v3
}
; stmg %r11, %r15, 88(%r15)
; block0:
; lgr %r2, %r4
; sllk %r4, %r3, 3
; nill %r3, 65532
; lcr %r5, %r4
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 0(%r4) ; rnsbg %r1, %r2, 32, 40, 24 ; rll %r1, %r1, 0(%r5) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r4)
; sllk %r11, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; lcr %r2, %r11
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r11) ; rnsbg %r1, %r4, 32, 40, 24 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r11)
; lmg %r11, %r15, 88(%r15)
; br %r14
function %atomic_rmw_or_i64(i64, i64) -> i64 {
@@ -244,12 +254,12 @@ block0(v0: i64, v1: i64, v2: i16):
}
; block0:
; lgr %r5, %r4
; sllk %r4, %r3, 3
; nill %r3, 65532
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 0(%r4) ; rosbg %r1, %r5, 32, 48, 16 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r2, %r0, 16(%r4)
; sllk %r2, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r2) ; rosbg %r1, %r4, 32, 48, 16 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r2, %r0, 16(%r2)
; br %r14
function %atomic_rmw_or_i8(i64, i64, i8) -> i8 {
@@ -258,14 +268,16 @@ block0(v0: i64, v1: i64, v2: i8):
return v3
}
; stmg %r11, %r15, 88(%r15)
; block0:
; lgr %r2, %r4
; sllk %r4, %r3, 3
; nill %r3, 65532
; lcr %r5, %r4
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 0(%r4) ; rosbg %r1, %r2, 32, 40, 24 ; rll %r1, %r1, 0(%r5) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r4)
; sllk %r11, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; lcr %r2, %r11
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r11) ; rosbg %r1, %r4, 32, 40, 24 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r11)
; lmg %r11, %r15, 88(%r15)
; br %r14
function %atomic_rmw_xor_i64(i64, i64) -> i64 {
@@ -295,12 +307,12 @@ block0(v0: i64, v1: i64, v2: i16):
}
; block0:
; lgr %r5, %r4
; sllk %r4, %r3, 3
; nill %r3, 65532
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 0(%r4) ; rxsbg %r1, %r5, 32, 48, 16 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r2, %r0, 16(%r4)
; sllk %r2, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r2) ; rxsbg %r1, %r4, 32, 48, 16 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r2, %r0, 16(%r2)
; br %r14
function %atomic_rmw_xor_i8(i64, i64, i8) -> i8 {
@@ -309,14 +321,16 @@ block0(v0: i64, v1: i64, v2: i8):
return v3
}
; stmg %r11, %r15, 88(%r15)
; block0:
; lgr %r2, %r4
; sllk %r4, %r3, 3
; nill %r3, 65532
; lcr %r5, %r4
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 0(%r4) ; rxsbg %r1, %r2, 32, 40, 24 ; rll %r1, %r1, 0(%r5) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r4)
; sllk %r11, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; lcr %r2, %r11
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r11) ; rxsbg %r1, %r4, 32, 40, 24 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r11)
; lmg %r11, %r15, 88(%r15)
; br %r14
function %atomic_rmw_nand_i64(i64, i64, i64) -> i64 {
@@ -350,12 +364,12 @@ block0(v0: i64, v1: i64, v2: i16):
}
; block0:
; lgr %r5, %r4
; sllk %r4, %r3, 3
; nill %r3, 65532
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 0(%r4) ; rnsbg %r1, %r5, 32, 48, 16 ; xilf %r1, 4294901760 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r2, %r0, 16(%r4)
; sllk %r2, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r2) ; rnsbg %r1, %r4, 32, 48, 16 ; xilf %r1, 4294901760 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r2, %r0, 16(%r2)
; br %r14
function %atomic_rmw_nand_i8(i64, i64, i8) -> i8 {
@@ -364,14 +378,16 @@ block0(v0: i64, v1: i64, v2: i8):
return v3
}
; stmg %r11, %r15, 88(%r15)
; block0:
; lgr %r2, %r4
; sllk %r4, %r3, 3
; nill %r3, 65532
; lcr %r5, %r4
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 0(%r4) ; rnsbg %r1, %r2, 32, 40, 24 ; xilf %r1, 4278190080 ; rll %r1, %r1, 0(%r5) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r4)
; sllk %r11, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; lcr %r2, %r11
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r11) ; rnsbg %r1, %r4, 32, 40, 24 ; xilf %r1, 4278190080 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r11)
; lmg %r11, %r15, 88(%r15)
; br %r14
function %atomic_rmw_smin_i64(i64, i64, i64) -> i64 {
@@ -405,13 +421,13 @@ block0(v0: i64, v1: i64, v2: i16):
}
; block0:
; lgr %r5, %r4
; sllk %r4, %r3, 3
; nill %r3, 65532
; sllk %r5, %r5, 16
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 0(%r4) ; cr %r5, %r1 ; jgnl 1f ; risbgn %r1, %r5, 32, 48, 0 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r2, %r0, 16(%r4)
; sllk %r2, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; sllk %r4, %r4, 16
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r2) ; cr %r4, %r1 ; jgnl 1f ; risbgn %r1, %r4, 32, 48, 0 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r2, %r0, 16(%r2)
; br %r14
function %atomic_rmw_smin_i8(i64, i64, i8) -> i8 {
@@ -420,14 +436,17 @@ block0(v0: i64, v1: i64, v2: i8):
return v3
}
; stmg %r11, %r15, 88(%r15)
; block0:
; sllk %r2, %r3, 3
; nill %r3, 65532
; sllk %r5, %r4, 24
; lcr %r4, %r2
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 0(%r2) ; cr %r5, %r1 ; jgnl 1f ; risbgn %r1, %r5, 32, 40, 0 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r2)
; sllk %r11, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; sllk %r4, %r4, 24
; lcr %r2, %r11
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r11) ; cr %r4, %r1 ; jgnl 1f ; risbgn %r1, %r4, 32, 40, 0 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r11)
; lmg %r11, %r15, 88(%r15)
; br %r14
function %atomic_rmw_smax_i64(i64, i64, i64) -> i64 {
@@ -461,13 +480,13 @@ block0(v0: i64, v1: i64, v2: i16):
}
; block0:
; lgr %r5, %r4
; sllk %r4, %r3, 3
; nill %r3, 65532
; sllk %r5, %r5, 16
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 0(%r4) ; cr %r5, %r1 ; jgnh 1f ; risbgn %r1, %r5, 32, 48, 0 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r2, %r0, 16(%r4)
; sllk %r2, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; sllk %r4, %r4, 16
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r2) ; cr %r4, %r1 ; jgnh 1f ; risbgn %r1, %r4, 32, 48, 0 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r2, %r0, 16(%r2)
; br %r14
function %atomic_rmw_smax_i8(i64, i64, i8) -> i8 {
@@ -476,14 +495,17 @@ block0(v0: i64, v1: i64, v2: i8):
return v3
}
; stmg %r11, %r15, 88(%r15)
; block0:
; sllk %r2, %r3, 3
; nill %r3, 65532
; sllk %r5, %r4, 24
; lcr %r4, %r2
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 0(%r2) ; cr %r5, %r1 ; jgnh 1f ; risbgn %r1, %r5, 32, 40, 0 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r2)
; sllk %r11, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; sllk %r4, %r4, 24
; lcr %r2, %r11
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r11) ; cr %r4, %r1 ; jgnh 1f ; risbgn %r1, %r4, 32, 40, 0 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r11)
; lmg %r11, %r15, 88(%r15)
; br %r14
function %atomic_rmw_umin_i64(i64, i64, i64) -> i64 {
@@ -517,13 +539,13 @@ block0(v0: i64, v1: i64, v2: i16):
}
; block0:
; lgr %r5, %r4
; sllk %r4, %r3, 3
; nill %r3, 65532
; sllk %r5, %r5, 16
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 0(%r4) ; clr %r5, %r1 ; jgnl 1f ; risbgn %r1, %r5, 32, 48, 0 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r2, %r0, 16(%r4)
; sllk %r2, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; sllk %r4, %r4, 16
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r2) ; clr %r4, %r1 ; jgnl 1f ; risbgn %r1, %r4, 32, 48, 0 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r2, %r0, 16(%r2)
; br %r14
function %atomic_rmw_umin_i8(i64, i64, i8) -> i8 {
@@ -532,14 +554,17 @@ block0(v0: i64, v1: i64, v2: i8):
return v3
}
; stmg %r11, %r15, 88(%r15)
; block0:
; sllk %r2, %r3, 3
; nill %r3, 65532
; sllk %r5, %r4, 24
; lcr %r4, %r2
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 0(%r2) ; clr %r5, %r1 ; jgnl 1f ; risbgn %r1, %r5, 32, 40, 0 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r2)
; sllk %r11, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; sllk %r4, %r4, 24
; lcr %r2, %r11
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r11) ; clr %r4, %r1 ; jgnl 1f ; risbgn %r1, %r4, 32, 40, 0 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r11)
; lmg %r11, %r15, 88(%r15)
; br %r14
function %atomic_rmw_umax_i64(i64, i64, i64) -> i64 {
@@ -573,13 +598,13 @@ block0(v0: i64, v1: i64, v2: i16):
}
; block0:
; lgr %r5, %r4
; sllk %r4, %r3, 3
; nill %r3, 65532
; sllk %r5, %r5, 16
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 0(%r4) ; clr %r5, %r1 ; jgnh 1f ; risbgn %r1, %r5, 32, 48, 0 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r2, %r0, 16(%r4)
; sllk %r2, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; sllk %r4, %r4, 16
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r2) ; clr %r4, %r1 ; jgnh 1f ; risbgn %r1, %r4, 32, 48, 0 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r2, %r0, 16(%r2)
; br %r14
function %atomic_rmw_umax_i8(i64, i64, i8) -> i8 {
@@ -588,13 +613,16 @@ block0(v0: i64, v1: i64, v2: i8):
return v3
}
; stmg %r11, %r15, 88(%r15)
; block0:
; sllk %r2, %r3, 3
; nill %r3, 65532
; sllk %r5, %r4, 24
; lcr %r4, %r2
; l %r0, 0(%r3)
; 0: rll %r1, %r0, 0(%r2) ; clr %r5, %r1 ; jgnh 1f ; risbgn %r1, %r5, 32, 40, 0 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r2)
; sllk %r11, %r3, 3
; lgr %r5, %r3
; nill %r5, 65532
; sllk %r4, %r4, 24
; lcr %r2, %r11
; l %r0, 0(%r5)
; 0: rll %r1, %r0, 0(%r11) ; clr %r4, %r1 ; jgnh 1f ; risbgn %r1, %r4, 32, 40, 0 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
; rll %r2, %r0, 8(%r11)
; lmg %r11, %r15, 88(%r15)
; br %r14

View File

@@ -347,9 +347,10 @@ block0(v0: i32):
}
; block0:
; oihl %r2, 1
; lcgr %r3, %r2
; ngrk %r5, %r2, %r3
; lgr %r5, %r2
; oihl %r5, 1
; lcgr %r3, %r5
; ngr %r5, %r3
; flogr %r0, %r5
; lhi %r4, 63
; srk %r2, %r4, %r0
@@ -362,9 +363,10 @@ block0(v0: i16):
}
; block0:
; oilh %r2, 1
; lcgr %r3, %r2
; ngrk %r5, %r2, %r3
; lgr %r5, %r2
; oilh %r5, 1
; lcgr %r3, %r5
; ngr %r5, %r3
; flogr %r0, %r5
; lhi %r4, 63
; srk %r2, %r4, %r0
@@ -377,9 +379,10 @@ block0(v0: i8):
}
; block0:
; oill %r2, 256
; lcgr %r3, %r2
; ngrk %r5, %r2, %r3
; lgr %r5, %r2
; oill %r5, 256
; lcgr %r3, %r5
; ngr %r5, %r3
; flogr %r0, %r5
; lhi %r4, 63
; srk %r2, %r4, %r0

View File

@@ -597,8 +597,9 @@ block0(v0: i32, v1: i32, v2: i32):
; block0:
; nr %r3, %r2
; xilf %r2, 4294967295
; nr %r4, %r2
; lgr %r5, %r2
; xilf %r5, 4294967295
; nr %r4, %r5
; ork %r2, %r4, %r3
; br %r14
@@ -610,8 +611,9 @@ block0(v0: i16, v1: i16, v2: i16):
; block0:
; nr %r3, %r2
; xilf %r2, 4294967295
; nr %r4, %r2
; lgr %r5, %r2
; xilf %r5, 4294967295
; nr %r4, %r5
; ork %r2, %r4, %r3
; br %r14
@@ -623,8 +625,9 @@ block0(v0: i8, v1: i8, v2: i8):
; block0:
; nr %r3, %r2
; xilf %r2, 4294967295
; nr %r4, %r2
; lgr %r5, %r2
; xilf %r5, 4294967295
; nr %r4, %r5
; ork %r2, %r4, %r3
; br %r14

View File

@@ -46,7 +46,8 @@ block0(v0: i32):
}
; block0:
; llgfr %r2, %r2
; lgr %r5, %r2
; llgfr %r2, %r5
; br %r14
function %call_uext(i32) -> i64 {
@@ -73,7 +74,8 @@ block0(v0: i32):
}
; block0:
; lgfr %r2, %r2
; lgr %r5, %r2
; lgfr %r2, %r5
; br %r14
function %call_colocated(i64) -> i64 {

View File

@@ -153,13 +153,14 @@ block0(v0: i16, v1: i16):
}
; block0:
; lgr %r4, %r3
; llhr %r2, %r2
; lcr %r4, %r3
; nill %r3, 15
; lcr %r3, %r4
; nill %r4, 15
; sllk %r4, %r2, 0(%r4)
; srlk %r5, %r2, 0(%r3)
; ork %r2, %r4, %r5
; nill %r3, 15
; sllk %r3, %r2, 0(%r3)
; srlk %r4, %r2, 0(%r4)
; ork %r2, %r3, %r4
; br %r14
function %rotr_i16_imm(i16) -> i16 {
@@ -201,13 +202,14 @@ block0(v0: i8, v1: i8):
}
; block0:
; lgr %r4, %r3
; llcr %r2, %r2
; lcr %r4, %r3
; nill %r3, 7
; lcr %r3, %r4
; nill %r4, 7
; sllk %r4, %r2, 0(%r4)
; srlk %r5, %r2, 0(%r3)
; ork %r2, %r4, %r5
; nill %r3, 7
; sllk %r3, %r2, 0(%r3)
; srlk %r4, %r2, 0(%r4)
; ork %r2, %r3, %r4
; br %r14
function %rotr_i8_imm(i8) -> i8 {
@@ -578,8 +580,9 @@ block0(v0: i16, v1: i16):
; block0:
; llhr %r2, %r2
; nill %r3, 15
; srlk %r2, %r2, 0(%r3)
; lgr %r4, %r3
; nill %r4, 15
; srlk %r2, %r2, 0(%r4)
; br %r14
function %ushr_i16_imm(i16) -> i16 {
@@ -616,8 +619,9 @@ block0(v0: i8, v1: i8):
; block0:
; llcr %r2, %r2
; nill %r3, 7
; srlk %r2, %r2, 0(%r3)
; lgr %r4, %r3
; nill %r4, 7
; srlk %r2, %r2, 0(%r4)
; br %r14
function %ushr_i8_imm(i8) -> i8 {
@@ -950,8 +954,9 @@ block0(v0: i16, v1: i16):
; block0:
; lhr %r2, %r2
; nill %r3, 15
; srak %r2, %r2, 0(%r3)
; lgr %r4, %r3
; nill %r4, 15
; srak %r2, %r2, 0(%r4)
; br %r14
function %sshr_i16_imm(i16) -> i16 {
@@ -988,8 +993,9 @@ block0(v0: i8, v1: i8):
; block0:
; lbr %r2, %r2
; nill %r3, 7
; srak %r2, %r2, 0(%r3)
; lgr %r4, %r3
; nill %r4, 7
; srak %r2, %r2, 0(%r4)
; br %r14
function %sshr_i8_imm(i8) -> i8 {

View File

@@ -153,8 +153,9 @@ block0(v0: i64, v1: i32, v2: i32):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; addl %esi, %edx, %esi
; movq -1(%rdi,%rsi,4), %rax
; movq %rsi, %r9
; addl %r9d, %edx, %r9d
; movq -1(%rdi,%r9,4), %rax
; movq %rbp, %rsp
; popq %rbp
; ret

View File

@@ -11,8 +11,8 @@ block0(v0: b1, v1: i32, v2: i32):
; movq %rsp, %rbp
; block0:
; testb $1, %dil
; cmovnzl %esi, %edx, %edx
; movq %rdx, %rax
; cmovnzl %esi, %eax, %eax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -147,8 +147,8 @@ block0(v0: i64):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; shrq $63, %rdi, %rdi
; movq %rdi, %rax
; shrq $63, %rax, %rax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -163,8 +163,8 @@ block0(v0: i32):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; shrl $31, %edi, %edi
; movq %rdi, %rax
; shrl $31, %eax, %eax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -179,8 +179,8 @@ block0(v0: i64):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; shrq $63, %rdi, %rdi
; movq %rdi, %rax
; shrq $63, %rax, %rax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -195,8 +195,8 @@ block0(v0: i32):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; shrl $31, %edi, %edi
; movq %rdi, %rax
; shrl $31, %eax, %eax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -211,9 +211,9 @@ block0(v0: i64):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; notq %rdi, %rdi
; shrq $63, %rdi, %rdi
; movq %rdi, %rax
; notq %rax, %rax
; shrq $63, %rax, %rax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -228,9 +228,9 @@ block0(v0: i32):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; notq %rdi, %rdi
; shrl $31, %edi, %edi
; movq %rdi, %rax
; notq %rax, %rax
; shrl $31, %eax, %eax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -245,9 +245,9 @@ block0(v0: i64):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; notq %rdi, %rdi
; shrq $63, %rdi, %rdi
; movq %rdi, %rax
; notq %rax, %rax
; shrq $63, %rax, %rax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -262,9 +262,9 @@ block0(v0: i32):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; notq %rdi, %rdi
; shrl $31, %edi, %edi
; movq %rdi, %rax
; notq %rax, %rax
; shrl $31, %eax, %eax
; movq %rbp, %rsp
; popq %rbp
; ret

View File

@@ -10,8 +10,8 @@ block0(v0: i32, v1: i32):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; addl %edi, %esi, %edi
; movq %rdi, %rax
; addl %eax, %esi, %eax
; movq %rbp, %rsp
; popq %rbp
; ret

View File

@@ -12,11 +12,10 @@ block0(v0: i32):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; movq %rdi, %rcx
; subq %rsp, $32, %rsp
; virtual_sp_offset_adjust 32
; movq %rdi, %rcx
; movq %rcx, %rdi
; call *%rdi
; call *%rcx
; addq %rsp, $32, %rsp
; virtual_sp_offset_adjust -32
; movq %rbp, %rsp
@@ -36,20 +35,16 @@ block0(v0: i32, v1: f32):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; movq %rdi, %r10
; movdqa %xmm0, %xmm6
; subq %rsp, $32, %rsp
; virtual_sp_offset_adjust 32
; movq %r10, %rcx
; movq %rdi, %rcx
; movdqa %xmm6, %xmm1
; movq %r10, %rdi
; movdqa %xmm1, %xmm6
; call *%rdi
; addq %rsp, $32, %rsp
; virtual_sp_offset_adjust -32
; movq %rdi, %r10
; movdqa %xmm6, %xmm0
; call *%r10
; call *%rdi
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -130,22 +125,19 @@ block0(
; pushq %rbp
; movq %rsp, %rbp
; block0:
; movq %rdx, %r10
; movq %rcx, %rax
; movq %rdx, %rcx
; movq %rsi, %rdx
; movq %r8, %rsi
; movq %r10, %r8
; movq %r9, %rax
; movq %rcx, %r9
; movq %rdi, %rsi
; movq %rax, %rdi
; movq 16(%rbp), %r11
; movq 24(%rbp), %r10
; movss 32(%rbp), %xmm9
; movsd 40(%rbp), %xmm8
; subq %rsp, $144, %rsp
; virtual_sp_offset_adjust 144
; movq %rdi, %rcx
; movq %rsi, 32(%rsp)
; movq %rax, %rsi
; movq %rsi, 40(%rsp)
; movq %r8, 32(%rsp)
; movq %r9, 40(%rsp)
; movsd %xmm0, 48(%rsp)
; movsd %xmm1, 56(%rsp)
; movsd %xmm2, 64(%rsp)
@@ -158,7 +150,10 @@ block0(
; movl %r10d, 120(%rsp)
; movss %xmm9, 128(%rsp)
; movsd %xmm8, 136(%rsp)
; call *%rdi
; movq %rdi, %r9
; movq %rcx, %r8
; movq %rsi, %rcx
; call *%rcx
; addq %rsp, $144, %rsp
; virtual_sp_offset_adjust -144
; movq %rbp, %rsp
@@ -180,16 +175,15 @@ block0(v0: i64, v1:i64, v2:i64, v3:i64, v4:i64):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; movq %r8, %r10
; movq %rdx, %r8
; movq %rcx, %rax
; movq %rdx, %r11
; movq %rcx, %r9
; movq %rsi, %rdx
; movq %rdi, %rcx
; subq %rsp, $48, %rsp
; virtual_sp_offset_adjust 48
; movq %rdi, %rcx
; movq %rsi, %rdx
; movq %rax, %r9
; movq %r10, 32(%rsp)
; call *%rdi
; movq %r8, 32(%rsp)
; movq %r11, %r8
; call *%rcx
; addq %rsp, $48, %rsp
; virtual_sp_offset_adjust -48
; movq %rbp, %rsp
@@ -206,24 +200,23 @@ block0(v0: i32, v1: f32, v2: i64, v3: f64, v4: i32, v5: i32, v6: i32, v7: f32, v
; pushq %rbp
; movq %rsp, %rbp
; block0:
; movq %rcx, %r10
; movq %r8, %r9
; movdqa %xmm1, %xmm6
; movdqa %xmm3, %xmm8
; movq %rsi, %r9
; movq %rdi, %rsi
; movdqa %xmm1, %xmm12
; movdqa %xmm0, %xmm1
; subq %rsp, $96, %rsp
; virtual_sp_offset_adjust 96
; movq %rdi, %rcx
; movdqa %xmm0, %xmm1
; movq %rsi, %r8
; movdqa %xmm6, %xmm3
; movl %edx, 32(%rsp)
; movl %r10d, 40(%rsp)
; movl %r9d, 48(%rsp)
; movl %ecx, 40(%rsp)
; movl %r8d, 48(%rsp)
; movss %xmm2, 56(%rsp)
; movsd %xmm8, 64(%rsp)
; movsd %xmm3, 64(%rsp)
; movss %xmm4, 72(%rsp)
; movsd %xmm5, 80(%rsp)
; call *%rdi
; movq %rsi, %rcx
; movq %r9, %r8
; movdqa %xmm12, %xmm3
; call *%rcx
; addq %rsp, $96, %rsp
; virtual_sp_offset_adjust -96
; movq %rbp, %rsp
@@ -240,8 +233,7 @@ block0(v0: i32):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; movq %rdi, %rcx
; call *%rcx
; call *%rdi
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -256,8 +248,7 @@ block0(v0: i32):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; movq %rdi, %rcx
; call *%rcx
; call *%rdi
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -301,8 +292,9 @@ block0:
; movq %rdi, %r13
; movl $1, %edx
; call *%rdx
; movq %rdx, %r9
; movq %r13, %rdi
; movl %edx, 0(%rdi)
; movl %r9d, 0(%rdi)
; movq 0(%rsp), %r13
; addq %rsp, $16, %rsp
; movq %rbp, %rsp
@@ -328,12 +320,13 @@ block0:
; virtual_sp_offset_adjust 16
; lea 0(%rsp), %rdi
; call *%r8
; movq 0(%rsp), %r11
; movq %rdx, %rcx
; movq 0(%rsp), %rdx
; addq %rsp, $16, %rsp
; virtual_sp_offset_adjust -16
; movq %rbx, %rdi
; movq %rdx, 0(%rdi)
; movl %r11d, 8(%rdi)
; movq %rcx, 0(%rdi)
; movl %edx, 8(%rdi)
; movq 0(%rsp), %rbx
; addq %rsp, $16, %rsp
; movq %rbp, %rsp
@@ -356,10 +349,13 @@ block0:
; movq %rdi, %r12
; movl $1, %r9d
; call *%r9
; movq %rax, %r9
; movq %rdx, %r11
; movdqa %xmm1, %xmm10
; movq %r12, %rdi
; movq %rax, 0(%rdi)
; movl %edx, 8(%rdi)
; movss %xmm1, 12(%rdi)
; movq %r9, 0(%rdi)
; movl %r11d, 8(%rdi)
; movss %xmm10, 12(%rdi)
; movq 0(%rsp), %r12
; addq %rsp, $16, %rsp
; movq %rbp, %rsp
@@ -377,16 +373,19 @@ block0(v0: f32, v1: i64, v2: i32, v3: f32):
; pushq %rbp
; movq %rsp, %rbp
; subq %rsp, $16, %rsp
; movq %rbx, 0(%rsp)
; movq %r13, 0(%rsp)
; block0:
; movq %rdx, %rbx
; movq %rdx, %r13
; movl $1, %eax
; call *%rax
; movq %rbx, %rcx
; movq %rax, 0(%rcx)
; movl %edx, 8(%rcx)
; movss %xmm1, 12(%rcx)
; movq 0(%rsp), %rbx
; movq %rax, %rdi
; movq %rdx, %rcx
; movdqa %xmm1, %xmm14
; movq %r13, %rdx
; movq %rdi, 0(%rdx)
; movl %ecx, 8(%rdx)
; movss %xmm14, 12(%rdx)
; movq 0(%rsp), %r13
; addq %rsp, $16, %rsp
; movq %rbp, %rsp
; popq %rbp

View File

@@ -10,8 +10,8 @@ block0(v0: f32):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; load_ext_name %CeilF32+0, %r8
; call *%r8
; load_ext_name %CeilF32+0, %rdx
; call *%rdx
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -25,8 +25,8 @@ block0(v0: f64):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; load_ext_name %CeilF64+0, %r8
; call *%r8
; load_ext_name %CeilF64+0, %rdx
; call *%rdx
; movq %rbp, %rsp
; popq %rbp
; ret

View File

@@ -18,8 +18,8 @@ block0(v0: i64, v1: i64):
; setz %al
; andq %rax, $1, %rax
; cmpq %r11, %rdi
; cmovzq %rdi, %rsi, %rsi
; movq %rsi, %rdx
; cmovzq %rdi, %rdx, %rdx
; movq %rbp, %rsp
; popq %rbp
; ret

View File

@@ -17,9 +17,8 @@ block0(v0: i8, v1: i8):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; xorl %r10d, %r10d, %r10d
; movq %rdi, %rax
; movq %r10, %rdx
; xorl %edx, %edx, %edx
; srem_seq %al, %dl, %sil, %al, %dl, tmp=(none)
; shrq $8, %rax, %rax
; movq %rbp, %rsp
@@ -36,9 +35,8 @@ block0(v0: i16, v1: i16):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; xorl %r10d, %r10d, %r10d
; movq %rdi, %rax
; movq %r10, %rdx
; xorl %edx, %edx, %edx
; srem_seq %ax, %dx, %si, %ax, %dx, tmp=(none)
; movq %rdx, %rax
; movq %rbp, %rsp
@@ -55,9 +53,8 @@ block0(v0: i32, v1: i32):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; xorl %r10d, %r10d, %r10d
; movq %rdi, %rax
; movq %r10, %rdx
; xorl %edx, %edx, %edx
; srem_seq %eax, %edx, %esi, %eax, %edx, tmp=(none)
; movq %rdx, %rax
; movq %rbp, %rsp
@@ -74,9 +71,8 @@ block0(v0: i64, v1: i64):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; xorl %r10d, %r10d, %r10d
; movq %rdi, %rax
; movq %r10, %rdx
; xorl %edx, %edx, %edx
; srem_seq %rax, %rdx, %rsi, %rax, %rdx, tmp=(none)
; movq %rdx, %rax
; movq %rbp, %rsp

View File

@@ -149,20 +149,25 @@ block0(v0: i64):
; pushq %rbp
; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 }
; movq %rsp, %rbp
; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 }
; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 16 }
; subq %rsp, $16, %rsp
; movq %rsi, 0(%rsp)
; unwind SaveReg { clobber_offset: 0, reg: p6i }
; block0:
; cvtsi2sd %rcx, %xmm2
; cvtsi2sd %rcx, %xmm3
; subq %rsp, $48, %rsp
; virtual_sp_offset_adjust 48
; movq %rcx, 32(%rsp)
; movq %rcx, 40(%rsp)
; movq %rcx, %rdx
; movq %rdx, %r8
; movdqa %xmm2, %xmm3
; movq %r8, 32(%rsp)
; movq %r8, 40(%rsp)
; load_ext_name %g+0, %r8
; call *%r8
; load_ext_name %g+0, %rsi
; movq %rdx, %rcx
; movdqa %xmm3, %xmm2
; call *%rsi
; addq %rsp, $48, %rsp
; virtual_sp_offset_adjust -48
; movq 0(%rsp), %rsi
; addq %rsp, $16, %rsp
; movq %rbp, %rsp
; popq %rbp
; ret

View File

@@ -190,10 +190,11 @@ block0(v0: i32x4):
; movdqa %xmm0, %xmm4
; pslld %xmm4, $16, %xmm4
; psrld %xmm4, $16, %xmm4
; psubd %xmm0, %xmm4, %xmm0
; movdqa %xmm0, %xmm10
; psubd %xmm10, %xmm4, %xmm10
; cvtdq2ps %xmm4, %xmm9
; psrld %xmm0, $1, %xmm0
; cvtdq2ps %xmm0, %xmm0
; psrld %xmm10, $1, %xmm10
; cvtdq2ps %xmm10, %xmm0
; addps %xmm0, %xmm0, %xmm0
; addps %xmm0, %xmm9, %xmm0
; movq %rbp, %rsp
@@ -434,14 +435,15 @@ block0(v0: f32x4):
; movq %rsp, %rbp
; block0:
; pxor %xmm3, %xmm3, %xmm3
; maxps %xmm0, %xmm3, %xmm0
; movdqa %xmm0, %xmm10
; maxps %xmm10, %xmm3, %xmm10
; pcmpeqd %xmm8, %xmm8, %xmm8
; psrld %xmm8, $1, %xmm8
; cvtdq2ps %xmm8, %xmm14
; cvttps2dq %xmm0, %xmm13
; subps %xmm0, %xmm14, %xmm0
; cmpps $2, %xmm14, %xmm0, %xmm14
; cvttps2dq %xmm0, %xmm0
; cvttps2dq %xmm10, %xmm13
; subps %xmm10, %xmm14, %xmm10
; cmpps $2, %xmm14, %xmm10, %xmm14
; cvttps2dq %xmm10, %xmm0
; pxor %xmm0, %xmm14, %xmm0
; pxor %xmm7, %xmm7, %xmm7
; pmaxsd %xmm0, %xmm7, %xmm0
@@ -461,9 +463,10 @@ block0(v0: f32x4):
; block0:
; movdqa %xmm0, %xmm5
; cmpps $0, %xmm5, %xmm0, %xmm5
; andps %xmm0, %xmm5, %xmm0
; pxor %xmm5, %xmm0, %xmm5
; cvttps2dq %xmm0, %xmm9
; movdqa %xmm0, %xmm6
; andps %xmm6, %xmm5, %xmm6
; pxor %xmm5, %xmm6, %xmm5
; cvttps2dq %xmm6, %xmm9
; movdqa %xmm9, %xmm0
; pand %xmm0, %xmm5, %xmm0
; psrad %xmm0, $31, %xmm0

View File

@@ -10,8 +10,8 @@ block0(v0: f32):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; load_ext_name %FloorF32+0, %r8
; call *%r8
; load_ext_name %FloorF32+0, %rdx
; call *%rdx
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -25,8 +25,8 @@ block0(v0: f64):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; load_ext_name %FloorF64+0, %r8
; call *%r8
; load_ext_name %FloorF64+0, %rdx
; call *%rdx
; movq %rbp, %rsp
; popq %rbp
; ret

View File

@@ -10,8 +10,8 @@ block0(v0: f32, v1: f32, v2: f32):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; load_ext_name %FmaF32+0, %rsi
; call *%rsi
; load_ext_name %FmaF32+0, %r9
; call *%r9
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -25,8 +25,8 @@ block0(v0: f64, v1: f64, v2: f64):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; load_ext_name %FmaF64+0, %rsi
; call *%rsi
; load_ext_name %FmaF64+0, %r9
; call *%r9
; movq %rbp, %rsp
; popq %rbp
; ret

View File

@@ -11,10 +11,10 @@ block0(v0: i128, v1: i128):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; addq %rdi, %rdx, %rdi
; adcq %rsi, %rcx, %rsi
; movq %rdi, %rax
; addq %rax, %rdx, %rax
; movq %rsi, %rdx
; adcq %rdx, %rcx, %rdx
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -28,10 +28,10 @@ block0(v0: i128, v1: i128):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; subq %rdi, %rdx, %rdi
; sbbq %rsi, %rcx, %rsi
; movq %rdi, %rax
; subq %rax, %rdx, %rax
; movq %rsi, %rdx
; sbbq %rdx, %rcx, %rdx
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -45,10 +45,10 @@ block0(v0: i128, v1: i128):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; andq %rdi, %rdx, %rdi
; andq %rsi, %rcx, %rsi
; movq %rdi, %rax
; andq %rax, %rdx, %rax
; movq %rsi, %rdx
; andq %rdx, %rcx, %rdx
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -62,10 +62,10 @@ block0(v0: i128, v1: i128):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; orq %rdi, %rdx, %rdi
; orq %rsi, %rcx, %rsi
; movq %rdi, %rax
; orq %rax, %rdx, %rax
; movq %rsi, %rdx
; orq %rdx, %rcx, %rdx
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -79,10 +79,10 @@ block0(v0: i128, v1: i128):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; xorq %rdi, %rdx, %rdi
; xorq %rsi, %rcx, %rsi
; movq %rdi, %rax
; xorq %rax, %rdx, %rax
; movq %rsi, %rdx
; xorq %rdx, %rcx, %rdx
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -96,10 +96,10 @@ block0(v0: i128):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; notq %rdi, %rdi
; notq %rsi, %rsi
; movq %rdi, %rax
; notq %rax, %rax
; movq %rsi, %rdx
; notq %rdx, %rdx
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -115,11 +115,11 @@ block0(v0: i128, v1: i128):
; block0:
; movq %rdi, %r8
; imulq %r8, %rcx, %r8
; movq %rdi, %rax
; imulq %rsi, %rdx, %rsi
; movq %r8, %r9
; addq %r9, %rsi, %r9
; movq %r9, %r8
; movq %rdi, %rax
; mul %rax, %rdx, %rax, %rdx
; movq %r8, %rdi
; addq %rdi, %rdx, %rdi
@@ -466,9 +466,9 @@ block0(v0: b1):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; andq %rdi, $1, %rdi
; xorq %rdx, %rdx, %rdx
; movq %rdi, %rax
; andq %rax, $1, %rax
; xorq %rdx, %rdx, %rdx
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -486,16 +486,17 @@ block0(v0: i128):
; shrq $1, %rdx, %rdx
; movabsq $8608480567731124087, %r10
; andq %rdx, %r10, %rdx
; subq %rdi, %rdx, %rdi
; movq %rdi, %r11
; subq %r11, %rdx, %r11
; shrq $1, %rdx, %rdx
; andq %rdx, %r10, %rdx
; subq %rdi, %rdx, %rdi
; subq %r11, %rdx, %r11
; shrq $1, %rdx, %rdx
; andq %rdx, %r10, %rdx
; subq %rdi, %rdx, %rdi
; movq %rdi, %rax
; subq %r11, %rdx, %r11
; movq %r11, %rax
; shrq $4, %rax, %rax
; addq %rax, %rdi, %rax
; addq %rax, %r11, %rax
; movabsq $1085102592571150095, %rcx
; andq %rax, %rcx, %rax
; movabsq $72340172838076673, %r9
@@ -505,16 +506,17 @@ block0(v0: i128):
; shrq $1, %rcx, %rcx
; movabsq $8608480567731124087, %r8
; andq %rcx, %r8, %rcx
; subq %rsi, %rcx, %rsi
; movq %rsi, %r9
; subq %r9, %rcx, %r9
; shrq $1, %rcx, %rcx
; andq %rcx, %r8, %rcx
; subq %rsi, %rcx, %rsi
; subq %r9, %rcx, %r9
; shrq $1, %rcx, %rcx
; andq %rcx, %r8, %rcx
; subq %rsi, %rcx, %rsi
; movq %rsi, %rcx
; subq %r9, %rcx, %r9
; movq %r9, %rcx
; shrq $4, %rcx, %rcx
; addq %rcx, %rsi, %rcx
; addq %rcx, %r9, %rcx
; movabsq $1085102592571150095, %rsi
; andq %rcx, %rsi, %rcx
; movabsq $72340172838076673, %rdx
@@ -538,10 +540,11 @@ block0(v0: i128):
; movabsq $6148914691236517205, %r8
; movq %rsi, %r9
; andq %r9, %r8, %r9
; shrq $1, %rsi, %rsi
; andq %rsi, %r8, %rsi
; movq %rsi, %rax
; shrq $1, %rax, %rax
; andq %rax, %r8, %rax
; shlq $1, %r9, %r9
; orq %r9, %rsi, %r9
; orq %r9, %rax, %r9
; movabsq $3689348814741910323, %r11
; movq %r9, %rsi
; andq %rsi, %r11, %rsi
@@ -579,10 +582,11 @@ block0(v0: i128):
; movabsq $6148914691236517205, %rcx
; movq %rdi, %rdx
; andq %rdx, %rcx, %rdx
; shrq $1, %rdi, %rdi
; andq %rdi, %rcx, %rdi
; movq %rdi, %r11
; shrq $1, %r11, %r11
; andq %r11, %rcx, %r11
; shlq $1, %rdx, %rdx
; orq %rdx, %rdi, %rdx
; orq %rdx, %r11, %rdx
; movabsq $3689348814741910323, %r9
; movq %rdx, %r10
; andq %r10, %r9, %r10
@@ -708,32 +712,42 @@ block0(v0: i128, v1: i128, v2: i64, v3: i128, v4: i128, v5: i128):
; pushq %rbp
; movq %rsp, %rbp
; subq %rsp, $16, %rsp
; subq %rsp, $32, %rsp
; movq %rbx, 0(%rsp)
; movq %r13, 8(%rsp)
; movq %r12, 8(%rsp)
; movq %r13, 16(%rsp)
; block0:
; movq %r9, %r13
; movq %rcx, %rax
; movq %r8, %rcx
; movq %rax, %r8
; movq 16(%rbp), %rbx
; movq 24(%rbp), %rax
; movq 32(%rbp), %r10
; movq %r10, %r13
; movq 40(%rbp), %r11
; movq 48(%rbp), %r10
; addq %rdi, %rdx, %rdi
; movq %rcx, %rdx
; adcq %rsi, %rdx, %rsi
; movq 32(%rbp), %r9
; movq %r9, %r12
; movq 40(%rbp), %r10
; movq 48(%rbp), %r11
; movq %rdi, %r9
; addq %r9, %rdx, %r9
; movq %r8, %rdi
; movq %rsi, %r8
; adcq %r8, %rdi, %r8
; xorq %rdx, %rdx, %rdx
; addq %r9, %r8, %r9
; movq %rcx, %rsi
; movq %r13, %rdi
; addq %rdi, %rsi, %rdi
; adcq %rbx, %rdx, %rbx
; addq %rax, %r11, %rax
; movq %r13, %rdx
; adcq %rdx, %r10, %rdx
; addq %rdi, %r9, %rdi
; adcq %rsi, %rbx, %rsi
; addq %rax, %rdi, %rax
; adcq %rdx, %rsi, %rdx
; addq %rax, %r10, %rax
; movq %r12, %rdx
; adcq %rdx, %r11, %rdx
; addq %r9, %rdi, %r9
; adcq %r8, %rbx, %r8
; addq %rax, %r9, %rax
; adcq %rdx, %r8, %rdx
; movq 0(%rsp), %rbx
; movq 8(%rsp), %r13
; addq %rsp, $16, %rsp
; movq 8(%rsp), %r12
; movq 16(%rsp), %r13
; addq %rsp, $32, %rsp
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -746,37 +760,41 @@ block0(v0: i128):
; pushq %rbp
; movq %rsp, %rbp
; subq %rsp, $32, %rsp
; subq %rsp, $48, %rsp
; movq %rbx, 0(%rsp)
; movq %r12, 8(%rsp)
; movq %r14, 16(%rsp)
; movq %r15, 24(%rsp)
; movq %r13, 16(%rsp)
; movq %r14, 24(%rsp)
; movq %r15, 32(%rsp)
; block0:
; movq %rdx, %r12
; movq %rdi, %rax
; movq %rsi, %rdx
; movq %rdi, %r14
; movq %rsi, %rbx
; movq %rdi, %r13
; movq %rsi, %r15
; movq %rdi, %r11
; movq %rsi, %r9
; movq %rdi, %r10
; movq %rdi, %r8
; movq %rsi, %rcx
; movq %r12, %r15
; movq %r14, 0(%r15)
; movq %rbx, 8(%r15)
; movq %r11, 16(%r15)
; movq %r9, 24(%r15)
; movq %r10, 32(%r15)
; movq %r8, 40(%r15)
; movq %rcx, 48(%r15)
; movq %rdi, 56(%r15)
; movq %rsi, 64(%r15)
; movq %rdi, %r8
; movq %rsi, %r9
; movq %r12, %rdi
; movq %r14, 0(%rdi)
; movq %rbx, 8(%rdi)
; movq %r13, 16(%rdi)
; movq %r15, 24(%rdi)
; movq %r11, 32(%rdi)
; movq %r10, 40(%rdi)
; movq %rcx, 48(%rdi)
; movq %r8, 56(%rdi)
; movq %r9, 64(%rdi)
; movq 0(%rsp), %rbx
; movq 8(%rsp), %r12
; movq 16(%rsp), %r14
; movq 24(%rsp), %r15
; addq %rsp, $32, %rsp
; movq 16(%rsp), %r13
; movq 24(%rsp), %r14
; movq 32(%rsp), %r15
; addq %rsp, $48, %rsp
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -873,8 +891,8 @@ block0(v0: i8, v1: i128):
; block0:
; movq %rsi, %rcx
; andq %rcx, $7, %rcx
; shlb %cl, %dil, %dil
; movq %rdi, %rax
; shlb %cl, %al, %al
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -891,19 +909,21 @@ block0(v0: i128, v1: i128):
; movq %rdx, %rcx
; movq %rdi, %rdx
; shlq %cl, %rdx, %rdx
; shlq %cl, %rsi, %rsi
; movq %rcx, %rax
; movq %rsi, %r8
; shlq %cl, %r8, %r8
; movq %rcx, %rsi
; movl $64, %ecx
; movq %rax, %r8
; subq %rcx, %r8, %rcx
; shrq %cl, %rdi, %rdi
; movq %rsi, %r9
; subq %rcx, %r9, %rcx
; movq %rdi, %rsi
; shrq %cl, %rsi, %rsi
; xorq %rax, %rax, %rax
; testq $127, %r8
; cmovzq %rax, %rdi, %rdi
; orq %rdi, %rsi, %rdi
; testq $64, %r8
; testq $127, %r9
; cmovzq %rax, %rsi, %rsi
; orq %rsi, %r8, %rsi
; testq $64, %r9
; cmovzq %rdx, %rax, %rax
; cmovzq %rdi, %rdx, %rdx
; cmovzq %rsi, %rdx, %rdx
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -918,21 +938,23 @@ block0(v0: i128, v1: i128):
; movq %rsp, %rbp
; block0:
; movq %rdx, %rcx
; shrq %cl, %rdi, %rdi
; movq %rdi, %r10
; shrq %cl, %r10, %r10
; movq %rsi, %r8
; shrq %cl, %r8, %r8
; movl $64, %ecx
; movq %rdx, %r9
; subq %rcx, %r9, %rcx
; shlq %cl, %rsi, %rsi
; movq %rsi, %rdi
; shlq %cl, %rdi, %rdi
; xorq %r11, %r11, %r11
; testq $127, %r9
; cmovzq %r11, %rsi, %rsi
; orq %rsi, %rdi, %rsi
; cmovzq %r11, %rdi, %rdi
; orq %rdi, %r10, %rdi
; xorq %rdx, %rdx, %rdx
; testq $64, %r9
; movq %r8, %rax
; cmovzq %rsi, %rax, %rax
; cmovzq %rdi, %rax, %rax
; cmovzq %r8, %rdx, %rdx
; movq %rbp, %rsp
; popq %rbp
@@ -948,25 +970,25 @@ block0(v0: i128, v1: i128):
; movq %rsp, %rbp
; block0:
; movq %rdx, %rcx
; shrq %cl, %rdi, %rdi
; movq %rsi, %rdx
; sarq %cl, %rdx, %rdx
; movq %rcx, %rax
; movq %rdi, %r8
; shrq %cl, %r8, %r8
; movq %rsi, %rdi
; sarq %cl, %rdi, %rdi
; movl $64, %ecx
; movq %rax, %r8
; subq %rcx, %r8, %rcx
; movq %rdx, %r9
; subq %rcx, %r9, %rcx
; movq %rsi, %r11
; shlq %cl, %r11, %r11
; xorq %rax, %rax, %rax
; testq $127, %r8
; testq $127, %r9
; cmovzq %rax, %r11, %r11
; orq %rdi, %r11, %rdi
; sarq $63, %rsi, %rsi
; testq $64, %r8
; movq %rdx, %rax
; cmovzq %rdi, %rax, %rax
; cmovzq %rdx, %rsi, %rsi
; orq %r8, %r11, %r8
; movq %rsi, %rdx
; sarq $63, %rdx, %rdx
; testq $64, %r9
; movq %rdi, %rax
; cmovzq %r8, %rax, %rax
; cmovzq %rdi, %rdx, %rdx
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -1000,19 +1022,20 @@ block0(v0: i128, v1: i128):
; movl $128, %ecx
; movq %r10, %r8
; subq %rcx, %r8, %rcx
; shrq %cl, %rdi, %rdi
; movq %rdi, %r9
; shrq %cl, %r9, %r9
; movq %rsi, %r11
; shrq %cl, %r11, %r11
; movq %rcx, %r8
; movq %rcx, %rdi
; movl $64, %ecx
; subq %rcx, %r8, %rcx
; subq %rcx, %rdi, %rcx
; shlq %cl, %rsi, %rsi
; xorq %r10, %r10, %r10
; testq $127, %r8
; testq $127, %rdi
; cmovzq %r10, %rsi, %rsi
; orq %rsi, %rdi, %rsi
; orq %rsi, %r9, %rsi
; xorq %r10, %r10, %r10
; testq $64, %r8
; testq $64, %rdi
; movq %r11, %rdi
; cmovzq %rsi, %rdi, %rdi
; cmovzq %r11, %r10, %r10
@@ -1057,17 +1080,17 @@ block0(v0: i128, v1: i128):
; subq %rcx, %r8, %rcx
; movq %rdi, %r11
; shlq %cl, %r11, %r11
; shlq %cl, %rsi, %rsi
; movq %rcx, %r8
; movq %rsi, %r9
; shlq %cl, %r9, %r9
; movq %rcx, %rsi
; movl $64, %ecx
; movq %r8, %r9
; subq %rcx, %r9, %rcx
; subq %rcx, %rsi, %rcx
; shrq %cl, %rdi, %rdi
; xorq %r8, %r8, %r8
; testq $127, %r9
; testq $127, %rsi
; cmovzq %r8, %rdi, %rdi
; orq %rdi, %rsi, %rdi
; testq $64, %r9
; orq %rdi, %r9, %rdi
; testq $64, %rsi
; cmovzq %r11, %r8, %r8
; cmovzq %rdi, %r11, %r11
; orq %rax, %r8, %rax

View File

@@ -20,19 +20,21 @@ block0(v0: i128, v1: i8):
; movzbq %dl, %rcx
; movq %rdi, %rdx
; shlq %cl, %rdx, %rdx
; shlq %cl, %rsi, %rsi
; movq %rsi, %r8
; shlq %cl, %r8, %r8
; movq %rcx, %r11
; movl $64, %ecx
; movq %r11, %r8
; subq %rcx, %r8, %rcx
; shrq %cl, %rdi, %rdi
; movq %r11, %r9
; subq %rcx, %r9, %rcx
; movq %rdi, %rsi
; shrq %cl, %rsi, %rsi
; xorq %rax, %rax, %rax
; testq $127, %r8
; cmovzq %rax, %rdi, %rdi
; orq %rdi, %rsi, %rdi
; testq $64, %r8
; testq $127, %r9
; cmovzq %rax, %rsi, %rsi
; orq %rsi, %r8, %rsi
; testq $64, %r9
; cmovzq %rdx, %rax, %rax
; cmovzq %rdi, %rdx, %rdx
; cmovzq %rsi, %rdx, %rdx
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -54,14 +56,15 @@ block0(v0: i128, v1: i64):
; movl $64, %ecx
; movq %r11, %r8
; subq %rcx, %r8, %rcx
; shrq %cl, %rdi, %rdi
; movq %rdi, %r11
; shrq %cl, %r11, %r11
; xorq %rax, %rax, %rax
; testq $127, %r8
; cmovzq %rax, %rdi, %rdi
; orq %rdi, %rsi, %rdi
; cmovzq %rax, %r11, %r11
; orq %r11, %rsi, %r11
; testq $64, %r8
; cmovzq %rdx, %rax, %rax
; cmovzq %rdi, %rdx, %rdx
; cmovzq %r11, %rdx, %rdx
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -83,14 +86,15 @@ block0(v0: i128, v1: i32):
; movl $64, %ecx
; movq %r11, %r8
; subq %rcx, %r8, %rcx
; shrq %cl, %rdi, %rdi
; movq %rdi, %r11
; shrq %cl, %r11, %r11
; xorq %rax, %rax, %rax
; testq $127, %r8
; cmovzq %rax, %rdi, %rdi
; orq %rdi, %rsi, %rdi
; cmovzq %rax, %r11, %r11
; orq %r11, %rsi, %r11
; testq $64, %r8
; cmovzq %rdx, %rax, %rax
; cmovzq %rdi, %rdx, %rdx
; cmovzq %r11, %rdx, %rdx
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -112,14 +116,15 @@ block0(v0: i128, v1: i16):
; movl $64, %ecx
; movq %r11, %r8
; subq %rcx, %r8, %rcx
; shrq %cl, %rdi, %rdi
; movq %rdi, %r11
; shrq %cl, %r11, %r11
; xorq %rax, %rax, %rax
; testq $127, %r8
; cmovzq %rax, %rdi, %rdi
; orq %rdi, %rsi, %rdi
; cmovzq %rax, %r11, %r11
; orq %r11, %rsi, %r11
; testq $64, %r8
; cmovzq %rdx, %rax, %rax
; cmovzq %rdi, %rdx, %rdx
; cmovzq %r11, %rdx, %rdx
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -141,14 +146,15 @@ block0(v0: i128, v1: i8):
; movl $64, %ecx
; movq %r11, %r8
; subq %rcx, %r8, %rcx
; shrq %cl, %rdi, %rdi
; movq %rdi, %r11
; shrq %cl, %r11, %r11
; xorq %rax, %rax, %rax
; testq $127, %r8
; cmovzq %rax, %rdi, %rdi
; orq %rdi, %rsi, %rdi
; cmovzq %rax, %r11, %r11
; orq %r11, %rsi, %r11
; testq $64, %r8
; cmovzq %rdx, %rax, %rax
; cmovzq %rdi, %rdx, %rdx
; cmovzq %r11, %rdx, %rdx
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -163,8 +169,8 @@ block0(v0: i64, v1: i128):
; movq %rsp, %rbp
; block0:
; movq %rsi, %rcx
; shlq %cl, %rdi, %rdi
; movq %rdi, %rax
; shlq %cl, %rax, %rax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -179,8 +185,8 @@ block0(v0: i32, v1: i128):
; movq %rsp, %rbp
; block0:
; movq %rsi, %rcx
; shll %cl, %edi, %edi
; movq %rdi, %rax
; shll %cl, %eax, %eax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -196,8 +202,8 @@ block0(v0: i16, v1: i128):
; block0:
; movq %rsi, %rcx
; andq %rcx, $15, %rcx
; shlw %cl, %di, %di
; movq %rdi, %rax
; shlw %cl, %ax, %ax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -213,8 +219,8 @@ block0(v0: i8, v1: i128):
; block0:
; movq %rsi, %rcx
; andq %rcx, $7, %rcx
; shlb %cl, %dil, %dil
; movq %rdi, %rax
; shlb %cl, %al, %al
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -229,8 +235,8 @@ block0(v0: i64, v1: i64):
; movq %rsp, %rbp
; block0:
; movq %rsi, %rcx
; shlq %cl, %rdi, %rdi
; movq %rdi, %rax
; shlq %cl, %rax, %rax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -245,8 +251,8 @@ block0(v0: i64, v1: i32):
; movq %rsp, %rbp
; block0:
; movq %rsi, %rcx
; shlq %cl, %rdi, %rdi
; movq %rdi, %rax
; shlq %cl, %rax, %rax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -261,8 +267,8 @@ block0(v0: i64, v1: i16):
; movq %rsp, %rbp
; block0:
; movq %rsi, %rcx
; shlq %cl, %rdi, %rdi
; movq %rdi, %rax
; shlq %cl, %rax, %rax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -277,8 +283,8 @@ block0(v0: i64, v1: i8):
; movq %rsp, %rbp
; block0:
; movq %rsi, %rcx
; shlq %cl, %rdi, %rdi
; movq %rdi, %rax
; shlq %cl, %rax, %rax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -293,8 +299,8 @@ block0(v0: i32, v1: i64):
; movq %rsp, %rbp
; block0:
; movq %rsi, %rcx
; shll %cl, %edi, %edi
; movq %rdi, %rax
; shll %cl, %eax, %eax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -309,8 +315,8 @@ block0(v0: i32, v1: i32):
; movq %rsp, %rbp
; block0:
; movq %rsi, %rcx
; shll %cl, %edi, %edi
; movq %rdi, %rax
; shll %cl, %eax, %eax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -325,8 +331,8 @@ block0(v0: i32, v1: i16):
; movq %rsp, %rbp
; block0:
; movq %rsi, %rcx
; shll %cl, %edi, %edi
; movq %rdi, %rax
; shll %cl, %eax, %eax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -341,8 +347,8 @@ block0(v0: i32, v1: i8):
; movq %rsp, %rbp
; block0:
; movq %rsi, %rcx
; shll %cl, %edi, %edi
; movq %rdi, %rax
; shll %cl, %eax, %eax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -358,8 +364,8 @@ block0(v0: i16, v1: i64):
; block0:
; movq %rsi, %rcx
; andq %rcx, $15, %rcx
; shlw %cl, %di, %di
; movq %rdi, %rax
; shlw %cl, %ax, %ax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -375,8 +381,8 @@ block0(v0: i16, v1: i32):
; block0:
; movq %rsi, %rcx
; andq %rcx, $15, %rcx
; shlw %cl, %di, %di
; movq %rdi, %rax
; shlw %cl, %ax, %ax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -392,8 +398,8 @@ block0(v0: i16, v1: i16):
; block0:
; movq %rsi, %rcx
; andq %rcx, $15, %rcx
; shlw %cl, %di, %di
; movq %rdi, %rax
; shlw %cl, %ax, %ax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -409,8 +415,8 @@ block0(v0: i16, v1: i8):
; block0:
; movq %rsi, %rcx
; andq %rcx, $15, %rcx
; shlw %cl, %di, %di
; movq %rdi, %rax
; shlw %cl, %ax, %ax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -426,8 +432,8 @@ block0(v0: i8, v1: i64):
; block0:
; movq %rsi, %rcx
; andq %rcx, $7, %rcx
; shlb %cl, %dil, %dil
; movq %rdi, %rax
; shlb %cl, %al, %al
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -443,8 +449,8 @@ block0(v0: i8, v1: i32):
; block0:
; movq %rsi, %rcx
; andq %rcx, $7, %rcx
; shlb %cl, %dil, %dil
; movq %rdi, %rax
; shlb %cl, %al, %al
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -460,8 +466,8 @@ block0(v0: i8, v1: i16):
; block0:
; movq %rsi, %rcx
; andq %rcx, $7, %rcx
; shlb %cl, %dil, %dil
; movq %rdi, %rax
; shlb %cl, %al, %al
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -477,8 +483,8 @@ block0(v0: i8, v1: i8):
; block0:
; movq %rsi, %rcx
; andq %rcx, $7, %rcx
; shlb %cl, %dil, %dil
; movq %rdi, %rax
; shlb %cl, %al, %al
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -492,8 +498,8 @@ block0(v0: i64):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; shlq $1, %rdi, %rdi
; movq %rdi, %rax
; shlq $1, %rax, %rax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -507,8 +513,8 @@ block0(v0: i32):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; shll $1, %edi, %edi
; movq %rdi, %rax
; shll $1, %eax, %eax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -522,8 +528,8 @@ block0(v0: i16):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; shlw $1, %di, %di
; movq %rdi, %rax
; shlw $1, %ax, %ax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -537,8 +543,8 @@ block0(v0: i8):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; shlb $1, %dil, %dil
; movq %rdi, %rax
; shlb $1, %al, %al
; movq %rbp, %rsp
; popq %rbp
; ret

View File

@@ -11,8 +11,8 @@ block0(v0: i64, v1: i32):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; addl %esi, 0(%rdi), %esi
; movq %rsi, %rax
; addl %eax, 0(%rdi), %eax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -27,8 +27,8 @@ block0(v0: i64, v1: i32):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; addl %esi, 0(%rdi), %esi
; movq %rsi, %rax
; addl %eax, 0(%rdi), %eax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -43,8 +43,8 @@ block0(v0: i64, v1: i64):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; addq %rsi, 0(%rdi), %rsi
; movq %rsi, %rax
; addq %rax, 0(%rdi), %rax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -56,14 +56,11 @@ block0(v0: i64, v1: i64):
return v3
}
;; test narrow loads: 8-bit load should not merge because the `addl` is 32 bits
;; and would load 32 bits from memory, which may go beyond the end of the heap.
; pushq %rbp
; movq %rsp, %rbp
; block0:
; addq %rsi, 0(%rdi), %rsi
; movq %rsi, %rax
; addq %rax, 0(%rdi), %rax
; movq %rbp, %rsp
; popq %rbp
; ret

View File

@@ -44,8 +44,9 @@ block0(v0: f64x2):
; cmppd $0, %xmm5, %xmm0, %xmm5
; movupd const(0), %xmm6
; andps %xmm5, %xmm6, %xmm5
; minpd %xmm0, %xmm5, %xmm0
; cvttpd2dq %xmm0, %xmm0
; movdqa %xmm0, %xmm9
; minpd %xmm9, %xmm5, %xmm9
; cvttpd2dq %xmm9, %xmm0
; movq %rbp, %rsp
; popq %rbp
; ret

View File

@@ -10,8 +10,8 @@ block0(v0: f32):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; load_ext_name %NearestF32+0, %r8
; call *%r8
; load_ext_name %NearestF32+0, %rdx
; call *%rdx
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -25,8 +25,8 @@ block0(v0: f64):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; load_ext_name %NearestF64+0, %r8
; call *%r8
; load_ext_name %NearestF64+0, %rdx
; call *%rdx
; movq %rbp, %rsp
; popq %rbp
; ret

View File

@@ -14,16 +14,17 @@ block0(v0: i64):
; shrq $1, %rax, %rax
; movabsq $8608480567731124087, %r8
; andq %rax, %r8, %rax
; subq %rdi, %rax, %rdi
; movq %rdi, %r9
; subq %r9, %rax, %r9
; shrq $1, %rax, %rax
; andq %rax, %r8, %rax
; subq %rdi, %rax, %rdi
; subq %r9, %rax, %r9
; shrq $1, %rax, %rax
; andq %rax, %r8, %rax
; subq %rdi, %rax, %rdi
; movq %rdi, %rax
; subq %r9, %rax, %r9
; movq %r9, %rax
; shrq $4, %rax, %rax
; addq %rax, %rdi, %rax
; addq %rax, %r9, %rax
; movabsq $1085102592571150095, %rsi
; andq %rax, %rsi, %rax
; movabsq $72340172838076673, %rdx
@@ -80,16 +81,17 @@ block0(v0: i32):
; shrl $1, %eax, %eax
; movl $2004318071, %r8d
; andl %eax, %r8d, %eax
; subl %edi, %eax, %edi
; movq %rdi, %r9
; subl %r9d, %eax, %r9d
; shrl $1, %eax, %eax
; andl %eax, %r8d, %eax
; subl %edi, %eax, %edi
; subl %r9d, %eax, %r9d
; shrl $1, %eax, %eax
; andl %eax, %r8d, %eax
; subl %edi, %eax, %edi
; movq %rdi, %rax
; subl %r9d, %eax, %r9d
; movq %r9, %rax
; shrl $4, %eax, %eax
; addl %eax, %edi, %eax
; addl %eax, %r9d, %eax
; andl %eax, $252645135, %eax
; imull %eax, $16843009, %eax
; shrl $24, %eax, %eax

View File

@@ -12,7 +12,6 @@ block0(v0: i8, v1: i8):
; block0:
; movq %rdi, %rax
; cbw %al, %al
; movq %rax, %r11
; idiv %al, (none), %sil, %al, (none)
; movq %rbp, %rsp
; popq %rbp
@@ -29,7 +28,6 @@ block0(v0: i16, v1: i16):
; block0:
; movq %rdi, %rax
; cwd %ax, %dx
; movq %rdx, %rcx
; idiv %ax, %dx, %si, %ax, %dx
; movq %rbp, %rsp
; popq %rbp
@@ -46,7 +44,6 @@ block0(v0: i32, v1: i32):
; block0:
; movq %rdi, %rax
; cdq %eax, %edx
; movq %rdx, %rcx
; idiv %eax, %edx, %esi, %eax, %edx
; movq %rbp, %rsp
; popq %rbp
@@ -63,7 +60,6 @@ block0(v0: i64, v1: i64):
; block0:
; movq %rdi, %rax
; cqo %rax, %rdx
; movq %rdx, %rcx
; idiv %rax, %rdx, %rsi, %rax, %rdx
; movq %rbp, %rsp
; popq %rbp

View File

@@ -14,10 +14,11 @@ block0(v0: i32, v1: i128, v2: i128):
; movq %rsp, %rbp
; block0:
; cmpl $42, %edi
; cmovzq %rsi, %rcx, %rcx
; cmovzq %rdx, %r8, %r8
; movq %rcx, %rax
; movq %r8, %rdx
; cmovzq %rsi, %rax, %rax
; movq %r8, %rcx
; cmovzq %rdx, %rcx, %rcx
; movq %rcx, %rdx
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -33,12 +34,12 @@ block0(v0: f32, v1: i128, v2: i128):
; movq %rsp, %rbp
; block0:
; ucomiss %xmm0, %xmm0
; cmovnzq %rdx, %rdi, %rdi
; cmovpq %rdx, %rdi, %rdi
; cmovnzq %rcx, %rsi, %rsi
; cmovpq %rcx, %rsi, %rsi
; movq %rdi, %rax
; cmovnzq %rdx, %rax, %rax
; cmovpq %rdx, %rax, %rax
; movq %rsi, %rdx
; cmovnzq %rcx, %rdx, %rdx
; cmovpq %rcx, %rdx, %rdx
; movq %rbp, %rsp
; popq %rbp
; ret

View File

@@ -159,8 +159,9 @@ block0(v0: b16x8, v1: i16x8, v2: i16x8):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; pblendvb %xmm2, %xmm1, %xmm2
; movdqa %xmm2, %xmm0
; movdqa %xmm2, %xmm6
; pblendvb %xmm6, %xmm1, %xmm6
; movdqa %xmm6, %xmm0
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -174,8 +175,9 @@ block0(v0: b32x4, v1: f32x4, v2: f32x4):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; blendvps %xmm2, %xmm1, %xmm2
; movdqa %xmm2, %xmm0
; movdqa %xmm2, %xmm6
; blendvps %xmm6, %xmm1, %xmm6
; movdqa %xmm6, %xmm0
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -189,8 +191,9 @@ block0(v0: b64x2, v1: f64x2, v2: f64x2):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; blendvpd %xmm2, %xmm1, %xmm2
; movdqa %xmm2, %xmm0
; movdqa %xmm2, %xmm6
; blendvpd %xmm6, %xmm1, %xmm6
; movdqa %xmm6, %xmm0
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -206,12 +209,13 @@ block0(v0: i32):
; movq %rsp, %rbp
; block0:
; movdqu const(1), %xmm0
; andq %rdi, $7, %rdi
; movd %edi, %xmm6
; movq %rdi, %r11
; andq %r11, $7, %r11
; movd %r11d, %xmm6
; psllw %xmm0, %xmm6, %xmm0
; lea const(0), %rax
; shlq $4, %rdi, %rdi
; movdqu 0(%rax,%rdi,1), %xmm14
; lea const(0), %rdi
; shlq $4, %r11, %r11
; movdqu 0(%rdi,%r11,1), %xmm14
; pand %xmm0, %xmm14, %xmm0
; movq %rbp, %rsp
; popq %rbp
@@ -252,12 +256,13 @@ block0(v0: i32):
; movq %rsp, %rbp
; block0:
; movdqu const(0), %xmm9
; andq %rdi, $7, %rdi
; movq %rdi, %r10
; andq %r10, $7, %r10
; movdqa %xmm9, %xmm0
; punpcklbw %xmm0, %xmm9, %xmm0
; punpckhbw %xmm9, %xmm9, %xmm9
; addl %edi, $8, %edi
; movd %edi, %xmm12
; addl %r10d, $8, %r10d
; movd %r10d, %xmm12
; psraw %xmm0, %xmm12, %xmm0
; psraw %xmm9, %xmm12, %xmm9
; packsswb %xmm0, %xmm9, %xmm0
@@ -279,14 +284,14 @@ block0(v0: i8x16, v1: i32):
; movdqa %xmm0, %xmm14
; punpcklbw %xmm14, %xmm0, %xmm14
; movdqa %xmm14, %xmm13
; punpckhbw %xmm0, %xmm0, %xmm0
; movdqa %xmm0, %xmm6
; movdqa %xmm0, %xmm14
; punpckhbw %xmm14, %xmm0, %xmm14
; addl %r11d, $8, %r11d
; movd %r11d, %xmm14
; movd %r11d, %xmm15
; movdqa %xmm13, %xmm0
; psraw %xmm0, %xmm14, %xmm0
; psraw %xmm6, %xmm14, %xmm6
; packsswb %xmm0, %xmm6, %xmm0
; psraw %xmm0, %xmm15, %xmm0
; psraw %xmm14, %xmm15, %xmm14
; packsswb %xmm0, %xmm14, %xmm0
; movq %rbp, %rsp
; popq %rbp
; ret

View File

@@ -42,8 +42,9 @@ block0(v0: i64x2):
; movq %rsp, %rbp
; block0:
; pxor %xmm3, %xmm3, %xmm3
; pcmpeqq %xmm0, %xmm3, %xmm0
; ptest %xmm0, %xmm0
; movdqa %xmm0, %xmm5
; pcmpeqq %xmm5, %xmm3, %xmm5
; ptest %xmm5, %xmm5
; setz %al
; movq %rbp, %rsp
; popq %rbp

View File

@@ -10,9 +10,8 @@ block0(v0: i8, v1: i8):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; xorl %r10d, %r10d, %r10d
; movq %rdi, %rax
; movq %r10, %rdx
; xorl %edx, %edx, %edx
; srem_seq %al, %dl, %sil, %al, %dl, tmp=(none)
; shrq $8, %rax, %rax
; movq %rbp, %rsp
@@ -28,9 +27,8 @@ block0(v0: i16, v1: i16):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; xorl %r10d, %r10d, %r10d
; movq %rdi, %rax
; movq %r10, %rdx
; xorl %edx, %edx, %edx
; srem_seq %ax, %dx, %si, %ax, %dx, tmp=(none)
; movq %rdx, %rax
; movq %rbp, %rsp
@@ -46,9 +44,8 @@ block0(v0: i32, v1: i32):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; xorl %r10d, %r10d, %r10d
; movq %rdi, %rax
; movq %r10, %rdx
; xorl %edx, %edx, %edx
; srem_seq %eax, %edx, %esi, %eax, %edx, tmp=(none)
; movq %rdx, %rax
; movq %rbp, %rsp
@@ -64,9 +61,8 @@ block0(v0: i64, v1: i64):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; xorl %r10d, %r10d, %r10d
; movq %rdi, %rax
; movq %r10, %rdx
; xorl %edx, %edx, %edx
; srem_seq %rax, %rdx, %rsi, %rax, %rdx, tmp=(none)
; movq %rdx, %rax
; movq %rbp, %rsp

View File

@@ -17,25 +17,26 @@ block0(v0: i128, v1: i8):
; movq %rsp, %rbp
; block0:
; movzbq %dl, %rcx
; shrq %cl, %rdi, %rdi
; movq %rsi, %rdx
; sarq %cl, %rdx, %rdx
; movq %rdi, %r8
; shrq %cl, %r8, %r8
; movq %rsi, %rdi
; sarq %cl, %rdi, %rdi
; movq %rcx, %rax
; movl $64, %ecx
; movq %rax, %r8
; subq %rcx, %r8, %rcx
; movq %rax, %r9
; subq %rcx, %r9, %rcx
; movq %rsi, %r11
; shlq %cl, %r11, %r11
; xorq %rax, %rax, %rax
; testq $127, %r8
; testq $127, %r9
; cmovzq %rax, %r11, %r11
; orq %rdi, %r11, %rdi
; sarq $63, %rsi, %rsi
; testq $64, %r8
; movq %rdx, %rax
; cmovzq %rdi, %rax, %rax
; cmovzq %rdx, %rsi, %rsi
; orq %r8, %r11, %r8
; movq %rsi, %rdx
; sarq $63, %rdx, %rdx
; testq $64, %r9
; movq %rdi, %rax
; cmovzq %r8, %rax, %rax
; cmovzq %rdi, %rdx, %rdx
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -50,23 +51,25 @@ block0(v0: i128, v1: i64):
; movq %rsp, %rbp
; block0:
; movq %rdx, %rcx
; shrq %cl, %rdi, %rdi
; movq %rdi, %r8
; shrq %cl, %r8, %r8
; movq %rsi, %r11
; sarq %cl, %r11, %r11
; movl $64, %ecx
; subq %rcx, %rdx, %rcx
; movq %rdx, %r9
; subq %rcx, %r9, %rcx
; movq %rsi, %r10
; shlq %cl, %r10, %r10
; xorq %rax, %rax, %rax
; testq $127, %rdx
; cmovzq %rax, %r10, %r10
; orq %rdi, %r10, %rdi
; sarq $63, %rsi, %rsi
; testq $64, %rdx
; movq %r11, %rax
; cmovzq %rdi, %rax, %rax
; cmovzq %r11, %rsi, %rsi
; xorq %rdi, %rdi, %rdi
; testq $127, %r9
; cmovzq %rdi, %r10, %r10
; orq %r8, %r10, %r8
; movq %rsi, %rdx
; sarq $63, %rdx, %rdx
; testq $64, %r9
; movq %r11, %rax
; cmovzq %r8, %rax, %rax
; cmovzq %r11, %rdx, %rdx
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -81,23 +84,25 @@ block0(v0: i128, v1: i32):
; movq %rsp, %rbp
; block0:
; movq %rdx, %rcx
; shrq %cl, %rdi, %rdi
; movq %rdi, %r8
; shrq %cl, %r8, %r8
; movq %rsi, %r11
; sarq %cl, %r11, %r11
; movl $64, %ecx
; subq %rcx, %rdx, %rcx
; movq %rdx, %r9
; subq %rcx, %r9, %rcx
; movq %rsi, %r10
; shlq %cl, %r10, %r10
; xorq %rax, %rax, %rax
; testq $127, %rdx
; cmovzq %rax, %r10, %r10
; orq %rdi, %r10, %rdi
; sarq $63, %rsi, %rsi
; testq $64, %rdx
; movq %r11, %rax
; cmovzq %rdi, %rax, %rax
; cmovzq %r11, %rsi, %rsi
; xorq %rdi, %rdi, %rdi
; testq $127, %r9
; cmovzq %rdi, %r10, %r10
; orq %r8, %r10, %r8
; movq %rsi, %rdx
; sarq $63, %rdx, %rdx
; testq $64, %r9
; movq %r11, %rax
; cmovzq %r8, %rax, %rax
; cmovzq %r11, %rdx, %rdx
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -112,23 +117,25 @@ block0(v0: i128, v1: i16):
; movq %rsp, %rbp
; block0:
; movq %rdx, %rcx
; shrq %cl, %rdi, %rdi
; movq %rdi, %r8
; shrq %cl, %r8, %r8
; movq %rsi, %r11
; sarq %cl, %r11, %r11
; movl $64, %ecx
; subq %rcx, %rdx, %rcx
; movq %rdx, %r9
; subq %rcx, %r9, %rcx
; movq %rsi, %r10
; shlq %cl, %r10, %r10
; xorq %rax, %rax, %rax
; testq $127, %rdx
; cmovzq %rax, %r10, %r10
; orq %rdi, %r10, %rdi
; sarq $63, %rsi, %rsi
; testq $64, %rdx
; movq %r11, %rax
; cmovzq %rdi, %rax, %rax
; cmovzq %r11, %rsi, %rsi
; xorq %rdi, %rdi, %rdi
; testq $127, %r9
; cmovzq %rdi, %r10, %r10
; orq %r8, %r10, %r8
; movq %rsi, %rdx
; sarq $63, %rdx, %rdx
; testq $64, %r9
; movq %r11, %rax
; cmovzq %r8, %rax, %rax
; cmovzq %r11, %rdx, %rdx
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -143,23 +150,25 @@ block0(v0: i128, v1: i8):
; movq %rsp, %rbp
; block0:
; movq %rdx, %rcx
; shrq %cl, %rdi, %rdi
; movq %rdi, %r8
; shrq %cl, %r8, %r8
; movq %rsi, %r11
; sarq %cl, %r11, %r11
; movl $64, %ecx
; subq %rcx, %rdx, %rcx
; movq %rdx, %r9
; subq %rcx, %r9, %rcx
; movq %rsi, %r10
; shlq %cl, %r10, %r10
; xorq %rax, %rax, %rax
; testq $127, %rdx
; cmovzq %rax, %r10, %r10
; orq %rdi, %r10, %rdi
; sarq $63, %rsi, %rsi
; testq $64, %rdx
; movq %r11, %rax
; cmovzq %rdi, %rax, %rax
; cmovzq %r11, %rsi, %rsi
; xorq %rdi, %rdi, %rdi
; testq $127, %r9
; cmovzq %rdi, %r10, %r10
; orq %r8, %r10, %r8
; movq %rsi, %rdx
; sarq $63, %rdx, %rdx
; testq $64, %r9
; movq %r11, %rax
; cmovzq %r8, %rax, %rax
; cmovzq %r11, %rdx, %rdx
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -174,8 +183,8 @@ block0(v0: i64, v1: i128):
; movq %rsp, %rbp
; block0:
; movq %rsi, %rcx
; sarq %cl, %rdi, %rdi
; movq %rdi, %rax
; sarq %cl, %rax, %rax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -190,8 +199,8 @@ block0(v0: i32, v1: i128):
; movq %rsp, %rbp
; block0:
; movq %rsi, %rcx
; sarl %cl, %edi, %edi
; movq %rdi, %rax
; sarl %cl, %eax, %eax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -207,8 +216,8 @@ block0(v0: i16, v1: i128):
; block0:
; movq %rsi, %rcx
; andq %rcx, $15, %rcx
; sarw %cl, %di, %di
; movq %rdi, %rax
; sarw %cl, %ax, %ax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -224,8 +233,8 @@ block0(v0: i8, v1: i128):
; block0:
; movq %rsi, %rcx
; andq %rcx, $7, %rcx
; sarb %cl, %dil, %dil
; movq %rdi, %rax
; sarb %cl, %al, %al
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -240,8 +249,8 @@ block0(v0: i64, v1: i64):
; movq %rsp, %rbp
; block0:
; movq %rsi, %rcx
; sarq %cl, %rdi, %rdi
; movq %rdi, %rax
; sarq %cl, %rax, %rax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -256,8 +265,8 @@ block0(v0: i64, v1: i32):
; movq %rsp, %rbp
; block0:
; movq %rsi, %rcx
; sarq %cl, %rdi, %rdi
; movq %rdi, %rax
; sarq %cl, %rax, %rax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -272,8 +281,8 @@ block0(v0: i64, v1: i16):
; movq %rsp, %rbp
; block0:
; movq %rsi, %rcx
; sarq %cl, %rdi, %rdi
; movq %rdi, %rax
; sarq %cl, %rax, %rax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -288,8 +297,8 @@ block0(v0: i64, v1: i8):
; movq %rsp, %rbp
; block0:
; movq %rsi, %rcx
; sarq %cl, %rdi, %rdi
; movq %rdi, %rax
; sarq %cl, %rax, %rax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -304,8 +313,8 @@ block0(v0: i32, v1: i64):
; movq %rsp, %rbp
; block0:
; movq %rsi, %rcx
; sarl %cl, %edi, %edi
; movq %rdi, %rax
; sarl %cl, %eax, %eax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -320,8 +329,8 @@ block0(v0: i32, v1: i32):
; movq %rsp, %rbp
; block0:
; movq %rsi, %rcx
; sarl %cl, %edi, %edi
; movq %rdi, %rax
; sarl %cl, %eax, %eax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -336,8 +345,8 @@ block0(v0: i32, v1: i16):
; movq %rsp, %rbp
; block0:
; movq %rsi, %rcx
; sarl %cl, %edi, %edi
; movq %rdi, %rax
; sarl %cl, %eax, %eax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -352,8 +361,8 @@ block0(v0: i32, v1: i8):
; movq %rsp, %rbp
; block0:
; movq %rsi, %rcx
; sarl %cl, %edi, %edi
; movq %rdi, %rax
; sarl %cl, %eax, %eax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -369,8 +378,8 @@ block0(v0: i16, v1: i64):
; block0:
; movq %rsi, %rcx
; andq %rcx, $15, %rcx
; sarw %cl, %di, %di
; movq %rdi, %rax
; sarw %cl, %ax, %ax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -386,8 +395,8 @@ block0(v0: i16, v1: i32):
; block0:
; movq %rsi, %rcx
; andq %rcx, $15, %rcx
; sarw %cl, %di, %di
; movq %rdi, %rax
; sarw %cl, %ax, %ax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -403,8 +412,8 @@ block0(v0: i16, v1: i16):
; block0:
; movq %rsi, %rcx
; andq %rcx, $15, %rcx
; sarw %cl, %di, %di
; movq %rdi, %rax
; sarw %cl, %ax, %ax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -420,8 +429,8 @@ block0(v0: i16, v1: i8):
; block0:
; movq %rsi, %rcx
; andq %rcx, $15, %rcx
; sarw %cl, %di, %di
; movq %rdi, %rax
; sarw %cl, %ax, %ax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -437,8 +446,8 @@ block0(v0: i8, v1: i64):
; block0:
; movq %rsi, %rcx
; andq %rcx, $7, %rcx
; sarb %cl, %dil, %dil
; movq %rdi, %rax
; sarb %cl, %al, %al
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -454,8 +463,8 @@ block0(v0: i8, v1: i32):
; block0:
; movq %rsi, %rcx
; andq %rcx, $7, %rcx
; sarb %cl, %dil, %dil
; movq %rdi, %rax
; sarb %cl, %al, %al
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -471,8 +480,8 @@ block0(v0: i8, v1: i16):
; block0:
; movq %rsi, %rcx
; andq %rcx, $7, %rcx
; sarb %cl, %dil, %dil
; movq %rdi, %rax
; sarb %cl, %al, %al
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -488,13 +497,12 @@ block0(v0: i8, v1: i8):
; block0:
; movq %rsi, %rcx
; andq %rcx, $7, %rcx
; sarb %cl, %dil, %dil
; movq %rdi, %rax
; sarb %cl, %al, %al
; movq %rbp, %rsp
; popq %rbp
; ret
function %sshr_i64_const(i64) -> i64 {
block0(v0: i64):
v1 = sshr_imm.i64 v0, 65
@@ -504,8 +512,8 @@ block0(v0: i64):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; sarq $1, %rdi, %rdi
; movq %rdi, %rax
; sarq $1, %rax, %rax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -519,8 +527,8 @@ block0(v0: i32):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; sarl $1, %edi, %edi
; movq %rdi, %rax
; sarl $1, %eax, %eax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -534,8 +542,8 @@ block0(v0: i16):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; sarw $1, %di, %di
; movq %rdi, %rax
; sarw $1, %ax, %ax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -549,8 +557,8 @@ block0(v0: i8):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; sarb $1, %dil, %dil
; movq %rdi, %rax
; sarb $1, %al, %al
; movq %rbp, %rsp
; popq %rbp
; ret

View File

@@ -46,14 +46,13 @@ block0(v0: i64):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; movq %rdi, %r8
; movq %rdi, %rsi
; subq %rsp, $64, %rsp
; virtual_sp_offset_adjust 64
; lea 0(%rsp), %rdi
; movq %r8, %rsi
; movl $64, %edx
; load_ext_name %Memcpy+0, %rcx
; call *%rcx
; load_ext_name %Memcpy+0, %rax
; call *%rax
; call User(userextname0)
; addq %rsp, $64, %rsp
; virtual_sp_offset_adjust -64
@@ -72,20 +71,20 @@ block0(v0: i64, v1: i64):
; pushq %rbp
; movq %rsp, %rbp
; subq %rsp, $16, %rsp
; movq %r12, 0(%rsp)
; movq %r14, 0(%rsp)
; block0:
; movq %rdi, %r12
; movq %rdi, %r14
; subq %rsp, $64, %rsp
; virtual_sp_offset_adjust 64
; lea 0(%rsp), %rdi
; movl $64, %edx
; load_ext_name %Memcpy+0, %rcx
; call *%rcx
; movq %r12, %rdi
; movq %r14, %rdi
; call User(userextname0)
; addq %rsp, $64, %rsp
; virtual_sp_offset_adjust -64
; movq 0(%rsp), %r12
; movq 0(%rsp), %r14
; addq %rsp, $16, %rsp
; movq %rbp, %rsp
; popq %rbp
@@ -122,28 +121,29 @@ block0(v0: i64, v1: i64, v2: i64):
; pushq %rbp
; movq %rsp, %rbp
; subq %rsp, $16, %rsp
; movq %rbx, 0(%rsp)
; movq %r14, 8(%rsp)
; movq %r13, 0(%rsp)
; movq %r15, 8(%rsp)
; block0:
; movq %rdx, %rbx
; movq %rdi, %r14
; movq %rdx, %r15
; movq %rdi, %r13
; subq %rsp, $192, %rsp
; virtual_sp_offset_adjust 192
; lea 0(%rsp), %rdi
; movl $128, %edx
; load_ext_name %Memcpy+0, %rcx
; call *%rcx
; load_ext_name %Memcpy+0, %r8
; call *%r8
; lea 128(%rsp), %rdi
; movq %rbx, %rsi
; movq %r15, %rsi
; movl $64, %edx
; load_ext_name %Memcpy+0, %rcx
; call *%rcx
; movq %r14, %rdi
; load_ext_name %Memcpy+0, %r8
; movq %r15, %rsi
; call *%r8
; movq %r13, %rdi
; call User(userextname0)
; addq %rsp, $192, %rsp
; virtual_sp_offset_adjust -192
; movq 0(%rsp), %rbx
; movq 8(%rsp), %r14
; movq 0(%rsp), %r13
; movq 8(%rsp), %r15
; addq %rsp, $16, %rsp
; movq %rbp, %rsp
; popq %rbp

View File

@@ -47,15 +47,10 @@ block0(v0: i64):
; pushq %rbp
; movq %rsp, %rbp
; subq %rsp, $16, %rsp
; movq %r15, 0(%rsp)
; block0:
; movq %rdi, %r15
; load_ext_name %f4+0, %r8
; call *%r8
; movq %r15, %rax
; movq 0(%rsp), %r15
; addq %rsp, $16, %rsp
; movq %rdi, %rax
; load_ext_name %f4+0, %rdx
; call *%rdx
; movq %rbp, %rsp
; popq %rbp
; ret

View File

@@ -22,7 +22,8 @@ block0(v0: i64, v1: i64):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; addq %rdi, %rsi, %rdi
; movq %rdi, %rcx
; addq %rcx, %rsi, %rcx
; jnb ; ud2 user0 ;
; movq %rbp, %rsp
; popq %rbp

View File

@@ -10,8 +10,8 @@ block0(v0: f32):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; load_ext_name %TruncF32+0, %r8
; call *%r8
; load_ext_name %TruncF32+0, %rdx
; call *%rdx
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -25,8 +25,8 @@ block0(v0: f64):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; load_ext_name %TruncF64+0, %r8
; call *%r8
; load_ext_name %TruncF64+0, %rdx
; call *%rdx
; movq %rbp, %rsp
; popq %rbp
; ret

View File

@@ -10,8 +10,7 @@ block0(v0: i8, v1: i8):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; movzbl %dil, %r9d
; movq %r9, %rax
; movzbl %dil, %eax
; div %al, (none), %sil, %al, (none)
; movq %rbp, %rsp
; popq %rbp
@@ -26,9 +25,8 @@ block0(v0: i16, v1: i16):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; movl $0, %r10d
; movq %rdi, %rax
; movq %r10, %rdx
; movl $0, %edx
; div %ax, %dx, %si, %ax, %dx
; movq %rbp, %rsp
; popq %rbp
@@ -43,9 +41,8 @@ block0(v0: i32, v1: i32):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; movl $0, %r10d
; movq %rdi, %rax
; movq %r10, %rdx
; movl $0, %edx
; div %eax, %edx, %esi, %eax, %edx
; movq %rbp, %rsp
; popq %rbp
@@ -60,9 +57,8 @@ block0(v0: i64, v1: i64):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; movl $0, %r10d
; movq %rdi, %rax
; movq %r10, %rdx
; movl $0, %edx
; div %rax, %rdx, %rsi, %rax, %rdx
; movq %rbp, %rsp
; popq %rbp

View File

@@ -11,8 +11,8 @@ block0(v0: i32, v1: i32):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; addl %edi, %esi, %edi
; movq %rdi, %rax
; addl %eax, %esi, %eax
; movq %rbp, %rsp
; popq %rbp
; ret

View File

@@ -13,8 +13,8 @@ block0(v1: i32, v2: i64):
; block0:
; movl 0(%rsi), %r8d
; cmpl %edi, %r8d
; cmovnbl %r8d, %edi, %edi
; movq %rdi, %rax
; cmovnbl %r8d, %eax, %eax
; movq %rbp, %rsp
; popq %rbp
; ret

View File

@@ -10,8 +10,7 @@ block0(v0: i8, v1: i8):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; movzbl %dil, %r9d
; movq %r9, %rax
; movzbl %dil, %eax
; div %al, (none), %sil, %al, (none)
; shrq $8, %rax, %rax
; movq %rbp, %rsp
@@ -27,9 +26,8 @@ block0(v0: i16, v1: i16):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; movl $0, %r10d
; movq %rdi, %rax
; movq %r10, %rdx
; movl $0, %edx
; div %ax, %dx, %si, %ax, %dx
; movq %rdx, %rax
; movq %rbp, %rsp
@@ -45,9 +43,8 @@ block0(v0: i32, v1: i32):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; movl $0, %r10d
; movq %rdi, %rax
; movq %r10, %rdx
; movl $0, %edx
; div %eax, %edx, %esi, %eax, %edx
; movq %rdx, %rax
; movq %rbp, %rsp
@@ -63,9 +60,8 @@ block0(v0: i64, v1: i64):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; movl $0, %r10d
; movq %rdi, %rax
; movq %r10, %rdx
; movl $0, %edx
; div %rax, %rdx, %rsi, %rax, %rdx
; movq %rdx, %rax
; movq %rbp, %rsp

View File

@@ -16,22 +16,24 @@ block0(v0: i128, v1: i8):
; movq %rsp, %rbp
; block0:
; movzbq %dl, %rcx
; shrq %cl, %rdi, %rdi
; movq %rdi, %r10
; shrq %cl, %r10, %r10
; movq %rsi, %r8
; shrq %cl, %r8, %r8
; movq %rcx, %rax
; movq %rcx, %rdi
; movl $64, %ecx
; movq %rax, %r9
; movq %rdi, %r9
; subq %rcx, %r9, %rcx
; shlq %cl, %rsi, %rsi
; movq %rsi, %rdi
; shlq %cl, %rdi, %rdi
; xorq %r11, %r11, %r11
; testq $127, %r9
; cmovzq %r11, %rsi, %rsi
; orq %rsi, %rdi, %rsi
; cmovzq %r11, %rdi, %rdi
; orq %rdi, %r10, %rdi
; xorq %rdx, %rdx, %rdx
; testq $64, %r9
; movq %r8, %rax
; cmovzq %rsi, %rax, %rax
; cmovzq %rdi, %rax, %rax
; cmovzq %r8, %rdx, %rdx
; movq %rbp, %rsp
; popq %rbp
@@ -47,7 +49,8 @@ block0(v0: i128, v1: i64):
; movq %rsp, %rbp
; block0:
; movq %rdx, %rcx
; shrq %cl, %rdi, %rdi
; movq %rdi, %r9
; shrq %cl, %r9, %r9
; movq %rsi, %r11
; shrq %cl, %r11, %r11
; movl $64, %ecx
@@ -57,7 +60,7 @@ block0(v0: i128, v1: i64):
; xorq %r10, %r10, %r10
; testq $127, %r8
; cmovzq %r10, %rsi, %rsi
; orq %rsi, %rdi, %rsi
; orq %rsi, %r9, %rsi
; xorq %rdx, %rdx, %rdx
; testq $64, %r8
; movq %r11, %rax
@@ -77,7 +80,8 @@ block0(v0: i128, v1: i32):
; movq %rsp, %rbp
; block0:
; movq %rdx, %rcx
; shrq %cl, %rdi, %rdi
; movq %rdi, %r9
; shrq %cl, %r9, %r9
; movq %rsi, %r11
; shrq %cl, %r11, %r11
; movl $64, %ecx
@@ -87,7 +91,7 @@ block0(v0: i128, v1: i32):
; xorq %r10, %r10, %r10
; testq $127, %r8
; cmovzq %r10, %rsi, %rsi
; orq %rsi, %rdi, %rsi
; orq %rsi, %r9, %rsi
; xorq %rdx, %rdx, %rdx
; testq $64, %r8
; movq %r11, %rax
@@ -107,7 +111,8 @@ block0(v0: i128, v1: i16):
; movq %rsp, %rbp
; block0:
; movq %rdx, %rcx
; shrq %cl, %rdi, %rdi
; movq %rdi, %r9
; shrq %cl, %r9, %r9
; movq %rsi, %r11
; shrq %cl, %r11, %r11
; movl $64, %ecx
@@ -117,7 +122,7 @@ block0(v0: i128, v1: i16):
; xorq %r10, %r10, %r10
; testq $127, %r8
; cmovzq %r10, %rsi, %rsi
; orq %rsi, %rdi, %rsi
; orq %rsi, %r9, %rsi
; xorq %rdx, %rdx, %rdx
; testq $64, %r8
; movq %r11, %rax
@@ -137,7 +142,8 @@ block0(v0: i128, v1: i8):
; movq %rsp, %rbp
; block0:
; movq %rdx, %rcx
; shrq %cl, %rdi, %rdi
; movq %rdi, %r9
; shrq %cl, %r9, %r9
; movq %rsi, %r11
; shrq %cl, %r11, %r11
; movl $64, %ecx
@@ -147,7 +153,7 @@ block0(v0: i128, v1: i8):
; xorq %r10, %r10, %r10
; testq $127, %r8
; cmovzq %r10, %rsi, %rsi
; orq %rsi, %rdi, %rsi
; orq %rsi, %r9, %rsi
; xorq %rdx, %rdx, %rdx
; testq $64, %r8
; movq %r11, %rax
@@ -167,8 +173,8 @@ block0(v0: i64, v1: i128):
; movq %rsp, %rbp
; block0:
; movq %rsi, %rcx
; shrq %cl, %rdi, %rdi
; movq %rdi, %rax
; shrq %cl, %rax, %rax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -184,8 +190,8 @@ block0(v0: i32, v1: i64, v2: i64):
; movq %rsp, %rbp
; block0:
; movq %rsi, %rcx
; shrl %cl, %edi, %edi
; movq %rdi, %rax
; shrl %cl, %eax, %eax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -201,8 +207,8 @@ block0(v0: i16, v1: i128):
; block0:
; movq %rsi, %rcx
; andq %rcx, $15, %rcx
; shrw %cl, %di, %di
; movq %rdi, %rax
; shrw %cl, %ax, %ax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -218,8 +224,8 @@ block0(v0: i8, v1: i128):
; block0:
; movq %rsi, %rcx
; andq %rcx, $7, %rcx
; shrb %cl, %dil, %dil
; movq %rdi, %rax
; shrb %cl, %al, %al
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -234,8 +240,8 @@ block0(v0: i64, v1: i64):
; movq %rsp, %rbp
; block0:
; movq %rsi, %rcx
; shrq %cl, %rdi, %rdi
; movq %rdi, %rax
; shrq %cl, %rax, %rax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -250,8 +256,8 @@ block0(v0: i64, v1: i32):
; movq %rsp, %rbp
; block0:
; movq %rsi, %rcx
; shrq %cl, %rdi, %rdi
; movq %rdi, %rax
; shrq %cl, %rax, %rax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -266,8 +272,8 @@ block0(v0: i64, v1: i16):
; movq %rsp, %rbp
; block0:
; movq %rsi, %rcx
; shrq %cl, %rdi, %rdi
; movq %rdi, %rax
; shrq %cl, %rax, %rax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -282,8 +288,8 @@ block0(v0: i64, v1: i8):
; movq %rsp, %rbp
; block0:
; movq %rsi, %rcx
; shrq %cl, %rdi, %rdi
; movq %rdi, %rax
; shrq %cl, %rax, %rax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -298,8 +304,8 @@ block0(v0: i32, v1: i64):
; movq %rsp, %rbp
; block0:
; movq %rsi, %rcx
; shrl %cl, %edi, %edi
; movq %rdi, %rax
; shrl %cl, %eax, %eax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -314,8 +320,8 @@ block0(v0: i32, v1: i32):
; movq %rsp, %rbp
; block0:
; movq %rsi, %rcx
; shrl %cl, %edi, %edi
; movq %rdi, %rax
; shrl %cl, %eax, %eax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -330,8 +336,8 @@ block0(v0: i32, v1: i16):
; movq %rsp, %rbp
; block0:
; movq %rsi, %rcx
; shrl %cl, %edi, %edi
; movq %rdi, %rax
; shrl %cl, %eax, %eax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -346,8 +352,8 @@ block0(v0: i32, v1: i8):
; movq %rsp, %rbp
; block0:
; movq %rsi, %rcx
; shrl %cl, %edi, %edi
; movq %rdi, %rax
; shrl %cl, %eax, %eax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -363,8 +369,8 @@ block0(v0: i16, v1: i64):
; block0:
; movq %rsi, %rcx
; andq %rcx, $15, %rcx
; shrw %cl, %di, %di
; movq %rdi, %rax
; shrw %cl, %ax, %ax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -380,8 +386,8 @@ block0(v0: i16, v1: i32):
; block0:
; movq %rsi, %rcx
; andq %rcx, $15, %rcx
; shrw %cl, %di, %di
; movq %rdi, %rax
; shrw %cl, %ax, %ax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -397,8 +403,8 @@ block0(v0: i16, v1: i16):
; block0:
; movq %rsi, %rcx
; andq %rcx, $15, %rcx
; shrw %cl, %di, %di
; movq %rdi, %rax
; shrw %cl, %ax, %ax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -414,8 +420,8 @@ block0(v0: i16, v1: i8):
; block0:
; movq %rsi, %rcx
; andq %rcx, $15, %rcx
; shrw %cl, %di, %di
; movq %rdi, %rax
; shrw %cl, %ax, %ax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -431,8 +437,8 @@ block0(v0: i8, v1: i64):
; block0:
; movq %rsi, %rcx
; andq %rcx, $7, %rcx
; shrb %cl, %dil, %dil
; movq %rdi, %rax
; shrb %cl, %al, %al
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -448,8 +454,8 @@ block0(v0: i8, v1: i32):
; block0:
; movq %rsi, %rcx
; andq %rcx, $7, %rcx
; shrb %cl, %dil, %dil
; movq %rdi, %rax
; shrb %cl, %al, %al
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -465,8 +471,8 @@ block0(v0: i8, v1: i16):
; block0:
; movq %rsi, %rcx
; andq %rcx, $7, %rcx
; shrb %cl, %dil, %dil
; movq %rdi, %rax
; shrb %cl, %al, %al
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -482,14 +488,12 @@ block0(v0: i8, v1: i8):
; block0:
; movq %rsi, %rcx
; andq %rcx, $7, %rcx
; shrb %cl, %dil, %dil
; movq %rdi, %rax
; shrb %cl, %al, %al
; movq %rbp, %rsp
; popq %rbp
; ret
function %ushr_i64_const(i64) -> i64 {
block0(v0: i64):
v1 = ushr_imm.i64 v0, 65
@@ -499,8 +503,8 @@ block0(v0: i64):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; shrq $1, %rdi, %rdi
; movq %rdi, %rax
; shrq $1, %rax, %rax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -514,8 +518,8 @@ block0(v0: i32):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; shrl $1, %edi, %edi
; movq %rdi, %rax
; shrl $1, %eax, %eax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -529,8 +533,8 @@ block0(v0: i16):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; shrw $1, %di, %di
; movq %rdi, %rax
; shrw $1, %ax, %ax
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -544,8 +548,8 @@ block0(v0: i8):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; shrb $1, %dil, %dil
; movq %rdi, %rax
; shrb $1, %al, %al
; movq %rbp, %rsp
; popq %rbp
; ret

View File

@@ -13,10 +13,11 @@ block0(v0: f64x2):
; movq %rsp, %rbp
; block0:
; xorpd %xmm3, %xmm3, %xmm3
; maxpd %xmm0, %xmm3, %xmm0
; movupd const(0), %xmm7
; minpd %xmm0, %xmm7, %xmm0
; roundpd $3, %xmm0, %xmm0
; movdqa %xmm0, %xmm7
; maxpd %xmm7, %xmm3, %xmm7
; movupd const(0), %xmm8
; minpd %xmm7, %xmm8, %xmm7
; roundpd $3, %xmm7, %xmm0
; movupd const(1), %xmm13
; addpd %xmm0, %xmm13, %xmm0
; shufps $136, %xmm0, %xmm3, %xmm0

View File

@@ -38,8 +38,9 @@ block0(v0: i16x8):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; packsswb %xmm0, %xmm0, %xmm0
; pmovmskb %xmm0, %eax
; movdqa %xmm0, %xmm3
; packsswb %xmm3, %xmm0, %xmm3
; pmovmskb %xmm3, %eax
; shrq $8, %rax, %rax
; movq %rbp, %rsp
; popq %rbp

View File

@@ -52,8 +52,9 @@ block0(v0: i8x16):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; palignr $8, %xmm0, %xmm0, %xmm0
; pmovsxbw %xmm0, %xmm0
; movdqa %xmm0, %xmm3
; palignr $8, %xmm3, %xmm0, %xmm3
; pmovsxbw %xmm3, %xmm0
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -67,8 +68,9 @@ block0(v0: i16x8):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; palignr $8, %xmm0, %xmm0, %xmm0
; pmovsxwd %xmm0, %xmm0
; movdqa %xmm0, %xmm3
; palignr $8, %xmm3, %xmm0, %xmm3
; pmovsxwd %xmm3, %xmm0
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -139,8 +141,9 @@ block0(v0: i8x16):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; palignr $8, %xmm0, %xmm0, %xmm0
; pmovzxbw %xmm0, %xmm0
; movdqa %xmm0, %xmm3
; palignr $8, %xmm3, %xmm0, %xmm3
; pmovzxbw %xmm3, %xmm0
; movq %rbp, %rsp
; popq %rbp
; ret
@@ -154,8 +157,9 @@ block0(v0: i16x8):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; palignr $8, %xmm0, %xmm0, %xmm0
; pmovzxwd %xmm0, %xmm0
; movdqa %xmm0, %xmm3
; palignr $8, %xmm3, %xmm0, %xmm3
; pmovzxwd %xmm3, %xmm0
; movq %rbp, %rsp
; popq %rbp
; ret