Restrict the types for isplit and iconcat to match backends (#6070)
* Restrict the types for isplit and iconcat to match backends * Admit unimplemented bitwidths to isplit/iconcat * Modify the NarrowInt type instead of shadowing it * Fix filetest failures
This commit is contained in:
@@ -647,12 +647,8 @@ pub(crate) fn define(
|
||||
|
||||
let NarrowInt = &TypeVar::new(
|
||||
"NarrowInt",
|
||||
"An integer type with lanes type to `i64`",
|
||||
TypeSetBuilder::new()
|
||||
.ints(8..64)
|
||||
.simd_lanes(Interval::All)
|
||||
.dynamic_simd_lanes(Interval::All)
|
||||
.build(),
|
||||
"An integer type of width up to `i64`",
|
||||
TypeSetBuilder::new().ints(8..64).build(),
|
||||
);
|
||||
|
||||
let ScalarTruthy = &TypeVar::new(
|
||||
@@ -3591,11 +3587,8 @@ pub(crate) fn define(
|
||||
|
||||
let WideInt = &TypeVar::new(
|
||||
"WideInt",
|
||||
"An integer type with lanes from `i16` upwards",
|
||||
TypeSetBuilder::new()
|
||||
.ints(16..128)
|
||||
.simd_lanes(Interval::All)
|
||||
.build(),
|
||||
"An integer type of width `i16` upwards",
|
||||
TypeSetBuilder::new().ints(16..128).build(),
|
||||
);
|
||||
|
||||
ig.push(
|
||||
|
||||
@@ -5,13 +5,13 @@ test cat
|
||||
; Defining numbers.
|
||||
function %defs() {
|
||||
block100(v20: i32):
|
||||
v1000 = iconst.i32x8 5
|
||||
v1000 = iconst.i32 5
|
||||
v9200 = f64const 0x4.0p0
|
||||
trap user4
|
||||
}
|
||||
; sameln: function %defs() fast {
|
||||
; nextln: block100(v20: i32):
|
||||
; nextln: v1000 = iconst.i32x8 5
|
||||
; nextln: v1000 = iconst.i32 5
|
||||
; nextln: v9200 = f64const 0x1.0000000000000p2
|
||||
; nextln: trap user4
|
||||
; nextln: }
|
||||
|
||||
@@ -65,15 +65,13 @@ block0(v95: i32, v96: i32, v97: i8):
|
||||
; nextln: }
|
||||
|
||||
; Lane indexes.
|
||||
function %lanes() {
|
||||
block0:
|
||||
v0 = iconst.i32x4 2
|
||||
function %lanes(i32x4) {
|
||||
block0(v0: i32x4):
|
||||
v1 = extractlane v0, 3
|
||||
v2 = insertlane v0, v1, 1
|
||||
}
|
||||
; sameln: function %lanes() fast {
|
||||
; nextln: block0:
|
||||
; nextln: v0 = iconst.i32x4 2
|
||||
; sameln: function %lanes(i32x4) fast {
|
||||
; nextln: block0(v0: i32x4):
|
||||
; nextln: v1 = extractlane v0, 3
|
||||
; nextln: v2 = insertlane v0, v1, 1
|
||||
; nextln: }
|
||||
|
||||
Reference in New Issue
Block a user