diff options
Diffstat (limited to 'test/codegen/shift.go')
| -rw-r--r-- | test/codegen/shift.go | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/test/codegen/shift.go b/test/codegen/shift.go index 2d8cf86857..52efefb0ed 100644 --- a/test/codegen/shift.go +++ b/test/codegen/shift.go @@ -58,6 +58,16 @@ func rshConst64x64Overflow8(v int8) int64 { return int64(v) >> 8 } +func lshConst32x1(v int32) int32 { + // amd64:"ADDL", -"SHLL" + return v << 1 +} + +func lshConst64x1(v int64) int64 { + // amd64:"ADDQ", -"SHLQ" + return v << 1 +} + func lshConst32x64(v int32) int32 { // ppc64x:"SLW" // riscv64:"SLLI",-"AND",-"SLTIU", -"MOVW" @@ -94,6 +104,26 @@ func rshConst64x32(v int64) int64 { return v >> uint32(33) } +func lshConst32x1Add(x int32) int32 { + // amd64:"SHLL\t[$]2" + return (x + x) << 1 +} + +func lshConst64x1Add(x int64) int64 { + // amd64:"SHLQ\t[$]2" + return (x + x) << 1 +} + +func lshConst32x2Add(x int32) int32 { + // amd64:"SHLL\t[$]3" + return (x + x) << 2 +} + +func lshConst64x2Add(x int64) int64 { + // amd64:"SHLQ\t[$]3" + return (x + x) << 2 +} + // ------------------ // // masked shifts // // ------------------ // |
