@@ -252,33 +252,28 @@ def f(n: i64) -> vec[i64]:
252252def f(n):
253253 n :: i64
254254 r0 :: vec[i64]
255- r1 :: bit
256- r2 :: object
257- r3 :: ptr
258- r4 :: i64
259- r5, r6 :: ptr
260- r7 :: bit
261- r8 :: ptr
255+ r1 :: object
256+ r2 :: ptr
257+ r3 :: i64
258+ r4, r5 :: ptr
259+ r6 :: bit
260+ r7 :: ptr
262261L0:
263262 r0 = VecI64Api.alloc(n, n)
264- r1 = n > 0 :: signed
265- if r1 goto L1 else goto L5 :: bool
263+ r1 = r0.buf
264+ r2 = get_element_ptr r1 items :: VecI64BufObject
265+ r3 = n * 8
266+ r4 = r2 + r3
267+ r5 = r2
266268L1:
267- r2 = r0.buf
268- r3 = get_element_ptr r2 items :: VecI64BufObject
269- r4 = n * 8
270- r5 = r3 + r4
271- r6 = r3
269+ r6 = r5 < r4 :: unsigned
270+ if r6 goto L2 else goto L3 :: bool
272271L2:
273- r7 = r6 < r5 :: unsigned
274- if r7 goto L3 else goto L4 :: bool
272+ set_mem r5, 3 :: i64*
273+ r7 = r5 + 8
274+ r5 = r7
275+ goto L1
275276L3:
276- set_mem r6, 3 :: i64*
277- r8 = r6 + 8
278- r6 = r8
279- goto L2
280- L4:
281- L5:
282277 keep_alive r0
283278 return r0
284279
@@ -292,33 +287,28 @@ def f(n: i64, x: i64) -> vec[i64]:
292287def f(n, x):
293288 n, x :: i64
294289 r0 :: vec[i64]
295- r1 :: bit
296- r2 :: object
297- r3 :: ptr
298- r4 :: native_int
299- r5, r6 :: ptr
300- r7 :: bit
301- r8 :: ptr
290+ r1 :: object
291+ r2 :: ptr
292+ r3 :: native_int
293+ r4, r5 :: ptr
294+ r6 :: bit
295+ r7 :: ptr
302296L0:
303297 r0 = VecI64Api.alloc(3, 3)
304- r1 = 3 > 0 :: signed
305- if r1 goto L1 else goto L5 :: bool
298+ r1 = r0.buf
299+ r2 = get_element_ptr r1 items :: VecI64BufObject
300+ r3 = 3 * 8
301+ r4 = r2 + r3
302+ r5 = r2
306303L1:
307- r2 = r0.buf
308- r3 = get_element_ptr r2 items :: VecI64BufObject
309- r4 = 3 * 8
310- r5 = r3 + r4
311- r6 = r3
304+ r6 = r5 < r4 :: unsigned
305+ if r6 goto L2 else goto L3 :: bool
312306L2:
313- r7 = r6 < r5 :: unsigned
314- if r7 goto L3 else goto L4 :: bool
307+ set_mem r5, x :: i64*
308+ r7 = r5 + 8
309+ r5 = r7
310+ goto L1
315311L3:
316- set_mem r6, x :: i64*
317- r8 = r6 + 8
318- r6 = r8
319- goto L2
320- L4:
321- L5:
322312 keep_alive r0
323313 return r0
324314
@@ -554,46 +544,41 @@ def contains(v, n):
554544 v :: vec[i64]
555545 n :: i64
556546 r0 :: native_int
557- r1 :: bit
558- r2 :: object
559- r3 :: ptr
560- r4 :: native_int
561- r5, r6 :: ptr
562- r7 :: bit
563- r8 :: i64
564- r9 :: bit
565- r10 :: ptr
566- r11 :: bool
547+ r1 :: object
548+ r2 :: ptr
549+ r3 :: native_int
550+ r4, r5 :: ptr
551+ r6 :: bit
552+ r7 :: i64
553+ r8 :: bit
554+ r9 :: ptr
555+ r10 :: bool
567556L0:
568557 r0 = v.len
569- r1 = r0 > 0 :: signed
570- if r1 goto L1 else goto L6 :: bool
558+ r1 = v.buf
559+ r2 = get_element_ptr r1 items :: VecI64BufObject
560+ r3 = r0 * 8
561+ r4 = r2 + r3
562+ r5 = r2
571563L1:
572- r2 = v.buf
573- r3 = get_element_ptr r2 items :: VecI64BufObject
574- r4 = r0 * 8
575- r5 = r3 + r4
576- r6 = r3
564+ r6 = r5 < r4 :: unsigned
565+ if r6 goto L2 else goto L4 :: bool
577566L2:
578- r7 = r6 < r5 :: unsigned
579- if r7 goto L3 else goto L5 :: bool
567+ r7 = load_mem r5 :: i64*
568+ r8 = r7 == n
569+ if r8 goto L5 else goto L3 :: bool
580570L3:
581- r8 = load_mem r6 :: i64*
582- r9 = r8 == n
583- if r9 goto L7 else goto L4 :: bool
571+ r9 = r5 + 8
572+ r5 = r9
573+ goto L1
584574L4:
585- r10 = r6 + 8
586- r6 = r10
587- goto L2
588- L5:
589575 keep_alive v
576+ r10 = 0
577+ goto L6
578+ L5:
579+ r10 = 1
590580L6:
591- r11 = 0
592- goto L8
593- L7:
594- r11 = 1
595- L8:
596- return r11
581+ return r10
597582
598583[case testVecI64GetItemWithInt_64bit]
599584from librt.vecs import vec
0 commit comments