-
Notifications
You must be signed in to change notification settings - Fork 11k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[LoongArch] Add testcases of LSX intrinsics with immediates
The testcases mainly cover three situations: - the arguments which should be immediates are non immediates. - the immediate is out of upper limit of the argument type. - the immediate is out of lower limit of the argument type. Depends on D155829 Reviewed By: SixWeining Differential Revision: https://reviews.llvm.org/D157570
- Loading branch information
1 parent
4320722
commit 0c76f46
Showing
90 changed files
with
4,949 additions
and
0 deletions.
There are no files selected for viewing
65 changes: 65 additions & 0 deletions
65
llvm/test/CodeGen/LoongArch/lsx/intrinsic-addi-invalid-imm.ll
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
; RUN: not llc --mtriple=loongarch64 --mattr=+lsx < %s 2>&1 | FileCheck %s | ||
|
||
declare <16 x i8> @llvm.loongarch.lsx.vaddi.bu(<16 x i8>, i32) | ||
|
||
define <16 x i8> @lsx_vaddi_bu_lo(<16 x i8> %va) nounwind { | ||
; CHECK: llvm.loongarch.lsx.vaddi.bu: argument out of range | ||
entry: | ||
%res = call <16 x i8> @llvm.loongarch.lsx.vaddi.bu(<16 x i8> %va, i32 -1) | ||
ret <16 x i8> %res | ||
} | ||
|
||
define <16 x i8> @lsx_vaddi_bu_hi(<16 x i8> %va) nounwind { | ||
; CHECK: llvm.loongarch.lsx.vaddi.bu: argument out of range | ||
entry: | ||
%res = call <16 x i8> @llvm.loongarch.lsx.vaddi.bu(<16 x i8> %va, i32 32) | ||
ret <16 x i8> %res | ||
} | ||
|
||
declare <8 x i16> @llvm.loongarch.lsx.vaddi.hu(<8 x i16>, i32) | ||
|
||
define <8 x i16> @lsx_vaddi_hu_lo(<8 x i16> %va) nounwind { | ||
; CHECK: llvm.loongarch.lsx.vaddi.hu: argument out of range | ||
entry: | ||
%res = call <8 x i16> @llvm.loongarch.lsx.vaddi.hu(<8 x i16> %va, i32 -1) | ||
ret <8 x i16> %res | ||
} | ||
|
||
define <8 x i16> @lsx_vaddi_hu_hi(<8 x i16> %va) nounwind { | ||
; CHECK: llvm.loongarch.lsx.vaddi.hu: argument out of range | ||
entry: | ||
%res = call <8 x i16> @llvm.loongarch.lsx.vaddi.hu(<8 x i16> %va, i32 32) | ||
ret <8 x i16> %res | ||
} | ||
|
||
declare <4 x i32> @llvm.loongarch.lsx.vaddi.wu(<4 x i32>, i32) | ||
|
||
define <4 x i32> @lsx_vaddi_wu_lo(<4 x i32> %va) nounwind { | ||
; CHECK: llvm.loongarch.lsx.vaddi.wu: argument out of range | ||
entry: | ||
%res = call <4 x i32> @llvm.loongarch.lsx.vaddi.wu(<4 x i32> %va, i32 -1) | ||
ret <4 x i32> %res | ||
} | ||
|
||
define <4 x i32> @lsx_vaddi_wu_hi(<4 x i32> %va) nounwind { | ||
; CHECK: llvm.loongarch.lsx.vaddi.wu: argument out of range | ||
entry: | ||
%res = call <4 x i32> @llvm.loongarch.lsx.vaddi.wu(<4 x i32> %va, i32 32) | ||
ret <4 x i32> %res | ||
} | ||
|
||
declare <2 x i64> @llvm.loongarch.lsx.vaddi.du(<2 x i64>, i32) | ||
|
||
define <2 x i64> @lsx_vaddi_du_lo(<2 x i64> %va) nounwind { | ||
; CHECK: llvm.loongarch.lsx.vaddi.du: argument out of range | ||
entry: | ||
%res = call <2 x i64> @llvm.loongarch.lsx.vaddi.du(<2 x i64> %va, i32 -1) | ||
ret <2 x i64> %res | ||
} | ||
|
||
define <2 x i64> @lsx_vaddi_du_hi(<2 x i64> %va) nounwind { | ||
; CHECK: llvm.loongarch.lsx.vaddi.du: argument out of range | ||
entry: | ||
%res = call <2 x i64> @llvm.loongarch.lsx.vaddi.du(<2 x i64> %va, i32 32) | ||
ret <2 x i64> %res | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
; RUN: not llc --mtriple=loongarch64 --mattr=+lsx < %s 2>&1 | FileCheck %s | ||
|
||
declare <16 x i8> @llvm.loongarch.lsx.vaddi.bu(<16 x i8>, i32) | ||
|
||
define <16 x i8> @lsx_vaddi_bu(<16 x i8> %va, i32 %b) nounwind { | ||
; CHECK: immarg operand has non-immediate parameter | ||
entry: | ||
%res = call <16 x i8> @llvm.loongarch.lsx.vaddi.bu(<16 x i8> %va, i32 %b) | ||
ret <16 x i8> %res | ||
} | ||
|
||
declare <8 x i16> @llvm.loongarch.lsx.vaddi.hu(<8 x i16>, i32) | ||
|
||
define <8 x i16> @lsx_vaddi_hu(<8 x i16> %va, i32 %b) nounwind { | ||
; CHECK: immarg operand has non-immediate parameter | ||
entry: | ||
%res = call <8 x i16> @llvm.loongarch.lsx.vaddi.hu(<8 x i16> %va, i32 %b) | ||
ret <8 x i16> %res | ||
} | ||
|
||
declare <4 x i32> @llvm.loongarch.lsx.vaddi.wu(<4 x i32>, i32) | ||
|
||
define <4 x i32> @lsx_vaddi_wu(<4 x i32> %va, i32 %b) nounwind { | ||
; CHECK: immarg operand has non-immediate parameter | ||
entry: | ||
%res = call <4 x i32> @llvm.loongarch.lsx.vaddi.wu(<4 x i32> %va, i32 %b) | ||
ret <4 x i32> %res | ||
} | ||
|
||
declare <2 x i64> @llvm.loongarch.lsx.vaddi.du(<2 x i64>, i32) | ||
|
||
define <2 x i64> @lsx_vaddi_du(<2 x i64> %va, i32 %b) nounwind { | ||
; CHECK: immarg operand has non-immediate parameter | ||
entry: | ||
%res = call <2 x i64> @llvm.loongarch.lsx.vaddi.du(<2 x i64> %va, i32 %b) | ||
ret <2 x i64> %res | ||
} |
17 changes: 17 additions & 0 deletions
17
llvm/test/CodeGen/LoongArch/lsx/intrinsic-andi-invalid-imm.ll
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
; RUN: not llc --mtriple=loongarch64 --mattr=+lsx < %s 2>&1 | FileCheck %s | ||
|
||
declare <16 x i8> @llvm.loongarch.lsx.vandi.b(<16 x i8>, i32) | ||
|
||
define <16 x i8> @lsx_vandi_b_lo(<16 x i8> %va) nounwind { | ||
; CHECK: llvm.loongarch.lsx.vandi.b: argument out of range | ||
entry: | ||
%res = call <16 x i8> @llvm.loongarch.lsx.vandi.b(<16 x i8> %va, i32 -1) | ||
ret <16 x i8> %res | ||
} | ||
|
||
define <16 x i8> @lsx_vandi_b_hi(<16 x i8> %va) nounwind { | ||
; CHECK: llvm.loongarch.lsx.vandi.b: argument out of range | ||
entry: | ||
%res = call <16 x i8> @llvm.loongarch.lsx.vandi.b(<16 x i8> %va, i32 256) | ||
ret <16 x i8> %res | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
; RUN: not llc --mtriple=loongarch64 --mattr=+lsx < %s 2>&1 | FileCheck %s | ||
|
||
declare <16 x i8> @llvm.loongarch.lsx.vandi.b(<16 x i8>, i32) | ||
|
||
define <16 x i8> @lsx_vandi_b(<16 x i8> %va, i32 %b) nounwind { | ||
; CHECK: immarg operand has non-immediate parameter | ||
entry: | ||
%res = call <16 x i8> @llvm.loongarch.lsx.vandi.b(<16 x i8> %va, i32 %b) | ||
ret <16 x i8> %res | ||
} |
65 changes: 65 additions & 0 deletions
65
llvm/test/CodeGen/LoongArch/lsx/intrinsic-bitclr-invalid-imm.ll
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
; RUN: not llc --mtriple=loongarch64 --mattr=+lsx < %s 2>&1 | FileCheck %s | ||
|
||
declare <16 x i8> @llvm.loongarch.lsx.vbitclri.b(<16 x i8>, i32) | ||
|
||
define <16 x i8> @lsx_vbitclri_b_lo(<16 x i8> %va) nounwind { | ||
; CHECK: llvm.loongarch.lsx.vbitclri.b: argument out of range | ||
entry: | ||
%res = call <16 x i8> @llvm.loongarch.lsx.vbitclri.b(<16 x i8> %va, i32 -1) | ||
ret <16 x i8> %res | ||
} | ||
|
||
define <16 x i8> @lsx_vbitclri_b_hi(<16 x i8> %va) nounwind { | ||
; CHECK: llvm.loongarch.lsx.vbitclri.b: argument out of range | ||
entry: | ||
%res = call <16 x i8> @llvm.loongarch.lsx.vbitclri.b(<16 x i8> %va, i32 8) | ||
ret <16 x i8> %res | ||
} | ||
|
||
declare <8 x i16> @llvm.loongarch.lsx.vbitclri.h(<8 x i16>, i32) | ||
|
||
define <8 x i16> @lsx_vbitclri_h_lo(<8 x i16> %va) nounwind { | ||
; CHECK: llvm.loongarch.lsx.vbitclri.h: argument out of range | ||
entry: | ||
%res = call <8 x i16> @llvm.loongarch.lsx.vbitclri.h(<8 x i16> %va, i32 -1) | ||
ret <8 x i16> %res | ||
} | ||
|
||
define <8 x i16> @lsx_vbitclri_h_hi(<8 x i16> %va) nounwind { | ||
; CHECK: llvm.loongarch.lsx.vbitclri.h: argument out of range | ||
entry: | ||
%res = call <8 x i16> @llvm.loongarch.lsx.vbitclri.h(<8 x i16> %va, i32 16) | ||
ret <8 x i16> %res | ||
} | ||
|
||
declare <4 x i32> @llvm.loongarch.lsx.vbitclri.w(<4 x i32>, i32) | ||
|
||
define <4 x i32> @lsx_vbitclri_w_lo(<4 x i32> %va) nounwind { | ||
; CHECK: llvm.loongarch.lsx.vbitclri.w: argument out of range | ||
entry: | ||
%res = call <4 x i32> @llvm.loongarch.lsx.vbitclri.w(<4 x i32> %va, i32 -1) | ||
ret <4 x i32> %res | ||
} | ||
|
||
define <4 x i32> @lsx_vbitclri_w_hi(<4 x i32> %va) nounwind { | ||
; CHECK: llvm.loongarch.lsx.vbitclri.w: argument out of range | ||
entry: | ||
%res = call <4 x i32> @llvm.loongarch.lsx.vbitclri.w(<4 x i32> %va, i32 32) | ||
ret <4 x i32> %res | ||
} | ||
|
||
declare <2 x i64> @llvm.loongarch.lsx.vbitclri.d(<2 x i64>, i32) | ||
|
||
define <2 x i64> @lsx_vbitclri_d_lo(<2 x i64> %va) nounwind { | ||
; CHECK: llvm.loongarch.lsx.vbitclri.d: argument out of range | ||
entry: | ||
%res = call <2 x i64> @llvm.loongarch.lsx.vbitclri.d(<2 x i64> %va, i32 -1) | ||
ret <2 x i64> %res | ||
} | ||
|
||
define <2 x i64> @lsx_vbitclri_d_hi(<2 x i64> %va) nounwind { | ||
; CHECK: llvm.loongarch.lsx.vbitclri.d: argument out of range | ||
entry: | ||
%res = call <2 x i64> @llvm.loongarch.lsx.vbitclri.d(<2 x i64> %va, i32 64) | ||
ret <2 x i64> %res | ||
} |
37 changes: 37 additions & 0 deletions
37
llvm/test/CodeGen/LoongArch/lsx/intrinsic-bitclr-non-imm.ll
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
; RUN: not llc --mtriple=loongarch64 --mattr=+lsx < %s 2>&1 | FileCheck %s | ||
|
||
declare <16 x i8> @llvm.loongarch.lsx.vbitclri.b(<16 x i8>, i32) | ||
|
||
define <16 x i8> @lsx_vbitclri_b(<16 x i8> %va, i32 %b) nounwind { | ||
; CHECK: immarg operand has non-immediate parameter | ||
entry: | ||
%res = call <16 x i8> @llvm.loongarch.lsx.vbitclri.b(<16 x i8> %va, i32 %b) | ||
ret <16 x i8> %res | ||
} | ||
|
||
declare <8 x i16> @llvm.loongarch.lsx.vbitclri.h(<8 x i16>, i32) | ||
|
||
define <8 x i16> @lsx_vbitclri_h(<8 x i16> %va, i32 %b) nounwind { | ||
; CHECK: immarg operand has non-immediate parameter | ||
entry: | ||
%res = call <8 x i16> @llvm.loongarch.lsx.vbitclri.h(<8 x i16> %va, i32 %b) | ||
ret <8 x i16> %res | ||
} | ||
|
||
declare <4 x i32> @llvm.loongarch.lsx.vbitclri.w(<4 x i32>, i32) | ||
|
||
define <4 x i32> @lsx_vbitclri_w(<4 x i32> %va, i32 %b) nounwind { | ||
; CHECK: immarg operand has non-immediate parameter | ||
entry: | ||
%res = call <4 x i32> @llvm.loongarch.lsx.vbitclri.w(<4 x i32> %va, i32 %b) | ||
ret <4 x i32> %res | ||
} | ||
|
||
declare <2 x i64> @llvm.loongarch.lsx.vbitclri.d(<2 x i64>, i32) | ||
|
||
define <2 x i64> @lsx_vbitclri_d(<2 x i64> %va, i32 %b) nounwind { | ||
; CHECK: immarg operand has non-immediate parameter | ||
entry: | ||
%res = call <2 x i64> @llvm.loongarch.lsx.vbitclri.d(<2 x i64> %va, i32 %b) | ||
ret <2 x i64> %res | ||
} |
65 changes: 65 additions & 0 deletions
65
llvm/test/CodeGen/LoongArch/lsx/intrinsic-bitrev-invalid-imm.ll
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
; RUN: not llc --mtriple=loongarch64 --mattr=+lsx < %s 2>&1 | FileCheck %s | ||
|
||
declare <16 x i8> @llvm.loongarch.lsx.vbitrevi.b(<16 x i8>, i32) | ||
|
||
define <16 x i8> @lsx_vbitrevi_b_lo(<16 x i8> %va) nounwind { | ||
; CHECK: llvm.loongarch.lsx.vbitrevi.b: argument out of range | ||
entry: | ||
%res = call <16 x i8> @llvm.loongarch.lsx.vbitrevi.b(<16 x i8> %va, i32 -1) | ||
ret <16 x i8> %res | ||
} | ||
|
||
define <16 x i8> @lsx_vbitrevi_b_hi(<16 x i8> %va) nounwind { | ||
; CHECK: llvm.loongarch.lsx.vbitrevi.b: argument out of range | ||
entry: | ||
%res = call <16 x i8> @llvm.loongarch.lsx.vbitrevi.b(<16 x i8> %va, i32 8) | ||
ret <16 x i8> %res | ||
} | ||
|
||
declare <8 x i16> @llvm.loongarch.lsx.vbitrevi.h(<8 x i16>, i32) | ||
|
||
define <8 x i16> @lsx_vbitrevi_lo(<8 x i16> %va) nounwind { | ||
; CHECK: llvm.loongarch.lsx.vbitrevi.h: argument out of range | ||
entry: | ||
%res = call <8 x i16> @llvm.loongarch.lsx.vbitrevi.h(<8 x i16> %va, i32 -1) | ||
ret <8 x i16> %res | ||
} | ||
|
||
define <8 x i16> @lsx_vbitrevi_h_hi(<8 x i16> %va) nounwind { | ||
; CHECK: llvm.loongarch.lsx.vbitrevi.h: argument out of range | ||
entry: | ||
%res = call <8 x i16> @llvm.loongarch.lsx.vbitrevi.h(<8 x i16> %va, i32 16) | ||
ret <8 x i16> %res | ||
} | ||
|
||
declare <4 x i32> @llvm.loongarch.lsx.vbitrevi.w(<4 x i32>, i32) | ||
|
||
define <4 x i32> @lsx_vbitrevi_w_lo(<4 x i32> %va) nounwind { | ||
; CHECK: llvm.loongarch.lsx.vbitrevi.w: argument out of range | ||
entry: | ||
%res = call <4 x i32> @llvm.loongarch.lsx.vbitrevi.w(<4 x i32> %va, i32 -1) | ||
ret <4 x i32> %res | ||
} | ||
|
||
define <4 x i32> @lsx_vbitrevi_w_hi(<4 x i32> %va) nounwind { | ||
; CHECK: llvm.loongarch.lsx.vbitrevi.w: argument out of range | ||
entry: | ||
%res = call <4 x i32> @llvm.loongarch.lsx.vbitrevi.w(<4 x i32> %va, i32 32) | ||
ret <4 x i32> %res | ||
} | ||
|
||
declare <2 x i64> @llvm.loongarch.lsx.vbitrevi.d(<2 x i64>, i32) | ||
|
||
define <2 x i64> @lsx_vbitrevi_d_lo(<2 x i64> %va) nounwind { | ||
; CHECK: llvm.loongarch.lsx.vbitrevi.d: argument out of range | ||
entry: | ||
%res = call <2 x i64> @llvm.loongarch.lsx.vbitrevi.d(<2 x i64> %va, i32 -1) | ||
ret <2 x i64> %res | ||
} | ||
|
||
define <2 x i64> @lsx_vbitrevi_d_hi(<2 x i64> %va) nounwind { | ||
; CHECK: llvm.loongarch.lsx.vbitrevi.d: argument out of range | ||
entry: | ||
%res = call <2 x i64> @llvm.loongarch.lsx.vbitrevi.d(<2 x i64> %va, i32 64) | ||
ret <2 x i64> %res | ||
} |
37 changes: 37 additions & 0 deletions
37
llvm/test/CodeGen/LoongArch/lsx/intrinsic-bitrev-non-imm.ll
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
; RUN: not llc --mtriple=loongarch64 --mattr=+lsx < %s 2>&1 | FileCheck %s | ||
|
||
declare <16 x i8> @llvm.loongarch.lsx.vbitrevi.b(<16 x i8>, i32) | ||
|
||
define <16 x i8> @lsx_vbitrevi_b(<16 x i8> %va, i32 %b) nounwind { | ||
; CHECK: immarg operand has non-immediate parameter | ||
entry: | ||
%res = call <16 x i8> @llvm.loongarch.lsx.vbitrevi.b(<16 x i8> %va, i32 %b) | ||
ret <16 x i8> %res | ||
} | ||
|
||
declare <8 x i16> @llvm.loongarch.lsx.vbitrevi.h(<8 x i16>, i32) | ||
|
||
define <8 x i16> @lsx_vbitrevi_h(<8 x i16> %va, i32 %b) nounwind { | ||
; CHECK: immarg operand has non-immediate parameter | ||
entry: | ||
%res = call <8 x i16> @llvm.loongarch.lsx.vbitrevi.h(<8 x i16> %va, i32 %b) | ||
ret <8 x i16> %res | ||
} | ||
|
||
declare <4 x i32> @llvm.loongarch.lsx.vbitrevi.w(<4 x i32>, i32) | ||
|
||
define <4 x i32> @lsx_vbitrevi_w(<4 x i32> %va, i32 %b) nounwind { | ||
; CHECK: immarg operand has non-immediate parameter | ||
entry: | ||
%res = call <4 x i32> @llvm.loongarch.lsx.vbitrevi.w(<4 x i32> %va, i32 %b) | ||
ret <4 x i32> %res | ||
} | ||
|
||
declare <2 x i64> @llvm.loongarch.lsx.vbitrevi.d(<2 x i64>, i32) | ||
|
||
define <2 x i64> @lsx_vbitrevi_d(<2 x i64> %va, i32 %b) nounwind { | ||
; CHECK: immarg operand has non-immediate parameter | ||
entry: | ||
%res = call <2 x i64> @llvm.loongarch.lsx.vbitrevi.d(<2 x i64> %va, i32 %b) | ||
ret <2 x i64> %res | ||
} |
17 changes: 17 additions & 0 deletions
17
llvm/test/CodeGen/LoongArch/lsx/intrinsic-bitseli-invalid-imm.ll
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
; RUN: not llc --mtriple=loongarch64 --mattr=+lsx < %s 2>&1 | FileCheck %s | ||
|
||
declare <16 x i8> @llvm.loongarch.lsx.vbitseli.b(<16 x i8>, <16 x i8>, i32) | ||
|
||
define <16 x i8> @lsx_vbitseli_b_lo(<16 x i8> %va, <16 x i8> %vb) nounwind { | ||
; CHECK: llvm.loongarch.lsx.vbitseli.b: argument out of range | ||
entry: | ||
%res = call <16 x i8> @llvm.loongarch.lsx.vbitseli.b(<16 x i8> %va, <16 x i8> %vb, i32 -1) | ||
ret <16 x i8> %res | ||
} | ||
|
||
define <16 x i8> @lsx_vbitseli_b_hi(<16 x i8> %va, <16 x i8> %vb) nounwind { | ||
; CHECK: llvm.loongarch.lsx.vbitseli.b: argument out of range | ||
entry: | ||
%res = call <16 x i8> @llvm.loongarch.lsx.vbitseli.b(<16 x i8> %va, <16 x i8> %vb, i32 256) | ||
ret <16 x i8> %res | ||
} |
10 changes: 10 additions & 0 deletions
10
llvm/test/CodeGen/LoongArch/lsx/intrinsic-bitseli-non-imm.ll
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
; RUN: not llc --mtriple=loongarch64 --mattr=+lsx < %s 2>&1 | FileCheck %s | ||
|
||
declare <16 x i8> @llvm.loongarch.lsx.vbitseli.b(<16 x i8>, <16 x i8>, i32) | ||
|
||
define <16 x i8> @lsx_vbitseli_b(<16 x i8> %va, <16 x i8> %vb, i32 %c) nounwind { | ||
; CHECK: immarg operand has non-immediate parameter | ||
entry: | ||
%res = call <16 x i8> @llvm.loongarch.lsx.vbitseli.b(<16 x i8> %va, <16 x i8> %vb, i32 %c) | ||
ret <16 x i8> %res | ||
} |
Oops, something went wrong.