Commit 452545c
committed
Detect the special case for ISHFT for int8
When we convert int to signed short int, we first do a
sign extension, and then left shift 24 bits, followed by
arithmetic right shift 24 bits (filled with sign bits),
then followed by the real ishft, then truncate to
int8. Therefore the logical left shift never happened
to int8.
The fix is to recognize the special case for ISHFT on a
short int, and do a logical shift instead of an arithmetic
shift.1 parent efb385e commit 452545c
2 files changed
+42
-2
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
83 | 83 | | |
84 | 84 | | |
85 | 85 | | |
| 86 | + | |
| 87 | + | |
86 | 88 | | |
87 | 89 | | |
88 | 90 | | |
| |||
124 | 126 | | |
125 | 127 | | |
126 | 128 | | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
127 | 155 | | |
128 | 156 | | |
129 | 157 | | |
| |||
364 | 392 | | |
365 | 393 | | |
366 | 394 | | |
367 | | - | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
368 | 403 | | |
369 | 404 | | |
370 | 405 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
68 | 68 | | |
69 | 69 | | |
70 | 70 | | |
| 71 | + | |
71 | 72 | | |
72 | 73 | | |
73 | 74 | | |
| |||
5350 | 5351 | | |
5351 | 5352 | | |
5352 | 5353 | | |
5353 | | - | |
| 5354 | + | |
| 5355 | + | |
| 5356 | + | |
| 5357 | + | |
| 5358 | + | |
5354 | 5359 | | |
5355 | 5360 | | |
5356 | 5361 | | |
| |||
0 commit comments