|
| 1 | +/* Copyright lowRISC contributors (OpenTitan project). */ |
| 2 | +/* Licensed under the Apache License, Version 2.0, see LICENSE for details. */ |
| 3 | +/* SPDX-License-Identifier: Apache-2.0 */ |
| 4 | + |
| 5 | +/* AUTOGENERATED with generate_bn_simd_tests.py --seed 5627 */ |
| 6 | + |
| 7 | +.section .text.start |
| 8 | +/* Load vectors */ |
| 9 | +addi x2, x0, 0 |
| 10 | +la x3, vec32a0 |
| 11 | +bn.lid x2++, 0(x3) |
| 12 | +la x3, vec32b0 |
| 13 | +bn.lid x2++, 0(x3) |
| 14 | +la x3, vec32a1 |
| 15 | +bn.lid x2++, 0(x3) |
| 16 | +la x3, vec32b1 |
| 17 | +bn.lid x2++, 0(x3) |
| 18 | +/* Run test */ |
| 19 | +bn.mulvl.8s w20, w0, w1, 0 |
| 20 | +bn.mulvl.8s w21, w2, w3, 6 |
| 21 | +/* Clean up */ |
| 22 | +addi x2, x0, 0 /* reset x2 */ |
| 23 | +addi x3, x0, 0 /* reset x3 */ |
| 24 | + |
| 25 | +ecall |
| 26 | + |
| 27 | +.section .data |
| 28 | +/* |
| 29 | + 32-bit vector vec32a0 for instruction bn.mulvl.8s |
| 30 | + vec32a0 = [104622721, 1304787209, 3797772780, 4229041123, 2663319404, 3677656661, 666882132, 3585966104] |
| 31 | + vec32a0 = 0x063c6a814dc57909e25d69ecfc120be39ebf076cdb34965527bfd054d5bd8018 |
| 32 | +*/ |
| 33 | +vec32a0: |
| 34 | + .word 0xd5bd8018 |
| 35 | + .word 0x27bfd054 |
| 36 | + .word 0xdb349655 |
| 37 | + .word 0x9ebf076c |
| 38 | + .word 0xfc120be3 |
| 39 | + .word 0xe25d69ec |
| 40 | + .word 0x4dc57909 |
| 41 | + .word 0x063c6a81 |
| 42 | +/* |
| 43 | + 32-bit vector vec32a1 for instruction bn.mulvl.8s |
| 44 | + vec32a1 = [104622721, 1304787209, 3797772780, 4229041123, 2663319404, 3677656661, 666882132, 3585966104] |
| 45 | + vec32a1 = 0x063c6a814dc57909e25d69ecfc120be39ebf076cdb34965527bfd054d5bd8018 |
| 46 | +*/ |
| 47 | +vec32a1: |
| 48 | + .word 0xd5bd8018 |
| 49 | + .word 0x27bfd054 |
| 50 | + .word 0xdb349655 |
| 51 | + .word 0x9ebf076c |
| 52 | + .word 0xfc120be3 |
| 53 | + .word 0xe25d69ec |
| 54 | + .word 0x4dc57909 |
| 55 | + .word 0x063c6a81 |
| 56 | +/* |
| 57 | + 32-bit vector vec32b0 for instruction bn.mulvl.8s |
| 58 | + vec32b0 = [2929707732, 4208449909, 3085533257, 2486723141, 1887346712, 1231836830, 2000301495, 497738057] |
| 59 | + vec32b0 = 0xae9fcad4fad7d975b7e9804994386245707ea018496c569e773a2db71daae149 |
| 60 | +*/ |
| 61 | +vec32b0: |
| 62 | + .word 0x1daae149 |
| 63 | + .word 0x773a2db7 |
| 64 | + .word 0x496c569e |
| 65 | + .word 0x707ea018 |
| 66 | + .word 0x94386245 |
| 67 | + .word 0xb7e98049 |
| 68 | + .word 0xfad7d975 |
| 69 | + .word 0xae9fcad4 |
| 70 | +/* |
| 71 | + 32-bit vector vec32b1 for instruction bn.mulvl.8s |
| 72 | + vec32b1 = [2929707732, 4208449909, 3085533257, 2486723141, 1887346712, 1231836830, 2000301495, 497738057] |
| 73 | + vec32b1 = 0xae9fcad4fad7d975b7e9804994386245707ea018496c569e773a2db71daae149 |
| 74 | +*/ |
| 75 | +vec32b1: |
| 76 | + .word 0x1daae149 |
| 77 | + .word 0x773a2db7 |
| 78 | + .word 0x496c569e |
| 79 | + .word 0x707ea018 |
| 80 | + .word 0x94386245 |
| 81 | + .word 0xb7e98049 |
| 82 | + .word 0xfad7d975 |
| 83 | + .word 0xae9fcad4 |
| 84 | +/* |
| 85 | + Result of bn.mulvl.8s (w20) |
| 86 | + res = [931119049, 564817041, 3111362636, 1498801851, 1404504524, 798069565, 3348380660, 1217306328] |
| 87 | + res = 0x377fbfc921aa6c91b973a04c5955e6bb53b709cc2f91933dc7943bf4488e9ed8 |
| 88 | +*/ |
| 89 | +/* |
| 90 | + Result of bn.mulvl.8s (w21) |
| 91 | + res = [2084242933, 1600647709, 279868636, 704108991, 776794204, 98157017, 3234687588, 1431823096] |
| 92 | + res = 0x7c3b05f55f67f21d10ae74dc29f7d9bf2e4cf05c05d9c1d9c0cd6a645557e2f8 |
| 93 | +*/ |
0 commit comments