Extend instcombine's shufflevector simplification to handle more cases where the...
[oota-llvm.git] / test / Scripts / common_dump.py
1 def dataToHex(d):
2     """ Convert the raw data in 'd' to an hex string with a space every 4 bytes.
3     """
4     bytes = []
5     for i,c in enumerate(d):
6         byte = ord(c)
7         hex_byte = hex(byte)[2:]
8         if byte <= 0xf:
9             hex_byte = '0' + hex_byte
10         if i % 4 == 3:
11             hex_byte += ' '
12         bytes.append(hex_byte)
13     return ''.join(bytes).strip()
14
15 def dataToHexUnified(d):
16     """ Convert the raw data in 'd' to an hex string with a space every 4 bytes.
17     Each 4byte number is prefixed with 0x for easy sed/rx
18     Fixme: convert all MC tests to use this routine instead of the above
19     """
20     bytes = []
21     for i,c in enumerate(d):
22         byte = ord(c)
23         hex_byte = hex(byte)[2:]
24         if byte <= 0xf:
25             hex_byte = '0' + hex_byte
26         if i % 4 == 0:
27             hex_byte = '0x' + hex_byte
28         if i % 4 == 3:
29             hex_byte += ' '
30         bytes.append(hex_byte)
31     return ''.join(bytes).strip()
32
33
34 def HexDump(valPair):
35     """
36     1. do not print 'L'
37     2. Handle negatives and large numbers by mod (2^numBits)
38     3. print fixed length, prepend with zeros.
39        Length is exactly 2+(numBits/4)
40     4. Do print 0x Why?
41        so that they can be easily distinguished using sed/rx
42     """
43     val, numBits = valPair
44     assert 0 <= val < (1 << numBits)
45
46     val = val & (( 1 << numBits) - 1)
47     newFmt = "0x%0" + "%d" % (numBits / 4) + "x"
48     return newFmt % val