brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.8 KiB · 40cde9a Raw
176 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=riscv32 -mattr=+m -mattr=+xcvmac -verify-machineinstrs < %s \3; RUN:   | FileCheck %s4 5define i32 @test.mac(i32 %a, i32 %b, i32 %c) {6; CHECK-LABEL: test.mac:7; CHECK:       # %bb.0:8; CHECK-NEXT:    cv.mac a2, a0, a19; CHECK-NEXT:    mv a0, a210; CHECK-NEXT:    ret11  %1 = call i32 @llvm.riscv.cv.mac.mac(i32 %a, i32 %b, i32 %c)12  ret i32 %113}14 15define i32 @test.msu(i32 %a, i32 %b, i32 %c) {16; CHECK-LABEL: test.msu:17; CHECK:       # %bb.0:18; CHECK-NEXT:    cv.msu a2, a0, a119; CHECK-NEXT:    mv a0, a220; CHECK-NEXT:    ret21  %1 = call i32 @llvm.riscv.cv.mac.msu(i32 %a, i32 %b, i32 %c)22  ret i32 %123}24 25define i32 @test.muluN(i32 %a, i32 %b) {26; CHECK-LABEL: test.muluN:27; CHECK:       # %bb.0:28; CHECK-NEXT:    cv.mulun a0, a0, a1, 529; CHECK-NEXT:    ret30  %1 = call i32 @llvm.riscv.cv.mac.muluN(i32 %a, i32 %b, i32 5)31  ret i32 %132}33 34define i32 @test.mulhhuN(i32 %a, i32 %b) {35; CHECK-LABEL: test.mulhhuN:36; CHECK:       # %bb.0:37; CHECK-NEXT:    cv.mulhhun a0, a0, a1, 538; CHECK-NEXT:    ret39  %1 = call i32 @llvm.riscv.cv.mac.mulhhuN(i32 %a, i32 %b, i32 5)40  ret i32 %141}42 43define i32 @test.mulsN(i32 %a, i32 %b) {44; CHECK-LABEL: test.mulsN:45; CHECK:       # %bb.0:46; CHECK-NEXT:    cv.mulsn a0, a0, a1, 547; CHECK-NEXT:    ret48  %1 = call i32 @llvm.riscv.cv.mac.mulsN(i32 %a, i32 %b, i32 5)49  ret i32 %150}51 52define i32 @test.mulhhsN(i32 %a, i32 %b) {53; CHECK-LABEL: test.mulhhsN:54; CHECK:       # %bb.0:55; CHECK-NEXT:    cv.mulhhsn a0, a0, a1, 556; CHECK-NEXT:    ret57  %1 = call i32 @llvm.riscv.cv.mac.mulhhsN(i32 %a, i32 %b, i32 5)58  ret i32 %159}60 61define i32 @test.muluRN(i32 %a, i32 %b) {62; CHECK-LABEL: test.muluRN:63; CHECK:       # %bb.0:64; CHECK-NEXT:    cv.mulurn a0, a0, a1, 565; CHECK-NEXT:    ret66  %1 = call i32 @llvm.riscv.cv.mac.muluRN(i32 %a, i32 %b, i32 5)67  ret i32 %168}69 70define i32 @test.mulhhuRN(i32 %a, i32 %b) {71; CHECK-LABEL: test.mulhhuRN:72; CHECK:       # %bb.0:73; CHECK-NEXT:    cv.mulhhurn a0, a0, a1, 574; CHECK-NEXT:    ret75  %1 = call i32 @llvm.riscv.cv.mac.mulhhuRN(i32 %a, i32 %b, i32 5)76  ret i32 %177}78 79define i32 @test.mulsRN(i32 %a, i32 %b) {80; CHECK-LABEL: test.mulsRN:81; CHECK:       # %bb.0:82; CHECK-NEXT:    cv.mulsrn a0, a0, a1, 583; CHECK-NEXT:    ret84  %1 = call i32 @llvm.riscv.cv.mac.mulsRN(i32 %a, i32 %b, i32 5)85  ret i32 %186}87 88define i32 @test.mulhhsRN(i32 %a, i32 %b) {89; CHECK-LABEL: test.mulhhsRN:90; CHECK:       # %bb.0:91; CHECK-NEXT:    cv.mulhhsrn a0, a0, a1, 592; CHECK-NEXT:    ret93  %1 = call i32 @llvm.riscv.cv.mac.mulhhsRN(i32 %a, i32 %b, i32 5)94  ret i32 %195}96 97define i32 @test.macuN(i32 %a, i32 %b, i32 %c) {98; CHECK-LABEL: test.macuN:99; CHECK:       # %bb.0:100; CHECK-NEXT:    cv.macun a2, a0, a1, 5101; CHECK-NEXT:    mv a0, a2102; CHECK-NEXT:    ret103  %1 = call i32 @llvm.riscv.cv.mac.macuN(i32 %a, i32 %b, i32 %c, i32 5)104  ret i32 %1105}106 107define i32 @test.machhuN(i32 %a, i32 %b, i32 %c) {108; CHECK-LABEL: test.machhuN:109; CHECK:       # %bb.0:110; CHECK-NEXT:    cv.machhun a2, a0, a1, 5111; CHECK-NEXT:    mv a0, a2112; CHECK-NEXT:    ret113  %1 = call i32 @llvm.riscv.cv.mac.machhuN(i32 %a, i32 %b, i32 %c, i32 5)114  ret i32 %1115}116 117define i32 @test.macsN(i32 %a, i32 %b, i32 %c) {118; CHECK-LABEL: test.macsN:119; CHECK:       # %bb.0:120; CHECK-NEXT:    cv.macsn a2, a0, a1, 5121; CHECK-NEXT:    mv a0, a2122; CHECK-NEXT:    ret123  %1 = call i32 @llvm.riscv.cv.mac.macsN(i32 %a, i32 %b, i32 %c, i32 5)124  ret i32 %1125}126 127define i32 @test.machhsN(i32 %a, i32 %b, i32 %c) {128; CHECK-LABEL: test.machhsN:129; CHECK:       # %bb.0:130; CHECK-NEXT:    cv.machhsn a2, a0, a1, 5131; CHECK-NEXT:    mv a0, a2132; CHECK-NEXT:    ret133  %1 = call i32 @llvm.riscv.cv.mac.machhsN(i32 %a, i32 %b, i32 %c, i32 5)134  ret i32 %1135}136 137define i32 @test.macuRN(i32 %a, i32 %b, i32 %c) {138; CHECK-LABEL: test.macuRN:139; CHECK:       # %bb.0:140; CHECK-NEXT:    cv.macurn a2, a0, a1, 5141; CHECK-NEXT:    mv a0, a2142; CHECK-NEXT:    ret143  %1 = call i32 @llvm.riscv.cv.mac.macuRN(i32 %a, i32 %b, i32 %c, i32 5)144  ret i32 %1145}146 147define i32 @test.machhuRN(i32 %a, i32 %b, i32 %c) {148; CHECK-LABEL: test.machhuRN:149; CHECK:       # %bb.0:150; CHECK-NEXT:    cv.machhurn a2, a0, a1, 5151; CHECK-NEXT:    mv a0, a2152; CHECK-NEXT:    ret153  %1 = call i32 @llvm.riscv.cv.mac.machhuRN(i32 %a, i32 %b, i32 %c, i32 5)154  ret i32 %1155}156 157define i32 @test.macsRN(i32 %a, i32 %b, i32 %c) {158; CHECK-LABEL: test.macsRN:159; CHECK:       # %bb.0:160; CHECK-NEXT:    cv.macsrn a2, a0, a1, 5161; CHECK-NEXT:    mv a0, a2162; CHECK-NEXT:    ret163  %1 = call i32 @llvm.riscv.cv.mac.macsRN(i32 %a, i32 %b, i32 %c, i32 5)164  ret i32 %1165}166 167define i32 @test.machhsRN(i32 %a, i32 %b, i32 %c) {168; CHECK-LABEL: test.machhsRN:169; CHECK:       # %bb.0:170; CHECK-NEXT:    cv.machhsrn a2, a0, a1, 5171; CHECK-NEXT:    mv a0, a2172; CHECK-NEXT:    ret173  %1 = call i32 @llvm.riscv.cv.mac.machhsRN(i32 %a, i32 %b, i32 %c, i32 5)174  ret i32 %1175}176