Similar to d39b4ce3ce
Using "eabi" or "gnueabi" for aarch64 targets is a common mistake and
warned by Clang Driver. We want to avoid them elsewhere as well. Just
use the common "aarch64" without other triple components.
34 lines
1.2 KiB
LLVM
34 lines
1.2 KiB
LLVM
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
|
; RUN: llc < %s -verify-machineinstrs -mtriple=aarch64 | FileCheck %s
|
|
|
|
; DAG ends up with two uses for the flags from an ADCS node, which means they
|
|
; must be saved for later.
|
|
define void @f(ptr nocapture %a, ptr nocapture %b, ptr nocapture %cc, ptr nocapture %dd) nounwind uwtable noinline ssp {
|
|
; CHECK-LABEL: f:
|
|
; CHECK: // %bb.0: // %entry
|
|
; CHECK-NEXT: ldp x8, x10, [x2]
|
|
; CHECK-NEXT: ldp x9, x11, [x3]
|
|
; CHECK-NEXT: ldp x13, x12, [x2, #16]
|
|
; CHECK-NEXT: adds x8, x8, x9
|
|
; CHECK-NEXT: ldp x14, x9, [x3, #16]
|
|
; CHECK-NEXT: adcs x10, x10, x11
|
|
; CHECK-NEXT: stp x8, x10, [x0]
|
|
; CHECK-NEXT: adcs x11, x13, x14
|
|
; CHECK-NEXT: adc x13, x12, x9
|
|
; CHECK-NEXT: orr x12, x12, #0x100
|
|
; CHECK-NEXT: adc x9, x12, x9
|
|
; CHECK-NEXT: stp x11, x13, [x0, #16]
|
|
; CHECK-NEXT: stp x11, x9, [x1, #16]
|
|
; CHECK-NEXT: stp x8, x10, [x1]
|
|
; CHECK-NEXT: ret
|
|
entry:
|
|
%c = load i256, ptr %cc
|
|
%d = load i256, ptr %dd
|
|
%add = add nsw i256 %c, %d
|
|
store i256 %add, ptr %a, align 8
|
|
%or = or i256 %c, 1606938044258990275541962092341162602522202993782792835301376
|
|
%add6 = add nsw i256 %or, %d
|
|
store i256 %add6, ptr %b, align 8
|
|
ret void
|
|
}
|