• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: llc -verify-machineinstrs -mcpu=ppc64 < %s | FileCheck %s
2target datalayout = "E-m:e-i64:64-n32:64"
3target triple = "powerpc64-unknown-linux-gnu"
4
5; Function Attrs: nounwind readonly
6define float @tf(float* nocapture readonly %i, i32 signext %o) #0 {
7entry:
8  %idx.ext = sext i32 %o to i64
9  %add.ptr = getelementptr inbounds float, float* %i, i64 %idx.ext
10  %0 = load float, float* %add.ptr, align 4
11  %add.ptr.sum = add nsw i64 %idx.ext, 1
12  %add.ptr3 = getelementptr inbounds float, float* %i, i64 %add.ptr.sum
13  %1 = load float, float* %add.ptr3, align 4
14  %add = fadd float %0, %1
15  ret float %add
16
17; CHECK-LABEL: @tf
18; CHECK: lfsux
19; CHECK: blr
20}
21
22; Function Attrs: nounwind readonly
23define double @td(double* nocapture readonly %i, i32 signext %o) #0 {
24entry:
25  %idx.ext = sext i32 %o to i64
26  %add.ptr = getelementptr inbounds double, double* %i, i64 %idx.ext
27  %0 = load double, double* %add.ptr, align 8
28  %add.ptr.sum = add nsw i64 %idx.ext, 1
29  %add.ptr3 = getelementptr inbounds double, double* %i, i64 %add.ptr.sum
30  %1 = load double, double* %add.ptr3, align 8
31  %add = fadd double %0, %1
32  ret double %add
33
34; CHECK-LABEL: @td
35; CHECK: lfdux
36; CHECK: blr
37}
38
39attributes #0 = { nounwind readonly }
40
41