• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2021-2022 Huawei Device Co., Ltd.
2# Licensed under the Apache License, Version 2.0 (the "License");
3# you may not use this file except in compliance with the License.
4# You may obtain a copy of the License at
5#
6# http://www.apache.org/licenses/LICENSE-2.0
7#
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS,
10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11# See the License for the specific language governing permissions and
12# limitations under the License.
13
14definitions: []
15tests:
16  - file-name: "fmul2.64"
17    isa:
18      title: Two address floating-point binary operation on accumulator
19      description: >
20        Perform specified floating-point binary operation on accumulator and register and store result into accumulator.
21        The results of instructions correspond IEEE-754 arithmetic rules.
22      exceptions:
23        - x_none
24    commands:
25      - file-name: "op_vs_8_nan"
26        isa:
27          instructions:
28            - sig: fmul2.64 v:in:f64
29              acc: inout:f64
30              format: [op_v_8]
31          description: Any operation with NaN results to NaN value.
32        check-type: check-acc-nan-f64
33        tags: ['irtoc_ignore']
34        code-template: |
35          #
36              fldai.64 %s
37              fmovi.64 v0, *s
38              fmul2.64 v0
39        description: >
40          Check fmul2.64 results in NaN when acc or v0 is NaN
41        template-cases:
42          - values:
43              # NaN
44              - "0x7ff8000000000000"
45          - values:
46              # NaN representation
47              - "0xFFFFFFFFFFFFFFFF"
48          - values:
49              - "0"
50            exclude: [hasval]
51          - values:
52              # -0.0d
53              - "0x8000000000000000"
54            exclude: [hasval]
55          - values:
56              - "1"
57            exclude: [hasval]
58          - values:
59              - "-1"
60            exclude: [hasval]
61          - values:
62              # +Inf
63              - "0x7ff0000000000000"
64            exclude: [hasval]
65          - values:
66              # -Inf
67              - "0xfff0000000000000"
68            exclude: [hasval]
69          - values:
70              # +max
71              - "0x7fefffffffffffff"
72            exclude: [hasval]
73          - values:
74              # -max
75              - "0xffefffffffffffff"
76            exclude: [hasval]
77          - values:
78              # +min
79              - "0x0000000000000001"
80            exclude: [hasval]
81          - values:
82              # -min
83              - "0x8000000000000001"
84            exclude: [hasval]
85          - values:
86              - "3.14159265358979323846"
87            exclude: [hasval]
88          - values:
89              - "1234567890987654321"
90            exclude: [hasval]
91        cases:
92          - values:
93              # NaN
94              - "0x7ff8000000000000"
95          - values:
96              # NaN
97              - "0xFFFFFFFFFFFFFFFF"
98          - values:
99              - "0"
100            id: hasval
101          - values:
102              # -0.0d
103              - "0x8000000000000000"
104            id: hasval
105          - values:
106              - "1"
107            id: hasval
108          - values:
109              - "-1"
110            id: hasval
111          - values:
112              # +Inf
113              - "0x7ff0000000000000"
114            id: hasval
115          - values:
116              # -Inf
117              - "0xfff0000000000000"
118            id: hasval
119          - values:
120              # +max
121              - "0x7fefffffffffffff"
122            id: hasval
123          - values:
124              # -max
125              - "0xffefffffffffffff"
126            id: hasval
127          - values:
128              # +min
129              - "0x0000000000000001"
130            id: hasval
131          - values:
132              # -min
133              - "0x8000000000000001"
134            id: hasval
135          - values:
136              - "3.14159265358979323846"
137            id: hasval
138          - values:
139              - "1234567890987654321"
140            id: hasval
141
142      - file-name: "op_vs_8_pinf"
143        isa:
144          instructions:
145            - sig: fmul2.64 v:in:f64
146              acc: inout:f64
147              format: [op_v_8]
148          description: Multiplication is infinity if any non zero value is multiplied by infinity.
149        check-type: check-positive
150        tags: ['irtoc_ignore']
151        code-template: |
152            #
153                fldai.64 0x7ff0000000000000 # +Inf
154                fmovi.64 v0, %s
155            # Mult of +Inf and value
156                fmul2.64 v0
157                fmovi.64 v1, %s
158                fcmpg.64 v1
159        description: Check fmul2.64 with +Inf and various values (NaN, Inf, min, max, numbers).
160        cases:
161          - values:
162              - "1"
163              # Inf
164              - "0x7ff0000000000000"
165          - values:
166              - "-1"
167              # -Inf
168              - "0xFFF0000000000000"
169          - values:
170              # +Inf
171              - "0x7ff0000000000000"
172              # Inf
173              - "0x7ff0000000000000"
174          - values:
175              # -Inf
176              - "0xfff0000000000000"
177              # -Inf
178              - "0xFFF0000000000000"
179          - values:
180              # +max
181              - "0x7fefffffffffffff"
182              # Inf
183              - "0x7FF0000000000000"
184          - values:
185              # -max
186              - "0xffefffffffffffff"
187              # -Inf
188              - "0xFFF0000000000000"
189          - values:
190              # +min
191              - "0x0000000000000001"
192              # Inf
193              - "0x7FF0000000000000"
194          - values:
195              # -min
196              - "0x8000000000000001"
197              # -Inf
198              - "0xFFF0000000000000"
199          - values:
200              - "3.14159265358979323846"
201              # Inf
202              - "0x7FF0000000000000"
203          - values:
204              - "1234567890987654321"
205              # Inf
206              - "0x7FF0000000000000"
207
208      - file-name: "op_vs_8_ninf"
209        isa:
210          instructions:
211            - sig: fmul2.64 v:in:f64
212              acc: inout:f64
213              format: [op_v_8]
214          description: Multiplication is infinity if any non zero value is multiplied by infinity.
215        check-type: check-positive
216        tags: ['irtoc_ignore']
217        code-template: |
218            #
219                fldai.64 0xfff0000000000000 # -Inf
220                fmovi.64 v0, %s
221            # Mult of -Inf and value
222                fmul2.64 v0
223                fmovi.64 v1, %s
224                fcmpg.64 v1
225        description: Check fmul2.64 with -Inf and various values (NaN, Inf, min, max, numbers).
226        cases:
227            - values:
228                - "1"
229                # -Inf
230                - "0xfff0000000000000"
231            - values:
232                - "-1"
233                # +Inf
234                - "0x7FF0000000000000"
235            - values:
236                # +Inf
237                - "0x7ff0000000000000"
238                # -Inf
239                - "0xfff0000000000000"
240            - values:
241                # -Inf
242                - "0xfff0000000000000"
243                # +Inf
244                - "0x7FF0000000000000"
245            - values:
246                # +max
247                - "0x7fefffffffffffff"
248                # -Inf
249                - "0xfff0000000000000"
250            - values:
251                # -max
252                - "0xffefffffffffffff"
253                # +Inf
254                - "0x7FF0000000000000"
255            - values:
256                # +min
257                - "0x0000000000000001"
258                # -Inf
259                - "0xfff0000000000000"
260            - values:
261                # -min
262                - "0x8000000000000001"
263                # +Inf
264                - "0x7FF0000000000000"
265            - values:
266                - "3.14159265358979323846"
267                # -Inf
268                - "0xfff0000000000000"
269            - values:
270                - "1234567890987654321"
271                # -Inf
272                - "0xfff0000000000000"
273
274      - file-name: "op_vs_8_pzero"
275        isa:
276          instructions:
277            - sig: fmul2.64 v:in:f64
278              acc: inout:f64
279              format: [op_v_8]
280          description: The sign of division or multiplication result is positive if both values have the same sign, negative if the values have different sign.
281        check-type: check-positive
282        tags: ['irtoc_ignore']
283        code-template: |
284            #
285                fldai.64 0.0 #
286                fmovi.64 v0, %s
287            # Mult of +0.0 and value
288                fmul2.64 v0
289                fmovi.64 v1, %s
290                fcmpg.64 v1
291        description: Check fmul2.64 with +0 and various values (NaN, Inf, min, max, numbers).
292        cases:
293            - values:
294                - "0"
295                - "0"
296            - values:
297                - "-0.0"
298                - "-0.0"
299            - values:
300                - "1"
301                - "0"
302            - values:
303                - "-1"
304                - "-0.0"
305            - values:
306                # +max
307                - "0x7fefffffffffffff"
308                - "0"
309            - values:
310                # -max
311                - "0xffefffffffffffff"
312                - "-0.0"
313            - values:
314                # +min
315                - "0x0000000000000001"
316                - "0"
317            - values:
318                # -min
319                - "0x8000000000000001"
320                - "-0.0"
321            - values:
322                - "3.14159265358979323846"
323                - "0"
324
325      - file-name: "op_vs_8_nzero"
326        isa:
327          instructions:
328            - sig: fmul2.64 v:in:f64
329              acc: inout:f64
330              format: [op_v_8]
331          description: The sign of division or multiplication result is positive if both values have the same sign, negative if the values have different sign.
332        check-type: check-positive
333        tags: ['irtoc_ignore']
334        code-template: |
335            #
336                fldai.64 -0.0 #
337                fmovi.64 v0, %s
338            # Mult of -0.0 and value
339                fmul2.64 v0
340                fmovi.64 v1, %s
341                fcmpg.64 v1
342        description: Check fmul2.64 with -0 and various values (NaN, Inf, min, max, numbers).
343        cases:
344          - values:
345              - "0"
346              - "0"
347          - values:
348              - "-0.0"
349              - "0"
350          - values:
351              - "1"
352              - "-0.0"
353          - values:
354              - "-1"
355              - "0"
356          - values:
357              # +max
358              - "0x7fefffffffffffff"
359              - "-0.0"
360          - values:
361              # -max
362              - "0xffefffffffffffff"
363              - "0"
364          - values:
365              # +min
366              - "0x0000000000000001"
367              - "-0.0"
368          - values:
369              # -min
370              - "0x8000000000000001"
371              - "0"
372          - values:
373              - "3.14159265358979323846"
374              - "-0.0"
375          - values:
376              - "-3.14159265358979323846"
377              - "0"
378
379      - file-name: "op_vs_8_zero_inf"
380        isa:
381          instructions:
382            - sig: fmul2.64 v:in:f64
383              acc: inout:f64
384              format: [op_v_8]
385          description: >
386            Multiplication is NaN if zero is multiplied by infinity.
387        check-type: check-acc-nan-f64
388        tags: ['irtoc_ignore']
389        code-template: |
390            #
391                fldai.64 %s
392                fmovi.64 v0, *s
393            # Mult 0 by Inf
394                fmul2.64 v0
395        description: >
396          Check fmul2.64 of 0 and Inf is NaN.
397        template-cases:
398          - values:
399            - "0x7ff0000000000000"
400            exclude: [inf]
401          - values:
402            - "0xfff0000000000000"
403            exclude: [inf]
404          - values:
405            - "0"
406            exclude: [zero]
407          - values:
408            # Negative Zero
409            - "0x8000000000000000"
410            exclude: [zero]
411        cases:
412          - values:
413            - "0x7ff0000000000000"
414            id: inf
415          - values:
416            - "0xfff0000000000000"
417            id: inf
418          - values:
419            - "0"
420            id: zero
421          - values:
422            # Negative Zero
423            - "0x8000000000000000"
424            id: zero
425
426      - file-name: "op_vs_8_pone"
427        isa:
428          instructions:
429            - sig: fmul2.64 v:in:f64
430              acc: inout:f64
431              format: [op_v_8]
432        check-type: check-positive
433        tags: ['irtoc_ignore']
434        code-template: |
435            #
436                fldai.64 1.0 #
437                fmovi.64 v0, %s
438            # Mult of 1.0 and value
439                fmul2.64 v0
440                fmovi.64 v1, %s
441                fcmpg.64 v1
442        description: Check fmul2.64 with +1 and various values (NaN, Inf, min, max, numbers).
443        cases:
444          - values:
445              # +0.0d
446              - "0"
447              - "0"
448          - values:
449              - "-0.0"
450              - "-0.0"
451          - values:
452              - "1"
453              - "1"
454          - values:
455              - "-1"
456              - "-1"
457          - values:
458              # +Inf
459              - "0x7ff0000000000000"
460              # +Inf
461              - "0x7FF0000000000000"
462          - values:
463              # -Inf
464              - "0xfff0000000000000"
465              # -Inf
466              - "0xFFF0000000000000"
467          - values:
468              # +max
469              - "0x7fefffffffffffff"
470              # +max
471              - "0x7FEFFFFFFFFFFFFF"
472          - values:
473              # -max
474              - "0xFFEFFFFFFFFFFFFF"
475              # -max
476              - "0xFFEFFFFFFFFFFFFF"
477          - values:
478              # +min
479              - "0x0000000000000001"
480              - "0x0000000000000001"
481          - values:
482              # -min
483              - "0x8000000000000001"
484              - "0x8000000000000001"
485          - values:
486              - "3.14159265358979323846"
487              - "3.14159265358979323846"
488          - values:
489              - "-3.14159265358979323846"
490              - "-3.14159265358979323846"
491          - values:
492              - "1234567890.987654321"
493              - "1234567890.987654321"
494
495      - file-name: "op_vs_8_none"
496        isa:
497          instructions:
498            - sig: fmul2.64 v:in:f64
499              acc: inout:f64
500              format: [op_v_8]
501        check-type: check-positive
502        tags: ['irtoc_ignore']
503        code-template: |
504            #
505                fldai.64 -1.0 #
506                fmovi.64 v0, %s
507            # Mult of -1.0 and value
508                fmul2.64 v0
509                fmovi.64 v1, %s
510                fcmpg.64 v1
511        description: Check fmul2.64 with -1 and various values (NaN, Inf, min, max, numbers).
512        cases:
513          - values:
514              - "0"
515              - "-0.0"
516          - values:
517              - "-0.0"
518              - "0"
519          - values:
520              - "1"
521              - "-1"
522          - values:
523              - "-1"
524              - "1"
525          - values:
526              # +Inf
527              - "0x7ff0000000000000"
528              # -Inf
529              - "0xFFF0000000000000"
530          - values:
531              # -Inf
532              - "0xfff0000000000000"
533              # +Inf
534              - "0x7FF0000000000000"
535          - values:
536              # +max
537              - "0x7fefffffffffffff"
538              - "0xFFEFFFFFFFFFFFFF"
539          - values:
540              # -max
541              - "0xFFEFFFFFFFFFFFFF"
542              - "0x7FEFFFFFFFFFFFFF"
543          - values:
544              # +min
545              - "0x0000000000000001"
546              - "0x8000000000000001"
547          - values:
548              # -min
549              - "0x8000000000000001"
550              - "0x0000000000000001"
551          - values:
552              - "3.14159265358979323846"
553              - "-3.14159265358979323846"
554          - values:
555              - "-3.14159265358979323846"
556              - "3.14159265358979323846"
557          - values:
558              - "1234567890.987654321"
559              - "-1234567890.987654321"
560
561      - file-name: "op_vs_8"
562        isa:
563          instructions:
564            - sig: fmul2.64 v:in:f64
565              acc: inout:f64
566              format: [op_v_8]
567          description: The sign of division or multiplication result is positive if both values have the same sign, negative if the values have different sign.
568        tags: ['irtoc_ignore']
569        check-type: check-positive
570        code-template: |
571            #
572                fldai.64 %s #
573                fmovi.64 v0, %s
574            # Mult of -1.0 and value
575                fmul2.64 v0
576                fmovi.64 v1, %s
577                fcmpg.64 v1
578        description: Check fmul2.64 with various values (zeroes, Infs, min, max, numbers).
579        cases:
580            - values:
581                - "0.0"
582                - "0.0"
583                - "0.0"
584            - values:
585                - "0.0"
586                - "-0.0"
587                - "-0.0"
588            - values:
589                - "-0.0"
590                - "0.0"
591                - "-0.0"
592            - values:
593                - "-0.0"
594                - "-0.0"
595                - "0.0"
596            - values:
597                - "1.0"
598                - "-1.0"
599                - "-1.0"
600            - values:
601                - "1.0"
602                - "1.0"
603                - "1.0"
604            - values:
605                - "-1.0"
606                - "1.0"
607                - "-1.0"
608            - values:
609                - "1.0e100"
610                - "1.0e100"
611                - "1.0e200"
612            - values:
613                - "1.0e100"
614                - "-1.0e100"
615                - "-1.0e200"
616            - values:
617                - "1.0e+100"
618                - "1.0e-100"
619                - "1.0"
620            - values:
621                - "-1.0e100"
622                - "1.0e100"
623                - "-1.0e200"
624            - values:
625                - "-1.0e-100"
626                - "1.0e-100"
627                - "-1.0e-200"
628            - values:
629                - "-1.0e+100"
630                - "-1.0e-100"
631                - "1.0"
632            - values:
633                - "3.14159265358979323846"
634                - "-3.14159265358979323846"
635                - "-9.869604401089358"
636            - values:
637                - "3.14159265358979323846e100"
638                - "-3.14159265358979323846e100"
639                - "-9.869604401089358e200"
640#            - values:
641#              # TODO add test cases for maximal and minimal FP value in decimal scientific literal
642      - file-name: "op_vs_8_max"
643        isa:
644          instructions:
645            - sig: fmul2.64 v:in:f64
646              acc: inout:f64
647              format: [op_v_8]
648        check-type: check-positive
649        tags: ['irtoc_ignore']
650        code-template: |
651            #
652                fldai.64 %s
653                fmovi.64 v0, %s
654            # Mult of two values
655                fmul2.64 v0
656                fmovi.64 v1, %s
657                fcmpg.64 v1
658        description: Check fmul2.64 with various max values.
659        cases:
660          - values:
661              # +max
662              - "0x7fefffffffffffff"
663              # +max
664              - "0x7fefffffffffffff"
665              # +Inf
666              - "0x7ff0000000000000"
667          - values:
668              # -max
669              - "0xFFEFFFFFFFFFFFFF"
670              # -max
671              - "0xFFEFFFFFFFFFFFFF"
672              # +Inf
673              - "0x7ff0000000000000"
674          - values:
675              # +max
676              - "0x7fefffffffffffff"
677              # -max
678              - "0xFFEFFFFFFFFFFFFF"
679              # -Inf
680              - "0xfff0000000000000"
681          - values:
682              # +max
683              - "0x7fefffffffffffff"
684              # 1d
685              - "0x3ff0000000000000"
686              # +max
687              - "0x7fefffffffffffff"
688          - values:
689              # +max
690              - "0x7fefffffffffffff"
691              - "-1"
692              # -max
693              - "0xFFEFFFFFFFFFFFFF"
694          - values:
695              # -max
696              - "0xFFEFFFFFFFFFFFFF"
697              - "1"
698              # -max
699              - "0xFFEFFFFFFFFFFFFF"
700          - values:
701              # -max
702              - "0xFFEFFFFFFFFFFFFF"
703              - "-1"
704              # +max
705              - "0x7fefffffffffffff"
706
707      - file-name: "incorrect_reg"
708        isa:
709          instructions:
710            - sig: fmul2.64 v:in:f64
711              acc: inout:f64
712              format: [op_v_8]
713        check-type: none
714        runner-options: [compile-failure]
715        description: Check fmul2.64 with incorrect register numbers.
716        code-template: |
717          #
718              fmul2.64 %s
719        cases:
720          - values: [v256]
721          - values: [v65535]
722          - values: [a0]
723          - values: [a255]
724          - values: ['null']
725          - values: [0]
726          - values: [1.1]
727          - values: ['2.2']
728
729      - file-name: "reg_number"
730        isa:
731          instructions:
732            - sig: fmul2.64 v:in:f64
733              acc: inout:f64
734              format: [op_v_8]
735        check-type: none
736        runner-options: [compile-only]
737        description: Check fmul2.64 with correct register numbers.
738        code-template: |
739          #
740              fmul2.64 %s
741        cases:
742          - values: [v0]
743          - values: [v16]
744          - values: [v128]
745          - values: [v255]
746
747      - file-name: "calc"
748        isa:
749          instructions:
750            - sig: fmul2.64 v:in:f64
751              acc: inout:f64
752              format: [op_v_8]
753        check-type: check-positive
754        code-template: |
755            #
756                fldai.64 %s #
757                fmovi.64 v0, %s
758                fmul2.64 v0
759                fmovi.64 v1, %s
760                fcmpg.64 v1
761        description: Check fmul2.64 with various values.
762        tags: ['tsan', 'irtoc_ignore']
763        cases:
764            - values:
765                - "-0.9312987578177028"
766                - "-0.5269885911022338"
767                - "0.49078382027761164"
768            - values:
769                - "-0.7473367654362506"
770                - "0.5438369269893948"
771                - "-0.4064293299410447"
772            - values:
773                - "0.31647958126146847"
774                - "-0.5745936070002329"
775                - "-0.18184714413895048"
776            - values:
777                - "-0.21032659650962326"
778                - "0.3927316648101664"
779                - "-0.08260191440108049"
780            - values:
781                - "0.10120846222414825"
782                - "0.8246991807586994"
783                - "0.08346653588210284"
784            - values:
785                - "-0.4343271788175138"
786                - "0.7903281236389887"
787                - "-0.34326098428026125"
788            - values:
789                - "-0.20664108305757245"
790                - "0.34935450620458064"
791                - "-0.07219099353315796"
792            - values:
793                - "0.1333693748785436"
794                - "0.3799164493389853"
795                - "0.05066921935441635"
796            - values:
797                - "0.5937602845980485"
798                - "0.1781606722800979"
799                - "0.10578473147721058"
800            - values:
801                - "-0.8800125826624052"
802                - "0.8179463146149306"
803                - "-0.7198030488034813"
804            - values:
805                - "0.36292211209434644"
806                - "-0.6858150664631064"
807                - "-0.24889745242691516"
808            - values:
809                - "-3.9164094519790716e54"
810                - "2.4866884565281146e31"
811                - "-9.738890175273957e85"
812            - values:
813                - "4.868571305821797e-45"
814                - "-2.947689920115564e98"
815                - "-1.4351038563534779e54"
816            - values:
817                - "-4.9232256393438925e75"
818                - "6.468558635915e-93"
819                - "-3.184617372593608e-17"
820            - values:
821                - "-1.3534530635380337e-70"
822                - "3.3934802052784276e43"
823                - "-4.5929161798897635e-27"
824            - values:
825                - "-1.5150156586897712e-5"
826                - "3.7824026868513417e-85"
827                - "-5.730399298050046e-90"
828            - values:
829                - "-6.76727647923816e20"
830                - "4.013410468105432e94"
831                - "-2.7159858262338103e115"
832            - values:
833                - "-8.352558372943342e34"
834                - "-3.157398645567344e28"
835                - "2.637235649375349e63"
836            - values:
837                - "-4.778555666328233e-70"
838                - "-1.325369923134656e-37"
839                - "6.333353956176124e-107"
840            - values:
841                - "4.097369399892121e72"
842                - "3.088334967375387e-13"
843                - "1.2654049191940743e60"
844            - values:
845                - "-2.2726952943288126e-55"
846                - "1.1899191874472758e16"
847                - "-2.704323737942988e-39"
848      - file-name: "type"
849        isa:
850            instructions:
851              - sig: fmul2.64 v:in:f64
852                acc: inout:f64
853                format: [op_v_8]
854            verification:
855              - acc_type
856              - v1_type
857        tags: ['verifier']
858        runner-options: ['verifier-failure', 'verifier-config']
859        header-template: []
860        code-template: |
861          #
862          .record A {}
863          .record B {}
864          .record panda.String <external>
865          .record panda.Object <external>
866          .function i32 main() {
867              %s
868              *s
869              fmul2.64 v0
870        check-type: exit-positive
871        description: Check 'fmul2.64' with incorrect register and accumulator type.
872        template-cases:
873          - values:
874              - movi v0, 0
875          - values:
876              - movi.64 v0, 0
877          - values:
878              - fmovi v0, 0
879            bugid: ['7315']
880          - values:
881              - fmovi.64 v0, 0
882            exclude: [val]
883          - values:
884              - |
885                #
886                    lda.type B
887                    sta.obj v0
888          - values:
889              - |
890                #
891                    lda.type B[]
892                    sta.obj v0
893          - values:
894              - |
895                #
896                    lda.type panda.String
897                    sta.obj v0
898          - values:
899              - |
900                #
901                    lda.str "string"
902                    sta.obj v0
903          - values:
904              - |
905                #
906                    movi v0, 10
907                    newarr v0, v0, i32[]
908          - values:
909              - mov.null v0
910
911        cases:
912          - values:
913              - ldai 0
914          - values:
915              - ldai.64 0
916          - values:
917              - fldai 0
918            bugid: ['7315']
919          - values:
920              - fldai.64 0
921            id: val
922          - values:
923              - |
924                #
925                    lda.type A
926          - values:
927              - |
928                #
929                    lda.type A[]
930          - values:
931              - |
932                #
933                    lda.type panda.String
934          - values:
935              - |
936                #
937                    lda.str "string"
938          - values:
939              - |
940                #
941                    movi v1, 10
942                    newarr v1, v1, f64[]
943                    lda.obj v1
944          - values:
945              - lda.null
946
947      - file-name: uninitialized_regs
948        isa:
949          instructions:
950            - sig: fmul2.64 v:in:f64
951              acc: inout:f64
952              format: [op_v_8]
953        description: Check 'fmul2.64' with uninitialized register and accumulator.
954        tags: ['verifier']
955        runner-options: ['verifier-failure', 'verifier-config']
956        code-template: |
957            #
958                %s
959                *s
960                fmul2.64 %s
961        check-type: exit-positive
962        template-cases:
963          - values:
964              - ''
965              - v0
966          - values:
967              - fmovi.64 v0, 0
968              - v0
969            exclude: [init]
970          - values:
971              - ''
972              - v7
973          - values:
974              - ''
975              - v15
976          - values:
977              - fmovi.64 v15, 0
978              - v15
979            exclude: [init]
980          - values:
981              - ''
982              - v128
983          - values:
984              - fmovi.64 v128, 0
985              - v128
986            exclude: [init]
987          - values:
988              - ''
989              - v255
990          - values:
991              - fmovi.64 v255, 0
992              - v255
993            exclude: [init]
994        cases:
995          - values:
996              - ''
997          - values:
998              - fldai.64 0
999            id: init
1000