for i, mask in enumerate(mask_list):
                         if test_fn(a, b, mask):
                             # OR y with the lowest set bit in the mask
-                            y |= (maskbit_list[i] & ~(maskbit_list[i]-1))
+                            y |= maskbit_list[i]
                     # check the result
                     outval = (yield getattr(module, "%s_output" % mod_attr))
                     msg = f"{msg_prefix}: {mod_attr} 0x{a:X} == 0x{b:X}" + \
 
 from ieee754.part_mul_add.partpoints import PartitionPoints
 from ieee754.part_cmp.gt_combiner import GTCombiner
 from ieee754.part_cmp.reorder_results import ReorderResults
+from ieee754.part_cmp.ripple import RippleLSB
 
 
 class PartitionedEqGtGe(Elaboratable):
 
         comb += self.output[0].eq(current_result)
 
         for i in range(width-1):
-            cur = Signal("cur%d" % i)
+            cur = Signal(name="cur%d" % i)
             comb += cur.eq(current_result)
             current_result = Mux(self.gates[i], self.results_in[i+1], cur)
             comb += self.output[i+1].eq(current_result)