brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · 557b4b7 Raw
68 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=riscv32 -verify-machineinstrs < %s \3; RUN:   | FileCheck -check-prefix=RV32I %s4 5define i1 @sadd(i32 %a, i32 %b, ptr %c) nounwind {6; RV32I-LABEL: sadd:7; RV32I:       # %bb.0: # %entry8; RV32I-NEXT:    add a3, a0, a19; RV32I-NEXT:    slt a0, a3, a010; RV32I-NEXT:    srli a1, a1, 3111; RV32I-NEXT:    xor a0, a1, a012; RV32I-NEXT:    sw a3, 0(a2)13; RV32I-NEXT:    ret14entry:15  %x = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 %b)16  %calc = extractvalue {i32, i1} %x, 017  %ovf = extractvalue {i32, i1} %x, 118  store i32 %calc, ptr %c19  ret i1 %ovf20}21 22define i1 @ssub(i32 %a, i32 %b, ptr %c) nounwind {23; RV32I-LABEL: ssub:24; RV32I:       # %bb.0: # %entry25; RV32I-NEXT:    sgtz a3, a126; RV32I-NEXT:    sub a1, a0, a127; RV32I-NEXT:    slt a0, a1, a028; RV32I-NEXT:    xor a0, a3, a029; RV32I-NEXT:    sw a1, 0(a2)30; RV32I-NEXT:    ret31entry:32  %x = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 %b)33  %calc = extractvalue {i32, i1} %x, 034  %ovf = extractvalue {i32, i1} %x, 135  store i32 %calc, ptr %c36  ret i1 %ovf37}38 39define i1 @uadd(i32 %a, i32 %b, ptr %c) nounwind {40; RV32I-LABEL: uadd:41; RV32I:       # %bb.0: # %entry42; RV32I-NEXT:    add a1, a0, a143; RV32I-NEXT:    sltu a0, a1, a044; RV32I-NEXT:    sw a1, 0(a2)45; RV32I-NEXT:    ret46entry:47  %x = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 %b)48  %calc = extractvalue {i32, i1} %x, 049  %ovf = extractvalue {i32, i1} %x, 150  store i32 %calc, ptr %c51  ret i1 %ovf52}53 54define i1 @usub(i32 %a, i32 %b, ptr %c) nounwind {55; RV32I-LABEL: usub:56; RV32I:       # %bb.0: # %entry57; RV32I-NEXT:    sub a1, a0, a158; RV32I-NEXT:    sltu a0, a0, a159; RV32I-NEXT:    sw a1, 0(a2)60; RV32I-NEXT:    ret61entry:62  %x = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 %b)63  %calc = extractvalue {i32, i1} %x, 064  %ovf = extractvalue {i32, i1} %x, 165  store i32 %calc, ptr %c66  ret i1 %ovf67}68