;;; Make sure that snapshots in large traces don't copy data

(module large_trace
  (register r1  1'b0)
  (register r2  2'b0)
  (register r3  3'b0)
  (register r4  4'b0)
  (register r5  5'b0)
  (register r6  6'b0)
  (register r7  7'b0)
  (register r8  8'b0)
  (register r9  9'b0)
  (register r10 10'b0)
  (register r11 11'b0)
  (register r12 12'b0)
  (register r13 13'b0)
  (register r14 14'b0)
  (register r15 15'b0)
  (register r16 16'b0)
  (register r17 17'b0)
  (register r18 18'b0)
  (register r19 19'b0)
  (register r20 20'b0)
  (register r21 21'b0)
  (register r22 22'b0)
  (register r23 23'b0)
  (register r24 24'b0)
  (register r25 25'b0)
  (register r26 26'b0)
  (register r27 27'b0)
  (register r28 28'b0)
  (register r29 29'b0)
  (register r30 30'b0)
  (register r31 31'b0)
  (register r32 32'b0)
  (register r33 33'b0)
  (register r34 34'b0)
  (register r35 35'b0)
  (register r36 36'b0)
  (register r37 37'b0)
  (register r38 38'b0)
  (register r39 39'b0)
  (register r40 40'b0)
  (register r41 41'b0)
  (register r42 42'b0)
  (register r43 43'b0)
  (register r44 44'b0)
  (register r45 45'b0)
  (register r46 46'b0)
  (register r47 47'b0)
  (register r48 48'b0)
  (register r49 49'b0)
  (register r50 50'b0)
  (register r51 51'b0)
  (register r52 52'b0)
  (register r53 53'b0)
  (register r54 54'b0)
  (register r55 55'b0)
  (register r56 56'b0)
  (register r57 57'b0)
  (register r58 58'b0)
  (register r59 59'b0)
  (register r60 60'b0)
  (register r61 61'b0)
  (register r62 62'b0)
  (register r63 63'b0)
  (register r64 64'b0)

  (rule r
    (write.0 r1 (+ (read.0 r1) 1'b1))
    (write.0 r2 (+ (read.0 r2) 2'b1))
    (write.0 r3 (+ (read.0 r3) 3'b1))
    (write.0 r4 (+ (read.0 r4) 4'b1))
    (write.0 r5 (+ (read.0 r5) 5'b1))
    (write.0 r6 (+ (read.0 r6) 6'b1))
    (write.0 r7 (+ (read.0 r7) 7'b1))
    (write.0 r8 (+ (read.0 r8) 8'b1))
    (write.0 r9 (+ (read.0 r9) 9'b1))
    (write.0 r10 (+ (read.0 r10) 10'b1))
    (write.0 r11 (+ (read.0 r11) 11'b1))
    (write.0 r12 (+ (read.0 r12) 12'b1))
    (write.0 r13 (+ (read.0 r13) 13'b1))
    (write.0 r14 (+ (read.0 r14) 14'b1))
    (write.0 r15 (+ (read.0 r15) 15'b1))
    (write.0 r16 (+ (read.0 r16) 16'b1))
    (write.0 r17 (+ (read.0 r17) 17'b1))
    (write.0 r18 (+ (read.0 r18) 18'b1))
    (write.0 r19 (+ (read.0 r19) 19'b1))
    (write.0 r20 (+ (read.0 r20) 20'b1))
    (write.0 r21 (+ (read.0 r21) 21'b1))
    (write.0 r22 (+ (read.0 r22) 22'b1))
    (write.0 r23 (+ (read.0 r23) 23'b1))
    (write.0 r24 (+ (read.0 r24) 24'b1))
    (write.0 r25 (+ (read.0 r25) 25'b1))
    (write.0 r26 (+ (read.0 r26) 26'b1))
    (write.0 r27 (+ (read.0 r27) 27'b1))
    (write.0 r28 (+ (read.0 r28) 28'b1))
    (write.0 r29 (+ (read.0 r29) 29'b1))
    (write.0 r30 (+ (read.0 r30) 30'b1))
    (write.0 r31 (+ (read.0 r31) 31'b1))
    (write.0 r32 (+ (read.0 r32) 32'b1))
    (write.0 r33 (+ (read.0 r33) 33'b1))
    (write.0 r34 (+ (read.0 r34) 34'b1))
    (write.0 r35 (+ (read.0 r35) 35'b1))
    (write.0 r36 (+ (read.0 r36) 36'b1))
    (write.0 r37 (+ (read.0 r37) 37'b1))
    (write.0 r38 (+ (read.0 r38) 38'b1))
    (write.0 r39 (+ (read.0 r39) 39'b1))
    (write.0 r40 (+ (read.0 r40) 40'b1))
    (write.0 r41 (+ (read.0 r41) 41'b1))
    (write.0 r42 (+ (read.0 r42) 42'b1))
    (write.0 r43 (+ (read.0 r43) 43'b1))
    (write.0 r44 (+ (read.0 r44) 44'b1))
    (write.0 r45 (+ (read.0 r45) 45'b1))
    (write.0 r46 (+ (read.0 r46) 46'b1))
    (write.0 r47 (+ (read.0 r47) 47'b1))
    (write.0 r48 (+ (read.0 r48) 48'b1))
    (write.0 r49 (+ (read.0 r49) 49'b1))
    (write.0 r50 (+ (read.0 r50) 50'b1))
    (write.0 r51 (+ (read.0 r51) 51'b1))
    (write.0 r52 (+ (read.0 r52) 52'b1))
    (write.0 r53 (+ (read.0 r53) 53'b1))
    (write.0 r54 (+ (read.0 r54) 54'b1))
    (write.0 r55 (+ (read.0 r55) 55'b1))
    (write.0 r56 (+ (read.0 r56) 56'b1))
    (write.0 r57 (+ (read.0 r57) 57'b1))
    (write.0 r58 (+ (read.0 r58) 58'b1))
    (write.0 r59 (+ (read.0 r59) 59'b1))
    (write.0 r60 (+ (read.0 r60) 60'b1))
    (write.0 r61 (+ (read.0 r61) 61'b1))
    (write.0 r62 (+ (read.0 r62) 62'b1))
    (write.0 r63 (+ (read.0 r63) 63'b1))
    (write.0 r64 (+ (read.0 r64) 64'b1)))

  (scheduler s (sequence r)))
