add bitrev function to be used in LD-ST-bitrev FFT/DCT
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Wed, 23 Jun 2021 15:23:56 +0000 (16:23 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Wed, 23 Jun 2021 15:23:56 +0000 (16:23 +0100)
src/openpower/decoder/helpers.py

index 6b270a96df069b11739999cb638051c92681e26e..ed8679d688e46f31ec608252da458ed2bfc8c3db 100644 (file)
@@ -364,6 +364,19 @@ def FPDIV64(FRA, FRB, sign=1):
     return cvt
 
 
+
+def bitrev(val, VL):
+    """Returns the integer whose value is the reverse of the lowest
+    'width' bits of the integer 'val'
+    """
+       result = 0
+    width = VL.bit_length()
+       for _ in range(width):
+               result = (result << 1) | (val & 1)
+               val >>= 1
+       return result
+
+
 # For these tests I tried to find power instructions that would let me
 # isolate each of these helper operations. So for instance, when I was
 # testing the MASK() function, I chose rlwinm and rldicl because if I