This is an archive of the discontinued LLVM Phabricator instance.

GlobalISel: Translate vector GEPs
ClosedPublic

Authored by arsenm on Jan 24 2020, 8:24 PM.

Diff Detail

Event Timeline

arsenm created this revision.Jan 24 2020, 8:24 PM
aemerson accepted this revision.Jan 26 2020, 9:48 PM

LGTM.

This revision is now accepted and ready to land.Jan 26 2020, 9:48 PM

This is causing an assertion error in consumer-typeset for AArch64 at -O3.

llvm-test-suite/MultiSource/Benchmarks/MiBench/consumer-typeset/z29.c

Assertion failed: (Res.getLLTTy(*getMRI()).isScalar() == Op.getLLTTy(*getMRI()).isScalar()), function buildExtOrTrunc, file /Users/gruyere/llvm-project/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp, line 460.

Any thoughts?

This is causing an assertion error in consumer-typeset for AArch64 at -O3.

llvm-test-suite/MultiSource/Benchmarks/MiBench/consumer-typeset/z29.c

Assertion failed: (Res.getLLTTy(*getMRI()).isScalar() == Op.getLLTTy(*getMRI()).isScalar()), function buildExtOrTrunc, file /Users/gruyere/llvm-project/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp, line 460.

Any thoughts?

What does the failing GEP look like?

This is causing an assertion error in consumer-typeset for AArch64 at -O3.

llvm-test-suite/MultiSource/Benchmarks/MiBench/consumer-typeset/z29.c

Assertion failed: (Res.getLLTTy(*getMRI()).isScalar() == Op.getLLTTy(*getMRI()).isScalar()), function buildExtOrTrunc, file /Users/gruyere/llvm-project/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp, line 460.

Any thoughts?

What does the failing GEP look like?

I've pushed a fix in 84bd8511085. Post-commit review welcome, but I wanted to fix the crashes ASAP.

The issue was that vector GEPs can take the form of scalar base ptrs + vector offsets.