Skip to content

missing simplifications #529

@redianthus

Description

@redianthus

Hi @filipeom,

I'm seeing this kind of expressions:

owi: [ERROR] Assert failure: (bool.ne
                              (i32.add
                               (i32.add
                                (i32.add (i32.sub symbol_0 6)
                                 (i32.add (i32.sub symbol_0 7)
                                  (i32.sub symbol_0 6)))
                                (i32.add
                                 (i32.add (i32.sub symbol_0 7)
                                  (i32.sub symbol_0 6))
                                 (i32.add (i32.sub symbol_0 6)
                                  (i32.add (i32.sub symbol_0 7)
                                   (i32.sub symbol_0 6)))))
                               (i32.add
                                (i32.add
                                 (i32.add (i32.sub symbol_0 7)
                                  (i32.sub symbol_0 6))
                                 (i32.add (i32.sub symbol_0 6)
                                  (i32.add (i32.sub symbol_0 7)
                                   (i32.sub symbol_0 6))))
                                (i32.add
                                 (i32.add (i32.sub symbol_0 6)
                                  (i32.add (i32.sub symbol_0 7)
                                   (i32.sub symbol_0 6)))
                                 (i32.add
                                  (i32.add (i32.sub symbol_0 7)
                                   (i32.sub symbol_0 6))
                                  (i32.add (i32.sub symbol_0 6)
                                   (i32.add (i32.sub symbol_0 7)
                                    (i32.sub symbol_0 6))))))) 13)

The only symbol here is symbol_0 so I'm almost sure this could be simplified much more.

For instance:

(i32.add (i32.sub symbol_0 7) (i32.sub symbol_0 6))

Is basically: (x - 7) + (x - 6)

And it should be simplified at least into:

(x + (x - 13))

And then, we could probably simplify much more. WDYT? I'm not sure how annoying it would be to add this kind of simplifications...

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions