Remove uses of reg_mod from s390x (#5073)
Remove uses of reg_mod from the s390x backend. This required moving away from using r0/r1 as the result registers from a few different pseudo instructions, standardizing instead on r2/r3. That change was necessary as regalloc2 will not correctly allocate registers that aren't listed in the allocatable set, which r0/r1 are not. Co-authored-by: Ulrich Weigand <ulrich.weigand@de.ibm.com> Co-authored-by: Chris Fallin <chris@cfallin.org>
This commit is contained in:
@@ -701,24 +701,26 @@ block0(v0: i128, v1: i128):
|
||||
return v2
|
||||
}
|
||||
|
||||
; stmg %r13, %r15, 104(%r15)
|
||||
; stmg %r6, %r15, 48(%r15)
|
||||
; block0:
|
||||
; lgr %r6, %r2
|
||||
; vl %v0, 0(%r3)
|
||||
; vl %v1, 0(%r4)
|
||||
; lgdr %r5, %f0
|
||||
; vlgvg %r3, %v0, 1
|
||||
; lgdr %r4, %f1
|
||||
; vlgvg %r1, %v1, 1
|
||||
; lgr %r13, %r1
|
||||
; mlgr %r0, %r3
|
||||
; msgr %r3, %r4
|
||||
; lgr %r4, %r13
|
||||
; msgr %r5, %r4
|
||||
; agr %r3, %r0
|
||||
; agr %r5, %r3
|
||||
; vlvgp %v5, %r5, %r1
|
||||
; vst %v5, 0(%r2)
|
||||
; lmg %r13, %r15, 104(%r15)
|
||||
; vlgvg %r4, %v0, 1
|
||||
; lgdr %r8, %f1
|
||||
; vlgvg %r10, %v1, 1
|
||||
; lgr %r3, %r4
|
||||
; mlgr %r2, %r10
|
||||
; lgr %r9, %r2
|
||||
; msgr %r4, %r8
|
||||
; msgrkc %r2, %r5, %r10
|
||||
; agr %r4, %r9
|
||||
; agr %r2, %r4
|
||||
; vlvgp %v6, %r2, %r3
|
||||
; lgr %r2, %r6
|
||||
; vst %v6, 0(%r2)
|
||||
; lmg %r6, %r15, 48(%r15)
|
||||
; br %r14
|
||||
|
||||
function %imul_i64(i64, i64) -> i64 {
|
||||
@@ -934,9 +936,10 @@ block0(v0: i64, v1: i64):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r1, %r3
|
||||
; mlgr %r0, %r2
|
||||
; lgr %r2, %r0
|
||||
; lgr %r4, %r2
|
||||
; lgr %r2, %r3
|
||||
; lgr %r3, %r4
|
||||
; mlgr %r2, %r2
|
||||
; br %r14
|
||||
|
||||
function %umulhi_i32(i32, i32) -> i32 {
|
||||
@@ -985,8 +988,7 @@ block0(v0: i64, v1: i64):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; mgrk %r0, %r2, %r3
|
||||
; lgr %r2, %r0
|
||||
; mgrk %r2, %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %smulhi_i32(i32, i32) -> i32 {
|
||||
@@ -1035,14 +1037,15 @@ block0(v0: i64, v1: i64):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r1, %r2
|
||||
; llihf %r4, 2147483647
|
||||
; iilf %r4, 4294967295
|
||||
; xgrk %r2, %r4, %r1
|
||||
; ngrk %r4, %r2, %r3
|
||||
; xgrk %r5, %r4, %r2
|
||||
; ngrk %r4, %r5, %r3
|
||||
; cgite %r4, -1
|
||||
; dsgr %r0, %r3
|
||||
; lgr %r2, %r1
|
||||
; lgr %r4, %r3
|
||||
; lgr %r3, %r2
|
||||
; dsgr %r2, %r4
|
||||
; lgr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %sdiv_i64_imm(i64) -> i64 {
|
||||
@@ -1053,10 +1056,10 @@ block0(v0: i64):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r1, %r2
|
||||
; lghi %r2, 2
|
||||
; dsgr %r0, %r2
|
||||
; lgr %r2, %r1
|
||||
; lgr %r3, %r2
|
||||
; lghi %r5, 2
|
||||
; dsgr %r2, %r5
|
||||
; lgr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %sdiv_i32(i32, i32) -> i32 {
|
||||
@@ -1066,13 +1069,15 @@ block0(v0: i32, v1: i32):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgfr %r1, %r2
|
||||
; lgr %r5, %r3
|
||||
; lgfr %r3, %r2
|
||||
; iilf %r4, 2147483647
|
||||
; xrk %r5, %r4, %r1
|
||||
; nrk %r4, %r5, %r3
|
||||
; cite %r4, -1
|
||||
; dsgfr %r0, %r3
|
||||
; lgr %r2, %r1
|
||||
; xrk %r2, %r4, %r3
|
||||
; lgr %r4, %r5
|
||||
; nrk %r5, %r2, %r4
|
||||
; cite %r5, -1
|
||||
; dsgfr %r2, %r4
|
||||
; lgr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %sdiv_i32_imm(i32) -> i32 {
|
||||
@@ -1083,10 +1088,10 @@ block0(v0: i32):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgfr %r1, %r2
|
||||
; lhi %r2, 2
|
||||
; dsgfr %r0, %r2
|
||||
; lgr %r2, %r1
|
||||
; lgfr %r3, %r2
|
||||
; lhi %r4, 2
|
||||
; dsgfr %r2, %r4
|
||||
; lgr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %sdiv_i16(i16, i16) -> i16 {
|
||||
@@ -1096,14 +1101,16 @@ block0(v0: i16, v1: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lghr %r1, %r2
|
||||
; lhr %r3, %r3
|
||||
; lhi %r5, 32767
|
||||
; xrk %r4, %r5, %r1
|
||||
; nrk %r5, %r4, %r3
|
||||
; cite %r5, -1
|
||||
; dsgfr %r0, %r3
|
||||
; lgr %r2, %r1
|
||||
; lghr %r2, %r2
|
||||
; lgr %r5, %r2
|
||||
; lhr %r4, %r3
|
||||
; lhi %r2, 32767
|
||||
; lgr %r3, %r5
|
||||
; xrk %r5, %r2, %r3
|
||||
; nrk %r2, %r5, %r4
|
||||
; cite %r2, -1
|
||||
; dsgfr %r2, %r4
|
||||
; lgr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %sdiv_i16_imm(i16) -> i16 {
|
||||
@@ -1114,10 +1121,10 @@ block0(v0: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lghr %r1, %r2
|
||||
; lhi %r2, 2
|
||||
; dsgfr %r0, %r2
|
||||
; lgr %r2, %r1
|
||||
; lghr %r3, %r2
|
||||
; lhi %r4, 2
|
||||
; dsgfr %r2, %r4
|
||||
; lgr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %sdiv_i8(i8, i8) -> i8 {
|
||||
@@ -1127,14 +1134,16 @@ block0(v0: i8, v1: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgbr %r1, %r2
|
||||
; lbr %r3, %r3
|
||||
; lhi %r5, 127
|
||||
; xrk %r4, %r5, %r1
|
||||
; nrk %r5, %r4, %r3
|
||||
; cite %r5, -1
|
||||
; dsgfr %r0, %r3
|
||||
; lgr %r2, %r1
|
||||
; lgbr %r2, %r2
|
||||
; lgr %r5, %r2
|
||||
; lbr %r4, %r3
|
||||
; lhi %r2, 127
|
||||
; lgr %r3, %r5
|
||||
; xrk %r5, %r2, %r3
|
||||
; nrk %r2, %r5, %r4
|
||||
; cite %r2, -1
|
||||
; dsgfr %r2, %r4
|
||||
; lgr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %sdiv_i8_imm(i8) -> i8 {
|
||||
@@ -1145,10 +1154,10 @@ block0(v0: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgbr %r1, %r2
|
||||
; lhi %r2, 2
|
||||
; dsgfr %r0, %r2
|
||||
; lgr %r2, %r1
|
||||
; lgbr %r3, %r2
|
||||
; lhi %r4, 2
|
||||
; dsgfr %r2, %r4
|
||||
; lgr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %udiv_i64(i64, i64) -> i64 {
|
||||
@@ -1158,10 +1167,11 @@ block0(v0: i64, v1: i64):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lghi %r0, 0
|
||||
; lgr %r1, %r2
|
||||
; dlgr %r0, %r3
|
||||
; lgr %r2, %r1
|
||||
; lgr %r5, %r3
|
||||
; lgr %r3, %r2
|
||||
; lghi %r2, 0
|
||||
; dlgr %r2, %r5
|
||||
; lgr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %udiv_i64_imm(i64) -> i64 {
|
||||
@@ -1172,11 +1182,11 @@ block0(v0: i64):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lghi %r0, 0
|
||||
; lgr %r1, %r2
|
||||
; lghi %r3, 2
|
||||
; dlgr %r0, %r3
|
||||
; lgr %r2, %r1
|
||||
; lgr %r3, %r2
|
||||
; lghi %r2, 0
|
||||
; lghi %r4, 2
|
||||
; dlgr %r2, %r4
|
||||
; lgr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %udiv_i32(i32, i32) -> i32 {
|
||||
@@ -1186,10 +1196,11 @@ block0(v0: i32, v1: i32):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lhi %r0, 0
|
||||
; lgr %r1, %r2
|
||||
; dlr %r0, %r3
|
||||
; lgr %r2, %r1
|
||||
; lgr %r5, %r3
|
||||
; lgr %r3, %r2
|
||||
; lhi %r2, 0
|
||||
; dlr %r2, %r5
|
||||
; lgr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %udiv_i32_imm(i32) -> i32 {
|
||||
@@ -1200,11 +1211,11 @@ block0(v0: i32):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lhi %r0, 0
|
||||
; lgr %r1, %r2
|
||||
; lhi %r3, 2
|
||||
; dlr %r0, %r3
|
||||
; lgr %r2, %r1
|
||||
; lgr %r3, %r2
|
||||
; lhi %r2, 0
|
||||
; lhi %r4, 2
|
||||
; dlr %r2, %r4
|
||||
; lgr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %udiv_i16(i16, i16) -> i16 {
|
||||
@@ -1214,11 +1225,15 @@ block0(v0: i16, v1: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lhi %r0, 0
|
||||
; llhr %r1, %r2
|
||||
; llhr %r4, %r3
|
||||
; dlr %r0, %r4
|
||||
; lgr %r2, %r1
|
||||
; lgr %r4, %r3
|
||||
; lhi %r3, 0
|
||||
; lgr %r5, %r3
|
||||
; llhr %r3, %r2
|
||||
; lgr %r2, %r4
|
||||
; llhr %r4, %r2
|
||||
; lgr %r2, %r5
|
||||
; dlr %r2, %r4
|
||||
; lgr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %udiv_i16_imm(i16) -> i16 {
|
||||
@@ -1229,11 +1244,13 @@ block0(v0: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lhi %r0, 0
|
||||
; llhr %r1, %r2
|
||||
; lhi %r3, 2
|
||||
; dlr %r0, %r3
|
||||
; lgr %r2, %r1
|
||||
; lhi %r5, 0
|
||||
; lgr %r4, %r5
|
||||
; llhr %r3, %r2
|
||||
; lhi %r5, 2
|
||||
; lgr %r2, %r4
|
||||
; dlr %r2, %r5
|
||||
; lgr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %udiv_i8(i8, i8) -> i8 {
|
||||
@@ -1243,11 +1260,15 @@ block0(v0: i8, v1: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lhi %r0, 0
|
||||
; llcr %r1, %r2
|
||||
; llcr %r4, %r3
|
||||
; dlr %r0, %r4
|
||||
; lgr %r2, %r1
|
||||
; lgr %r4, %r3
|
||||
; lhi %r3, 0
|
||||
; lgr %r5, %r3
|
||||
; llcr %r3, %r2
|
||||
; lgr %r2, %r4
|
||||
; llcr %r4, %r2
|
||||
; lgr %r2, %r5
|
||||
; dlr %r2, %r4
|
||||
; lgr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %udiv_i8_imm(i8) -> i8 {
|
||||
@@ -1258,11 +1279,13 @@ block0(v0: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lhi %r0, 0
|
||||
; llcr %r1, %r2
|
||||
; lhi %r3, 2
|
||||
; dlr %r0, %r3
|
||||
; lgr %r2, %r1
|
||||
; lhi %r5, 0
|
||||
; lgr %r4, %r5
|
||||
; llcr %r3, %r2
|
||||
; lhi %r5, 2
|
||||
; lgr %r2, %r4
|
||||
; dlr %r2, %r5
|
||||
; lgr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %srem_i64(i64, i64) -> i64 {
|
||||
@@ -1272,11 +1295,11 @@ block0(v0: i64, v1: i64):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r1, %r2
|
||||
; cghi %r3, -1
|
||||
; locghie %r1, 0
|
||||
; dsgr %r0, %r3
|
||||
; lgr %r2, %r0
|
||||
; lgr %r4, %r3
|
||||
; lgr %r3, %r2
|
||||
; locghie %r3, 0
|
||||
; dsgr %r2, %r4
|
||||
; br %r14
|
||||
|
||||
function %srem_i32(i32, i32) -> i32 {
|
||||
@@ -1286,9 +1309,9 @@ block0(v0: i32, v1: i32):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgfr %r1, %r2
|
||||
; dsgfr %r0, %r3
|
||||
; lgr %r2, %r0
|
||||
; lgr %r4, %r3
|
||||
; lgfr %r3, %r2
|
||||
; dsgfr %r2, %r4
|
||||
; br %r14
|
||||
|
||||
function %srem_i16(i16, i16) -> i16 {
|
||||
@@ -1298,10 +1321,10 @@ block0(v0: i16, v1: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lghr %r1, %r2
|
||||
; lhr %r3, %r3
|
||||
; dsgfr %r0, %r3
|
||||
; lgr %r2, %r0
|
||||
; lgr %r4, %r3
|
||||
; lghr %r3, %r2
|
||||
; lhr %r4, %r4
|
||||
; dsgfr %r2, %r4
|
||||
; br %r14
|
||||
|
||||
function %srem_i8(i8, i8) -> i8 {
|
||||
@@ -1311,10 +1334,10 @@ block0(v0: i8, v1: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgbr %r1, %r2
|
||||
; lbr %r3, %r3
|
||||
; dsgfr %r0, %r3
|
||||
; lgr %r2, %r0
|
||||
; lgr %r4, %r3
|
||||
; lgbr %r3, %r2
|
||||
; lbr %r4, %r4
|
||||
; dsgfr %r2, %r4
|
||||
; br %r14
|
||||
|
||||
function %urem_i64(i64, i64) -> i64 {
|
||||
@@ -1324,10 +1347,10 @@ block0(v0: i64, v1: i64):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lghi %r0, 0
|
||||
; lgr %r1, %r2
|
||||
; dlgr %r0, %r3
|
||||
; lgr %r2, %r0
|
||||
; lgr %r5, %r3
|
||||
; lgr %r3, %r2
|
||||
; lghi %r2, 0
|
||||
; dlgr %r2, %r5
|
||||
; br %r14
|
||||
|
||||
function %urem_i32(i32, i32) -> i32 {
|
||||
@@ -1337,10 +1360,10 @@ block0(v0: i32, v1: i32):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lhi %r0, 0
|
||||
; lgr %r1, %r2
|
||||
; dlr %r0, %r3
|
||||
; lgr %r2, %r0
|
||||
; lgr %r5, %r3
|
||||
; lgr %r3, %r2
|
||||
; lhi %r2, 0
|
||||
; dlr %r2, %r5
|
||||
; br %r14
|
||||
|
||||
function %urem_i16(i16, i16) -> i16 {
|
||||
@@ -1350,11 +1373,14 @@ block0(v0: i16, v1: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lhi %r0, 0
|
||||
; llhr %r1, %r2
|
||||
; llhr %r4, %r3
|
||||
; dlr %r0, %r4
|
||||
; lgr %r2, %r0
|
||||
; lgr %r4, %r3
|
||||
; lhi %r3, 0
|
||||
; lgr %r5, %r3
|
||||
; llhr %r3, %r2
|
||||
; lgr %r2, %r4
|
||||
; llhr %r4, %r2
|
||||
; lgr %r2, %r5
|
||||
; dlr %r2, %r4
|
||||
; br %r14
|
||||
|
||||
function %urem_i8(i8, i8) -> i8 {
|
||||
@@ -1364,10 +1390,13 @@ block0(v0: i8, v1: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lhi %r0, 0
|
||||
; llcr %r1, %r2
|
||||
; llcr %r4, %r3
|
||||
; dlr %r0, %r4
|
||||
; lgr %r2, %r0
|
||||
; lgr %r4, %r3
|
||||
; lhi %r3, 0
|
||||
; lgr %r5, %r3
|
||||
; llcr %r3, %r2
|
||||
; lgr %r2, %r4
|
||||
; llcr %r4, %r2
|
||||
; lgr %r2, %r5
|
||||
; dlr %r2, %r4
|
||||
; br %r14
|
||||
|
||||
|
||||
@@ -12,10 +12,10 @@ block0(v0: i64, v1: i64, v2: i64):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lrvgr %r2, %r2
|
||||
; lrvgr %r5, %r3
|
||||
; csg %r2, %r5, 0(%r4)
|
||||
; lrvgr %r2, %r2
|
||||
; lrvgr %r5, %r2
|
||||
; lrvgr %r2, %r3
|
||||
; csg %r5, %r2, 0(%r4)
|
||||
; lrvgr %r2, %r5
|
||||
; br %r14
|
||||
|
||||
function %atomic_cas_i32(i32, i32, i64) -> i32 {
|
||||
@@ -25,10 +25,10 @@ block0(v0: i32, v1: i32, v2: i64):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lrvr %r2, %r2
|
||||
; lrvr %r5, %r3
|
||||
; cs %r2, %r5, 0(%r4)
|
||||
; lrvr %r2, %r2
|
||||
; lrvr %r5, %r2
|
||||
; lrvr %r2, %r3
|
||||
; cs %r5, %r2, 0(%r4)
|
||||
; lrvr %r2, %r5
|
||||
; br %r14
|
||||
|
||||
function %atomic_cas_i16(i64, i16, i16, i64) -> i16 {
|
||||
|
||||
@@ -187,8 +187,7 @@ block0(v0: i64):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; flogr %r0, %r2
|
||||
; lgr %r2, %r0
|
||||
; flogr %r2, %r2
|
||||
; br %r14
|
||||
|
||||
function %clz_i32(i32) -> i32 {
|
||||
@@ -199,8 +198,8 @@ block0(v0: i32):
|
||||
|
||||
; block0:
|
||||
; llgfr %r5, %r2
|
||||
; flogr %r0, %r5
|
||||
; ahik %r2, %r0, -32
|
||||
; flogr %r2, %r5
|
||||
; ahi %r2, -32
|
||||
; br %r14
|
||||
|
||||
function %clz_i16(i16) -> i16 {
|
||||
@@ -211,8 +210,8 @@ block0(v0: i16):
|
||||
|
||||
; block0:
|
||||
; llghr %r5, %r2
|
||||
; flogr %r0, %r5
|
||||
; ahik %r2, %r0, -48
|
||||
; flogr %r2, %r5
|
||||
; ahi %r2, -48
|
||||
; br %r14
|
||||
|
||||
function %clz_i8(i8) -> i8 {
|
||||
@@ -223,8 +222,8 @@ block0(v0: i8):
|
||||
|
||||
; block0:
|
||||
; llgcr %r5, %r2
|
||||
; flogr %r0, %r5
|
||||
; ahik %r2, %r0, -56
|
||||
; flogr %r2, %r5
|
||||
; ahi %r2, -56
|
||||
; br %r14
|
||||
|
||||
function %cls_i128(i128) -> i128 {
|
||||
@@ -260,8 +259,8 @@ block0(v0: i64):
|
||||
; block0:
|
||||
; srag %r5, %r2, 63
|
||||
; xgrk %r3, %r2, %r5
|
||||
; flogr %r0, %r3
|
||||
; aghik %r2, %r0, -1
|
||||
; flogr %r2, %r3
|
||||
; aghi %r2, -1
|
||||
; br %r14
|
||||
|
||||
function %cls_i32(i32) -> i32 {
|
||||
@@ -274,8 +273,8 @@ block0(v0: i32):
|
||||
; lgfr %r5, %r2
|
||||
; srag %r3, %r5, 63
|
||||
; xgr %r5, %r3
|
||||
; flogr %r0, %r5
|
||||
; ahik %r2, %r0, -33
|
||||
; flogr %r2, %r5
|
||||
; ahi %r2, -33
|
||||
; br %r14
|
||||
|
||||
function %cls_i16(i16) -> i16 {
|
||||
@@ -288,8 +287,8 @@ block0(v0: i16):
|
||||
; lghr %r5, %r2
|
||||
; srag %r3, %r5, 63
|
||||
; xgr %r5, %r3
|
||||
; flogr %r0, %r5
|
||||
; ahik %r2, %r0, -49
|
||||
; flogr %r2, %r5
|
||||
; ahi %r2, -49
|
||||
; br %r14
|
||||
|
||||
function %cls_i8(i8) -> i8 {
|
||||
@@ -302,8 +301,8 @@ block0(v0: i8):
|
||||
; lgbr %r5, %r2
|
||||
; srag %r3, %r5, 63
|
||||
; xgr %r5, %r3
|
||||
; flogr %r0, %r5
|
||||
; ahik %r2, %r0, -57
|
||||
; flogr %r2, %r5
|
||||
; ahi %r2, -57
|
||||
; br %r14
|
||||
|
||||
function %ctz_i128(i128) -> i128 {
|
||||
@@ -334,10 +333,11 @@ block0(v0: i64):
|
||||
; block0:
|
||||
; lcgr %r5, %r2
|
||||
; ngrk %r3, %r2, %r5
|
||||
; flogr %r0, %r3
|
||||
; locghie %r0, -1
|
||||
; lghi %r3, 63
|
||||
; sgrk %r2, %r3, %r0
|
||||
; flogr %r2, %r3
|
||||
; lgr %r4, %r2
|
||||
; locghie %r4, -1
|
||||
; lghi %r2, 63
|
||||
; sgr %r2, %r4
|
||||
; br %r14
|
||||
|
||||
function %ctz_i32(i32) -> i32 {
|
||||
@@ -351,9 +351,9 @@ block0(v0: i32):
|
||||
; oihl %r5, 1
|
||||
; lcgr %r3, %r5
|
||||
; ngr %r5, %r3
|
||||
; flogr %r0, %r5
|
||||
; lhi %r4, 63
|
||||
; srk %r2, %r4, %r0
|
||||
; flogr %r2, %r5
|
||||
; lhi %r3, 63
|
||||
; srk %r2, %r3, %r2
|
||||
; br %r14
|
||||
|
||||
function %ctz_i16(i16) -> i16 {
|
||||
@@ -367,9 +367,9 @@ block0(v0: i16):
|
||||
; oilh %r5, 1
|
||||
; lcgr %r3, %r5
|
||||
; ngr %r5, %r3
|
||||
; flogr %r0, %r5
|
||||
; lhi %r4, 63
|
||||
; srk %r2, %r4, %r0
|
||||
; flogr %r2, %r5
|
||||
; lhi %r3, 63
|
||||
; srk %r2, %r3, %r2
|
||||
; br %r14
|
||||
|
||||
function %ctz_i8(i8) -> i8 {
|
||||
@@ -383,9 +383,9 @@ block0(v0: i8):
|
||||
; oill %r5, 256
|
||||
; lcgr %r3, %r5
|
||||
; ngr %r5, %r3
|
||||
; flogr %r0, %r5
|
||||
; lhi %r4, 63
|
||||
; srk %r2, %r4, %r0
|
||||
; flogr %r2, %r5
|
||||
; lhi %r3, 63
|
||||
; srk %r2, %r3, %r2
|
||||
; br %r14
|
||||
|
||||
function %popcnt_i128(i128) -> i128 {
|
||||
|
||||
@@ -52,9 +52,9 @@ block0(v0: i32, v1: i8x16, v2: i8x16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; vlr %v16, %v24
|
||||
; clfi %r2, 42
|
||||
; vlr %v24, %v25
|
||||
; jne 10 ; vlr %v24, %v16
|
||||
; vlr %v6, %v25
|
||||
; jne 10 ; vlr %v6, %v24
|
||||
; vlr %v24, %v6
|
||||
; br %r14
|
||||
|
||||
|
||||
@@ -8,9 +8,9 @@ block0(v0: i64):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; vgbm %v4, 0
|
||||
; vlvgg %v4, %r3, 1
|
||||
; vst %v4, 0(%r2)
|
||||
; vgbm %v5, 0
|
||||
; vlvgg %v5, %r3, 1
|
||||
; vst %v5, 0(%r2)
|
||||
; br %r14
|
||||
|
||||
function %uextend_i32_i128(i32) -> i128 {
|
||||
@@ -20,9 +20,9 @@ block0(v0: i32):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; vgbm %v4, 0
|
||||
; vlvgf %v4, %r3, 3
|
||||
; vst %v4, 0(%r2)
|
||||
; vgbm %v5, 0
|
||||
; vlvgf %v5, %r3, 3
|
||||
; vst %v5, 0(%r2)
|
||||
; br %r14
|
||||
|
||||
function %uextend_i32_i64(i32) -> i64 {
|
||||
@@ -42,9 +42,9 @@ block0(v0: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; vgbm %v4, 0
|
||||
; vlvgh %v4, %r3, 7
|
||||
; vst %v4, 0(%r2)
|
||||
; vgbm %v5, 0
|
||||
; vlvgh %v5, %r3, 7
|
||||
; vst %v5, 0(%r2)
|
||||
; br %r14
|
||||
|
||||
function %uextend_i16_i64(i16) -> i64 {
|
||||
@@ -74,9 +74,9 @@ block0(v0: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; vgbm %v4, 0
|
||||
; vlvgb %v4, %r3, 15
|
||||
; vst %v4, 0(%r2)
|
||||
; vgbm %v5, 0
|
||||
; vlvgb %v5, %r3, 15
|
||||
; vst %v5, 0(%r2)
|
||||
; br %r14
|
||||
|
||||
function %uextend_i8_i64(i8) -> i64 {
|
||||
@@ -336,8 +336,8 @@ block0(v0: i128):
|
||||
; vceqgs %v7, %v0, %v5
|
||||
; lghi %r3, 0
|
||||
; locghine %r3, -1
|
||||
; vlvgp %v20, %r3, %r3
|
||||
; vst %v20, 0(%r2)
|
||||
; vlvgp %v21, %r3, %r3
|
||||
; vst %v21, 0(%r2)
|
||||
; br %r14
|
||||
|
||||
function %bmask_i128_i64(i128) -> i64 {
|
||||
@@ -406,8 +406,8 @@ block0(v0: i64, v1: i64):
|
||||
; cghi %r4, 0
|
||||
; lghi %r4, 0
|
||||
; locghilh %r4, -1
|
||||
; vlvgp %v17, %r4, %r4
|
||||
; vst %v17, 0(%r2)
|
||||
; vlvgp %v18, %r4, %r4
|
||||
; vst %v18, 0(%r2)
|
||||
; br %r14
|
||||
|
||||
function %bmask_i64_i64(i64, i64) -> i64 {
|
||||
@@ -468,8 +468,8 @@ block0(v0: i32, v1: i32):
|
||||
; chi %r4, 0
|
||||
; lghi %r4, 0
|
||||
; locghilh %r4, -1
|
||||
; vlvgp %v17, %r4, %r4
|
||||
; vst %v17, 0(%r2)
|
||||
; vlvgp %v18, %r4, %r4
|
||||
; vst %v18, 0(%r2)
|
||||
; br %r14
|
||||
|
||||
function %bmask_i32_i64(i32, i32) -> i64 {
|
||||
@@ -531,8 +531,8 @@ block0(v0: i16, v1: i16):
|
||||
; chi %r3, 0
|
||||
; lghi %r3, 0
|
||||
; locghilh %r3, -1
|
||||
; vlvgp %v19, %r3, %r3
|
||||
; vst %v19, 0(%r2)
|
||||
; vlvgp %v20, %r3, %r3
|
||||
; vst %v20, 0(%r2)
|
||||
; br %r14
|
||||
|
||||
function %bmask_i16_i64(i16, i16) -> i64 {
|
||||
@@ -598,8 +598,8 @@ block0(v0: i8, v1: i8):
|
||||
; chi %r3, 0
|
||||
; lghi %r3, 0
|
||||
; locghilh %r3, -1
|
||||
; vlvgp %v19, %r3, %r3
|
||||
; vst %v19, 0(%r2)
|
||||
; vlvgp %v20, %r3, %r3
|
||||
; vst %v20, 0(%r2)
|
||||
; br %r14
|
||||
|
||||
function %bmask_i8_i64(i8, i8) -> i64 {
|
||||
@@ -665,8 +665,8 @@ block0(v0: i8, v1: i8):
|
||||
; chi %r3, 0
|
||||
; lghi %r3, 0
|
||||
; locghilh %r3, -1
|
||||
; vlvgp %v19, %r3, %r3
|
||||
; vst %v19, 0(%r2)
|
||||
; vlvgp %v20, %r3, %r3
|
||||
; vst %v20, 0(%r2)
|
||||
; br %r14
|
||||
|
||||
function %bmask_i8_i64(i8, i8) -> i64 {
|
||||
|
||||
@@ -13,15 +13,18 @@ block0(v0: i64, v1: i64):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r1, %r2
|
||||
; cgite %r3, 0
|
||||
; llihf %r4, 2147483647
|
||||
; iilf %r4, 4294967295
|
||||
; xgr %r4, %r1
|
||||
; ngrk %r5, %r4, %r3
|
||||
; cgite %r5, -1
|
||||
; dsgr %r0, %r3
|
||||
; lgr %r2, %r1
|
||||
; xgr %r4, %r2
|
||||
; lgr %r5, %r2
|
||||
; ngr %r4, %r3
|
||||
; lgr %r2, %r3
|
||||
; cgite %r4, -1
|
||||
; lgr %r4, %r2
|
||||
; lgr %r3, %r5
|
||||
; dsgr %r2, %r4
|
||||
; lgr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %sdiv_i64_imm(i64) -> i64 {
|
||||
@@ -32,10 +35,10 @@ block0(v0: i64):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r1, %r2
|
||||
; lghi %r2, 2
|
||||
; dsgr %r0, %r2
|
||||
; lgr %r2, %r1
|
||||
; lgr %r3, %r2
|
||||
; lghi %r5, 2
|
||||
; dsgr %r2, %r5
|
||||
; lgr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %sdiv_i32(i32, i32) -> i32 {
|
||||
@@ -45,14 +48,18 @@ block0(v0: i32, v1: i32):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgfr %r1, %r2
|
||||
; lgfr %r2, %r2
|
||||
; cite %r3, 0
|
||||
; iilf %r4, 2147483647
|
||||
; xrk %r2, %r4, %r1
|
||||
; nrk %r4, %r2, %r3
|
||||
; cite %r4, -1
|
||||
; dsgfr %r0, %r3
|
||||
; lgr %r2, %r1
|
||||
; iilf %r5, 2147483647
|
||||
; lgr %r4, %r2
|
||||
; xr %r5, %r4
|
||||
; nr %r5, %r3
|
||||
; lgr %r4, %r3
|
||||
; cite %r5, -1
|
||||
; lgr %r3, %r2
|
||||
; lgr %r2, %r4
|
||||
; dsgfr %r2, %r2
|
||||
; lgr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %sdiv_i32_imm(i32) -> i32 {
|
||||
@@ -63,10 +70,10 @@ block0(v0: i32):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgfr %r1, %r2
|
||||
; lhi %r2, 2
|
||||
; dsgfr %r0, %r2
|
||||
; lgr %r2, %r1
|
||||
; lgfr %r3, %r2
|
||||
; lhi %r4, 2
|
||||
; dsgfr %r2, %r4
|
||||
; lgr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %sdiv_i16(i16, i16) -> i16 {
|
||||
@@ -76,15 +83,16 @@ block0(v0: i16, v1: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lghr %r1, %r2
|
||||
; lhr %r3, %r3
|
||||
; cite %r3, 0
|
||||
; lhi %r2, 32767
|
||||
; xrk %r4, %r2, %r1
|
||||
; nrk %r2, %r4, %r3
|
||||
; cite %r2, -1
|
||||
; dsgfr %r0, %r3
|
||||
; lgr %r2, %r1
|
||||
; lghr %r2, %r2
|
||||
; lhr %r4, %r3
|
||||
; cite %r4, 0
|
||||
; lhi %r5, 32767
|
||||
; lgr %r3, %r2
|
||||
; xr %r5, %r3
|
||||
; nr %r5, %r4
|
||||
; cite %r5, -1
|
||||
; dsgfr %r2, %r4
|
||||
; lgr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %sdiv_i16_imm(i16) -> i16 {
|
||||
@@ -95,10 +103,10 @@ block0(v0: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lghr %r1, %r2
|
||||
; lhi %r2, 2
|
||||
; dsgfr %r0, %r2
|
||||
; lgr %r2, %r1
|
||||
; lghr %r3, %r2
|
||||
; lhi %r4, 2
|
||||
; dsgfr %r2, %r4
|
||||
; lgr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %sdiv_i8(i8, i8) -> i8 {
|
||||
@@ -108,15 +116,16 @@ block0(v0: i8, v1: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgbr %r1, %r2
|
||||
; lbr %r3, %r3
|
||||
; cite %r3, 0
|
||||
; lhi %r2, 127
|
||||
; xrk %r4, %r2, %r1
|
||||
; nrk %r2, %r4, %r3
|
||||
; cite %r2, -1
|
||||
; dsgfr %r0, %r3
|
||||
; lgr %r2, %r1
|
||||
; lgbr %r2, %r2
|
||||
; lbr %r4, %r3
|
||||
; cite %r4, 0
|
||||
; lhi %r5, 127
|
||||
; lgr %r3, %r2
|
||||
; xr %r5, %r3
|
||||
; nr %r5, %r4
|
||||
; cite %r5, -1
|
||||
; dsgfr %r2, %r4
|
||||
; lgr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %sdiv_i8_imm(i8) -> i8 {
|
||||
@@ -127,10 +136,10 @@ block0(v0: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgbr %r1, %r2
|
||||
; lhi %r2, 2
|
||||
; dsgfr %r0, %r2
|
||||
; lgr %r2, %r1
|
||||
; lgbr %r3, %r2
|
||||
; lhi %r4, 2
|
||||
; dsgfr %r2, %r4
|
||||
; lgr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %udiv_i64(i64, i64) -> i64 {
|
||||
@@ -140,11 +149,14 @@ block0(v0: i64, v1: i64):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lghi %r0, 0
|
||||
; lgr %r1, %r2
|
||||
; lgr %r4, %r2
|
||||
; lghi %r2, 0
|
||||
; cgite %r3, 0
|
||||
; dlgr %r0, %r3
|
||||
; lgr %r2, %r1
|
||||
; lgr %r5, %r3
|
||||
; lgr %r3, %r4
|
||||
; lgr %r4, %r5
|
||||
; dlgr %r2, %r4
|
||||
; lgr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %udiv_i64_imm(i64) -> i64 {
|
||||
@@ -155,11 +167,11 @@ block0(v0: i64):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lghi %r0, 0
|
||||
; lgr %r1, %r2
|
||||
; lghi %r3, 2
|
||||
; dlgr %r0, %r3
|
||||
; lgr %r2, %r1
|
||||
; lgr %r3, %r2
|
||||
; lghi %r2, 0
|
||||
; lghi %r4, 2
|
||||
; dlgr %r2, %r4
|
||||
; lgr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %udiv_i32(i32, i32) -> i32 {
|
||||
@@ -169,11 +181,14 @@ block0(v0: i32, v1: i32):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lhi %r0, 0
|
||||
; lgr %r1, %r2
|
||||
; lgr %r4, %r2
|
||||
; lhi %r2, 0
|
||||
; cite %r3, 0
|
||||
; dlr %r0, %r3
|
||||
; lgr %r2, %r1
|
||||
; lgr %r5, %r3
|
||||
; lgr %r3, %r4
|
||||
; lgr %r4, %r5
|
||||
; dlr %r2, %r4
|
||||
; lgr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %udiv_i32_imm(i32) -> i32 {
|
||||
@@ -184,11 +199,11 @@ block0(v0: i32):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lhi %r0, 0
|
||||
; lgr %r1, %r2
|
||||
; lhi %r3, 2
|
||||
; dlr %r0, %r3
|
||||
; lgr %r2, %r1
|
||||
; lgr %r3, %r2
|
||||
; lhi %r2, 0
|
||||
; lhi %r4, 2
|
||||
; dlr %r2, %r4
|
||||
; lgr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %udiv_i16(i16, i16) -> i16 {
|
||||
@@ -198,12 +213,16 @@ block0(v0: i16, v1: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lhi %r0, 0
|
||||
; llhr %r1, %r2
|
||||
; llhr %r4, %r3
|
||||
; lgr %r4, %r3
|
||||
; lhi %r3, 0
|
||||
; lgr %r5, %r3
|
||||
; llhr %r3, %r2
|
||||
; lgr %r2, %r4
|
||||
; llhr %r4, %r2
|
||||
; cite %r4, 0
|
||||
; dlr %r0, %r4
|
||||
; lgr %r2, %r1
|
||||
; lgr %r2, %r5
|
||||
; dlr %r2, %r4
|
||||
; lgr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %udiv_i16_imm(i16) -> i16 {
|
||||
@@ -214,11 +233,13 @@ block0(v0: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lhi %r0, 0
|
||||
; llhr %r1, %r2
|
||||
; lhi %r3, 2
|
||||
; dlr %r0, %r3
|
||||
; lgr %r2, %r1
|
||||
; lhi %r5, 0
|
||||
; lgr %r4, %r5
|
||||
; llhr %r3, %r2
|
||||
; lhi %r5, 2
|
||||
; lgr %r2, %r4
|
||||
; dlr %r2, %r5
|
||||
; lgr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %udiv_i8(i8, i8) -> i8 {
|
||||
@@ -228,12 +249,16 @@ block0(v0: i8, v1: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lhi %r0, 0
|
||||
; llcr %r1, %r2
|
||||
; llcr %r4, %r3
|
||||
; lgr %r4, %r3
|
||||
; lhi %r3, 0
|
||||
; lgr %r5, %r3
|
||||
; llcr %r3, %r2
|
||||
; lgr %r2, %r4
|
||||
; llcr %r4, %r2
|
||||
; cite %r4, 0
|
||||
; dlr %r0, %r4
|
||||
; lgr %r2, %r1
|
||||
; lgr %r2, %r5
|
||||
; dlr %r2, %r4
|
||||
; lgr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %udiv_i8_imm(i8) -> i8 {
|
||||
@@ -244,11 +269,13 @@ block0(v0: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lhi %r0, 0
|
||||
; llcr %r1, %r2
|
||||
; lhi %r3, 2
|
||||
; dlr %r0, %r3
|
||||
; lgr %r2, %r1
|
||||
; lhi %r5, 0
|
||||
; lgr %r4, %r5
|
||||
; llcr %r3, %r2
|
||||
; lhi %r5, 2
|
||||
; lgr %r2, %r4
|
||||
; dlr %r2, %r5
|
||||
; lgr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %srem_i64(i64, i64) -> i64 {
|
||||
@@ -258,12 +285,12 @@ block0(v0: i64, v1: i64):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r1, %r2
|
||||
; cgite %r3, 0
|
||||
; cghi %r3, -1
|
||||
; locghie %r1, 0
|
||||
; dsgr %r0, %r3
|
||||
; lgr %r2, %r0
|
||||
; lgr %r5, %r3
|
||||
; lgr %r3, %r2
|
||||
; locghie %r3, 0
|
||||
; dsgr %r2, %r5
|
||||
; br %r14
|
||||
|
||||
function %srem_i32(i32, i32) -> i32 {
|
||||
@@ -273,10 +300,10 @@ block0(v0: i32, v1: i32):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgfr %r1, %r2
|
||||
; cite %r3, 0
|
||||
; dsgfr %r0, %r3
|
||||
; lgr %r2, %r0
|
||||
; lgr %r4, %r3
|
||||
; lgfr %r3, %r2
|
||||
; cite %r4, 0
|
||||
; dsgfr %r2, %r4
|
||||
; br %r14
|
||||
|
||||
function %srem_i16(i16, i16) -> i16 {
|
||||
@@ -286,11 +313,12 @@ block0(v0: i16, v1: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lghr %r1, %r2
|
||||
; lhr %r3, %r3
|
||||
; cite %r3, 0
|
||||
; dsgfr %r0, %r3
|
||||
; lgr %r2, %r0
|
||||
; lghr %r2, %r2
|
||||
; lgr %r5, %r2
|
||||
; lhr %r4, %r3
|
||||
; cite %r4, 0
|
||||
; lgr %r3, %r5
|
||||
; dsgfr %r2, %r4
|
||||
; br %r14
|
||||
|
||||
function %srem_i8(i8, i8) -> i8 {
|
||||
@@ -300,11 +328,12 @@ block0(v0: i8, v1: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgbr %r1, %r2
|
||||
; lbr %r3, %r3
|
||||
; cite %r3, 0
|
||||
; dsgfr %r0, %r3
|
||||
; lgr %r2, %r0
|
||||
; lgbr %r2, %r2
|
||||
; lgr %r5, %r2
|
||||
; lbr %r4, %r3
|
||||
; cite %r4, 0
|
||||
; lgr %r3, %r5
|
||||
; dsgfr %r2, %r4
|
||||
; br %r14
|
||||
|
||||
function %urem_i64(i64, i64) -> i64 {
|
||||
@@ -314,11 +343,13 @@ block0(v0: i64, v1: i64):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lghi %r0, 0
|
||||
; lgr %r1, %r2
|
||||
; lgr %r4, %r2
|
||||
; lghi %r2, 0
|
||||
; cgite %r3, 0
|
||||
; dlgr %r0, %r3
|
||||
; lgr %r2, %r0
|
||||
; lgr %r5, %r3
|
||||
; lgr %r3, %r4
|
||||
; lgr %r4, %r5
|
||||
; dlgr %r2, %r4
|
||||
; br %r14
|
||||
|
||||
function %urem_i32(i32, i32) -> i32 {
|
||||
@@ -328,11 +359,13 @@ block0(v0: i32, v1: i32):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lhi %r0, 0
|
||||
; lgr %r1, %r2
|
||||
; lgr %r4, %r2
|
||||
; lhi %r2, 0
|
||||
; cite %r3, 0
|
||||
; dlr %r0, %r3
|
||||
; lgr %r2, %r0
|
||||
; lgr %r5, %r3
|
||||
; lgr %r3, %r4
|
||||
; lgr %r4, %r5
|
||||
; dlr %r2, %r4
|
||||
; br %r14
|
||||
|
||||
function %urem_i16(i16, i16) -> i16 {
|
||||
@@ -342,12 +375,15 @@ block0(v0: i16, v1: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lhi %r0, 0
|
||||
; llhr %r1, %r2
|
||||
; llhr %r4, %r3
|
||||
; lgr %r4, %r3
|
||||
; lhi %r3, 0
|
||||
; lgr %r5, %r3
|
||||
; llhr %r3, %r2
|
||||
; lgr %r2, %r4
|
||||
; llhr %r4, %r2
|
||||
; cite %r4, 0
|
||||
; dlr %r0, %r4
|
||||
; lgr %r2, %r0
|
||||
; lgr %r2, %r5
|
||||
; dlr %r2, %r4
|
||||
; br %r14
|
||||
|
||||
function %urem_i8(i8, i8) -> i8 {
|
||||
@@ -357,11 +393,14 @@ block0(v0: i8, v1: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lhi %r0, 0
|
||||
; llcr %r1, %r2
|
||||
; llcr %r4, %r3
|
||||
; lgr %r4, %r3
|
||||
; lhi %r3, 0
|
||||
; lgr %r5, %r3
|
||||
; llcr %r3, %r2
|
||||
; lgr %r2, %r4
|
||||
; llcr %r4, %r2
|
||||
; cite %r4, 0
|
||||
; dlr %r0, %r4
|
||||
; lgr %r2, %r0
|
||||
; lgr %r2, %r5
|
||||
; dlr %r2, %r4
|
||||
; br %r14
|
||||
|
||||
|
||||
@@ -503,9 +503,8 @@ block0(v0: f32):
|
||||
|
||||
; block0:
|
||||
; wclfeb %f3, %f0, 0, 5
|
||||
; vlgvf %r3, %v3, 0
|
||||
; lgr %r2, %r3
|
||||
; clfi %r3, 256
|
||||
; vlgvf %r2, %v3, 0
|
||||
; clfi %r2, 256
|
||||
; lochih %r2, 255
|
||||
; br %r14
|
||||
|
||||
@@ -517,14 +516,12 @@ block0(v0: f32):
|
||||
|
||||
; block0:
|
||||
; wcfeb %f3, %f0, 0, 5
|
||||
; vlgvf %r3, %v3, 0
|
||||
; vlgvf %r2, %v3, 0
|
||||
; cebr %f0, %f0
|
||||
; lochio %r3, 0
|
||||
; lgr %r4, %r3
|
||||
; chi %r3, 127
|
||||
; lochih %r4, 127
|
||||
; lgr %r2, %r4
|
||||
; chi %r4, -128
|
||||
; lochio %r2, 0
|
||||
; chi %r2, 127
|
||||
; lochih %r2, 127
|
||||
; chi %r2, -128
|
||||
; lochil %r2, -128
|
||||
; br %r14
|
||||
|
||||
@@ -536,9 +533,8 @@ block0(v0: f32):
|
||||
|
||||
; block0:
|
||||
; wclfeb %f3, %f0, 0, 5
|
||||
; vlgvf %r3, %v3, 0
|
||||
; lgr %r2, %r3
|
||||
; clfi %r3, 65535
|
||||
; vlgvf %r2, %v3, 0
|
||||
; clfi %r2, 65535
|
||||
; lochih %r2, -1
|
||||
; br %r14
|
||||
|
||||
@@ -550,14 +546,12 @@ block0(v0: f32):
|
||||
|
||||
; block0:
|
||||
; wcfeb %f3, %f0, 0, 5
|
||||
; vlgvf %r3, %v3, 0
|
||||
; vlgvf %r2, %v3, 0
|
||||
; cebr %f0, %f0
|
||||
; lochio %r3, 0
|
||||
; lgr %r4, %r3
|
||||
; chi %r3, 32767
|
||||
; lochih %r4, 32767
|
||||
; lgr %r2, %r4
|
||||
; chi %r4, -32768
|
||||
; lochio %r2, 0
|
||||
; chi %r2, 32767
|
||||
; lochih %r2, 32767
|
||||
; chi %r2, -32768
|
||||
; lochil %r2, -32768
|
||||
; br %r14
|
||||
|
||||
@@ -619,9 +613,8 @@ block0(v0: f64):
|
||||
|
||||
; block0:
|
||||
; wclgdb %f3, %f0, 0, 5
|
||||
; lgdr %r3, %f3
|
||||
; lgr %r2, %r3
|
||||
; clgfi %r3, 256
|
||||
; lgdr %r2, %f3
|
||||
; clgfi %r2, 256
|
||||
; locghih %r2, 255
|
||||
; br %r14
|
||||
|
||||
@@ -633,14 +626,12 @@ block0(v0: f64):
|
||||
|
||||
; block0:
|
||||
; wcgdb %f3, %f0, 0, 5
|
||||
; lgdr %r3, %f3
|
||||
; lgdr %r2, %f3
|
||||
; cdbr %f0, %f0
|
||||
; locghio %r3, 0
|
||||
; lgr %r4, %r3
|
||||
; cghi %r3, 127
|
||||
; locghih %r4, 127
|
||||
; lgr %r2, %r4
|
||||
; cghi %r4, -128
|
||||
; locghio %r2, 0
|
||||
; cghi %r2, 127
|
||||
; locghih %r2, 127
|
||||
; cghi %r2, -128
|
||||
; locghil %r2, -128
|
||||
; br %r14
|
||||
|
||||
@@ -652,9 +643,8 @@ block0(v0: f64):
|
||||
|
||||
; block0:
|
||||
; wclgdb %f3, %f0, 0, 5
|
||||
; lgdr %r3, %f3
|
||||
; lgr %r2, %r3
|
||||
; clgfi %r3, 65535
|
||||
; lgdr %r2, %f3
|
||||
; clgfi %r2, 65535
|
||||
; locghih %r2, -1
|
||||
; br %r14
|
||||
|
||||
@@ -666,14 +656,12 @@ block0(v0: f64):
|
||||
|
||||
; block0:
|
||||
; wcgdb %f3, %f0, 0, 5
|
||||
; lgdr %r3, %f3
|
||||
; lgdr %r2, %f3
|
||||
; cdbr %f0, %f0
|
||||
; locghio %r3, 0
|
||||
; lgr %r4, %r3
|
||||
; cghi %r3, 32767
|
||||
; locghih %r4, 32767
|
||||
; lgr %r2, %r4
|
||||
; cghi %r4, -32768
|
||||
; locghio %r2, 0
|
||||
; cghi %r2, 32767
|
||||
; locghih %r2, 32767
|
||||
; cghi %r2, -32768
|
||||
; locghil %r2, -32768
|
||||
; br %r14
|
||||
|
||||
@@ -702,12 +690,12 @@ block0(v0: f64):
|
||||
; lgdr %r2, %f3
|
||||
; cdbr %f0, %f0
|
||||
; locghio %r2, 0
|
||||
; lgfi %r5, 2147483647
|
||||
; lgfi %r4, 2147483647
|
||||
; cgr %r2, %r4
|
||||
; locgrh %r2, %r4
|
||||
; lgfi %r5, -2147483648
|
||||
; cgr %r2, %r5
|
||||
; locgrh %r2, %r5
|
||||
; lgfi %r3, -2147483648
|
||||
; cgr %r2, %r3
|
||||
; locgrl %r2, %r3
|
||||
; locgrl %r2, %r5
|
||||
; br %r14
|
||||
|
||||
function %fcvt_to_uint_sat_f64_i64(f64) -> i64 {
|
||||
|
||||
@@ -927,9 +927,8 @@ block0(v0: f32):
|
||||
; block0:
|
||||
; ldebr %f3, %f0
|
||||
; wclgdb %f5, %f3, 0, 5
|
||||
; lgdr %r5, %f5
|
||||
; lgr %r2, %r5
|
||||
; clgfi %r5, 256
|
||||
; lgdr %r2, %f5
|
||||
; clgfi %r2, 256
|
||||
; locghih %r2, 255
|
||||
; br %r14
|
||||
|
||||
@@ -942,14 +941,12 @@ block0(v0: f32):
|
||||
; block0:
|
||||
; ldebr %f3, %f0
|
||||
; wcgdb %f5, %f3, 0, 5
|
||||
; lgdr %r5, %f5
|
||||
; lgdr %r2, %f5
|
||||
; cebr %f0, %f0
|
||||
; locghio %r5, 0
|
||||
; lgr %r4, %r5
|
||||
; cghi %r5, 127
|
||||
; locghih %r4, 127
|
||||
; lgr %r2, %r4
|
||||
; cghi %r4, -128
|
||||
; locghio %r2, 0
|
||||
; cghi %r2, 127
|
||||
; locghih %r2, 127
|
||||
; cghi %r2, -128
|
||||
; locghil %r2, -128
|
||||
; br %r14
|
||||
|
||||
@@ -962,9 +959,8 @@ block0(v0: f32):
|
||||
; block0:
|
||||
; ldebr %f3, %f0
|
||||
; wclgdb %f5, %f3, 0, 5
|
||||
; lgdr %r5, %f5
|
||||
; lgr %r2, %r5
|
||||
; clgfi %r5, 65535
|
||||
; lgdr %r2, %f5
|
||||
; clgfi %r2, 65535
|
||||
; locghih %r2, -1
|
||||
; br %r14
|
||||
|
||||
@@ -977,14 +973,12 @@ block0(v0: f32):
|
||||
; block0:
|
||||
; ldebr %f3, %f0
|
||||
; wcgdb %f5, %f3, 0, 5
|
||||
; lgdr %r5, %f5
|
||||
; lgdr %r2, %f5
|
||||
; cebr %f0, %f0
|
||||
; locghio %r5, 0
|
||||
; lgr %r4, %r5
|
||||
; cghi %r5, 32767
|
||||
; locghih %r4, 32767
|
||||
; lgr %r2, %r4
|
||||
; cghi %r4, -32768
|
||||
; locghio %r2, 0
|
||||
; cghi %r2, 32767
|
||||
; locghih %r2, 32767
|
||||
; cghi %r2, -32768
|
||||
; locghil %r2, -32768
|
||||
; br %r14
|
||||
|
||||
@@ -1018,9 +1012,9 @@ block0(v0: f32):
|
||||
; lgfi %r3, 2147483647
|
||||
; cgr %r2, %r3
|
||||
; locgrh %r2, %r3
|
||||
; lgfi %r5, -2147483648
|
||||
; cgr %r2, %r5
|
||||
; locgrl %r2, %r5
|
||||
; lgfi %r3, -2147483648
|
||||
; cgr %r2, %r3
|
||||
; locgrl %r2, %r3
|
||||
; br %r14
|
||||
|
||||
function %fcvt_to_uint_sat_f32_i64(f32) -> i64 {
|
||||
@@ -1057,9 +1051,8 @@ block0(v0: f64):
|
||||
|
||||
; block0:
|
||||
; wclgdb %f3, %f0, 0, 5
|
||||
; lgdr %r3, %f3
|
||||
; lgr %r2, %r3
|
||||
; clgfi %r3, 256
|
||||
; lgdr %r2, %f3
|
||||
; clgfi %r2, 256
|
||||
; locghih %r2, 255
|
||||
; br %r14
|
||||
|
||||
@@ -1071,14 +1064,12 @@ block0(v0: f64):
|
||||
|
||||
; block0:
|
||||
; wcgdb %f3, %f0, 0, 5
|
||||
; lgdr %r3, %f3
|
||||
; lgdr %r2, %f3
|
||||
; cdbr %f0, %f0
|
||||
; locghio %r3, 0
|
||||
; lgr %r4, %r3
|
||||
; cghi %r3, 127
|
||||
; locghih %r4, 127
|
||||
; lgr %r2, %r4
|
||||
; cghi %r4, -128
|
||||
; locghio %r2, 0
|
||||
; cghi %r2, 127
|
||||
; locghih %r2, 127
|
||||
; cghi %r2, -128
|
||||
; locghil %r2, -128
|
||||
; br %r14
|
||||
|
||||
@@ -1090,9 +1081,8 @@ block0(v0: f64):
|
||||
|
||||
; block0:
|
||||
; wclgdb %f3, %f0, 0, 5
|
||||
; lgdr %r3, %f3
|
||||
; lgr %r2, %r3
|
||||
; clgfi %r3, 65535
|
||||
; lgdr %r2, %f3
|
||||
; clgfi %r2, 65535
|
||||
; locghih %r2, -1
|
||||
; br %r14
|
||||
|
||||
@@ -1104,14 +1094,12 @@ block0(v0: f64):
|
||||
|
||||
; block0:
|
||||
; wcgdb %f3, %f0, 0, 5
|
||||
; lgdr %r3, %f3
|
||||
; lgdr %r2, %f3
|
||||
; cdbr %f0, %f0
|
||||
; locghio %r3, 0
|
||||
; lgr %r4, %r3
|
||||
; cghi %r3, 32767
|
||||
; locghih %r4, 32767
|
||||
; lgr %r2, %r4
|
||||
; cghi %r4, -32768
|
||||
; locghio %r2, 0
|
||||
; cghi %r2, 32767
|
||||
; locghih %r2, 32767
|
||||
; cghi %r2, -32768
|
||||
; locghil %r2, -32768
|
||||
; br %r14
|
||||
|
||||
@@ -1140,12 +1128,12 @@ block0(v0: f64):
|
||||
; lgdr %r2, %f3
|
||||
; cdbr %f0, %f0
|
||||
; locghio %r2, 0
|
||||
; lgfi %r5, 2147483647
|
||||
; lgfi %r4, 2147483647
|
||||
; cgr %r2, %r4
|
||||
; locgrh %r2, %r4
|
||||
; lgfi %r5, -2147483648
|
||||
; cgr %r2, %r5
|
||||
; locgrh %r2, %r5
|
||||
; lgfi %r3, -2147483648
|
||||
; cgr %r2, %r3
|
||||
; locgrl %r2, %r3
|
||||
; locgrl %r2, %r5
|
||||
; br %r14
|
||||
|
||||
function %fcvt_to_uint_sat_f64_i64(f64) -> i64 {
|
||||
|
||||
@@ -459,8 +459,8 @@ block0(v0: i64, v1: i64):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; llgh %r3, 0(%r3)
|
||||
; clgr %r2, %r3
|
||||
; llgh %r4, 0(%r3)
|
||||
; clgr %r2, %r4
|
||||
; lhi %r2, 0
|
||||
; lochil %r2, 1
|
||||
; br %r14
|
||||
@@ -554,8 +554,8 @@ block0(v0: i32, v1: i64):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; llh %r3, 0(%r3)
|
||||
; clr %r2, %r3
|
||||
; llh %r4, 0(%r3)
|
||||
; clr %r2, %r4
|
||||
; lhi %r2, 0
|
||||
; lochil %r2, 1
|
||||
; br %r14
|
||||
|
||||
@@ -18,9 +18,9 @@ block0(v0: i32):
|
||||
; bras %r1, 12 ; data userextname0@tlsgd ; lg %r2, 0(%r1)
|
||||
; brasl %r14, %ElfTlsGetOffset:tls_gdcall:userextname0
|
||||
; ear %r3, %a0
|
||||
; sllg %r4, %r3, 32
|
||||
; ear %r4, %a1
|
||||
; agr %r2, %r4
|
||||
; sllg %r5, %r3, 32
|
||||
; ear %r5, %a1
|
||||
; agr %r2, %r5
|
||||
; lmg %r12, %r15, 256(%r15)
|
||||
; br %r14
|
||||
|
||||
|
||||
@@ -696,14 +696,15 @@ block0(v0: i64x2, v1: i64x2):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; vlgvg %r2, %v24, 0
|
||||
; vlgvg %r1, %v25, 0
|
||||
; mlgr %r0, %r2
|
||||
; lgr %r3, %r0
|
||||
; vlgvg %r2, %v24, 1
|
||||
; vlgvg %r1, %v25, 1
|
||||
; mlgr %r0, %r2
|
||||
; vlvgp %v24, %r3, %r0
|
||||
; vlgvg %r3, %v24, 0
|
||||
; vlgvg %r4, %v25, 0
|
||||
; mlgr %r2, %r4
|
||||
; lgr %r4, %r2
|
||||
; vlgvg %r3, %v24, 1
|
||||
; vlgvg %r5, %v25, 1
|
||||
; mlgr %r2, %r5
|
||||
; lgr %r3, %r2
|
||||
; vlvgp %v24, %r4, %r3
|
||||
; br %r14
|
||||
|
||||
function %umulhi_i32x4(i32x4, i32x4) -> i32x4 {
|
||||
@@ -745,13 +746,13 @@ block0(v0: i64x2, v1: i64x2):
|
||||
; block0:
|
||||
; vlgvg %r2, %v24, 0
|
||||
; vlgvg %r4, %v25, 0
|
||||
; mgrk %r0, %r2, %r4
|
||||
; lgr %r2, %r0
|
||||
; vlgvg %r5, %v24, 1
|
||||
; vlgvg %r3, %v25, 1
|
||||
; mgrk %r0, %r5, %r3
|
||||
; mgrk %r2, %r2, %r4
|
||||
; lgr %r5, %r2
|
||||
; vlvgp %v24, %r5, %r0
|
||||
; vlgvg %r4, %v24, 1
|
||||
; vlgvg %r2, %v25, 1
|
||||
; mgrk %r2, %r4, %r2
|
||||
; lgr %r3, %r2
|
||||
; vlvgp %v24, %r5, %r3
|
||||
; br %r14
|
||||
|
||||
function %smulhi_i32x4(i32x4, i32x4) -> i32x4 {
|
||||
|
||||
Reference in New Issue
Block a user