
Previously we expected lane constants to be in the range of signed values for each lane size, but the included test case produced large unsigned values that fall outside that range. Allow instruction selection to proceed in this case rather than failing. Fixes #63817.
16 lines
643 B
LLVM
16 lines
643 B
LLVM
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
|
; RUN: llc < %s -mtriple=wasm32 -mattr=+simd128 | FileCheck %s
|
|
|
|
;; Regression test for a bug in which BUILD_VECTOR nodes with large unsigned
|
|
;; lane constants were not properly selected.
|
|
define <4 x i8> @test(<4 x i8> %0) {
|
|
; CHECK-LABEL: test:
|
|
; CHECK: .functype test (v128) -> (v128)
|
|
; CHECK-NEXT: # %bb.0:
|
|
; CHECK-NEXT: v128.const 255, 17, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
|
; CHECK-NEXT: # fallthrough-return
|
|
%V1 = or <4 x i8> <i8 255, i8 255, i8 255, i8 255>, %0
|
|
%V2 = insertelement <4 x i8> %V1, i8 17, i32 1
|
|
ret <4 x i8> %V2
|
|
}
|