Jessica Paquette 60aa646441 [GlobalISel] Add G_ASSERT_SEXT
This adds a G_ASSERT_SEXT opcode, similar to G_ASSERT_ZEXT. This instruction
signifies that an operation was already sign extended from a smaller type.

This is useful for functions with sign-extended parameters.

E.g.

```
define void @foo(i16 signext %x) {
 ...
}
```

This adds verifier, regbankselect, and instruction selection support for
G_ASSERT_SEXT equivalent to G_ASSERT_ZEXT.

Differential Revision: https://reviews.llvm.org/D96890
2021-02-17 13:10:34 -08:00
..
2021-02-17 13:10:34 -08:00
2020-12-08 11:54:39 +00:00
2019-06-17 09:13:29 +00:00
2021-02-15 14:27:12 +08:00
2019-10-08 13:23:57 +00:00
2019-07-17 19:24:02 +00:00
2019-08-15 10:12:26 +00:00
2020-02-03 11:01:05 +01:00
2019-12-05 18:10:06 +00:00
2021-01-13 10:57:49 +00:00
2019-07-17 19:24:02 +00:00
2020-12-08 10:28:26 +00:00

++ SVE CodeGen Warnings ++

When the WARN check lines fail in the SVE codegen tests it most likely means you
have introduced a warning due to:
1. Adding an invalid call to VectorType::getNumElements() or EVT::getVectorNumElements()
   when the type is a scalable vector.
2. Relying upon an implicit cast conversion from TypeSize to uint64_t.

For generic code, please modify your code to work with ElementCount and TypeSize directly.
For target-specific code that only deals with fixed-width vectors, use the fixed-size interfaces.
Please refer to the code where those functions live for more details.