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