• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2021 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: "fadd2.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: fadd2.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
33        code-template: |
34          #
35              fldai.64 %s
36              fmovi.64 v0, *s
37          # Sum of any value and NaN is NaN
38              fadd2.64 v0
39        description: >
40          Check fadd2.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              # Positive zero
50              # +0.0d
51              - "0"
52            exclude: [hasval]
53          - values:
54              # Negative zero
55              # -0.0d
56              - "0x8000000000000000"
57            exclude: [hasval]
58          - values:
59              # 1d
60              - "0x3ff0000000000000"
61            exclude: [hasval]
62          - values:
63              # -1d
64              - "0xbff0000000000000"
65            exclude: [hasval]
66          - values:
67              # +Inf
68              - "0x7ff0000000000000"
69            exclude: [hasval]
70          - values:
71              # -Inf
72              - "0xfff0000000000000"
73            exclude: [hasval]
74          - values:
75              # +max
76              - "0x7fefffffffffffff"
77            exclude: [hasval]
78          - values:
79              # -max
80              - "0xffefffffffffffff"
81            exclude: [hasval]
82          - values:
83              # +min
84              - "0x0000000000000001"
85            exclude: [hasval]
86          - values:
87              # -min
88              - "0x8000000000000001"
89            exclude: [hasval]
90          - values:
91              # Some FP value
92              - "9.9e-300"
93            exclude: [hasval]
94          - values:
95              # Some FP value
96              - "-0.00000000000000001"
97            exclude: [hasval]
98        cases:
99          - values:
100              # NaN
101              - "0x7ff8000000000000"
102          - values:
103              # NaN representation
104              - "0xFFFFFFFFFFFFFFFF"
105          - values:
106              # Positive zero
107              # +0.0d
108              - "0"
109            id: hasval
110          - values:
111              # Negative zero
112              # -0.0d
113              - "0x8000000000000000"
114            id: hasval
115          - values:
116              # 1d
117              - "0x3ff0000000000000"
118            id: hasval
119          - values:
120              # -1d
121              - "0xbff0000000000000"
122            id: hasval
123          - values:
124              # +Inf
125              - "0x7ff0000000000000"
126            id: hasval
127          - values:
128              # -Inf
129              - "0xfff0000000000000"
130            id: hasval
131          - values:
132              # +max
133              - "0x7fefffffffffffff"
134            id: hasval
135          - values:
136              # -max
137              - "0xffefffffffffffff"
138            id: hasval
139          - values:
140              # +min
141              - "0x0000000000000001"
142            id: hasval
143          - values:
144              # -min
145              - "0x8000000000000001"
146            id: hasval
147          - values:
148              # Some FP value
149              - "9.9e-300"
150            id: hasval
151          - values:
152              # Some FP value
153              - "-0.00000000000000001"
154            id: hasval
155
156      - file-name: "op_vs_8_pinf"
157        isa:
158          instructions:
159            - sig: fadd2.64 v:in:f64
160              acc: inout:f64
161              format: [op_v_8]
162          description: >
163            The sum of two infinities of the same sign or the difference of two infinities of opposite sign is infinity.
164            The sign of result matches the sign of accumulator value.
165            The sum or the difference of infinity and any finite value is infinity.
166            The sign of result matches the sign of infinity.
167        check-type: check-positive
168        code-template: |
169            #
170                fldai.64 0x7ff0000000000000 # +Inf
171                fmovi.64 v0, %s
172            # Sum of +Inf and value
173                fadd2.64 v0
174                fmovi.64 v1, %s
175                fcmpg.64 v1
176        description: Check fadd2.64 with positive Inf and various values (Inf, min, max, numbers).
177        cases:
178          - values:
179              # +0.0d
180              - "0"
181              - "0x7ff0000000000000"
182          - values:
183              # -0.0d
184              - "0x8000000000000000"
185              - "0x7ff0000000000000"
186          - values:
187              # 1d
188              - "0x3ff0000000000000"
189              - "0x7ff0000000000000"
190          - values:
191              # -1d
192              - "0xbff0000000000000"
193              - "0x7ff0000000000000"
194          - values:
195              # +Inf
196              - "0x7ff0000000000000"
197              - "0x7ff0000000000000"
198          - values:
199              # +max
200              - "0x7fefffffffffffff"
201              - "0x7ff0000000000000"
202          - values:
203              # -max
204              - "0xffefffffffffffff"
205              - "0x7ff0000000000000"
206          - values:
207              # +min
208              - "0x0000000000000001"
209              - "0x7ff0000000000000"
210          - values:
211              # -min
212              - "0x8000000000000001"
213              - "0x7ff0000000000000"
214          - values:
215              # Some FP value, 3.14159265358979323846
216              - "0x400921fb54442d18"
217              - "0x7ff0000000000000"
218          - values:
219              - "1234567890987654321"
220              - "0x7ff0000000000000"
221
222      - file-name: "op_vs_8_ninf"
223        isa:
224          instructions:
225            - sig: fadd2.64 v:in:f64
226              acc: inout:f64
227              format: [op_v_8]
228          description: >
229            The sum of two infinities of the same sign or the difference of two infinities of opposite sign is infinity.
230            The sign of result matches the sign of accumulator value.
231            The sum or the difference of infinity and any finite value is infinity.
232            The sign of result matches the sign of infinity.
233        check-type: check-positive
234        code-template: |
235            #
236                fldai.64 0xfff0000000000000 # -Inf
237                fmovi.64 v0, %s
238            # Sum of -Inf and value
239                fadd2.64 v0
240                fmovi.64 v1, %s
241                fcmpg.64 v1
242        description: Check fadd2.64 with negative Inf and various values (Inf, min, max, numbers).
243        cases:
244            - values:
245                # +0.0d
246                - "0"
247                # -Inf
248                - "0xfff0000000000000"
249            - values:
250                # -0.0d
251                - "0x8000000000000000"
252                # -Inf
253                - "0xfff0000000000000"
254            - values:
255                # 1d
256                - "0x3ff0000000000000"
257                # -Inf
258                - "0xfff0000000000000"
259            - values:
260                # -1d
261                - "0xbff0000000000000"
262                # -Inf
263                - "0xfff0000000000000"
264            - values:
265                # -Inf
266                - "0xfff0000000000000"
267                # -Inf
268                - "0xfff0000000000000"
269            - values:
270                # +max
271                - "0x7fefffffffffffff"
272                # -Inf
273                - "0xfff0000000000000"
274            - values:
275                # -max
276                - "0xffefffffffffffff"
277                # -Inf
278                - "0xfff0000000000000"
279            - values:
280                # +min
281                - "0x0000000000000001"
282                # -Inf
283                - "0xfff0000000000000"
284            - values:
285                # -min
286                - "0x8000000000000001"
287                # -Inf
288                - "0xfff0000000000000"
289            - values:
290                # Some FP value, 3.14159265358979323846
291                - "0x400921fb54442d18"
292                # -Inf
293                - "0xfff0000000000000"
294            - values:
295                - "1234567890987654321"
296                # -Inf
297                - "0xfff0000000000000"
298
299      - file-name: "op_vs_8_inf_nan"
300        isa:
301          instructions:
302            - sig: fadd2.64 v:in:f64
303              acc: inout:f64
304              format: [op_v_8]
305          description: >
306            The sum of opposite infinities or the difference of the same sign infinities is NaN.
307        check-type: check-acc-nan
308        code-template: |
309            #
310                fldai.64 %s
311                fmovi.64 v0, %s
312            # Sum of opposite Inf-s
313                fadd2.64 v0
314        description: Check fadd2.64 with +Inf and -Inf is NaN.
315        cases:
316          - values:
317              - "0x7ff0000000000000"
318              - "0xfff0000000000000"
319          - values:
320              - "0xfff0000000000000"
321              - "0x7ff0000000000000"
322
323      - file-name: "op_vs_8_pzero"
324        isa:
325          instructions:
326            - sig: fadd2.64 v:in:f64
327              acc: inout:f64
328              format: [op_v_8]
329          description: >
330              The sum or the difference of infinity and any finite value is infinity.
331              The sign of result matches the sign of infinity.
332              The sum or the difference of zeros is zero.
333              Exceptions are the sum of two negative zeros and the difference of negative and positive zero - the result is negative zero.
334        check-type: check-positive
335        description: Check fadd2.64 with positive zero and various values (Inf, min, max, numbers).
336        code-template: |
337            #
338                fldai.64 0.0 #
339                fmovi.64 v0, %s
340                mov.64 v1, v0
341            # Sum of +0.0 and value
342                fadd2.64 v0
343                fcmpg.64 v1
344        cases:
345            - values:
346                # +0.0d
347                - "0"
348            - values:
349                # -0.0d
350                - "0x8000000000000000"
351            - values:
352                # 1d
353                - "1"
354            - values:
355                # -1d
356                - "-1"
357            - values:
358                # +Inf
359                - "0x7ff0000000000000"
360            - values:
361                # -Inf
362                - "0xfff0000000000000"
363            - values:
364                # +max
365                - "0x7fefffffffffffff"
366            - values:
367                # -max
368                - "0xffefffffffffffff"
369            - values:
370                # +min
371                - "0x0000000000000001"
372
373            - values:
374                # -min
375                - "0x8000000000000001"
376            - values:
377                - "3.14159265358979323846"
378            - values:
379                - "1234567890987654321"
380
381      - file-name: "op_vs_8_nzero"
382        isa:
383          instructions:
384            - sig: fadd2.64 v:in:f64
385              acc: inout:f64
386              format: [op_v_8]
387          description: >
388              The sum or the difference of infinity and any finite value is infinity.
389              The sign of result matches the sign of infinity.
390              The sum or the difference of zeros is zero.
391              Exceptions are the sum of two negative zeros and the difference of negative and positive zero - the result is negative zero.
392        check-type: check-positive
393        description: Check fadd2.64 with negative zero and various values (Inf, min, max, numbers).
394        code-template: |
395            #
396                fldai.64 -0.0 #
397                fmovi.64 v0, %s
398                mov.64 v1, v0
399            # Sum of -0.0 and value
400                fadd2.64 v0
401                fcmpg.64 v1
402        cases:
403          # Comment this case, since it is incorrect.
404          # It seems the better way to compare -0.0 and -0.0 is to convert it to -Inf
405          # - case-template: |
406          #     #
407          #         fldai.64 -0.0 #
408          #         fmovi.64 v0, -0.0
409          #     # Sum of -0.0 and -0.0 should be -0.0
410          #         fadd2.64 v0
411          #         fmovi.64 v1, -0.0
412          #         cmp.64 v1 # compare as binary values, due to +0.0 == -0.0, but 0x8000000000000000 != 0x0000000000000000
413          - values:
414              # 1d
415              - "1"
416          - values:
417              - "-1"
418          - values:
419              # +Inf
420              - "0x7ff0000000000000"
421          - values:
422              # -Inf
423              - "0xfff0000000000000"
424          - values:
425              # +max
426              - "0x7fefffffffffffff"
427          - values:
428              # -max
429              - "0xffefffffffffffff"
430          - values:
431              # +min
432              - "0x0000000000000001"
433          - values:
434              # -min
435              - "0x8000000000000001"
436          - values:
437              - "3.14159265358979323846"
438          - values:
439              - "1234567890987654321"
440
441      - file-name: "op_vs_8_pone"
442        isa:
443          instructions:
444            - sig: fadd2.64 v:in:f64
445              acc: inout:f64
446              format: [op_v_8]
447          description: >
448            The sum or the difference of infinity and any finite value is infinity.
449            The sign of result matches the sign of infinity.
450        check-type: check-positive
451        description: Check fadd2.64 with +1 and various values (Inf, min, max, numbers).
452        code-template: |
453            #
454                fldai.64 1.0 #
455                fmovi.64 v0, %s
456            # Sum of 1.0 and value
457                fadd2.64 v0
458                fmovi.64 v1, %s
459                fcmpg.64 v1
460        cases:
461          - values:
462              # +0.0d
463              - "0"
464              - "1.0"
465          - values:
466              # -0.0d
467              - "0x8000000000000000"
468              - "1.0"
469          - values:
470              - "1.0"
471              - "2.0"
472          - values:
473              - "-1.0"
474              - "0"
475          - values:
476              # +Inf
477              - "0x7ff0000000000000"
478              - "0x7ff0000000000000"
479          - values:
480              # -Inf
481              - "0xfff0000000000000"
482              # -Inf
483              - "0xfff0000000000000"
484          - values:
485              # +max
486              - "0x7fefffffffffffff"
487              - "0x7fefffffffffffff"
488          - values:
489              # -max
490              - "0xffefffffffffffff"
491              # -max
492              - "0xffefffffffffffff"
493          - values:
494              # +min
495              - "0x0000000000000001"
496              - "1.0"
497          - values:
498              # -min
499              - "0x8000000000000001"
500              - "1.0"
501          - values:
502              # Some FP value, 3.14159265358979323846
503              - "3.14159265358979323846"
504              - "4.14159265358979323846"
505          - values:
506              # Some FP value
507              - "1234567890.987654321"
508              - "1234567891.987654321"
509
510      - file-name: "op_vs_8_none"
511        isa:
512          instructions:
513            - sig: fadd2.64 v:in:f64
514              acc: inout:f64
515              format: [op_v_8]
516          description: >
517            The sum or the difference of infinity and any finite value is infinity.
518            The sign of result matches the sign of infinity.
519        check-type: check-positive
520        description: Check fadd2.64 with -1 and various values (Inf, min, max, numbers).
521        code-template: |
522            #
523                fldai.64 -1.0 #
524                fmovi.64 v0, %s
525            # Sum of -1.0 and value
526                fadd2.64 v0
527                fmovi.64 v1, %s
528                fcmpg.64 v1
529        cases:
530          - values:
531              # +0.0d
532              - "0"
533              - "-1"
534          - values:
535              # -0.0d
536              - "0x8000000000000000"
537              - "-1"
538          - values:
539              # 1d
540              - "1"
541              - "0"
542          - values:
543              # -1d
544              - "-1"
545              - "-2"
546          - values:
547              # +Inf
548              - "0x7ff0000000000000"
549              - "0x7ff0000000000000"
550          - values:
551              # -Inf
552              - "0xfff0000000000000"
553              # -Inf
554              - "0xfff0000000000000"
555          - values:
556              # +max
557              - "0x7fefffffffffffff"
558              - "0x7fefffffffffffff"
559          - values:
560              # -max
561              - "0xffefffffffffffff"
562              # -max
563              - "0xffefffffffffffff"
564          - values:
565              # +min
566              - "0x0000000000000001"
567              # -1d
568              - "-1"
569          - values:
570              # -min
571              - "0x8000000000000001"
572              # -1d
573              - "-1"
574          - values:
575              # Some FP value, 3.14159265358979323846
576              - "3.14159265358979323846"
577              - "2.14159265358979323846"
578          - values:
579              # Some FP value
580              - "1234567890.987654321"
581              - "1234567889.987654321"
582
583      - file-name: "op_vs_8"
584        isa:
585          instructions:
586            - sig: fadd2.64 v:in:f64
587              acc: inout:f64
588              format: [op_v_8]
589          description: >
590              The sum or the difference of zeros is zero.
591              Exceptions are the sum of two negative zeros and the difference of negative and positive zero - the result is negative zero.
592        check-type: check-positive
593        description: Check fadd2.64 with various values.
594        code-template: |
595            #
596                fldai.64 %s #
597                fmovi.64 v0, %s
598            # Sum of -1.0 and value
599                fadd2.64 v0
600                fmovi.64 v1, %s
601                fcmpg.64 v1
602        cases:
603            - values:
604                - "0.0"
605                - "0.0"
606                - "0.0"
607            - values:
608                - "0.0"
609                - "-0.0"
610                - "0.0"
611            - values:
612                - "-0.0"
613                - "0.0"
614                - "0.0"
615            - values:
616                - "-0.0"
617                - "-0.0"
618                - "0.0"
619            - values:
620                - "1.0"
621                - "-1.0"
622                - "0.0"
623            - values:
624                - "-1.0"
625                - "1.0"
626                - "0.0"
627            - values:
628                - "1.0e100"
629                - "1.0e100"
630                - "2.0e100"
631            - values:
632                - "1.0e-100"
633                - "1.0e-100"
634                - "2.0e-100"
635            - values:
636                - "1.0e+100"
637                - "1.0e-100"
638                - "1.0e+100"
639            - values:
640                - "-1.0e100"
641                - "-1.0e100"
642                - "-2.0e100"
643            - values:
644                - "-1.0e-100"
645                - "-1.0e-100"
646                - "-2.0e-100"
647            - values:
648                - "-1.0e+100"
649                - "-1.0e-100"
650                - "-1.0e+100"
651            - values:
652                - "3.14159265358979323846"
653                - "3.14159265358979323846"
654                - "6.283185307179586"
655            - values:
656                - "3.14159265358979323846e200"
657                - "3.14159265358979323846e200"
658                - "6.283185307179587e200"
659
660      - file-name: "op_vs_8_max"
661        isa:
662          instructions:
663            - sig: fadd2.64 v:in:f64
664              acc: inout:f64
665              format: [op_v_8]
666        check-type: check-positive
667        code-template: |
668            #
669                fldai.64 %s
670                fmovi.64 v0, %s
671            # Sum of two values
672                fadd2.64 v0
673                fmovi.64 v1, %s
674                fcmpg.64 v1
675        description: Check fadd2.64 with various max values.
676        cases:
677          - values:
678              # +max
679              - "0x7fefffffffffffff"
680              # +max
681              - "0x7fefffffffffffff"
682              # +Inf
683              - "0x7ff0000000000000"
684          - values:
685              # -max
686              - "0xffefffffffffffff"
687              # -max
688              - "0xffefffffffffffff"
689              # -Inf
690              - "0xfff0000000000000"
691          - values:
692              # +max
693              - "0x7fefffffffffffff"
694              # -max
695              - "0xffefffffffffffff"
696              - "0"
697          - values:
698              # +max
699              - "0x7fefffffffffffff"
700              # 1d
701              - "0x3ff0000000000000"
702              # +max
703              - "0x7fefffffffffffff"
704          - values:
705              # +max
706              - "0x7fefffffffffffff"
707              - "-1.0"
708              # +max
709              - "0x7fefffffffffffff"
710          - values:
711              # -max
712              - "0xffefffffffffffff"
713              - "1"
714              # -max
715              - "0xffefffffffffffff"
716          - values:
717              # -max
718              - "0xffefffffffffffff"
719              - "-1.0"
720              # -max
721              - "0xffefffffffffffff"
722
723      - file-name: "incorrect_reg"
724        isa:
725          instructions:
726            - sig: fadd2.64 v:in:f64
727              acc: inout:f64
728              format: [op_v_8]
729        check-type: none
730        runner-options: [compile-failure]
731        description: Check fadd2.64 with incorrect register numbers.
732        code-template: |
733          #
734              fadd2.64 %s
735        cases:
736          - values: [v256]
737          - values: [v65535]
738          - values: [a0]
739          - values: [a255]
740          - values: [null]
741          - values: [0]
742          - values: [1.1]
743          - values: ['2.2']
744
745      - file-name: "reg_number"
746        isa:
747          instructions:
748            - sig: fadd2.64 v:in:f64
749              acc: inout:f64
750              format: [op_v_8]
751        check-type: none
752        runner-options: [compile-only]
753        description: Check fadd2.64 with correct register numbers.
754        code-template: |
755          #
756              fadd2.64 %s
757        cases:
758          - values: [v0]
759          - values: [v16]
760          - values: [v128]
761          - values: [v255]
762
763      - file-name: "calc"
764        isa:
765            instructions:
766              - sig: fadd2.64 v:in:f64
767                acc: inout:f64
768                format: [op_v_8]
769        check-type: check-positive
770        description: Check fadd2.64 with various values.
771        tags: ['tsan']
772        code-template: |
773            #
774                fldai.64 %s
775                fmovi.64 v0, %s
776                fadd2.64 v0
777                fmovi.64 v1, %s
778                fcmpg.64 v1
779        cases:
780            - values:
781                - "-0.15050802400115393"
782                - "0.18996780455830886"
783                - "0.03945978055715493"
784            - values:
785                - "0.09951566402242995"
786                - "0.03719425811598742"
787                - "0.13670992213841737"
788            - values:
789                - "0.038831767543099804"
790                - "-0.4662699308635513"
791                - "-0.4274381633204515"
792            - values:
793                - "-0.11785869458726261"
794                - "-0.4106442634971579"
795                - "-0.5285029580844205"
796            - values:
797                - "0.23325136409810066"
798                - "0.09303562554819389"
799                - "0.32628698964629455"
800            - values:
801                - "-0.36306915632091574"
802                - "-0.18813247402656463"
803                - "-0.5512016303474804"
804            - values:
805                - "0.10035211145856304"
806                - "0.23596899663966542"
807                - "0.33632110809822846"
808            - values:
809                - "-0.22312737471673505"
810                - "-0.2184161670683794"
811                - "-0.44154354178511446"
812            - values:
813                - "0.18529020487227765"
814                - "0.48416743127187434"
815                - "0.669457636144152"
816            - values:
817                - "-0.47541772073735256"
818                - "0.08233614669530886"
819                - "-0.3930815740420437"
820            - values:
821                - "2.7599109874619587e-36"
822                - "-1.9447187242297282e-36"
823                - "8.151922632322304e-37"
824            - values:
825                - "9.760636456557758e-74"
826                - "4.224280075394366e-73"
827                - "5.200343721050142e-73"
828            - values:
829                - "2.5148540784952656e14"
830                - "1.9183146899927395e15"
831                - "2.169800097842266e15"
832            - values:
833                - "-9.871449173048974e19"
834                - "4.913647830291874e20"
835                - "3.926502912986976e20"
836            - values:
837                - "3.9192234567792673e-47"
838                - "2.2575355997689083e-47"
839                - "6.176759056548176e-47"
840            - values:
841                - "1.8994371294860455e98"
842                - "1.127391615608706e98"
843                - "3.0268287450947515e98"
844            - values:
845                - "4.0229987819504645e-32"
846                - "-2.500939436262524e-32"
847                - "1.5220593456879406e-32"
848            - values:
849                - "-4.16291703977667e72"
850                - "-4.0235643039421143e73"
851                - "-4.4398560079197816e73"
852            - values:
853                - "4.6361619555237306e-8"
854                - "-6.780934771200086e-9"
855                - "3.958068478403722e-8"
856            - values:
857                - "-2.5549708954660045e19"
858                - "4.064694433264309e19"
859                - "1.5097235377983046e19"
860
861      - file-name: "type"
862        isa:
863            instructions:
864              - sig: fadd2.64 v:in:f64
865                acc: inout:f64
866                format: [op_v_8]
867            verification:
868              - acc_type
869              - v1_type
870        tags: ['verifier']
871        runner-options: ['verifier-failure', 'verifier-debug-config']
872        header-template: []
873        code-template: |
874          #
875          .record A {}
876          .record B {}
877          .record panda.String <external>
878          .record panda.Object <external>
879          .function i32 main() {
880              %s
881              *s
882              fadd2.64 v0
883        check-type: exit-positive
884        description: Check 'fadd2.64' with incorrect register and accumulator type.
885        template-cases:
886          - values:
887              - movi v0, 0
888          - values:
889              - movi.64 v0, 0
890          - values:
891              - fmovi.64 v0, 0
892            exclude: [val]
893          - values:
894              - |
895                #
896                    lda.type B
897                    sta.obj v0
898          - values:
899              - |
900                #
901                    lda.type B[]
902                    sta.obj v0
903          - values:
904              - |
905                #
906                    lda.type panda.String
907                    sta.obj v0
908          - values:
909              - |
910                #
911                    lda.str "string"
912                    sta.obj v0
913          - values:
914              - |
915                #
916                    movi v0, 10
917                    newarr v0, v0, i32[]
918          - values:
919              - mov.null v0
920
921        cases:
922          - values:
923              - ldai 0
924          - values:
925              - ldai.64 0
926          - values:
927              - fldai.64 0
928            id: val
929          - values:
930              - |
931                #
932                    lda.type A
933          - values:
934              - |
935                #
936                    lda.type A[]
937          - values:
938              - |
939                #
940                    lda.type panda.String
941          - values:
942              - |
943                #
944                    lda.str "string"
945          - values:
946              - |
947                #
948                    movi v1, 10
949                    newarr v1, v1, f64[]
950                    lda.obj v1
951          - values:
952              - lda.null
953
954      - file-name: uninitialized_regs
955        isa:
956          instructions:
957            - sig: fadd2.64 v:in:f64
958              acc: inout:f64
959              format: [op_v_8]
960        description: Check 'fadd2.64' with uninitialized register and accumulator.
961        tags: ['verifier']
962        runner-options: ['verifier-failure', 'verifier-debug-config']
963        header-template: []
964        code-template: |
965            #
966            .function i32 main() {
967                %s
968                *s
969                fadd2.64 %s
970        check-type: exit-positive
971        template-cases:
972          - values:
973              - ''
974              - v0
975          - values:
976              - fmovi.64 v0, 0
977              - v0
978            exclude: [init]
979          - values:
980              - ''
981              - v7
982          - values:
983              - ''
984              - v15
985          - values:
986              - fmovi.64 v15, 0
987              - v15
988            exclude: [init]
989          - values:
990              - ''
991              - v128
992          - values:
993              - fmovi.64 v128, 0
994              - v128
995            exclude: [init]
996          - values:
997              - ''
998              - v255
999          - values:
1000              - fmovi.64 v255, 0
1001              - v255
1002            exclude: [init]
1003        cases:
1004          - values:
1005              - ''
1006          - values:
1007              - fldai.64 0
1008            id: init
1009