1; RUN: not llc --mtriple=loongarch64 --mattr=+lasx < %s 2>&1 | FileCheck %s 2 3declare i32 @llvm.loongarch.lasx.xvpickve2gr.w(<8 x i32>, i32) 4 5define i32 @lasx_xvpickve2gr_w_lo(<8 x i32> %va) nounwind { 6; CHECK: llvm.loongarch.lasx.xvpickve2gr.w: argument out of range 7entry: 8 %res = call i32 @llvm.loongarch.lasx.xvpickve2gr.w(<8 x i32> %va, i32 -1) 9 ret i32 %res 10} 11 12define i32 @lasx_xvpickve2gr_w_hi(<8 x i32> %va) nounwind { 13; CHECK: llvm.loongarch.lasx.xvpickve2gr.w: argument out of range 14entry: 15 %res = call i32 @llvm.loongarch.lasx.xvpickve2gr.w(<8 x i32> %va, i32 8) 16 ret i32 %res 17} 18 19declare i64 @llvm.loongarch.lasx.xvpickve2gr.d(<4 x i64>, i32) 20 21define i64 @lasx_xvpickve2gr_d_lo(<4 x i64> %va) nounwind { 22; CHECK: llvm.loongarch.lasx.xvpickve2gr.d: argument out of range 23entry: 24 %res = call i64 @llvm.loongarch.lasx.xvpickve2gr.d(<4 x i64> %va, i32 -1) 25 ret i64 %res 26} 27 28define i64 @lasx_xvpickve2gr_d_hi(<4 x i64> %va) nounwind { 29; CHECK: llvm.loongarch.lasx.xvpickve2gr.d: argument out of range 30entry: 31 %res = call i64 @llvm.loongarch.lasx.xvpickve2gr.d(<4 x i64> %va, i32 4) 32 ret i64 %res 33} 34 35declare i32 @llvm.loongarch.lasx.xvpickve2gr.wu(<8 x i32>, i32) 36 37define i32 @lasx_xvpickve2gr_wu_lo(<8 x i32> %va) nounwind { 38; CHECK: llvm.loongarch.lasx.xvpickve2gr.wu: argument out of range 39entry: 40 %res = call i32 @llvm.loongarch.lasx.xvpickve2gr.wu(<8 x i32> %va, i32 -1) 41 ret i32 %res 42} 43 44define i32 @lasx_xvpickve2gr_wu_hi(<8 x i32> %va) nounwind { 45; CHECK: llvm.loongarch.lasx.xvpickve2gr.wu: argument out of range 46entry: 47 %res = call i32 @llvm.loongarch.lasx.xvpickve2gr.wu(<8 x i32> %va, i32 8) 48 ret i32 %res 49} 50 51declare i64 @llvm.loongarch.lasx.xvpickve2gr.du(<4 x i64>, i32) 52 53define i64 @lasx_xvpickve2gr_du_lo(<4 x i64> %va) nounwind { 54; CHECK: llvm.loongarch.lasx.xvpickve2gr.du: argument out of range 55entry: 56 %res = call i64 @llvm.loongarch.lasx.xvpickve2gr.du(<4 x i64> %va, i32 -1) 57 ret i64 %res 58} 59 60define i64 @lasx_xvpickve2gr_du_hi(<4 x i64> %va) nounwind { 61; CHECK: llvm.loongarch.lasx.xvpickve2gr.du: argument out of range 62entry: 63 %res = call i64 @llvm.loongarch.lasx.xvpickve2gr.du(<4 x i64> %va, i32 4) 64 ret i64 %res 65} 66