Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td
Original file line number Diff line number Diff line change
Expand Up @@ -1404,10 +1404,12 @@ def : Pat<(and (v32i8 LASX256:$xj), (v32i8 (SplatPat_uimm8 uimm8:$imm))),
// XVORI_B
def : Pat<(or (v32i8 LASX256:$xj), (v32i8 (SplatPat_uimm8 uimm8:$imm))),
(XVORI_B LASX256:$xj, uimm8:$imm)>;

// XVXORI_B
def : Pat<(xor (v32i8 LASX256:$xj), (v32i8 (SplatPat_uimm8 uimm8:$imm))),
(XVXORI_B LASX256:$xj, uimm8:$imm)>;
// XVNORI_B
def : Pat<(vnot (or (v32i8 LASX256:$xj), (v32i8 (SplatPat_uimm8 uimm8:$imm)))),
(XVNORI_B LASX256:$xj, uimm8:$imm)>;

// XVBSLL_V
foreach vt = [v32i8, v16i16, v8i32, v4i64, v8f32,
Expand Down
4 changes: 3 additions & 1 deletion llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td
Original file line number Diff line number Diff line change
Expand Up @@ -1598,10 +1598,12 @@ def : Pat<(and (v16i8 LSX128:$vj), (v16i8 (SplatPat_uimm8 uimm8:$imm))),
// VORI_B
def : Pat<(or (v16i8 LSX128:$vj), (v16i8 (SplatPat_uimm8 uimm8:$imm))),
(VORI_B LSX128:$vj, uimm8:$imm)>;

// VXORI_B
def : Pat<(xor (v16i8 LSX128:$vj), (v16i8 (SplatPat_uimm8 uimm8:$imm))),
(VXORI_B LSX128:$vj, uimm8:$imm)>;
// VNORI_B
def : Pat<(vnot (or (v16i8 LSX128:$vj), (v16i8 (SplatPat_uimm8 uimm8:$imm)))),
(VNORI_B LSX128:$vj, uimm8:$imm)>;

// VBSLL_V
foreach vt = [v16i8, v8i16, v4i32, v2i64, v4f32,
Expand Down
3 changes: 1 addition & 2 deletions llvm/test/CodeGen/LoongArch/lasx/ir-instruction/nor.ll
Original file line number Diff line number Diff line change
Expand Up @@ -74,8 +74,7 @@ define void @nor_u_v32i8(ptr %res, ptr %a0) nounwind {
; CHECK-LABEL: nor_u_v32i8:
; CHECK: # %bb.0: # %entry
; CHECK-NEXT: xvld $xr0, $a1, 0
; CHECK-NEXT: xvrepli.b $xr1, 31
; CHECK-NEXT: xvnor.v $xr0, $xr0, $xr1
; CHECK-NEXT: xvnori.b $xr0, $xr0, 31
; CHECK-NEXT: xvst $xr0, $a0, 0
; CHECK-NEXT: ret
entry:
Expand Down
3 changes: 1 addition & 2 deletions llvm/test/CodeGen/LoongArch/lsx/ir-instruction/nor.ll
Original file line number Diff line number Diff line change
Expand Up @@ -74,8 +74,7 @@ define void @nor_u_v16i8(ptr %res, ptr %a0) nounwind {
; CHECK-LABEL: nor_u_v16i8:
; CHECK: # %bb.0: # %entry
; CHECK-NEXT: vld $vr0, $a1, 0
; CHECK-NEXT: vrepli.b $vr1, 31
; CHECK-NEXT: vnor.v $vr0, $vr0, $vr1
; CHECK-NEXT: vnori.b $vr0, $vr0, 31
; CHECK-NEXT: vst $vr0, $a0, 0
; CHECK-NEXT: ret
entry:
Expand Down