Lines Matching +full:half +full:- +full:precision
1 // SPDX-License-Identifier: GPL-2.0
7 /* Check that precision marks propagate through scalar IDs.
10 * Check that precision mark for r0 causes precision marks for r{1,2}
153 /* Check that precision marks propagate through scalar IDs.
155 * precision information is propagated up the call stack.
161 __msg("frame2: last_idx 12 first_idx 11 subseq_idx -1 ")
233 * - bar frame r1 in precision_many_frames__bar()
234 * - foo frame r{1,6,7} in precision_many_frames__bar()
235 * - main frame r{1,6} in precision_many_frames__bar()
253 __msg("frame1: regs=r1 stack=-8,-16 before 8: (7b) *(u64 *)(r10 -16) = r1")
254 __msg("frame1: regs=r1 stack=-8 before 7: (7b) *(u64 *)(r10 -8) = r1")
257 __msg("frame0: regs=r1 stack=-8 before 3: (7b) *(u64 *)(r10 -8) = r1")
267 /* tie r0.id == r1.id == fp[-8].id */ in __flag()
269 "*(u64*)(r10 - 8) = r1;" in __flag()
285 "*(u64*)(r10 - 8) = r1;" in precision_stack__foo()
286 "*(u64*)(r10 - 16) = r1;" in precision_stack__foo()
289 * - foo frame r1,fp{-8,-16} in precision_stack__foo()
290 * - main frame r1,fp{-8} in precision_stack__foo()
335 /* propagate equal scalars precision */ in __flag()
357 /* check that r{0-5} are marked precise after 'if' */ in __flag()
366 /* tie r{0-6} IDs */ in __flag()
373 /* propagate range for r{0-6} */ in __flag()
378 * this would cause r{0-4} to be precise because of shared IDs in __flag()
405 * thus r7 precision implies r8 precision, in __flag()
406 * which implies r0 precision because of the conditional below. in __flag()
423 * operands does not trigger equal scalars precision propagation.
438 * this should not imply precision mark for r0 in cjmp_no_linked_regs_trigger()
470 "*(u64*)(r10 - 8) = r1;" in __flag()
473 "r9 += -8;" in __flag()
517 "*(u64*)(r10 - 8) = r1;" in __flag()
520 "r9 += -8;" in __flag()
600 /* Same as no_scalar_id_for_const() but for 32-bit values */
638 * - cached state has no id on r1
639 * - new state has a unique id on r1
665 * - first: r1 has no id (cached state) in __flag()
666 * - second: r1 has a unique id (should be considered equivalent) in __flag()
678 * - cached state has a unique id on r1
679 * - new state has no id on r1
707 * - first: r1 has a unique id (cached state) in __flag()
708 * - second: r1 has no id (should be considered equivalent) in __flag()
749 * - first: r6{.id=A}, r7{.id=B} (cached state) in __flag()
750 * - second: r6{.id=A}, r7{.id=A} in __flag()
774 * The test is written in a way to return an upper half of a register in __flag()
789 /* Verify that statements to randomize upper half of r1 had not been in __flag()
809 /* make sure r0 is in 32-bit range, otherwise w1 = w0 won't in __flag()
816 * but should not affect w1->subreg_def property. in __flag()