; Function Attrs: nounwind readonly
define float @det([4 x
[4 x
float]]* nocapture readonly %var.3) local_unnamed_addr #
1 !dbg
!6 {
label0:
call void @llvm.dbg.value(metadata [4 x
[4 x
float]]* %var.3, metadata !9, metadata !DIExpression
()), !dbg
!27
%var.37.i = getelementptr [4 x
[4 x
float]], [4 x
[4 x
float]]* %var.3, i64 0, i64 0, i64 0, !dbg
!29
%var.31.i = getelementptr [4 x
[4 x
float]], [4 x
[4 x
float]]* %var.3, i64 0, i64 1, i64 1, !dbg
!30
%var.50.i = load float, float* %var.37.i, align 4
call void @llvm.dbg.value(metadata float undef, metadata !31, metadata !DIExpression
()), !dbg
!32
%0 = bitcast float* %var.31.i to <2 x float>*
%1 = load <2 x float>, <2 x float>* %0, align 4
%2 = extractelement <2 x float
> %1, i32 1
%var.60.i = fmul float %var.50.i, %2
call void @llvm.dbg.value(metadata float %var.60.i, metadata !33, metadata !DIExpression
()), !dbg
!34
%var.35.i = getelementptr [4 x
[4 x
float]], [4 x
[4 x
float]]* %var.3, i64 0, i64 1, i64 3, !dbg
!35
%var.67.i = load float, float* %var.35.i, align 4
%3 = insertelement <2 x float
> undef, float %var.50.i, i32 0
%4 = shufflevector <2 x float
> %3, <2 x float
> undef, <2 x
i32> zeroinitializer
%5 = insertelement <2 x float
> undef, float %var.67.i, i32 0
%6 = shufflevector <2 x float
> %5, <2 x float
> %1, <2 x
i32> <i32 0, i32 2>
%7 = fmul <2 x float> %4, %6
call void @llvm.dbg.value(metadata float undef, metadata !36, metadata !DIExpression
()), !dbg
!37
%var.39.i = getelementptr [4 x
[4 x
float]], [4 x
[4 x
float]]* %var.3, i64 0, i64 0, i64 1, !dbg
!38
%var.29.i = getelementptr [4 x
[4 x
float]], [4 x
[4 x
float]]* %var.3, i64 0, i64 1, i64 0, !dbg
!39
%var.75.i = load float, float* %var.29.i, align 4
call void @llvm.dbg.value(metadata float undef, metadata !40, metadata !DIExpression
()), !dbg
!41
call void @llvm.dbg.value(metadata float undef, metadata !42, metadata !DIExpression
()), !dbg
!43
call void @llvm.dbg.value(metadata float undef, metadata !44, metadata !DIExpression
()), !dbg
!45
%8 = bitcast float* %var.39.i to <2 x float>*
%9 = load <2 x float>, <2 x float>* %8, align 4
%10 = extractelement <2 x float
> %9, i32 1
%var.100.i = fmul float %var.75.i, %10
call void @llvm.dbg.value(metadata float %var.100.i, metadata !46, metadata !DIExpression
()), !dbg
!47
%11 = fmul <2 x float> %6, %9
call void @llvm.dbg.value(metadata float undef, metadata !48, metadata !DIExpression
()), !dbg
!49
%var.116.i = fmul float %var.67.i, %10
call void @llvm.dbg.value(metadata float %var.116.i, metadata !50, metadata !DIExpression
()), !dbg
!51
%var.43.i = getelementptr [4 x
[4 x
float]], [4 x
[4 x
float]]* %var.3, i64 0, i64 0, i64 3, !dbg
!52
%var.122.i = load float, float* %var.43.i, align 4
%12 = insertelement <2 x float
> undef, float %var.75.i, i32 0
%13 = shufflevector <2 x float
> %12, <2 x float
> undef, <2 x
i32> zeroinitializer
%14 = insertelement <2 x float
> undef, float %var.122.i, i32 0
%15 = shufflevector <2 x float
> %14, <2 x float
> %9, <2 x
i32> <i32 0, i32 2>
%16 = fmul <2 x float> %13, %15
call void @llvm.dbg.value(metadata float undef, metadata !53, metadata !DIExpression
()), !dbg
!54
%17 = fmul <2 x float> %1, %15
call void @llvm.dbg.value(metadata float undef, metadata !55, metadata !DIExpression
()), !dbg
!56
%var.140.i = fmul float %2, %var.122.i
call void @llvm.dbg.value(metadata float %var.140.i, metadata !57, metadata !DIExpression
()), !dbg
!58
%var.144.i = fsub float %var.140.i, %var.116.i
%var.23.i = getelementptr [4 x
[4 x
float]], [4 x
[4 x
float]]* %var.3, i64 0, i64 2, i64 1, !dbg
!59
%18 = bitcast float* %var.23.i to <2 x float>*
%19 = load <2 x float>, <2 x float>* %18, align 4
%20 = extractelement <2 x float
> %19, i32 0
%var.150.i = fmul float %20, %var.144.i
%21 = extractelement <2 x float
> %17, i32 0
%22 = extractelement <2 x float
> %11, i32 0
%var.154.i = fsub float %22, %21
%23 = extractelement <2 x float
> %19, i32 1
%var.160.i = fmul float %var.154.i, %23
%var.164.i = fadd float %var.150.i, %var.160.i
%24 = extractelement <2 x float
> %17, i32 1
%25 = extractelement <2 x float
> %11, i32 1
%var.168.i = fsub float %25, %24
%var.27.i = getelementptr [4 x
[4 x
float]], [4 x
[4 x
float]]* %var.3, i64 0, i64 2, i64 3, !dbg
!60
%var.173.i = load float, float* %var.27.i, align 4
%var.174.i = fmul float %var.168.i, %var.173.i
%var.178.i = fadd float %var.164.i, %var.174.i
%var.13.i = getelementptr [4 x
[4 x
float]], [4 x
[4 x
float]]* %var.3, i64 0, i64 3, i64 0, !dbg
!61
%var.183.i = load float, float* %var.13.i, align 4
%var.184.i = fmul float %var.183.i, %var.178.i
%26 = extractelement <2 x float
> %7, i32 0
%27 = extractelement <2 x float
> %16, i32 0
%var.188.i = fsub float %27, %26
%var.194.i = fmul float %var.188.i, %23
%var.198.i = fsub float %var.60.i, %var.100.i
%var.204.i = fmul float %var.198.i, %var.173.i
%var.208.i = fadd float %var.194.i, %var.204.i
%var.212.i = fsub float %var.116.i, %var.140.i
%var.21.i = getelementptr [4 x
[4 x
float]], [4 x
[4 x
float]]* %var.3, i64 0, i64 2, i64 0, !dbg
!62
%var.217.i = load float, float* %var.21.i, align 4
%var.218.i = fmul float %var.212.i, %var.217.i
%var.222.i = fadd float %var.208.i, %var.218.i
%var.15.i = getelementptr [4 x
[4 x
float]], [4 x
[4 x
float]]* %var.3, i64 0, i64 3, i64 1, !dbg
!63
%var.227.i = load float, float* %var.15.i, align 4
%var.228.i = fmul float %var.227.i, %var.222.i
%var.232.i = fadd float %var.184.i, %var.228.i
%var.17.i = getelementptr [4 x
[4 x
float]], [4 x
[4 x
float]]* %var.3, i64 0, i64 3, i64 2, !dbg
!64
%28 = fsub <2 x float> %17, %11
%29 = insertelement <2 x float
> undef, float %var.217.i, i32 0
%30 = shufflevector <2 x float
> %29, <2 x float
> undef, <2 x
i32> zeroinitializer
%31 = fmul <2 x float> %28, %30
%32 = extractelement <2 x float
> %16, i32 1
%33 = insertelement <2 x float
> undef, float %32, i32 0
%34 = insertelement <2 x float
> %33, float %var.100.i, i32 1
%35 = extractelement <2 x float
> %7, i32 1
%36 = insertelement <2 x float
> undef, float %35, i32 0
%37 = insertelement <2 x float
> %36, float %var.60.i, i32 1
%38 = fsub <2 x float> %34, %37
%39 = insertelement <2 x float
> undef, float %var.173.i, i32 0
%40 = shufflevector <2 x float
> %39, <2 x float
> %19, <2 x
i32> <i32 0, i32 2>
%41 = fmul <2 x float> %38, %40
%42 = fadd <2 x float> %41, %31
%43 = fsub <2 x float> %7, %16
%44 = fmul <2 x float> %19, %43
%45 = fadd <2 x float> %44, %42
%46 = bitcast float* %var.17.i to <2 x float>*
%47 = load <2 x float>, <2 x float>* %46, align 4
%48 = fmul <2 x float> %47, %45
%49 = extractelement <2 x float
> %48, i32 0
%var.280.i = fadd float %var.232.i, %49
%50 = extractelement <2 x float
> %48, i32 1
%var.328.i = fadd float %50, %var.280.i
ret float %var.328.i, !dbg !65
}