@@ -252,28 +252,33 @@ def f(n: i64) -> vec[i64]:
252252def f(n):
253253 n :: i64
254254 r0 :: vec[i64]
255- r1 :: object
256- r2 :: ptr
257- r3 :: i64
258- r4, r5 :: ptr
259- r6 :: bit
260- r7 :: ptr
255+ r1 :: bit
256+ r2 :: object
257+ r3 :: ptr
258+ r4 :: i64
259+ r5, r6 :: ptr
260+ r7 :: bit
261+ r8 :: ptr
261262L0:
262263 r0 = VecI64Api.alloc(n, n)
263- r1 = r0.buf
264- r2 = get_element_ptr r1 items :: VecI64BufObject
265- r3 = n * 8
266- r4 = r2 + r3
267- r5 = r2
264+ r1 = n > 0 :: signed
265+ if r1 goto L1 else goto L5 :: bool
268266L1:
269- r6 = r5 < r4 :: unsigned
270- if r6 goto L2 else goto L3 :: bool
267+ r2 = r0.buf
268+ r3 = get_element_ptr r2 items :: VecI64BufObject
269+ r4 = n * 8
270+ r5 = r3 + r4
271+ r6 = r3
271272L2:
272- set_mem r5, 3 :: i64*
273- r7 = r5 + 8
274- r5 = r7
275- goto L1
273+ r7 = r6 < r5 :: unsigned
274+ if r7 goto L3 else goto L4 :: bool
276275L3:
276+ set_mem r6, 3 :: i64*
277+ r8 = r6 + 8
278+ r6 = r8
279+ goto L2
280+ L4:
281+ L5:
277282 keep_alive r0
278283 return r0
279284
@@ -287,28 +292,33 @@ def f(n: i64, x: i64) -> vec[i64]:
287292def f(n, x):
288293 n, x :: i64
289294 r0 :: vec[i64]
290- r1 :: object
291- r2 :: ptr
292- r3 :: native_int
293- r4, r5 :: ptr
294- r6 :: bit
295- r7 :: ptr
295+ r1 :: bit
296+ r2 :: object
297+ r3 :: ptr
298+ r4 :: native_int
299+ r5, r6 :: ptr
300+ r7 :: bit
301+ r8 :: ptr
296302L0:
297303 r0 = VecI64Api.alloc(3, 3)
298- r1 = r0.buf
299- r2 = get_element_ptr r1 items :: VecI64BufObject
300- r3 = 3 * 8
301- r4 = r2 + r3
302- r5 = r2
304+ r1 = 3 > 0 :: signed
305+ if r1 goto L1 else goto L5 :: bool
303306L1:
304- r6 = r5 < r4 :: unsigned
305- if r6 goto L2 else goto L3 :: bool
307+ r2 = r0.buf
308+ r3 = get_element_ptr r2 items :: VecI64BufObject
309+ r4 = 3 * 8
310+ r5 = r3 + r4
311+ r6 = r3
306312L2:
307- set_mem r5, x :: i64*
308- r7 = r5 + 8
309- r5 = r7
310- goto L1
313+ r7 = r6 < r5 :: unsigned
314+ if r7 goto L3 else goto L4 :: bool
311315L3:
316+ set_mem r6, x :: i64*
317+ r8 = r6 + 8
318+ r6 = r8
319+ goto L2
320+ L4:
321+ L5:
312322 keep_alive r0
313323 return r0
314324
@@ -544,41 +554,46 @@ def contains(v, n):
544554 v :: vec[i64]
545555 n :: i64
546556 r0 :: native_int
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
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
556567L0:
557568 r0 = v.len
558- r1 = v.buf
559- r2 = get_element_ptr r1 items :: VecI64BufObject
560- r3 = r0 * 8
561- r4 = r2 + r3
562- r5 = r2
569+ r1 = r0 > 0 :: signed
570+ if r1 goto L1 else goto L6 :: bool
563571L1:
564- r6 = r5 < r4 :: unsigned
565- if r6 goto L2 else goto L4 :: bool
572+ r2 = v.buf
573+ r3 = get_element_ptr r2 items :: VecI64BufObject
574+ r4 = r0 * 8
575+ r5 = r3 + r4
576+ r6 = r3
566577L2:
567- r7 = load_mem r5 :: i64*
568- r8 = r7 == n
569- if r8 goto L5 else goto L3 :: bool
578+ r7 = r6 < r5 :: unsigned
579+ if r7 goto L3 else goto L5 :: bool
570580L3:
571- r9 = r5 + 8
572- r5 = r9
573- goto L1
581+ r8 = load_mem r6 :: i64*
582+ r9 = r8 == n
583+ if r9 goto L7 else goto L4 :: bool
574584L4:
575- keep_alive v
576- r10 = 0
577- goto L6
585+ r10 = r6 + 8
586+ r6 = r10
587+ goto L2
578588L5:
579- r10 = 1
589+ keep_alive v
580590L6:
581- return r10
591+ r11 = 0
592+ goto L8
593+ L7:
594+ r11 = 1
595+ L8:
596+ return r11
582597
583598[case testVecI64GetItemWithInt_64bit]
584599from librt.vecs import vec
0 commit comments