diff options
Diffstat (limited to 'test/codegen/shift.go')
-rw-r--r-- | test/codegen/shift.go | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/test/codegen/shift.go b/test/codegen/shift.go index 50d60426d0..5bd7acc063 100644 --- a/test/codegen/shift.go +++ b/test/codegen/shift.go @@ -453,6 +453,27 @@ func checkMergedShifts32(a [256]uint32, b [256]uint64, u uint32, v uint32) { b[2] = b[v>>25] } +func checkMergedShifts64(a [256]uint32, b [256]uint64, v uint64) { + // ppc64x: -"CLRLSLDI", "RLWNM\t[$]10, R[0-9]+, [$]22, [$]29, R[0-9]+" + a[0] = a[uint8(v>>24)] + // ppc64x: "SRD", "CLRLSLDI", -"RLWNM" + a[1] = a[uint8(v>>25)] + // ppc64x: -"CLRLSLDI", "RLWNM\t[$]9, R[0-9]+, [$]23, [$]29, R[0-9]+" + a[2] = a[v>>25&0x7F] + // ppc64x: -"CLRLSLDI", "RLWNM\t[$]3, R[0-9]+, [$]29, [$]29, R[0-9]+" + a[3] = a[(v>>31)&0x01] + // ppc64x: "SRD", "CLRLSLDI", -"RLWNM" + a[4] = a[(v>>30)&0x07] + // ppc64x: "SRD", "CLRLSLDI", -"RLWNM" + a[5] = a[(v>>32)&0x01] + // ppc64x: "SRD", "CLRLSLDI", -"RLWNM" + a[5] = a[(v>>34)&0x03] + // ppc64x: -"CLRLSLDI", "RLWNM\t[$]12, R[0-9]+, [$]21, [$]28, R[0-9]+" + b[0] = b[uint8(v>>23)] + // ppc64x: -"CLRLSLDI", "RLWNM\t[$]15, R[0-9]+, [$]21, [$]28, R[0-9]+" + b[1] = b[(v>>20)&0xFF] +} + // 128 bit shifts func check128bitShifts(x, y uint64, bits uint) (uint64, uint64) { |