1# mach: aarch64 2 3# Check the FP store unscaled offset instructions: fsturs, fsturd, fsturq. 4# Check the values -1, and XXX_MAX, which tests all bits. 5# Check with offsets -256 and 255, which tests all bits. 6# Also tests the FP load unscaled offset instructions: fldurs, fldurd, fldurq. 7 8.include "testutils.inc" 9 10 .data 11 .align 4 12fm1: 13 .word 3212836864 14fmax: 15 .word 2139095039 16ftmp: 17 .word 0 18 19dm1: 20 .word 0 21 .word -1074790400 22dmax: 23 .word 4294967295 24 .word 2146435071 25dtmp: 26 .word 0 27 .word 0 28 29ldm1: 30 .word 0 31 .word 0 32 .word 0 33 .word -1073807360 34ldmax: 35 .word 4294967295 36 .word 4294967295 37 .word 4294967295 38 .word 2147418111 39ldtmp: 40 .word 0 41 .word 0 42 .word 0 43 .word 0 44 45 start 46 adrp x1, ftmp 47 add x1, x1, :lo12:ftmp 48 49 adrp x0, fm1 50 add x0, x0, :lo12:fm1 51 sub x5, x0, #255 52 sub x6, x1, #255 53 movi d2, #0 54 ldur s2, [x5, #255] 55 stur s2, [x6, #255] 56 ldr w3, [x0] 57 ldr w4, [x1] 58 cmp w3, w4 59 bne .Lfailure 60 61 adrp x0, fmax 62 add x0, x0, :lo12:fmax 63 add x5, x0, #256 64 add x6, x1, #256 65 movi d2, #0 66 ldur s2, [x5, #-256] 67 stur s2, [x6, #-256] 68 ldr w3, [x0] 69 ldr w4, [x1] 70 cmp w3, w4 71 bne .Lfailure 72 73 adrp x1, dtmp 74 add x1, x1, :lo12:dtmp 75 76 adrp x0, dm1 77 add x0, x0, :lo12:dm1 78 sub x5, x0, #255 79 sub x6, x1, #255 80 movi d2, #0 81 ldur d2, [x5, #255] 82 stur d2, [x6, #255] 83 ldr x3, [x0] 84 ldr x4, [x1] 85 cmp x3, x4 86 bne .Lfailure 87 88 adrp x0, dmax 89 add x0, x0, :lo12:dmax 90 add x5, x0, #256 91 add x6, x1, #256 92 movi d2, #0 93 ldur d2, [x5, #-256] 94 stur d2, [x6, #-256] 95 ldr x3, [x0] 96 ldr x4, [x1] 97 cmp x3, x4 98 bne .Lfailure 99 100 adrp x1, ldtmp 101 add x1, x1, :lo12:ldtmp 102 103 adrp x0, ldm1 104 add x0, x0, :lo12:ldm1 105 sub x5, x0, #255 106 sub x6, x1, #255 107 movi v2.2d, #0 108 ldur q2, [x5, #255] 109 stur q2, [x6, #255] 110 ldr x3, [x0] 111 ldr x4, [x1] 112 cmp x3, x4 113 bne .Lfailure 114 ldr x3, [x0, 8] 115 ldr x4, [x1, 8] 116 cmp x3, x4 117 bne .Lfailure 118 119 adrp x0, ldmax 120 add x0, x0, :lo12:ldmax 121 add x5, x0, #256 122 add x6, x1, #256 123 movi v2.2d, #0 124 ldur q2, [x5, #-256] 125 stur q2, [x6, #-256] 126 ldr x3, [x0] 127 ldr x4, [x1] 128 cmp x3, x4 129 bne .Lfailure 130 ldr x3, [x0, 8] 131 ldr x4, [x1, 8] 132 cmp x3, x4 133 bne .Lfailure 134 135 pass 136.Lfailure: 137 fail 138