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(
|
let NarrowInt = &TypeVar::new(
|
||||||
"NarrowInt",
|
"NarrowInt",
|
||||||
"An integer type with lanes type to `i64`",
|
"An integer type of width up to `i64`",
|
||||||
TypeSetBuilder::new()
|
TypeSetBuilder::new().ints(8..64).build(),
|
||||||
.ints(8..64)
|
|
||||||
.simd_lanes(Interval::All)
|
|
||||||
.dynamic_simd_lanes(Interval::All)
|
|
||||||
.build(),
|
|
||||||
);
|
);
|
||||||
|
|
||||||
let ScalarTruthy = &TypeVar::new(
|
let ScalarTruthy = &TypeVar::new(
|
||||||
@@ -3591,11 +3587,8 @@ pub(crate) fn define(
|
|||||||
|
|
||||||
let WideInt = &TypeVar::new(
|
let WideInt = &TypeVar::new(
|
||||||
"WideInt",
|
"WideInt",
|
||||||
"An integer type with lanes from `i16` upwards",
|
"An integer type of width `i16` upwards",
|
||||||
TypeSetBuilder::new()
|
TypeSetBuilder::new().ints(16..128).build(),
|
||||||
.ints(16..128)
|
|
||||||
.simd_lanes(Interval::All)
|
|
||||||
.build(),
|
|
||||||
);
|
);
|
||||||
|
|
||||||
ig.push(
|
ig.push(
|
||||||
|
|||||||
@@ -5,13 +5,13 @@ test cat
|
|||||||
; Defining numbers.
|
; Defining numbers.
|
||||||
function %defs() {
|
function %defs() {
|
||||||
block100(v20: i32):
|
block100(v20: i32):
|
||||||
v1000 = iconst.i32x8 5
|
v1000 = iconst.i32 5
|
||||||
v9200 = f64const 0x4.0p0
|
v9200 = f64const 0x4.0p0
|
||||||
trap user4
|
trap user4
|
||||||
}
|
}
|
||||||
; sameln: function %defs() fast {
|
; sameln: function %defs() fast {
|
||||||
; nextln: block100(v20: i32):
|
; nextln: block100(v20: i32):
|
||||||
; nextln: v1000 = iconst.i32x8 5
|
; nextln: v1000 = iconst.i32 5
|
||||||
; nextln: v9200 = f64const 0x1.0000000000000p2
|
; nextln: v9200 = f64const 0x1.0000000000000p2
|
||||||
; nextln: trap user4
|
; nextln: trap user4
|
||||||
; nextln: }
|
; nextln: }
|
||||||
|
|||||||
@@ -65,15 +65,13 @@ block0(v95: i32, v96: i32, v97: i8):
|
|||||||
; nextln: }
|
; nextln: }
|
||||||
|
|
||||||
; Lane indexes.
|
; Lane indexes.
|
||||||
function %lanes() {
|
function %lanes(i32x4) {
|
||||||
block0:
|
block0(v0: i32x4):
|
||||||
v0 = iconst.i32x4 2
|
|
||||||
v1 = extractlane v0, 3
|
v1 = extractlane v0, 3
|
||||||
v2 = insertlane v0, v1, 1
|
v2 = insertlane v0, v1, 1
|
||||||
}
|
}
|
||||||
; sameln: function %lanes() fast {
|
; sameln: function %lanes(i32x4) fast {
|
||||||
; nextln: block0:
|
; nextln: block0(v0: i32x4):
|
||||||
; nextln: v0 = iconst.i32x4 2
|
|
||||||
; nextln: v1 = extractlane v0, 3
|
; nextln: v1 = extractlane v0, 3
|
||||||
; nextln: v2 = insertlane v0, v1, 1
|
; nextln: v2 = insertlane v0, v1, 1
|
||||||
; nextln: }
|
; nextln: }
|
||||||
|
|||||||
Reference in New Issue
Block a user