Skip to content

Commit c13d2ca

Browse files
committed
[HashRecognize] Pre-commit test for stray-unvisited
1 parent 75f81de commit c13d2ca

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

llvm/test/Analysis/HashRecognize/cyclic-redundancy-check.ll

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1189,3 +1189,48 @@ loop: ; preds = %loop, %entry
11891189
exit: ; preds = %loop
11901190
ret i16 %crc.next
11911191
}
1192+
1193+
define i16 @not.crc.stray.unvisited.inst(i16 %crc.init) {
1194+
; CHECK-LABEL: 'not.crc.stray.unvisited.inst'
1195+
; CHECK-NEXT: Found big-endian CRC-16 loop with trip count 8
1196+
; CHECK-NEXT: Initial CRC: i16 %crc.init
1197+
; CHECK-NEXT: Generating polynomial: 4129
1198+
; CHECK-NEXT: Computed CRC: %crc.next = select i1 %check.sb, i16 %crc.xor, i16 %crc.shl
1199+
; CHECK-NEXT: Computed CRC lookup table:
1200+
; CHECK-NEXT: 0 4129 8258 12387 16516 20645 24774 28903 33032 37161 41290 45419 49548 53677 57806 61935
1201+
; CHECK-NEXT: 4657 528 12915 8786 21173 17044 29431 25302 37689 33560 45947 41818 54205 50076 62463 58334
1202+
; CHECK-NEXT: 9314 13379 1056 5121 25830 29895 17572 21637 42346 46411 34088 38153 58862 62927 50604 54669
1203+
; CHECK-NEXT: 13907 9842 5649 1584 30423 26358 22165 18100 46939 42874 38681 34616 63455 59390 55197 51132
1204+
; CHECK-NEXT: 18628 22757 26758 30887 2112 6241 10242 14371 51660 55789 59790 63919 35144 39273 43274 47403
1205+
; CHECK-NEXT: 23285 19156 31415 27286 6769 2640 14899 10770 56317 52188 64447 60318 39801 35672 47931 43802
1206+
; CHECK-NEXT: 27814 31879 19684 23749 11298 15363 3168 7233 60846 64911 52716 56781 44330 48395 36200 40265
1207+
; CHECK-NEXT: 32407 28342 24277 20212 15891 11826 7761 3696 65439 61374 57309 53244 48923 44858 40793 36728
1208+
; CHECK-NEXT: 37256 33193 45514 41451 53516 49453 61774 57711 4224 161 12482 8419 20484 16421 28742 24679
1209+
; CHECK-NEXT: 33721 37784 41979 46042 49981 54044 58239 62302 689 4752 8947 13010 16949 21012 25207 29270
1210+
; CHECK-NEXT: 46570 42443 38312 34185 62830 58703 54572 50445 13538 9411 5280 1153 29798 25671 21540 17413
1211+
; CHECK-NEXT: 42971 47098 34713 38840 59231 63358 50973 55100 9939 14066 1681 5808 26199 30326 17941 22068
1212+
; CHECK-NEXT: 55628 51565 63758 59695 39368 35305 47498 43435 22596 18533 30726 26663 6336 2273 14466 10403
1213+
; CHECK-NEXT: 52093 56156 60223 64286 35833 39896 43963 48026 19061 23124 27191 31254 2801 6864 10931 14994
1214+
; CHECK-NEXT: 64814 60687 56684 52557 48554 44427 40424 36297 31782 27655 23652 19525 15522 11395 7392 3265
1215+
; CHECK-NEXT: 61215 65342 53085 57212 44955 49082 36825 40952 28183 32310 20053 24180 11923 16050 3793 7920
1216+
;
1217+
entry:
1218+
br label %loop
1219+
1220+
loop: ; preds = %loop, %entry
1221+
%iv = phi i32 [ 0, %entry ], [ %iv.next, %loop ]
1222+
%crc = phi i16 [ %crc.init, %entry ], [ %crc.next, %loop ]
1223+
%crc.shl = shl i16 %crc, 1
1224+
%crc.xor = xor i16 %crc.shl, 4129
1225+
%check.sb = icmp slt i16 %crc, 0
1226+
%crc.next = select i1 %check.sb, i16 %crc.xor, i16 %crc.shl
1227+
call void @print(i16 %crc.next)
1228+
%iv.next = add nuw nsw i32 %iv, 1
1229+
%exit.cond = icmp samesign ult i32 %iv, 7
1230+
br i1 %exit.cond, label %loop, label %exit
1231+
1232+
exit: ; preds = %loop
1233+
ret i16 %crc.next
1234+
}
1235+
1236+
declare void @print(i16)

0 commit comments

Comments
 (0)