s390x: update some regalloc metadata to remove use of reg_mod. (#4856)
* s390x: update some regalloc metadata to remove use of `reg_mod`. This is a step toward ultimately removing modify-operands, which along with removal of pinned vregs, lets us move to a completely constraint-based and fully-SSA regalloc input and get some nice advantages eventually. There are still a few uses of `mod` operands and pinned vregs remaining, especially around the "regpair" abstraction. Those proved to be a bit trickier to update though, so will have to be done separately. * Review feedback: restore two-arg pretty-print form. * Review feedback.
This commit is contained in:
@@ -47,8 +47,8 @@ block0(v0: i64, v1: i16, v2: i16, v3: i64):
|
||||
; 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:
|
||||
; rll %r3, %r0, 0(%r4)
|
||||
; lrvr %r2, %r3
|
||||
; rll %r2, %r0, 0(%r4)
|
||||
; lrvr %r2, %r2
|
||||
; lmg %r9, %r15, 72(%r15)
|
||||
; br %r14
|
||||
|
||||
@@ -58,15 +58,15 @@ block0(v0: i64, v1: i8, v2: i8, v3: i64):
|
||||
return v4
|
||||
}
|
||||
|
||||
; stmg %r12, %r15, 96(%r15)
|
||||
; stmg %r11, %r15, 88(%r15)
|
||||
; block0:
|
||||
; lgr %r12, %r4
|
||||
; 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, %r12, 32, 40, 24 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; 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:
|
||||
; rll %r2, %r0, 8(%r4)
|
||||
; lmg %r12, %r15, 96(%r15)
|
||||
; lmg %r11, %r15, 88(%r15)
|
||||
; br %r14
|
||||
|
||||
|
||||
@@ -46,15 +46,15 @@ block0(v0: i64, v1: i8, v2: i8, v3: i64):
|
||||
return v4
|
||||
}
|
||||
|
||||
; stmg %r12, %r15, 96(%r15)
|
||||
; stmg %r11, %r15, 88(%r15)
|
||||
; block0:
|
||||
; lgr %r12, %r4
|
||||
; 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, %r12, 32, 40, 24 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; 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:
|
||||
; rll %r2, %r0, 8(%r4)
|
||||
; lmg %r12, %r15, 96(%r15)
|
||||
; lmg %r11, %r15, 88(%r15)
|
||||
; br %r14
|
||||
|
||||
|
||||
@@ -32,11 +32,12 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; sllk %r5, %r3, 3
|
||||
; lgr %r5, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r5) ; rnsbg %r1, %r4, 32, 48, 16 ; xilf %r1, 4294901760 ; rll %r1, %r1, 0(%r5) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 16(%r5)
|
||||
; 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)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_nand_i8(i64, i64, i8) -> i8 {
|
||||
@@ -46,12 +47,13 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; sllk %r5, %r3, 3
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; lcr %r2, %r5
|
||||
; lcr %r5, %r4
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r5) ; rnsbg %r1, %r4, 32, 40, 24 ; xilf %r1, 4278190080 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r5)
|
||||
; 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)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_nand_i64(i64, i64, i64) -> i64 {
|
||||
@@ -87,14 +89,14 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r5, %r4
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; lrvr %r5, %r5
|
||||
; 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 %r4, %r0, 0(%r4)
|
||||
; lrvr %r2, %r4
|
||||
; rll %r3, %r0, 0(%r4)
|
||||
; lrvr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_nand_i8(i64, i64, i8) -> i8 {
|
||||
@@ -104,11 +106,12 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; sllk %r5, %r3, 3
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; lcr %r2, %r5
|
||||
; lcr %r5, %r4
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r5) ; rnsbg %r1, %r4, 32, 40, 24 ; xilf %r1, 4278190080 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r5)
|
||||
; 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)
|
||||
; br %r14
|
||||
|
||||
|
||||
@@ -38,14 +38,14 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r5, %r4
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; lrvr %r5, %r5
|
||||
; 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 %r4, %r0, 0(%r4)
|
||||
; lrvr %r2, %r4
|
||||
; rll %r3, %r0, 0(%r4)
|
||||
; lrvr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_xchg_i8(i64, i64, i8) -> i8 {
|
||||
@@ -55,12 +55,13 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; sllk %r5, %r3, 3
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; lcr %r2, %r5
|
||||
; lcr %r5, %r4
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r5) ; risbgn %r1, %r4, 32, 40, 24 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r5)
|
||||
; 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)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_add_i64(i64, i64, i64) -> i64 {
|
||||
@@ -94,14 +95,14 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r5, %r4
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r5, 16
|
||||
; 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 %r4, %r0, 0(%r4)
|
||||
; lrvr %r2, %r4
|
||||
; rll %r3, %r0, 0(%r4)
|
||||
; lrvr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_add_i8(i64, i64, i8) -> i8 {
|
||||
@@ -111,14 +112,13 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r5, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; sllk %r2, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r5, 24
|
||||
; lcr %r2, %r4
|
||||
; sllk %r5, %r4, 24
|
||||
; lcr %r4, %r2
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; ar %r1, %r5 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r4)
|
||||
; 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)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_sub_i64(i64, i64, i64) -> i64 {
|
||||
@@ -152,14 +152,14 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r5, %r4
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r5, 16
|
||||
; 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 %r4, %r0, 0(%r4)
|
||||
; lrvr %r2, %r4
|
||||
; rll %r3, %r0, 0(%r4)
|
||||
; lrvr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_sub_i8(i64, i64, i8) -> i8 {
|
||||
@@ -169,14 +169,13 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r5, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; sllk %r2, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r5, 24
|
||||
; lcr %r2, %r4
|
||||
; sllk %r5, %r4, 24
|
||||
; lcr %r4, %r2
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; sr %r1, %r5 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r4)
|
||||
; 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)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_and_i64(i64, i64, i64) -> i64 {
|
||||
@@ -210,14 +209,14 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r5, %r4
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; lrvr %r5, %r5
|
||||
; 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 %r4, %r0, 0(%r4)
|
||||
; lrvr %r2, %r4
|
||||
; rll %r3, %r0, 0(%r4)
|
||||
; lrvr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_and_i8(i64, i64, i8) -> i8 {
|
||||
@@ -227,12 +226,13 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; sllk %r5, %r3, 3
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; lcr %r2, %r5
|
||||
; lcr %r5, %r4
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r5) ; rnsbg %r1, %r4, 32, 40, 24 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r5)
|
||||
; 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)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_or_i64(i64, i64, i64) -> i64 {
|
||||
@@ -266,14 +266,14 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r5, %r4
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; lrvr %r5, %r5
|
||||
; 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 %r4, %r0, 0(%r4)
|
||||
; lrvr %r2, %r4
|
||||
; rll %r3, %r0, 0(%r4)
|
||||
; lrvr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_or_i8(i64, i64, i8) -> i8 {
|
||||
@@ -283,12 +283,13 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; sllk %r5, %r3, 3
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; lcr %r2, %r5
|
||||
; lcr %r5, %r4
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r5) ; rosbg %r1, %r4, 32, 40, 24 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r5)
|
||||
; 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)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_xor_i64(i64, i64, i64) -> i64 {
|
||||
@@ -322,14 +323,14 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r5, %r4
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; lrvr %r5, %r5
|
||||
; 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 %r4, %r0, 0(%r4)
|
||||
; lrvr %r2, %r4
|
||||
; rll %r3, %r0, 0(%r4)
|
||||
; lrvr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_xor_i8(i64, i64, i8) -> i8 {
|
||||
@@ -339,12 +340,13 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; sllk %r5, %r3, 3
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; lcr %r2, %r5
|
||||
; lcr %r5, %r4
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r5) ; rxsbg %r1, %r4, 32, 40, 24 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r5)
|
||||
; 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)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_nand_i64(i64, i64, i64) -> i64 {
|
||||
@@ -380,14 +382,14 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r5, %r4
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; lrvr %r5, %r5
|
||||
; 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 %r4, %r0, 0(%r4)
|
||||
; lrvr %r2, %r4
|
||||
; rll %r3, %r0, 0(%r4)
|
||||
; lrvr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_nand_i8(i64, i64, i8) -> i8 {
|
||||
@@ -397,12 +399,13 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; sllk %r5, %r3, 3
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; lcr %r2, %r5
|
||||
; lcr %r5, %r4
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r5) ; rnsbg %r1, %r4, 32, 40, 24 ; xilf %r1, 4278190080 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r5)
|
||||
; 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)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_smin_i64(i64, i64, i64) -> i64 {
|
||||
@@ -436,14 +439,14 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r5, %r4
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r5, 16
|
||||
; 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 %r4, %r0, 0(%r4)
|
||||
; lrvr %r2, %r4
|
||||
; rll %r3, %r0, 0(%r4)
|
||||
; lrvr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_smin_i8(i64, i64, i8) -> i8 {
|
||||
@@ -453,14 +456,13 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r5, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; sllk %r2, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r5, 24
|
||||
; lcr %r2, %r4
|
||||
; sllk %r5, %r4, 24
|
||||
; lcr %r4, %r2
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; cr %r5, %r1 ; jgnl 1f ; risbgn %r1, %r5, 32, 40, 0 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r4)
|
||||
; 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)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_smax_i64(i64, i64, i64) -> i64 {
|
||||
@@ -494,14 +496,14 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r5, %r4
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r5, 16
|
||||
; 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 %r4, %r0, 0(%r4)
|
||||
; lrvr %r2, %r4
|
||||
; rll %r3, %r0, 0(%r4)
|
||||
; lrvr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_smax_i8(i64, i64, i8) -> i8 {
|
||||
@@ -511,14 +513,13 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r5, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; sllk %r2, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r5, 24
|
||||
; lcr %r2, %r4
|
||||
; sllk %r5, %r4, 24
|
||||
; lcr %r4, %r2
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; cr %r5, %r1 ; jgnh 1f ; risbgn %r1, %r5, 32, 40, 0 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r4)
|
||||
; 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)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_umin_i64(i64, i64, i64) -> i64 {
|
||||
@@ -552,14 +553,14 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r5, %r4
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r5, 16
|
||||
; 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 %r4, %r0, 0(%r4)
|
||||
; lrvr %r2, %r4
|
||||
; rll %r3, %r0, 0(%r4)
|
||||
; lrvr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_umin_i8(i64, i64, i8) -> i8 {
|
||||
@@ -569,14 +570,13 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r5, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; sllk %r2, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r5, 24
|
||||
; lcr %r2, %r4
|
||||
; sllk %r5, %r4, 24
|
||||
; lcr %r4, %r2
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; clr %r5, %r1 ; jgnl 1f ; risbgn %r1, %r5, 32, 40, 0 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r4)
|
||||
; 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)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_umax_i64(i64, i64, i64) -> i64 {
|
||||
@@ -610,14 +610,14 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r5, %r4
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r5, 16
|
||||
; 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 %r4, %r0, 0(%r4)
|
||||
; lrvr %r2, %r4
|
||||
; rll %r3, %r0, 0(%r4)
|
||||
; lrvr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_umax_i8(i64, i64, i8) -> i8 {
|
||||
@@ -627,13 +627,12 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r5, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; sllk %r2, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r5, 24
|
||||
; lcr %r2, %r4
|
||||
; sllk %r5, %r4, 24
|
||||
; lcr %r4, %r2
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; clr %r5, %r1 ; jgnh 1f ; risbgn %r1, %r5, 32, 40, 0 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r4)
|
||||
; 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)
|
||||
; br %r14
|
||||
|
||||
|
||||
@@ -36,11 +36,12 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; sllk %r5, %r3, 3
|
||||
; lgr %r5, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r5) ; risbgn %r1, %r4, 32, 48, 16 ; rll %r1, %r1, 0(%r5) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 16(%r5)
|
||||
; 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)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_xchg_i8(i64, i64, i8) -> i8 {
|
||||
@@ -50,12 +51,13 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; sllk %r5, %r3, 3
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; lcr %r2, %r5
|
||||
; lcr %r5, %r4
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r5) ; risbgn %r1, %r4, 32, 40, 24 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r5)
|
||||
; 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)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_add_i64(i64, i64) -> i64 {
|
||||
@@ -85,10 +87,10 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r2, %r4
|
||||
; lgr %r5, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r2, 16
|
||||
; 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)
|
||||
@@ -101,14 +103,13 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r5, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; sllk %r2, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r5, 24
|
||||
; lcr %r2, %r4
|
||||
; sllk %r5, %r4, 24
|
||||
; lcr %r4, %r2
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; ar %r1, %r5 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r4)
|
||||
; 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)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_sub_i64(i64, i64) -> i64 {
|
||||
@@ -140,10 +141,10 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r2, %r4
|
||||
; lgr %r5, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r2, 16
|
||||
; 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)
|
||||
@@ -156,14 +157,13 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r5, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; sllk %r2, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r5, 24
|
||||
; lcr %r2, %r4
|
||||
; sllk %r5, %r4, 24
|
||||
; lcr %r4, %r2
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; sr %r1, %r5 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r4)
|
||||
; 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)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_and_i64(i64, i64) -> i64 {
|
||||
@@ -193,11 +193,12 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; sllk %r5, %r3, 3
|
||||
; lgr %r5, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r5) ; rnsbg %r1, %r4, 32, 48, 16 ; rll %r1, %r1, 0(%r5) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 16(%r5)
|
||||
; 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)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_and_i8(i64, i64, i8) -> i8 {
|
||||
@@ -207,12 +208,13 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; sllk %r5, %r3, 3
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; lcr %r2, %r5
|
||||
; lcr %r5, %r4
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r5) ; rnsbg %r1, %r4, 32, 40, 24 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r5)
|
||||
; 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)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_or_i64(i64, i64) -> i64 {
|
||||
@@ -242,11 +244,12 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; sllk %r5, %r3, 3
|
||||
; lgr %r5, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r5) ; rosbg %r1, %r4, 32, 48, 16 ; rll %r1, %r1, 0(%r5) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 16(%r5)
|
||||
; 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)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_or_i8(i64, i64, i8) -> i8 {
|
||||
@@ -256,12 +259,13 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; sllk %r5, %r3, 3
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; lcr %r2, %r5
|
||||
; lcr %r5, %r4
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r5) ; rosbg %r1, %r4, 32, 40, 24 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r5)
|
||||
; 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)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_xor_i64(i64, i64) -> i64 {
|
||||
@@ -291,11 +295,12 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; sllk %r5, %r3, 3
|
||||
; lgr %r5, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r5) ; rxsbg %r1, %r4, 32, 48, 16 ; rll %r1, %r1, 0(%r5) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 16(%r5)
|
||||
; 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)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_xor_i8(i64, i64, i8) -> i8 {
|
||||
@@ -305,12 +310,13 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; sllk %r5, %r3, 3
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; lcr %r2, %r5
|
||||
; lcr %r5, %r4
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r5) ; rxsbg %r1, %r4, 32, 40, 24 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r5)
|
||||
; 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)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_nand_i64(i64, i64, i64) -> i64 {
|
||||
@@ -344,11 +350,12 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; sllk %r5, %r3, 3
|
||||
; lgr %r5, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r5) ; rnsbg %r1, %r4, 32, 48, 16 ; xilf %r1, 4294901760 ; rll %r1, %r1, 0(%r5) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 16(%r5)
|
||||
; 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)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_nand_i8(i64, i64, i8) -> i8 {
|
||||
@@ -358,12 +365,13 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; sllk %r5, %r3, 3
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; lcr %r2, %r5
|
||||
; lcr %r5, %r4
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r5) ; rnsbg %r1, %r4, 32, 40, 24 ; xilf %r1, 4278190080 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r5)
|
||||
; 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)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_smin_i64(i64, i64, i64) -> i64 {
|
||||
@@ -397,10 +405,10 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r2, %r4
|
||||
; lgr %r5, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r2, 16
|
||||
; 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)
|
||||
@@ -413,14 +421,13 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r5, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; sllk %r2, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r5, 24
|
||||
; lcr %r2, %r4
|
||||
; sllk %r5, %r4, 24
|
||||
; lcr %r4, %r2
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; cr %r5, %r1 ; jgnl 1f ; risbgn %r1, %r5, 32, 40, 0 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r4)
|
||||
; 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)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_smax_i64(i64, i64, i64) -> i64 {
|
||||
@@ -454,10 +461,10 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r2, %r4
|
||||
; lgr %r5, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r2, 16
|
||||
; 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)
|
||||
@@ -470,14 +477,13 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r5, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; sllk %r2, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r5, 24
|
||||
; lcr %r2, %r4
|
||||
; sllk %r5, %r4, 24
|
||||
; lcr %r4, %r2
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; cr %r5, %r1 ; jgnh 1f ; risbgn %r1, %r5, 32, 40, 0 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r4)
|
||||
; 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)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_umin_i64(i64, i64, i64) -> i64 {
|
||||
@@ -511,10 +517,10 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r2, %r4
|
||||
; lgr %r5, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r2, 16
|
||||
; 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)
|
||||
@@ -527,14 +533,13 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r5, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; sllk %r2, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r5, 24
|
||||
; lcr %r2, %r4
|
||||
; sllk %r5, %r4, 24
|
||||
; lcr %r4, %r2
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; clr %r5, %r1 ; jgnl 1f ; risbgn %r1, %r5, 32, 40, 0 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r4)
|
||||
; 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)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_umax_i64(i64, i64, i64) -> i64 {
|
||||
@@ -568,10 +573,10 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r2, %r4
|
||||
; lgr %r5, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r2, 16
|
||||
; 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)
|
||||
@@ -584,13 +589,12 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r5, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; sllk %r2, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r5, 24
|
||||
; lcr %r2, %r4
|
||||
; sllk %r5, %r4, 24
|
||||
; lcr %r4, %r2
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; clr %r5, %r1 ; jgnh 1f ; risbgn %r1, %r5, 32, 40, 0 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r4)
|
||||
; 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)
|
||||
; br %r14
|
||||
|
||||
|
||||
@@ -36,34 +36,36 @@ block0(v0: i64):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; llihf %r5, 2863311530
|
||||
; iilf %r5, 2863311530
|
||||
; sllg %r4, %r2, 1
|
||||
; srlg %r2, %r2, 1
|
||||
; ngr %r4, %r5
|
||||
; xilf %r5, 4294967295
|
||||
; xihf %r5, 4294967295
|
||||
; ngrk %r5, %r2, %r5
|
||||
; ogrk %r2, %r4, %r5
|
||||
; llihf %r4, 3435973836
|
||||
; iilf %r4, 3435973836
|
||||
; sllg %r3, %r2, 2
|
||||
; srlg %r5, %r2, 2
|
||||
; ngr %r3, %r4
|
||||
; xilf %r4, 4294967295
|
||||
; xihf %r4, 4294967295
|
||||
; ngrk %r4, %r5, %r4
|
||||
; ogrk %r5, %r3, %r4
|
||||
; llihf %r3, 4042322160
|
||||
; iilf %r3, 4042322160
|
||||
; sllg %r2, %r5, 4
|
||||
; srlg %r4, %r5, 4
|
||||
; ngr %r2, %r3
|
||||
; lgr %r3, %r2
|
||||
; llihf %r2, 2863311530
|
||||
; iilf %r2, 2863311530
|
||||
; lgr %r5, %r3
|
||||
; sllg %r4, %r5, 1
|
||||
; srlg %r3, %r5, 1
|
||||
; ngr %r4, %r2
|
||||
; xilf %r2, 4294967295
|
||||
; xihf %r2, 4294967295
|
||||
; ngrk %r2, %r3, %r2
|
||||
; ogr %r4, %r2
|
||||
; llihf %r3, 3435973836
|
||||
; iilf %r3, 3435973836
|
||||
; sllg %r5, %r4, 2
|
||||
; srlg %r4, %r4, 2
|
||||
; ngr %r5, %r3
|
||||
; xilf %r3, 4294967295
|
||||
; xihf %r3, 4294967295
|
||||
; ngrk %r3, %r4, %r3
|
||||
; ogrk %r4, %r2, %r3
|
||||
; lrvgr %r2, %r4
|
||||
; ogr %r5, %r3
|
||||
; llihf %r4, 4042322160
|
||||
; iilf %r4, 4042322160
|
||||
; sllg %r2, %r5, 4
|
||||
; srlg %r5, %r5, 4
|
||||
; ngr %r2, %r4
|
||||
; xilf %r4, 4294967295
|
||||
; xihf %r4, 4294967295
|
||||
; ngrk %r4, %r5, %r4
|
||||
; ogr %r2, %r4
|
||||
; lrvgr %r2, %r2
|
||||
; br %r14
|
||||
|
||||
function %bitrev_i32(i32) -> i32 {
|
||||
@@ -79,22 +81,22 @@ block0(v0: i32):
|
||||
; nr %r3, %r5
|
||||
; xilf %r5, 4294967295
|
||||
; nrk %r4, %r2, %r5
|
||||
; ork %r2, %r3, %r4
|
||||
; iilf %r4, 3435973836
|
||||
; sllk %r3, %r2, 2
|
||||
; srlk %r5, %r2, 2
|
||||
; nrk %r2, %r3, %r4
|
||||
; xilf %r4, 4294967295
|
||||
; nrk %r3, %r5, %r4
|
||||
; ork %r5, %r2, %r3
|
||||
; iilf %r3, 4042322160
|
||||
; sllk %r2, %r5, 4
|
||||
; srlk %r4, %r5, 4
|
||||
; ork %r5, %r3, %r4
|
||||
; iilf %r3, 3435973836
|
||||
; sllk %r2, %r5, 2
|
||||
; srlk %r4, %r5, 2
|
||||
; nrk %r5, %r2, %r3
|
||||
; xilf %r3, 4294967295
|
||||
; nrk %r2, %r4, %r3
|
||||
; ork %r4, %r5, %r2
|
||||
; lrvr %r2, %r4
|
||||
; ork %r3, %r5, %r2
|
||||
; iilf %r5, 4042322160
|
||||
; sllk %r4, %r3, 4
|
||||
; srlk %r2, %r3, 4
|
||||
; nrk %r3, %r4, %r5
|
||||
; xilf %r5, 4294967295
|
||||
; nrk %r4, %r2, %r5
|
||||
; ork %r5, %r3, %r4
|
||||
; lrvr %r2, %r5
|
||||
; br %r14
|
||||
|
||||
function %bitrev_i16(i16) -> i16 {
|
||||
@@ -110,23 +112,23 @@ block0(v0: i16):
|
||||
; nr %r3, %r5
|
||||
; xilf %r5, 4294967295
|
||||
; nrk %r4, %r2, %r5
|
||||
; ork %r2, %r3, %r4
|
||||
; lhi %r4, -13108
|
||||
; sllk %r3, %r2, 2
|
||||
; srlk %r5, %r2, 2
|
||||
; nrk %r2, %r3, %r4
|
||||
; xilf %r4, 4294967295
|
||||
; nrk %r3, %r5, %r4
|
||||
; ork %r5, %r2, %r3
|
||||
; lhi %r3, -3856
|
||||
; sllk %r2, %r5, 4
|
||||
; srlk %r4, %r5, 4
|
||||
; ork %r5, %r3, %r4
|
||||
; lhi %r3, -13108
|
||||
; sllk %r2, %r5, 2
|
||||
; srlk %r4, %r5, 2
|
||||
; nrk %r5, %r2, %r3
|
||||
; xilf %r3, 4294967295
|
||||
; nrk %r2, %r4, %r3
|
||||
; ork %r4, %r5, %r2
|
||||
; lrvr %r2, %r4
|
||||
; srlk %r2, %r2, 16
|
||||
; ork %r3, %r5, %r2
|
||||
; lhi %r5, -3856
|
||||
; sllk %r4, %r3, 4
|
||||
; srlk %r2, %r3, 4
|
||||
; nrk %r3, %r4, %r5
|
||||
; xilf %r5, 4294967295
|
||||
; nrk %r4, %r2, %r5
|
||||
; ork %r5, %r3, %r4
|
||||
; lrvr %r3, %r5
|
||||
; srlk %r2, %r3, 16
|
||||
; br %r14
|
||||
|
||||
function %bitrev_i8(i8) -> i8 {
|
||||
@@ -142,21 +144,21 @@ block0(v0: i8):
|
||||
; nr %r3, %r5
|
||||
; xilf %r5, 4294967295
|
||||
; nrk %r4, %r2, %r5
|
||||
; ork %r2, %r3, %r4
|
||||
; lhi %r4, -13108
|
||||
; sllk %r3, %r2, 2
|
||||
; srlk %r5, %r2, 2
|
||||
; nrk %r2, %r3, %r4
|
||||
; xilf %r4, 4294967295
|
||||
; nrk %r3, %r5, %r4
|
||||
; ork %r5, %r2, %r3
|
||||
; lhi %r3, -3856
|
||||
; sllk %r2, %r5, 4
|
||||
; srlk %r4, %r5, 4
|
||||
; ork %r5, %r3, %r4
|
||||
; lhi %r3, -13108
|
||||
; sllk %r2, %r5, 2
|
||||
; srlk %r4, %r5, 2
|
||||
; nrk %r5, %r2, %r3
|
||||
; xilf %r3, 4294967295
|
||||
; nrk %r2, %r4, %r3
|
||||
; ork %r2, %r5, %r2
|
||||
; ork %r3, %r5, %r2
|
||||
; lhi %r5, -3856
|
||||
; sllk %r4, %r3, 4
|
||||
; srlk %r2, %r3, 4
|
||||
; nrk %r3, %r4, %r5
|
||||
; xilf %r5, 4294967295
|
||||
; nrk %r4, %r2, %r5
|
||||
; ork %r2, %r3, %r4
|
||||
; br %r14
|
||||
|
||||
function %clz_i128(i128) -> i128 {
|
||||
@@ -346,11 +348,11 @@ block0(v0: i32):
|
||||
|
||||
; block0:
|
||||
; oihl %r2, 1
|
||||
; lcgr %r4, %r2
|
||||
; ngr %r2, %r4
|
||||
; flogr %r0, %r2
|
||||
; lhi %r5, 63
|
||||
; srk %r2, %r5, %r0
|
||||
; lcgr %r3, %r2
|
||||
; ngrk %r5, %r2, %r3
|
||||
; flogr %r0, %r5
|
||||
; lhi %r4, 63
|
||||
; srk %r2, %r4, %r0
|
||||
; br %r14
|
||||
|
||||
function %ctz_i16(i16) -> i16 {
|
||||
@@ -361,11 +363,11 @@ block0(v0: i16):
|
||||
|
||||
; block0:
|
||||
; oilh %r2, 1
|
||||
; lcgr %r4, %r2
|
||||
; ngr %r2, %r4
|
||||
; flogr %r0, %r2
|
||||
; lhi %r5, 63
|
||||
; srk %r2, %r5, %r0
|
||||
; lcgr %r3, %r2
|
||||
; ngrk %r5, %r2, %r3
|
||||
; flogr %r0, %r5
|
||||
; lhi %r4, 63
|
||||
; srk %r2, %r4, %r0
|
||||
; br %r14
|
||||
|
||||
function %ctz_i8(i8) -> i8 {
|
||||
@@ -376,11 +378,11 @@ block0(v0: i8):
|
||||
|
||||
; block0:
|
||||
; oill %r2, 256
|
||||
; lcgr %r4, %r2
|
||||
; ngr %r2, %r4
|
||||
; flogr %r0, %r2
|
||||
; lhi %r5, 63
|
||||
; srk %r2, %r5, %r0
|
||||
; lcgr %r3, %r2
|
||||
; ngrk %r5, %r2, %r3
|
||||
; flogr %r0, %r5
|
||||
; lhi %r4, 63
|
||||
; srk %r2, %r4, %r0
|
||||
; br %r14
|
||||
|
||||
function %popcnt_i128(i128) -> i128 {
|
||||
|
||||
@@ -585,8 +585,8 @@ block0(v0: i64, v1: i64, v2: i64):
|
||||
; ngr %r3, %r2
|
||||
; xilf %r2, 4294967295
|
||||
; xihf %r2, 4294967295
|
||||
; ngr %r4, %r2
|
||||
; ogrk %r2, %r4, %r3
|
||||
; ngrk %r5, %r4, %r2
|
||||
; ogrk %r2, %r5, %r3
|
||||
; br %r14
|
||||
|
||||
function %bitselect_i32(i32, i32, i32) -> i32 {
|
||||
|
||||
@@ -125,8 +125,6 @@ block0(v0: i64, v1: i64):
|
||||
; lmg %r14, %r15, 272(%r15)
|
||||
; br %r14
|
||||
|
||||
|
||||
|
||||
function %incoming_args(i64, i32, i32 uext, i32 sext, i16, i16 uext, i16 sext, i8, i8 uext, i8 sext) -> i64 {
|
||||
block0(v0: i64, v1: i32, v2: i32, v3: i32, v4: i16, v5: i16, v6: i16, v7: i8, v8: i8, v9: i8):
|
||||
v10 = uextend.i64 v1
|
||||
|
||||
@@ -1031,9 +1031,9 @@ block0(v0: b64):
|
||||
|
||||
; block0:
|
||||
; nill %r3, 1
|
||||
; vgbm %v7, 0
|
||||
; vlvgb %v7, %r3, 15
|
||||
; vst %v7, 0(%r2)
|
||||
; vgbm %v6, 0
|
||||
; vlvgb %v6, %r3, 15
|
||||
; vst %v6, 0(%r2)
|
||||
; br %r14
|
||||
|
||||
function %bint_b64_i64(b64) -> i64 {
|
||||
@@ -1085,9 +1085,9 @@ block0(v0: b32):
|
||||
|
||||
; block0:
|
||||
; nill %r3, 1
|
||||
; vgbm %v7, 0
|
||||
; vlvgb %v7, %r3, 15
|
||||
; vst %v7, 0(%r2)
|
||||
; vgbm %v6, 0
|
||||
; vlvgb %v6, %r3, 15
|
||||
; vst %v6, 0(%r2)
|
||||
; br %r14
|
||||
|
||||
function %bint_b32_i64(b32) -> i64 {
|
||||
@@ -1139,9 +1139,9 @@ block0(v0: b16):
|
||||
|
||||
; block0:
|
||||
; nill %r3, 1
|
||||
; vgbm %v7, 0
|
||||
; vlvgb %v7, %r3, 15
|
||||
; vst %v7, 0(%r2)
|
||||
; vgbm %v6, 0
|
||||
; vlvgb %v6, %r3, 15
|
||||
; vst %v6, 0(%r2)
|
||||
; br %r14
|
||||
|
||||
function %bint_b16_i64(b16) -> i64 {
|
||||
@@ -1193,9 +1193,9 @@ block0(v0: b8):
|
||||
|
||||
; block0:
|
||||
; nill %r3, 1
|
||||
; vgbm %v7, 0
|
||||
; vlvgb %v7, %r3, 15
|
||||
; vst %v7, 0(%r2)
|
||||
; vgbm %v6, 0
|
||||
; vlvgb %v6, %r3, 15
|
||||
; vst %v6, 0(%r2)
|
||||
; br %r14
|
||||
|
||||
function %bint_b8_i64(b8) -> i64 {
|
||||
@@ -1247,9 +1247,9 @@ block0(v0: b1):
|
||||
|
||||
; block0:
|
||||
; nill %r3, 1
|
||||
; vgbm %v7, 0
|
||||
; vlvgb %v7, %r3, 15
|
||||
; vst %v7, 0(%r2)
|
||||
; vgbm %v6, 0
|
||||
; vlvgb %v6, %r3, 15
|
||||
; vst %v6, 0(%r2)
|
||||
; br %r14
|
||||
|
||||
function %bint_b1_i64(b1) -> i64 {
|
||||
|
||||
@@ -137,13 +137,13 @@ block0(v0: i16, v1: i128):
|
||||
; block0:
|
||||
; vl %v1, 0(%r3)
|
||||
; llhr %r3, %r2
|
||||
; vlgvg %r5, %v1, 1
|
||||
; lcr %r4, %r5
|
||||
; nill %r5, 15
|
||||
; vlgvg %r4, %v1, 1
|
||||
; lcr %r5, %r4
|
||||
; nill %r4, 15
|
||||
; sllk %r4, %r3, 0(%r4)
|
||||
; srlk %r5, %r3, 0(%r5)
|
||||
; ork %r2, %r4, %r5
|
||||
; nill %r5, 15
|
||||
; sllk %r5, %r3, 0(%r5)
|
||||
; srlk %r3, %r3, 0(%r4)
|
||||
; ork %r2, %r5, %r3
|
||||
; br %r14
|
||||
|
||||
function %rotr_i16_reg(i16, i16) -> i16 {
|
||||
@@ -158,8 +158,8 @@ block0(v0: i16, v1: i16):
|
||||
; nill %r3, 15
|
||||
; nill %r4, 15
|
||||
; sllk %r4, %r2, 0(%r4)
|
||||
; srlk %r2, %r2, 0(%r3)
|
||||
; ork %r2, %r4, %r2
|
||||
; srlk %r5, %r2, 0(%r3)
|
||||
; ork %r2, %r4, %r5
|
||||
; br %r14
|
||||
|
||||
function %rotr_i16_imm(i16) -> i16 {
|
||||
@@ -185,13 +185,13 @@ block0(v0: i8, v1: i128):
|
||||
; block0:
|
||||
; vl %v1, 0(%r3)
|
||||
; llcr %r3, %r2
|
||||
; vlgvg %r5, %v1, 1
|
||||
; lcr %r4, %r5
|
||||
; nill %r5, 7
|
||||
; vlgvg %r4, %v1, 1
|
||||
; lcr %r5, %r4
|
||||
; nill %r4, 7
|
||||
; sllk %r4, %r3, 0(%r4)
|
||||
; srlk %r5, %r3, 0(%r5)
|
||||
; ork %r2, %r4, %r5
|
||||
; nill %r5, 7
|
||||
; sllk %r5, %r3, 0(%r5)
|
||||
; srlk %r3, %r3, 0(%r4)
|
||||
; ork %r2, %r5, %r3
|
||||
; br %r14
|
||||
|
||||
function %rotr_i8_reg(i8, i8) -> i8 {
|
||||
@@ -206,8 +206,8 @@ block0(v0: i8, v1: i8):
|
||||
; nill %r3, 7
|
||||
; nill %r4, 7
|
||||
; sllk %r4, %r2, 0(%r4)
|
||||
; srlk %r2, %r2, 0(%r3)
|
||||
; ork %r2, %r4, %r2
|
||||
; srlk %r5, %r2, 0(%r3)
|
||||
; ork %r2, %r4, %r5
|
||||
; br %r14
|
||||
|
||||
function %rotr_i8_imm(i8) -> i8 {
|
||||
@@ -356,13 +356,13 @@ block0(v0: i16, v1: i128):
|
||||
; block0:
|
||||
; vl %v1, 0(%r3)
|
||||
; llhr %r3, %r2
|
||||
; vlgvg %r5, %v1, 1
|
||||
; lcr %r4, %r5
|
||||
; nill %r5, 15
|
||||
; vlgvg %r4, %v1, 1
|
||||
; lcr %r5, %r4
|
||||
; nill %r4, 15
|
||||
; sllk %r5, %r3, 0(%r5)
|
||||
; srlk %r2, %r3, 0(%r4)
|
||||
; ork %r2, %r5, %r2
|
||||
; nill %r5, 15
|
||||
; sllk %r2, %r3, 0(%r4)
|
||||
; srlk %r3, %r3, 0(%r5)
|
||||
; or %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %rotl_i16_reg(i16, i16) -> i16 {
|
||||
@@ -376,9 +376,9 @@ block0(v0: i16, v1: i16):
|
||||
; lcr %r4, %r3
|
||||
; nill %r3, 15
|
||||
; nill %r4, 15
|
||||
; sllk %r5, %r2, 0(%r3)
|
||||
; srlk %r2, %r2, 0(%r4)
|
||||
; ork %r2, %r5, %r2
|
||||
; sllk %r3, %r2, 0(%r3)
|
||||
; srlk %r4, %r2, 0(%r4)
|
||||
; ork %r2, %r3, %r4
|
||||
; br %r14
|
||||
|
||||
function %rotl_i16_imm(i16) -> i16 {
|
||||
@@ -404,13 +404,13 @@ block0(v0: i8, v1: i128):
|
||||
; block0:
|
||||
; vl %v1, 0(%r3)
|
||||
; llcr %r3, %r2
|
||||
; vlgvg %r5, %v1, 1
|
||||
; lcr %r4, %r5
|
||||
; nill %r5, 7
|
||||
; vlgvg %r4, %v1, 1
|
||||
; lcr %r5, %r4
|
||||
; nill %r4, 7
|
||||
; sllk %r5, %r3, 0(%r5)
|
||||
; srlk %r2, %r3, 0(%r4)
|
||||
; ork %r2, %r5, %r2
|
||||
; nill %r5, 7
|
||||
; sllk %r2, %r3, 0(%r4)
|
||||
; srlk %r3, %r3, 0(%r5)
|
||||
; or %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %rotl_i8_reg(i8, i8) -> i8 {
|
||||
@@ -424,9 +424,9 @@ block0(v0: i8, v1: i8):
|
||||
; lcr %r4, %r3
|
||||
; nill %r3, 7
|
||||
; nill %r4, 7
|
||||
; sllk %r5, %r2, 0(%r3)
|
||||
; srlk %r2, %r2, 0(%r4)
|
||||
; ork %r2, %r5, %r2
|
||||
; sllk %r3, %r2, 0(%r3)
|
||||
; srlk %r4, %r2, 0(%r4)
|
||||
; ork %r2, %r3, %r4
|
||||
; br %r14
|
||||
|
||||
function %rotr_i8_imm(i8) -> i8 {
|
||||
@@ -529,9 +529,9 @@ block0(v0: i32, v1: i128):
|
||||
|
||||
; block0:
|
||||
; vl %v1, 0(%r3)
|
||||
; vlgvg %r3, %v1, 1
|
||||
; nill %r3, 31
|
||||
; srlk %r2, %r2, 0(%r3)
|
||||
; vlgvg %r4, %v1, 1
|
||||
; nill %r4, 31
|
||||
; srlk %r2, %r2, 0(%r4)
|
||||
; br %r14
|
||||
|
||||
function %ushr_i32_reg(i32, i32) -> i32 {
|
||||
@@ -565,9 +565,9 @@ block0(v0: i16, v1: i128):
|
||||
; block0:
|
||||
; vl %v1, 0(%r3)
|
||||
; llhr %r3, %r2
|
||||
; vlgvg %r5, %v1, 1
|
||||
; nill %r5, 15
|
||||
; srlk %r2, %r3, 0(%r5)
|
||||
; vlgvg %r2, %v1, 1
|
||||
; nill %r2, 15
|
||||
; srlk %r2, %r3, 0(%r2)
|
||||
; br %r14
|
||||
|
||||
function %ushr_i16_reg(i16, i16) -> i16 {
|
||||
@@ -603,9 +603,9 @@ block0(v0: i8, v1: i128):
|
||||
; block0:
|
||||
; vl %v1, 0(%r3)
|
||||
; llcr %r3, %r2
|
||||
; vlgvg %r5, %v1, 1
|
||||
; nill %r5, 7
|
||||
; srlk %r2, %r3, 0(%r5)
|
||||
; vlgvg %r2, %v1, 1
|
||||
; nill %r2, 7
|
||||
; srlk %r2, %r3, 0(%r2)
|
||||
; br %r14
|
||||
|
||||
function %ushr_i8_reg(i8, i8) -> i8 {
|
||||
@@ -718,9 +718,9 @@ block0(v0: i32, v1: i128):
|
||||
|
||||
; block0:
|
||||
; vl %v1, 0(%r3)
|
||||
; vlgvg %r3, %v1, 1
|
||||
; nill %r3, 31
|
||||
; sllk %r2, %r2, 0(%r3)
|
||||
; vlgvg %r4, %v1, 1
|
||||
; nill %r4, 31
|
||||
; sllk %r2, %r2, 0(%r4)
|
||||
; br %r14
|
||||
|
||||
function %ishl_i32_reg(i32, i32) -> i32 {
|
||||
@@ -753,9 +753,9 @@ block0(v0: i16, v1: i128):
|
||||
|
||||
; block0:
|
||||
; vl %v1, 0(%r3)
|
||||
; vlgvg %r3, %v1, 1
|
||||
; nill %r3, 15
|
||||
; sllk %r2, %r2, 0(%r3)
|
||||
; vlgvg %r4, %v1, 1
|
||||
; nill %r4, 15
|
||||
; sllk %r2, %r2, 0(%r4)
|
||||
; br %r14
|
||||
|
||||
function %ishl_i16_reg(i16, i16) -> i16 {
|
||||
@@ -788,9 +788,9 @@ block0(v0: i8, v1: i128):
|
||||
|
||||
; block0:
|
||||
; vl %v1, 0(%r3)
|
||||
; vlgvg %r3, %v1, 1
|
||||
; nill %r3, 7
|
||||
; sllk %r2, %r2, 0(%r3)
|
||||
; vlgvg %r4, %v1, 1
|
||||
; nill %r4, 7
|
||||
; sllk %r2, %r2, 0(%r4)
|
||||
; br %r14
|
||||
|
||||
function %ishl_i8_reg(i8, i8) -> i8 {
|
||||
@@ -901,9 +901,9 @@ block0(v0: i32, v1: i128):
|
||||
|
||||
; block0:
|
||||
; vl %v1, 0(%r3)
|
||||
; vlgvg %r3, %v1, 1
|
||||
; nill %r3, 31
|
||||
; srak %r2, %r2, 0(%r3)
|
||||
; vlgvg %r4, %v1, 1
|
||||
; nill %r4, 31
|
||||
; srak %r2, %r2, 0(%r4)
|
||||
; br %r14
|
||||
|
||||
function %sshr_i32_reg(i32, i32) -> i32 {
|
||||
@@ -937,9 +937,9 @@ block0(v0: i16, v1: i128):
|
||||
; block0:
|
||||
; vl %v1, 0(%r3)
|
||||
; lhr %r3, %r2
|
||||
; vlgvg %r5, %v1, 1
|
||||
; nill %r5, 15
|
||||
; srak %r2, %r3, 0(%r5)
|
||||
; vlgvg %r2, %v1, 1
|
||||
; nill %r2, 15
|
||||
; srak %r2, %r3, 0(%r2)
|
||||
; br %r14
|
||||
|
||||
function %sshr_i16_reg(i16, i16) -> i16 {
|
||||
@@ -975,9 +975,9 @@ block0(v0: i8, v1: i128):
|
||||
; block0:
|
||||
; vl %v1, 0(%r3)
|
||||
; lbr %r3, %r2
|
||||
; vlgvg %r5, %v1, 1
|
||||
; nill %r5, 7
|
||||
; srak %r2, %r3, 0(%r5)
|
||||
; vlgvg %r2, %v1, 1
|
||||
; nill %r2, 7
|
||||
; srak %r2, %r3, 0(%r2)
|
||||
; br %r14
|
||||
|
||||
function %sshr_i8_reg(i8, i8) -> i8 {
|
||||
|
||||
Reference in New Issue
Block a user