brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.6 KiB · 5cc7bfb Raw
297 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -O0 -mtriple=riscv32 -mattr=+m -mattr=+xcvalu -verify-machineinstrs < %s \3; RUN:   | FileCheck %s4 5define i32 @abs(i32 %a) {6; CHECK-LABEL: abs:7; CHECK:       # %bb.0:8; CHECK-NEXT:    cv.abs a0, a09; CHECK-NEXT:    ret10  %1 = call i32 @llvm.abs.i32(i32 %a, i1 false)11  ret i32 %112}13 14define i1 @sle(i32 %a, i32 %b) {15; CHECK-LABEL: sle:16; CHECK:       # %bb.0:17; CHECK-NEXT:    cv.sle a0, a0, a118; CHECK-NEXT:    ret19  %1 = icmp sle i32 %a, %b20  ret i1 %121}22 23define i1 @sleu(i32 %a, i32 %b) {24; CHECK-LABEL: sleu:25; CHECK:       # %bb.0:26; CHECK-NEXT:    cv.sleu a0, a0, a127; CHECK-NEXT:    ret28  %1 = icmp ule i32 %a, %b29  ret i1 %130}31 32define i32 @smin(i32 %a, i32 %b) {33; CHECK-LABEL: smin:34; CHECK:       # %bb.0:35; CHECK-NEXT:    cv.min a0, a0, a136; CHECK-NEXT:    ret37  %1 = call i32 @llvm.smin.i32(i32 %a, i32 %b)38  ret i32 %139}40 41define i32 @umin(i32 %a, i32 %b) {42; CHECK-LABEL: umin:43; CHECK:       # %bb.0:44; CHECK-NEXT:    cv.minu a0, a0, a145; CHECK-NEXT:    ret46  %1 = call i32 @llvm.umin.i32(i32 %a, i32 %b)47  ret i32 %148}49 50define i32 @smax(i32 %a, i32 %b) {51; CHECK-LABEL: smax:52; CHECK:       # %bb.0:53; CHECK-NEXT:    cv.max a0, a0, a154; CHECK-NEXT:    ret55  %1 = call i32 @llvm.smax.i32(i32 %a, i32 %b)56  ret i32 %157}58 59define i32 @umax(i32 %a, i32 %b) {60; CHECK-LABEL: umax:61; CHECK:       # %bb.0:62; CHECK-NEXT:    cv.maxu a0, a0, a163; CHECK-NEXT:    ret64  %1 = call i32 @llvm.umax.i32(i32 %a, i32 %b)65  ret i32 %166}67 68define i32 @exths(i16 %a) {69; CHECK-LABEL: exths:70; CHECK:       # %bb.0:71; CHECK-NEXT:    # kill: def $x11 killed $x1072; CHECK-NEXT:    cv.exths a0, a073; CHECK-NEXT:    ret74  %1 = sext i16 %a to i3275  ret i32 %176}77 78define i32 @exthz(i16 %a) {79; CHECK-LABEL: exthz:80; CHECK:       # %bb.0:81; CHECK-NEXT:    # kill: def $x11 killed $x1082; CHECK-NEXT:    cv.exthz a0, a083; CHECK-NEXT:    ret84  %1 = zext i16 %a to i3285  ret i32 %186}87 88define i32 @extbs(i8 %a) {89; CHECK-LABEL: extbs:90; CHECK:       # %bb.0:91; CHECK-NEXT:    # kill: def $x11 killed $x1092; CHECK-NEXT:    cv.extbs a0, a093; CHECK-NEXT:    ret94  %1 = sext i8 %a to i3295  ret i32 %196}97 98define i32 @extbz(i8 %a) {99; CHECK-LABEL: extbz:100; CHECK:       # %bb.0:101; CHECK-NEXT:    # kill: def $x11 killed $x10102; CHECK-NEXT:    cv.extbz a0, a0103; CHECK-NEXT:    ret104  %1 = zext i8 %a to i32105  ret i32 %1106}107 108define i32 @test.cv.alu.clip.case.a(i32 %a) {109; CHECK-LABEL: test.cv.alu.clip.case.a:110; CHECK:       # %bb.0:111; CHECK-NEXT:    cv.clip a0, a0, 5112; CHECK-NEXT:    ret113  %1 = call i32 @llvm.riscv.cv.alu.clip(i32 %a, i32 15)114  ret i32 %1115}116 117define i32 @test.cv.alu.clip.case.b(i32 %a) {118; CHECK-LABEL: test.cv.alu.clip.case.b:119; CHECK:       # %bb.0:120; CHECK-NEXT:    li a1, 10121; CHECK-NEXT:    cv.clipr a0, a0, a1122; CHECK-NEXT:    ret123  %1 = call i32 @llvm.riscv.cv.alu.clip(i32 %a, i32 10)124  ret i32 %1125}126 127define i32 @test.cv.alu.clipu.case.a(i32 %a) {128; CHECK-LABEL: test.cv.alu.clipu.case.a:129; CHECK:       # %bb.0:130; CHECK-NEXT:    cv.clipu a0, a0, 9131; CHECK-NEXT:    ret132  %1 = call i32 @llvm.riscv.cv.alu.clipu(i32 %a, i32 255)133  ret i32 %1134}135 136define i32 @test.cv.alu.clipu.case.b(i32 %a) {137; CHECK-LABEL: test.cv.alu.clipu.case.b:138; CHECK:       # %bb.0:139; CHECK-NEXT:    li a1, 200140; CHECK-NEXT:    cv.clipur a0, a0, a1141; CHECK-NEXT:    ret142  %1 = call i32 @llvm.riscv.cv.alu.clipu(i32 %a, i32 200)143  ret i32 %1144}145 146define i32 @test.cv.alu.addN.case.a(i32 %a, i32 %b) {147; CHECK-LABEL: test.cv.alu.addN.case.a:148; CHECK:       # %bb.0:149; CHECK-NEXT:    cv.addn a0, a0, a1, 15150; CHECK-NEXT:    ret151  %1 = call i32 @llvm.riscv.cv.alu.addN(i32 %a, i32 %b, i32 15)152  ret i32 %1153}154 155define i32 @test.cv.alu.addN.case.b(i32 %a, i32 %b) {156; CHECK-LABEL: test.cv.alu.addN.case.b:157; CHECK:       # %bb.0:158; CHECK-NEXT:    li a2, 32159; CHECK-NEXT:    cv.addnr a0, a1, a2160; CHECK-NEXT:    ret161  %1 = call i32 @llvm.riscv.cv.alu.addN(i32 %a, i32 %b, i32 32)162  ret i32 %1163}164 165define i32 @test.cv.alu.adduN.case.a(i32 %a, i32 %b) {166; CHECK-LABEL: test.cv.alu.adduN.case.a:167; CHECK:       # %bb.0:168; CHECK-NEXT:    cv.addun a0, a0, a1, 15169; CHECK-NEXT:    ret170  %1 = call i32 @llvm.riscv.cv.alu.adduN(i32 %a, i32 %b, i32 15)171  ret i32 %1172}173 174define i32 @test.cv.alu.adduN.case.b(i32 %a, i32 %b) {175; CHECK-LABEL: test.cv.alu.adduN.case.b:176; CHECK:       # %bb.0:177; CHECK-NEXT:    li a2, 32178; CHECK-NEXT:    cv.addunr a0, a1, a2179; CHECK-NEXT:    ret180  %1 = call i32 @llvm.riscv.cv.alu.adduN(i32 %a, i32 %b, i32 32)181  ret i32 %1182}183 184define i32 @test.cv.alu.addRN.case.a(i32 %a, i32 %b) {185; CHECK-LABEL: test.cv.alu.addRN.case.a:186; CHECK:       # %bb.0:187; CHECK-NEXT:    cv.addrn a0, a0, a1, 15188; CHECK-NEXT:    ret189  %1 = call i32 @llvm.riscv.cv.alu.addRN(i32 %a, i32 %b, i32 15)190  ret i32 %1191}192 193define i32 @test.cv.alu.addRN.case.b(i32 %a, i32 %b) {194; CHECK-LABEL: test.cv.alu.addRN.case.b:195; CHECK:       # %bb.0:196; CHECK-NEXT:    li a2, 32197; CHECK-NEXT:    cv.addrnr a0, a1, a2198; CHECK-NEXT:    ret199  %1 = call i32 @llvm.riscv.cv.alu.addRN(i32 %a, i32 %b, i32 32)200  ret i32 %1201}202 203define i32 @test.cv.alu.adduRN.case.a(i32 %a, i32 %b) {204; CHECK-LABEL: test.cv.alu.adduRN.case.a:205; CHECK:       # %bb.0:206; CHECK-NEXT:    cv.addurn a0, a0, a1, 15207; CHECK-NEXT:    ret208  %1 = call i32 @llvm.riscv.cv.alu.adduRN(i32 %a, i32 %b, i32 15)209  ret i32 %1210}211 212define i32 @test.cv.alu.adduRN.case.b(i32 %a, i32 %b) {213; CHECK-LABEL: test.cv.alu.adduRN.case.b:214; CHECK:       # %bb.0:215; CHECK-NEXT:    li a2, 32216; CHECK-NEXT:    cv.addurnr a0, a1, a2217; CHECK-NEXT:    ret218  %1 = call i32 @llvm.riscv.cv.alu.adduRN(i32 %a, i32 %b, i32 32)219  ret i32 %1220}221 222define i32 @test.cv.alu.subN.case.a(i32 %a, i32 %b) {223; CHECK-LABEL: test.cv.alu.subN.case.a:224; CHECK:       # %bb.0:225; CHECK-NEXT:    cv.subn a0, a0, a1, 15226; CHECK-NEXT:    ret227  %1 = call i32 @llvm.riscv.cv.alu.subN(i32 %a, i32 %b, i32 15)228  ret i32 %1229}230 231define i32 @test.cv.alu.subN.case.b(i32 %a, i32 %b) {232; CHECK-LABEL: test.cv.alu.subN.case.b:233; CHECK:       # %bb.0:234; CHECK-NEXT:    li a2, 32235; CHECK-NEXT:    cv.subnr a0, a1, a2236; CHECK-NEXT:    ret237  %1 = call i32 @llvm.riscv.cv.alu.subN(i32 %a, i32 %b, i32 32)238  ret i32 %1239}240 241define i32 @test.cv.alu.subuN.case.a(i32 %a, i32 %b) {242; CHECK-LABEL: test.cv.alu.subuN.case.a:243; CHECK:       # %bb.0:244; CHECK-NEXT:    cv.subun a0, a0, a1, 15245; CHECK-NEXT:    ret246  %1 = call i32 @llvm.riscv.cv.alu.subuN(i32 %a, i32 %b, i32 15)247  ret i32 %1248}249 250define i32 @test.cv.alu.subuN.case.b(i32 %a, i32 %b) {251; CHECK-LABEL: test.cv.alu.subuN.case.b:252; CHECK:       # %bb.0:253; CHECK-NEXT:    li a2, 32254; CHECK-NEXT:    cv.subunr a0, a1, a2255; CHECK-NEXT:    ret256  %1 = call i32 @llvm.riscv.cv.alu.subuN(i32 %a, i32 %b, i32 32)257  ret i32 %1258}259 260define i32 @test.cv.alu.subRN.case.a(i32 %a, i32 %b) {261; CHECK-LABEL: test.cv.alu.subRN.case.a:262; CHECK:       # %bb.0:263; CHECK-NEXT:    cv.subrn a0, a0, a1, 15264; CHECK-NEXT:    ret265  %1 = call i32 @llvm.riscv.cv.alu.subRN(i32 %a, i32 %b, i32 15)266  ret i32 %1267}268 269define i32 @test.cv.alu.subRN.case.b(i32 %a, i32 %b) {270; CHECK-LABEL: test.cv.alu.subRN.case.b:271; CHECK:       # %bb.0:272; CHECK-NEXT:    li a2, 32273; CHECK-NEXT:    cv.subrnr a0, a1, a2274; CHECK-NEXT:    ret275  %1 = call i32 @llvm.riscv.cv.alu.subRN(i32 %a, i32 %b, i32 32)276  ret i32 %1277}278 279define i32 @test.cv.alu.subuRN.case.a(i32 %a, i32 %b) {280; CHECK-LABEL: test.cv.alu.subuRN.case.a:281; CHECK:       # %bb.0:282; CHECK-NEXT:    cv.suburn a0, a0, a1, 15283; CHECK-NEXT:    ret284  %1 = call i32 @llvm.riscv.cv.alu.subuRN(i32 %a, i32 %b, i32 15)285  ret i32 %1286}287 288define i32 @test.cv.alu.subuRN.case.b(i32 %a, i32 %b) {289; CHECK-LABEL: test.cv.alu.subuRN.case.b:290; CHECK:       # %bb.0:291; CHECK-NEXT:    li a2, 32292; CHECK-NEXT:    cv.suburnr a0, a1, a2293; CHECK-NEXT:    ret294  %1 = call i32 @llvm.riscv.cv.alu.subuRN(i32 %a, i32 %b, i32 32)295  ret i32 %1296}297