cranelift: Remove booleans (#5031)
Remove the boolean types from cranelift, and the associated instructions breduce, bextend, bconst, and bint. Standardize on using 1/0 for the return value from instructions that produce scalar boolean results, and -1/0 for boolean vector elements. Fixes #3205 Co-authored-by: Afonso Bordado <afonso360@users.noreply.github.com> Co-authored-by: Ulrich Weigand <ulrich.weigand@de.ibm.com> Co-authored-by: Chris Fallin <chris@cfallin.org>
This commit is contained in:
@@ -170,10 +170,6 @@
|
||||
(if (u8_lt lz lx))
|
||||
(iadd ty (iadd ty y z) x))
|
||||
|
||||
;; Select's selector input doesn't need bint; remove the redundant op.
|
||||
(rule (simplify (select ty (bint _ b) x y))
|
||||
(subsume (select ty b x y)))
|
||||
|
||||
;; Rematerialize ALU-op-with-imm and iconsts in each block where they're
|
||||
;; used. This is neutral (add-with-imm) or positive (iconst) for
|
||||
;; register pressure, and these ops are very cheap.
|
||||
|
||||
Reference in New Issue
Block a user