diff options
Diffstat (limited to 'test/codegen')
| -rw-r--r-- | test/codegen/arithmetic.go | 4 | ||||
| -rw-r--r-- | test/codegen/multiply.go | 94 |
2 files changed, 49 insertions, 49 deletions
diff --git a/test/codegen/arithmetic.go b/test/codegen/arithmetic.go index 39a7986c7b..67adb50fa5 100644 --- a/test/codegen/arithmetic.go +++ b/test/codegen/arithmetic.go @@ -257,7 +257,7 @@ func Mul_96(n int) int { // 386:`SHLL\t[$]5`,`LEAL\t\(.*\)\(.*\*2\),`,-`IMULL` // arm64:`LSL\t[$]5`,`ADD\sR[0-9]+<<1,\sR[0-9]+`,-`MUL` // arm:`SLL\t[$]5`,`ADD\sR[0-9]+<<1,\sR[0-9]+`,-`MUL` - // loong64:"ADDVU","SLLV\t[$]5",-"MULV" + // loong64:"SLLV\t[$]5","ALSLV\t[$]1," // s390x:`SLD\t[$]5`,`SLD\t[$]6`,-`MULLD` return n * 96 } @@ -317,7 +317,7 @@ func MergeMuls5(a, n int) int { // Multiplications folded negation func FoldNegMul(a int) int { - // loong64:"MULV","MOVV\t[$]-11",-"SUBVU\tR[0-9], R0," + // loong64:"SUBVU","ALSLV\t[$]2","ALSLV\t[$]1" return (-a) * 11 } diff --git a/test/codegen/multiply.go b/test/codegen/multiply.go index bb22d1a2b1..dc2910dab7 100644 --- a/test/codegen/multiply.go +++ b/test/codegen/multiply.go @@ -24,7 +24,7 @@ func m2(x int64) int64 { func m3(x int64) int64 { // amd64: "LEAQ\t.*[*]2" // arm64: "ADD\tR[0-9]+<<1," - // loong64: "ADDVU","ADDVU" + // loong64: "ALSLV\t[$]1," return x * 3 } func m4(x int64) int64 { @@ -36,19 +36,19 @@ func m4(x int64) int64 { func m5(x int64) int64 { // amd64: "LEAQ\t.*[*]4" // arm64: "ADD\tR[0-9]+<<2," - // loong64: "SLLV\t[$]2,","ADDVU" + // loong64: "ALSLV\t[$]2," return x * 5 } func m6(x int64) int64 { // amd64: "LEAQ\t.*[*]1", "LEAQ\t.*[*]2" // arm64: "ADD\tR[0-9]+,", "ADD\tR[0-9]+<<1," - // loong64: "ADDVU","ADDVU","ADDVU" + // loong64: "ADDVU", "ADDVU", "ADDVU" return x * 6 } func m7(x int64) int64 { // amd64: "LEAQ\t.*[*]2" // arm64: "LSL\t[$]3,", "SUB\tR[0-9]+," - // loong64: "SLLV\t[$]3,","SUBVU" + // loong64: "ALSLV\t[$]1,", "ALSLV\t[$]1," return x * 7 } func m8(x int64) int64 { @@ -60,43 +60,43 @@ func m8(x int64) int64 { func m9(x int64) int64 { // amd64: "LEAQ\t.*[*]8" // arm64: "ADD\tR[0-9]+<<3," - // loong64: "SLLV\t[$]3,","ADDVU" + // loong64: "ALSLV\t[$]3," return x * 9 } func m10(x int64) int64 { // amd64: "LEAQ\t.*[*]1", "LEAQ\t.*[*]4" // arm64: "ADD\tR[0-9]+,", "ADD\tR[0-9]+<<2," - // loong64: "ADDVU","SLLV\t[$]3,","ADDVU" + // loong64: "ADDVU", "ALSLV\t[$]2," return x * 10 } func m11(x int64) int64 { // amd64: "LEAQ\t.*[*]4", "LEAQ\t.*[*]2" // arm64: "MOVD\t[$]11,", "MUL" - // loong64: "MOVV\t[$]11,", "MULV" + // loong64: "ALSLV\t[$]2,", "ALSLV\t[$]1," return x * 11 } func m12(x int64) int64 { // amd64: "LEAQ\t.*[*]2", "SHLQ\t[$]2," // arm64: "LSL\t[$]2,", "ADD\tR[0-9]+<<1," - // loong64: "ADDVU","ADDVU","SLLV\t[$]2," + // loong64: "SLLV", "ALSLV\t[$]1," return x * 12 } func m13(x int64) int64 { // amd64: "LEAQ\t.*[*]2", "LEAQ\t.*[*]4" // arm64: "MOVD\t[$]13,", "MUL" - // loong64: "MOVV\t[$]13,","MULV" + // loong64: "ALSLV\t[$]1,", "ALSLV\t[$]2," return x * 13 } func m14(x int64) int64 { // amd64: "IMUL3Q\t[$]14," // arm64: "LSL\t[$]4,", "SUB\tR[0-9]+<<1," - // loong64: "ADDVU","SLLV\t[$]4,","SUBVU" + // loong64: "ADDVU", "ALSLV\t[$]1", "ALSLV\t[$]2" return x * 14 } func m15(x int64) int64 { // amd64: "LEAQ\t.*[*]2", "LEAQ\t.*[*]4" // arm64: "LSL\t[$]4,", "SUB\tR[0-9]+," - // loong64: "SLLV\t[$]4,","SUBVU" + // loong64: "ALSLV\t[$]1,", "ALSLV\t[$]2," return x * 15 } func m16(x int64) int64 { @@ -108,79 +108,79 @@ func m16(x int64) int64 { func m17(x int64) int64 { // amd64: "LEAQ\t.*[*]1", "LEAQ\t.*[*]8" // arm64: "ADD\tR[0-9]+<<4," - // loong64: "SLLV\t[$]4,","ADDVU" + // loong64: "ALSLV\t[$]" return x * 17 } func m18(x int64) int64 { // amd64: "LEAQ\t.*[*]1", "LEAQ\t.*[*]8" // arm64: "ADD\tR[0-9]+,", "ADD\tR[0-9]+<<3," - // loong64: "ADDVU","SLLV\t[$]4,","ADDVU" + // loong64: "ADDVU", "ALSLV\t[$]3," return x * 18 } func m19(x int64) int64 { // amd64: "LEAQ\t.*[*]8", "LEAQ\t.*[*]2" // arm64: "MOVD\t[$]19,", "MUL" - // loong64: "MOVV\t[$]19,","MULV" + // loong64: "ALSLV\t[$]3,", "ALSLV\t[$]1," return x * 19 } func m20(x int64) int64 { // amd64: "LEAQ\t.*[*]4", "SHLQ\t[$]2," // arm64: "LSL\t[$]2,", "ADD\tR[0-9]+<<2," - // loong64: "SLLV\t[$]2,","SLLV\t[$]4,","ADDVU" + // loong64: "SLLV\t[$]2,", "ALSLV\t[$]2," return x * 20 } func m21(x int64) int64 { // amd64: "LEAQ\t.*[*]4", "LEAQ\t.*[*]4" // arm64: "MOVD\t[$]21,", "MUL" - // loong64: "MOVV\t[$]21,","MULV" + // loong64: "ALSLV\t[$]2,", "ALSLV\t[$]2," return x * 21 } func m22(x int64) int64 { // amd64: "IMUL3Q\t[$]22," // arm64: "MOVD\t[$]22,", "MUL" - // loong64: "MOVV\t[$]22,","MULV" + // loong64: "ADDVU", "ALSLV\t[$]2,", "ALSLV\t[$]2," return x * 22 } func m23(x int64) int64 { // amd64: "IMUL3Q\t[$]23," // arm64: "MOVD\t[$]23,", "MUL" - // loong64: "MOVV\t[$]23,","MULV" + // loong64: "ALSLV\t[$]1,", "SUBVU", "ALSLV\t[$]3," return x * 23 } func m24(x int64) int64 { // amd64: "LEAQ\t.*[*]2", "SHLQ\t[$]3," // arm64: "LSL\t[$]3,", "ADD\tR[0-9]+<<1," - // loong64: "ADDVU","ADDVU","SLLV\t[$]3," + // loong64: "SLLV\t[$]3", "ALSLV\t[$]1," return x * 24 } func m25(x int64) int64 { // amd64: "LEAQ\t.*[*]4", "LEAQ\t.*[*]4" // arm64: "MOVD\t[$]25,", "MUL" - // loong64: "MOVV\t[$]25,","MULV" + // loong64: "ALSLV\t[$]2,", "ALSLV\t[$]2," return x * 25 } func m26(x int64) int64 { // amd64: "IMUL3Q\t[$]26," // arm64: "MOVD\t[$]26,", "MUL" - // loong64: "MOVV\t[$]26,","MULV" + // loong64: "ADDVU", "ALSLV\t[$]1,", "ALSLV\t[$]3," return x * 26 } func m27(x int64) int64 { // amd64: "LEAQ\t.*[*]2", "LEAQ\t.*[*]8" // arm64: "MOVD\t[$]27,", "MUL" - // loong64: "MOVV\t[$]27,","MULV" + // loong64: "ALSLV\t[$]1,", "ALSLV\t[$]3," return x * 27 } func m28(x int64) int64 { // amd64: "IMUL3Q\t[$]28," // arm64: "LSL\t[$]5, "SUB\tR[0-9]+<<2," - // loong64: "SLLV\t[$]5,","SLLV\t[$]2,","SUBVU" + // loong64: "ALSLV\t[$]1,","SLLV\t[$]2,","ALSLV\t[$]3," return x * 28 } func m29(x int64) int64 { // amd64: "IMUL3Q\t[$]29," // arm64: "MOVD\t[$]29,", "MUL" - // loong64: "MOVV\t[$]29,","MULV" + // loong64: "ALSLV\t[$]1,","SLLV\t[$]5,","SUBVU" return x * 29 } func m30(x int64) int64 { @@ -204,49 +204,49 @@ func m32(x int64) int64 { func m33(x int64) int64 { // amd64: "SHLQ\t[$]2,", "LEAQ\t.*[*]8" // arm64: "ADD\tR[0-9]+<<5," - // loong64: "SLLV\t[$]5,","ADDVU" + // loong64: "ADDVU", "ALSLV\t[$]4," return x * 33 } func m34(x int64) int64 { // amd64: "SHLQ\t[$]5,", "LEAQ\t.*[*]2" // arm64: "ADD\tR[0-9]+,", "ADD\tR[0-9]+<<4," - // loong64: "ADDVU","SLLV\t[$]5,","ADDVU" + // loong64: "ADDVU", "ALSLV\t[$]4," return x * 34 } func m35(x int64) int64 { // amd64: "IMUL3Q\t[$]35," // arm64: "MOVD\t[$]35,", "MUL" - // loong64: "MOVV\t[$]35,","MULV" + // loong64: "ALSLV\t[$]4,", "ALSLV\t[$]1," return x * 35 } func m36(x int64) int64 { // amd64: "LEAQ\t.*[*]8", "SHLQ\t[$]2," // arm64: "LSL\t[$]2,", "ADD\tR[0-9]+<<3," - // loong64: "SLLV\t[$]2,","SLLV\t[$]5,","ADDVU" + // loong64: "SLLV\t[$]2,", "ALSLV\t[$]3," return x * 36 } func m37(x int64) int64 { // amd64: "LEAQ\t.*[*]8", "LEAQ\t.*[*]4" // arm64: "MOVD\t[$]37,", "MUL" - // loong64: "MOVV\t[$]37,","MULV" + // loong64: "ALSLV\t[$]3,", "ALSLV\t[$]2," return x * 37 } func m38(x int64) int64 { // amd64: "IMUL3Q\t[$]38," // arm64: "MOVD\t[$]38,", "MUL" - // loong64: "MOVV\t[$]38,","MULV" + // loong64: "ALSLV\t[$]3,", "ALSLV\t[$]2," return x * 38 } func m39(x int64) int64 { // amd64: "IMUL3Q\t[$]39," // arm64: "MOVD\t[$]39,", "MUL" - // loong64: "MOVV\t[$]39,", "MULV" + // loong64: "ALSLV\t[$]2,", "SUBVU", "ALSLV\t[$]3," return x * 39 } func m40(x int64) int64 { // amd64: "LEAQ\t.*[*]4", "SHLQ\t[$]3," // arm64: "LSL\t[$]3,", "ADD\tR[0-9]+<<2," - // loong64: "SLLV\t[$]3,","SLLV\t[$]5,","ADDVU" + // loong64: "SLLV\t[$]3,", "ALSLV\t[$]2," return x * 40 } @@ -265,7 +265,7 @@ func mn2(x int64) int64 { func mn3(x int64) int64 { // amd64: "NEGQ", "LEAQ\t.*[*]2" // arm64: "SUB\tR[0-9]+<<2," - // loong64: "SLLV\t[$]2,","SUBVU" + // loong64: "SUBVU", "ALSLV\t[$]1," return x * -3 } func mn4(x int64) int64 { @@ -277,19 +277,19 @@ func mn4(x int64) int64 { func mn5(x int64) int64 { // amd64: "NEGQ", "LEAQ\t.*[*]4" // arm64: "NEG\tR[0-9]+,", "ADD\tR[0-9]+<<2," - // loong64: "SUBVU\tR[0-9], R0,","SLLV\t[$]2,","SUBVU" + // loong64: "SUBVU", "ALSLV\t[$]2," return x * -5 } func mn6(x int64) int64 { // amd64: "IMUL3Q\t[$]-6," // arm64: "ADD\tR[0-9]+,", "SUB\tR[0-9]+<<2," - // loong64: "ADDVU","SLLV\t[$]3,","SUBVU" + // loong64: "ADDVU", "SUBVU", "ALSLV\t[$]3," return x * -6 } func mn7(x int64) int64 { // amd64: "NEGQ", "LEAQ\t.*[*]8" // arm64: "SUB\tR[0-9]+<<3," - // loong64: "SLLV\t[$]3","SUBVU" + // loong64: "SUBVU", "ALSLV\t[$]3," return x * -7 } func mn8(x int64) int64 { @@ -301,43 +301,43 @@ func mn8(x int64) int64 { func mn9(x int64) int64 { // amd64: "NEGQ", "LEAQ\t.*[*]8" // arm64: "NEG\tR[0-9]+,", "ADD\tR[0-9]+<<3," - // loong64: "SUBVU\tR[0-9], R0,","SLLV\t[$]3","SUBVU" + // loong64: "SUBVU", "ALSLV\t[$]3," return x * -9 } func mn10(x int64) int64 { // amd64: "IMUL3Q\t[$]-10," // arm64: "MOVD\t[$]-10,", "MUL" - // loong64: "MOVV\t[$]-10","MULV" + // loong64: "ADDVU", "ALSLV\t[$]3", "SUBVU" return x * -10 } func mn11(x int64) int64 { // amd64: "IMUL3Q\t[$]-11," // arm64: "MOVD\t[$]-11,", "MUL" - // loong64: "MOVV\t[$]-11","MULV" + // loong64: "ALSLV\t[$]2,", "SUBVU", "ALSLV\t[$]4," return x * -11 } func mn12(x int64) int64 { // amd64: "IMUL3Q\t[$]-12," // arm64: "LSL\t[$]2,", "SUB\tR[0-9]+<<2," - // loong64: "SLLV\t[$]2,","SLLV\t[$]4,","SUBVU" + // loong64: "SUBVU", "SLLV\t[$]2,", "ALSLV\t[$]4," return x * -12 } func mn13(x int64) int64 { // amd64: "IMUL3Q\t[$]-13," // arm64: "MOVD\t[$]-13,", "MUL" - // loong64: "MOVV\t[$]-13","MULV" + // loong64: "ALSLV\t[$]4,", "SLLV\t[$]2, ", "SUBVU" return x * -13 } func mn14(x int64) int64 { // amd64: "IMUL3Q\t[$]-14," // arm64: "ADD\tR[0-9]+,", "SUB\tR[0-9]+<<3," - // loong64: "ADDVU","SLLV\t[$]4,","SUBVU" + // loong64: "ADDVU", "SUBVU", "ALSLV\t[$]4," return x * -14 } func mn15(x int64) int64 { // amd64: "SHLQ\t[$]4,", "SUBQ" // arm64: "SUB\tR[0-9]+<<4," - // loong64: "SLLV\t[$]4,","SUBVU" + // loong64: "SUBVU", "ALSLV\t[$]4," return x * -15 } func mn16(x int64) int64 { @@ -349,24 +349,24 @@ func mn16(x int64) int64 { func mn17(x int64) int64 { // amd64: "IMUL3Q\t[$]-17," // arm64: "NEG\tR[0-9]+,", "ADD\tR[0-9]+<<4," - // loong64: "SUBVU\tR[0-9], R0,","SLLV\t[$]4,","SUBVU" + // loong64: "SUBVU", "ALSLV\t[$]4," return x * -17 } func mn18(x int64) int64 { // amd64: "IMUL3Q\t[$]-18," // arm64: "MOVD\t[$]-18,", "MUL" - // loong64: "MOVV\t[$]-18","MULV" + // loong64: "ADDVU", "ALSLV\t[$]4,", "SUBVU" return x * -18 } func mn19(x int64) int64 { // amd64: "IMUL3Q\t[$]-19," // arm64: "MOVD\t[$]-19,", "MUL" - // loong64: "MOVV\t[$]-19","MULV" + // loong64: "ALSLV\t[$]1,", "ALSLV\t[$]4,", "SUBVU" return x * -19 } func mn20(x int64) int64 { // amd64: "IMUL3Q\t[$]-20," // arm64: "MOVD\t[$]-20,", "MUL" - // loong64: "MOVV\t[$]-20","MULV" + // loong64: "SLLV\t[$]2,", "ALSLV\t[$]4,", "SUBVU" return x * -20 } |
