@@ -393,7 +393,9 @@ TEST_F(AvmArithmeticTestsFF, addition)
393
393
{
394
394
std::vector<FF> const calldata = { 37 , 4 , 11 };
395
395
gen_trace_builder (calldata);
396
- trace_builder.op_calldata_copy (0 , 0 , 3 , 0 );
396
+ trace_builder.op_set (0 , 0 , 0 , AvmMemoryTag::U32);
397
+ trace_builder.op_set (0 , 3 , 1 , AvmMemoryTag::U32);
398
+ trace_builder.op_calldata_copy (0 , 0 , 1 , 0 );
397
399
398
400
// Memory layout: [37,4,11,0,0,0,....]
399
401
trace_builder.op_add (0 , 0 , 1 , 4 , AvmMemoryTag::FF); // [37,4,11,0,41,0,....]
@@ -415,7 +417,9 @@ TEST_F(AvmArithmeticTestsFF, subtraction)
415
417
{
416
418
std::vector<FF> const calldata = { 8 , 4 , 17 };
417
419
gen_trace_builder (calldata);
418
- trace_builder.op_calldata_copy (0 , 0 , 3 , 0 );
420
+ trace_builder.op_set (0 , 0 , 0 , AvmMemoryTag::U32);
421
+ trace_builder.op_set (0 , 3 , 1 , AvmMemoryTag::U32);
422
+ trace_builder.op_calldata_copy (0 , 0 , 1 , 0 );
419
423
420
424
// Memory layout: [8,4,17,0,0,0,....]
421
425
trace_builder.op_sub (0 , 2 , 0 , 1 , AvmMemoryTag::FF); // [8,9,17,0,0,0....]
@@ -436,7 +440,9 @@ TEST_F(AvmArithmeticTestsFF, multiplication)
436
440
{
437
441
std::vector<FF> const calldata = { 5 , 0 , 20 };
438
442
gen_trace_builder (calldata);
439
- trace_builder.op_calldata_copy (0 , 0 , 3 , 0 );
443
+ trace_builder.op_set (0 , 0 , 0 , AvmMemoryTag::U32);
444
+ trace_builder.op_set (0 , 3 , 1 , AvmMemoryTag::U32);
445
+ trace_builder.op_calldata_copy (0 , 0 , 1 , 0 );
440
446
441
447
// Memory layout: [5,0,20,0,0,0,....]
442
448
trace_builder.op_mul (0 , 2 , 0 , 1 , AvmMemoryTag::FF); // [5,100,20,0,0,0....]
@@ -456,8 +462,10 @@ TEST_F(AvmArithmeticTestsFF, multiplication)
456
462
// Test on multiplication by zero over finite field type.
457
463
TEST_F (AvmArithmeticTestsFF, multiplicationByZero)
458
464
{
459
- std::vector<FF> const calldata = { 127 };
465
+ std::vector<FF> const calldata = { 127 , 0 , 0 };
460
466
gen_trace_builder (calldata);
467
+ trace_builder.op_set (0 , 0 , 0 , AvmMemoryTag::U32);
468
+ trace_builder.op_set (0 , 3 , 1 , AvmMemoryTag::U32);
461
469
trace_builder.op_calldata_copy (0 , 0 , 1 , 0 );
462
470
463
471
// Memory layout: [127,0,0,0,0,0,....]
@@ -480,7 +488,9 @@ TEST_F(AvmArithmeticTestsFF, fDivision)
480
488
{
481
489
std::vector<FF> const calldata = { 15 , 315 };
482
490
gen_trace_builder (calldata);
483
- trace_builder.op_calldata_copy (0 , 0 , 2 , 0 );
491
+ trace_builder.op_set (0 , 0 , 0 , AvmMemoryTag::U32);
492
+ trace_builder.op_set (0 , 2 , 1 , AvmMemoryTag::U32);
493
+ trace_builder.op_calldata_copy (0 , 0 , 1 , 0 );
484
494
485
495
// Memory layout: [15,315,0,0,0,0,....]
486
496
trace_builder.op_fdiv (0 , 1 , 0 , 2 ); // [15,315,21,0,0,0....]
@@ -504,8 +514,10 @@ TEST_F(AvmArithmeticTestsFF, fDivision)
504
514
// Test on division with zero numerator over finite field type.
505
515
TEST_F (AvmArithmeticTestsFF, fDivisionNumeratorZero )
506
516
{
507
- std::vector<FF> const calldata = { 15 };
517
+ std::vector<FF> const calldata = { 15 , 0 , 0 };
508
518
gen_trace_builder (calldata);
519
+ trace_builder.op_set (0 , 0 , 0 , AvmMemoryTag::U32);
520
+ trace_builder.op_set (0 , 3 , 1 , AvmMemoryTag::U32);
509
521
trace_builder.op_calldata_copy (0 , 0 , 1 , 0 );
510
522
511
523
// Memory layout: [15,0,0,0,0,0,....]
@@ -531,8 +543,10 @@ TEST_F(AvmArithmeticTestsFF, fDivisionNumeratorZero)
531
543
// We check that the operator error flag is raised.
532
544
TEST_F (AvmArithmeticTestsFF, fDivisionByZeroError )
533
545
{
534
- std::vector<FF> const calldata = { 15 };
546
+ std::vector<FF> const calldata = { 15 , 0 , 0 };
535
547
gen_trace_builder (calldata);
548
+ trace_builder.op_set (0 , 0 , 0 , AvmMemoryTag::U32);
549
+ trace_builder.op_set (0 , 3 , 1 , AvmMemoryTag::U32);
536
550
trace_builder.op_calldata_copy (0 , 0 , 1 , 0 );
537
551
538
552
// Memory layout: [15,0,0,0,0,0,....]
@@ -585,7 +599,9 @@ TEST_F(AvmArithmeticTestsFF, mixedOperationsWithError)
585
599
{
586
600
std::vector<FF> const calldata = { 45 , 23 , 12 };
587
601
gen_trace_builder (calldata);
588
- trace_builder.op_calldata_copy (0 , 0 , 3 , 2 );
602
+ trace_builder.op_set (0 , 0 , 0 , AvmMemoryTag::U32);
603
+ trace_builder.op_set (0 , 3 , 1 , AvmMemoryTag::U32);
604
+ trace_builder.op_calldata_copy (0 , 0 , 1 , 0 );
589
605
590
606
// Memory layout: [0,0,45,23,12,0,0,0,....]
591
607
trace_builder.op_add (0 , 2 , 3 , 4 , AvmMemoryTag::FF); // [0,0,45,23,68,0,0,0,....]
@@ -610,7 +626,9 @@ TEST_F(AvmArithmeticTestsFF, equality)
610
626
FF elem = FF::modulus - FF (1 );
611
627
std::vector<FF> const calldata = { elem, elem };
612
628
gen_trace_builder (calldata);
613
- trace_builder.op_calldata_copy (0 , 0 , 2 , 0 );
629
+ trace_builder.op_set (0 , 0 , 0 , AvmMemoryTag::U32);
630
+ trace_builder.op_set (0 , 2 , 1 , AvmMemoryTag::U32);
631
+ trace_builder.op_calldata_copy (0 , 0 , 1 , 0 );
614
632
trace_builder.op_eq (0 , 0 , 1 , 2 , AvmMemoryTag::FF); // Memory Layout [q - 1, q - 1, 1, 0..]
615
633
trace_builder.op_return (0 , 0 , 3 );
616
634
auto trace = trace_builder.finalize ();
@@ -631,7 +649,10 @@ TEST_F(AvmArithmeticTestsFF, nonEquality)
631
649
FF elem = FF::modulus - FF (1 );
632
650
std::vector<FF> const calldata = { elem, elem + FF (1 ) };
633
651
gen_trace_builder (calldata);
634
- trace_builder.op_calldata_copy (0 , 0 , 2 , 0 );
652
+ trace_builder.op_set (0 , 0 , 0 , AvmMemoryTag::U32);
653
+ trace_builder.op_set (0 , 2 , 1 , AvmMemoryTag::U32);
654
+ trace_builder.op_calldata_copy (0 , 0 , 1 , 0 );
655
+
635
656
trace_builder.op_eq (0 , 0 , 1 , 2 , AvmMemoryTag::FF); // Memory Layout [q - 1, q, 0, 0..]
636
657
trace_builder.op_return (0 , 0 , 3 );
637
658
auto trace = trace_builder.finalize ();
0 commit comments