brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.6 KiB · 9b456a5 Raw
75 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc -mtriple=aarch64-linux-gnu -O3 -o - %s | FileCheck %s3 4define { i32, i32 } @adds_cmn(i32 noundef %x, i32 noundef %y) {5; CHECK-LABEL: adds_cmn:6; CHECK:       // %bb.0: // %entry7; CHECK-NEXT:    adds w1, w0, w18; CHECK-NEXT:    cset w0, lo9; CHECK-NEXT:    ret10entry:11  %0 = tail call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %x, i32 %y)12  %_4.1 = extractvalue { i32, i1 } %0, 113  %_5 = add nuw i32 %x, %y14  %_0.sroa.3.0 = select i1 %_4.1, i32 undef, i32 %_515  %not._4.1 = xor i1 %_4.1, true16  %_0.sroa.0.0 = zext i1 %not._4.1 to i3217  %1 = insertvalue { i32, i32 } poison, i32 %_0.sroa.0.0, 018  %2 = insertvalue { i32, i32 } %1, i32 %_0.sroa.3.0, 119  ret { i32, i32 } %220}21 22define { i32, i32 } @adds_cmn_c(i32 noundef %x, i32 noundef %y) {23; CHECK-LABEL: adds_cmn_c:24; CHECK:       // %bb.0: // %entry25; CHECK-NEXT:    adds w1, w0, w126; CHECK-NEXT:    cset w0, lo27; CHECK-NEXT:    ret28entry:29  %0 = tail call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %x, i32 %y)30  %_4.1 = extractvalue { i32, i1 } %0, 131  %_5 = add nuw i32 %y, %x32  %_0.sroa.3.0 = select i1 %_4.1, i32 undef, i32 %_533  %not._4.1 = xor i1 %_4.1, true34  %_0.sroa.0.0 = zext i1 %not._4.1 to i3235  %1 = insertvalue { i32, i32 } poison, i32 %_0.sroa.0.0, 036  %2 = insertvalue { i32, i32 } %1, i32 %_0.sroa.3.0, 137  ret { i32, i32 } %238}39 40define { i32, i32 } @subs_cmp(i32 noundef %x, i32 noundef %y) {41; CHECK-LABEL: subs_cmp:42; CHECK:       // %bb.0: // %entry43; CHECK-NEXT:    subs w1, w0, w144; CHECK-NEXT:    cset w0, hs45; CHECK-NEXT:    ret46entry:47  %0 = tail call { i32, i1 } @llvm.usub.with.overflow.i32(i32 %x, i32 %y)48  %_4.1 = extractvalue { i32, i1 } %0, 149  %_5 = sub nuw i32 %x, %y50  %_0.sroa.3.0 = select i1 %_4.1, i32 undef, i32 %_551  %not._4.1 = xor i1 %_4.1, true52  %_0.sroa.0.0 = zext i1 %not._4.1 to i3253  %1 = insertvalue { i32, i32 } poison, i32 %_0.sroa.0.0, 054  %2 = insertvalue { i32, i32 } %1, i32 %_0.sroa.3.0, 155  ret { i32, i32 } %256}57 58define { i32, i32 } @subs_cmp_c(i32 noundef %x, i32 noundef %y) {59; CHECK-LABEL: subs_cmp_c:60; CHECK:       // %bb.0: // %entry61; CHECK-NEXT:    subs w1, w1, w062; CHECK-NEXT:    cset w0, ls63; CHECK-NEXT:    ret64entry:65  %0 = tail call { i32, i1 } @llvm.usub.with.overflow.i32(i32 %x, i32 %y)66  %_4.1 = extractvalue { i32, i1 } %0, 167  %_5 = sub nuw i32 %y, %x68  %_0.sroa.3.0 = select i1 %_4.1, i32 undef, i32 %_569  %not._4.1 = xor i1 %_4.1, true70  %_0.sroa.0.0 = zext i1 %not._4.1 to i3271  %1 = insertvalue { i32, i32 } poison, i32 %_0.sroa.0.0, 072  %2 = insertvalue { i32, i32 } %1, i32 %_0.sroa.3.0, 173  ret { i32, i32 } %274}75