================ @@ -91,6 +91,116 @@ define i32 @exthz(i16 %a) { ret i32 %1 } +declare i32 @llvm.riscv.cv.alu.slet(i32, i32) + +define i32 @test.cv.alu.slet(i32 %a, i32 %b) { +; CHECK-LABEL: test.cv.alu.slet: +; CHECK: # %bb.0: +; CHECK-NEXT: cv.slet a0, a0, a1 +; CHECK-NEXT: ret + %1 = call i32 @llvm.riscv.cv.alu.slet(i32 %a, i32 %b) + ret i32 %1 +} + +declare i32 @llvm.riscv.cv.alu.sletu(i32, i32) + +define i32 @test.cv.alu.sletu(i32 %a, i32 %b) { +; CHECK-LABEL: test.cv.alu.sletu: +; CHECK: # %bb.0: +; CHECK-NEXT: cv.sletu a0, a0, a1 +; CHECK-NEXT: ret + %1 = call i32 @llvm.riscv.cv.alu.sletu(i32 %a, i32 %b) + ret i32 %1 +} + +declare i32 @llvm.riscv.cv.alu.min(i32, i32) + +define i32 @test.cv.alu.min(i32 %a, i32 %b) { +; CHECK-LABEL: test.cv.alu.min: +; CHECK: # %bb.0: +; CHECK-NEXT: cv.min a0, a0, a1 +; CHECK-NEXT: ret + %1 = call i32 @llvm.riscv.cv.alu.min(i32 %a, i32 %b) + ret i32 %1 +} + +declare i32 @llvm.riscv.cv.alu.minu(i32, i32) + +define i32 @test.cv.alu.minu(i32 %a, i32 %b) { +; CHECK-LABEL: test.cv.alu.minu: +; CHECK: # %bb.0: +; CHECK-NEXT: cv.minu a0, a0, a1 +; CHECK-NEXT: ret + %1 = call i32 @llvm.riscv.cv.alu.minu(i32 %a, i32 %b) + ret i32 %1 +} + +declare i32 @llvm.riscv.cv.alu.max(i32, i32) + +define i32 @test.cv.alu.max(i32 %a, i32 %b) { +; CHECK-LABEL: test.cv.alu.max: +; CHECK: # %bb.0: +; CHECK-NEXT: cv.max a0, a0, a1 +; CHECK-NEXT: ret + %1 = call i32 @llvm.riscv.cv.alu.max(i32 %a, i32 %b) + ret i32 %1 +} + +declare i32 @llvm.riscv.cv.alu.maxu(i32, i32) + +define i32 @test.cv.alu.maxu(i32 %a, i32 %b) { +; CHECK-LABEL: test.cv.alu.maxu: +; CHECK: # %bb.0: +; CHECK-NEXT: cv.maxu a0, a0, a1 +; CHECK-NEXT: ret + %1 = call i32 @llvm.riscv.cv.alu.maxu(i32 %a, i32 %b) + ret i32 %1 +} + +declare i32 @llvm.riscv.cv.alu.exths(i32) + +define i32 @test.cv.alu.exths(i32 %a) { +; CHECK-LABEL: test.cv.alu.exths: +; CHECK: # %bb.0: +; CHECK-NEXT: cv.exths a0, a0 +; CHECK-NEXT: ret + %1 = call i32 @llvm.riscv.cv.alu.exths(i32 %a) + ret i32 %1 +} + +declare i32 @llvm.riscv.cv.alu.exthz(i32) + +define i32 @test.cv.alu.exthz(i32 %a) { +; CHECK-LABEL: test.cv.alu.exthz: +; CHECK: # %bb.0: +; CHECK-NEXT: cv.exthz a0, a0 +; CHECK-NEXT: ret + %1 = call i32 @llvm.riscv.cv.alu.exthz(i32 %a) + ret i32 %1 +} + +declare i32 @llvm.riscv.cv.alu.extbs(i32) + +define i32 @test.cv.alu.extbs(i32 %a) { +; CHECK-LABEL: test.cv.alu.extbs: +; CHECK: # %bb.0: +; CHECK-NEXT: cv.extbs a0, a0 +; CHECK-NEXT: ret + %1 = call i32 @llvm.riscv.cv.alu.extbs(i32 %a) + ret i32 %1 +} + +declare i32 @llvm.riscv.cv.alu.extbz(i32) + +define i32 @test.cv.alu.extbz(i32 %a) { +; CHECK-LABEL: test.cv.alu.extbz: +; CHECK: # %bb.0: +; CHECK-NEXT: cv.extbz a0, a0 ---------------- topperc wrote:
What is the advantage of extbz over andi with 255? https://github.com/llvm/llvm-project/pull/100684 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits