blob: afdab9ff62c70d29a9f3c57d4762334388aa7462 [file] [log] [blame] [edit]
;RUN: if [ %llvmver -ge 10 && %llvmver -le 12 ]; then %clang %s -Xclang -load -Xclang %loadBC -S -emit-llvm -o - | %FileCheck %s; fi
;RUN: if [ %llvmver -ge 12 && %llvmver -le 13 ]; then %clang %s -fno-experimental-new-pass-manager -Xclang -load -Xclang %loadBC -S -emit-llvm -o - | %FileCheck %s; fi
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
; Function Attrs: noinline nounwind optnone uwtable
define dso_local double @g(double* %m, double* %n) {
entry:
%m.addr = alloca double*, align 8
%n.addr = alloca double*, align 8
%x = alloca double, align 8
%y = alloca double, align 8
store double* %m, double** %m.addr, align 8
store double* %n, double** %n.addr, align 8
%0 = load double*, double** %m.addr, align 8
%1 = load double*, double** %n.addr, align 8
%call = call double @cblas_ddot(i32 3, double* %0, i32 1, double* %1, i32 1)
store double %call, double* %x, align 8
%2 = load double*, double** %m.addr, align 8
%arrayidx = getelementptr inbounds double, double* %2, i64 0
store double 1.100000e+01, double* %arrayidx, align 8
%3 = load double*, double** %m.addr, align 8
%arrayidx1 = getelementptr inbounds double, double* %3, i64 1
store double 1.200000e+01, double* %arrayidx1, align 8
%4 = load double*, double** %m.addr, align 8
%arrayidx2 = getelementptr inbounds double, double* %4, i64 2
store double 1.300000e+01, double* %arrayidx2, align 8
%5 = load double, double* %x, align 8
%6 = load double, double* %x, align 8
%mul = fmul double %5, %6
store double %mul, double* %y, align 8
%7 = load double, double* %y, align 8
ret double %7
}
declare dso_local double @cblas_ddot(i32, double*, i32, double*, i32)
;CHECK: define internal double @cblas_ddot