Advertisement
Guest User

Untitled

a guest
Dec 26th, 2018
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
LLVM 4.80 KB | None | 0 0
  1. define dso_local float @det(%struct.Matrix* readonly dereferenceable(64)) local_unnamed_addr #0 {
  2.   %2 = getelementptr inbounds %struct.Matrix, %struct.Matrix* %0, i64 0, i32 0, i64 0
  3.   %3 = load float, float* %2, align 4, !tbaa !8
  4.   %4 = getelementptr inbounds %struct.Matrix, %struct.Matrix* %0, i64 0, i32 0, i64 5
  5.   %5 = bitcast float* %4 to <2 x float>*
  6.   %6 = load <2 x float>, <2 x float>* %5, align 4, !tbaa !8
  7.   %7 = extractelement <2 x float> %6, i32 1
  8.   %8 = fmul float %3, %7
  9.   %9 = getelementptr inbounds %struct.Matrix, %struct.Matrix* %0, i64 0, i32 0, i64 7
  10.   %10 = load float, float* %9, align 4, !tbaa !8
  11.   %11 = insertelement <2 x float> undef, float %3, i32 0
  12.   %12 = shufflevector <2 x float> %11, <2 x float> undef, <2 x i32> zeroinitializer
  13.   %13 = insertelement <2 x float> undef, float %10, i32 0
  14.   %14 = shufflevector <2 x float> %13, <2 x float> %6, <2 x i32> <i32 0, i32 2>
  15.   %15 = fmul <2 x float> %12, %14
  16.   %16 = getelementptr inbounds %struct.Matrix, %struct.Matrix* %0, i64 0, i32 0, i64 1
  17.   %17 = getelementptr inbounds %struct.Matrix, %struct.Matrix* %0, i64 0, i32 0, i64 4
  18.   %18 = load float, float* %17, align 4, !tbaa !8
  19.   %19 = bitcast float* %16 to <2 x float>*
  20.   %20 = load <2 x float>, <2 x float>* %19, align 4, !tbaa !8
  21.   %21 = extractelement <2 x float> %20, i32 1
  22.   %22 = fmul float %18, %21
  23.   %23 = fmul <2 x float> %14, %20
  24.   %24 = fmul float %10, %21
  25.   %25 = getelementptr inbounds %struct.Matrix, %struct.Matrix* %0, i64 0, i32 0, i64 3
  26.   %26 = load float, float* %25, align 4, !tbaa !8
  27.   %27 = insertelement <2 x float> undef, float %18, i32 0
  28.   %28 = shufflevector <2 x float> %27, <2 x float> undef, <2 x i32> zeroinitializer
  29.   %29 = insertelement <2 x float> undef, float %26, i32 0
  30.   %30 = shufflevector <2 x float> %29, <2 x float> %20, <2 x i32> <i32 0, i32 2>
  31.   %31 = fmul <2 x float> %28, %30
  32.   %32 = fmul <2 x float> %6, %30
  33.   %33 = fmul float %7, %26
  34.   %34 = fsub float %33, %24
  35.   %35 = getelementptr inbounds %struct.Matrix, %struct.Matrix* %0, i64 0, i32 0, i64 9
  36.   %36 = bitcast float* %35 to <2 x float>*
  37.   %37 = load <2 x float>, <2 x float>* %36, align 4, !tbaa !8
  38.   %38 = extractelement <2 x float> %37, i32 0
  39.   %39 = fmul float %38, %34
  40.   %40 = extractelement <2 x float> %32, i32 0
  41.   %41 = extractelement <2 x float> %23, i32 0
  42.   %42 = fsub float %41, %40
  43.   %43 = extractelement <2 x float> %37, i32 1
  44.   %44 = fmul float %42, %43
  45.   %45 = fadd float %39, %44
  46.   %46 = extractelement <2 x float> %32, i32 1
  47.   %47 = extractelement <2 x float> %23, i32 1
  48.   %48 = fsub float %47, %46
  49.   %49 = getelementptr inbounds %struct.Matrix, %struct.Matrix* %0, i64 0, i32 0, i64 11
  50.   %50 = load float, float* %49, align 4, !tbaa !8
  51.   %51 = fmul float %48, %50
  52.   %52 = fadd float %45, %51
  53.   %53 = getelementptr inbounds %struct.Matrix, %struct.Matrix* %0, i64 0, i32 0, i64 12
  54.   %54 = load float, float* %53, align 4, !tbaa !8
  55.   %55 = fmul float %54, %52
  56.   %56 = extractelement <2 x float> %15, i32 0
  57.   %57 = extractelement <2 x float> %31, i32 0
  58.   %58 = fsub float %57, %56
  59.   %59 = fmul float %58, %43
  60.   %60 = fsub float %8, %22
  61.   %61 = fmul float %60, %50
  62.   %62 = fadd float %59, %61
  63.   %63 = fsub float %24, %33
  64.   %64 = getelementptr inbounds %struct.Matrix, %struct.Matrix* %0, i64 0, i32 0, i64 8
  65.   %65 = load float, float* %64, align 4, !tbaa !8
  66.   %66 = fmul float %63, %65
  67.   %67 = fadd float %62, %66
  68.   %68 = getelementptr inbounds %struct.Matrix, %struct.Matrix* %0, i64 0, i32 0, i64 13
  69.   %69 = load float, float* %68, align 4, !tbaa !8
  70.   %70 = fmul float %69, %67
  71.   %71 = fadd float %55, %70
  72.   %72 = getelementptr inbounds %struct.Matrix, %struct.Matrix* %0, i64 0, i32 0, i64 14
  73.   %73 = fsub <2 x float> %32, %23
  74.   %74 = insertelement <2 x float> undef, float %65, i32 0
  75.   %75 = shufflevector <2 x float> %74, <2 x float> undef, <2 x i32> zeroinitializer
  76.   %76 = fmul <2 x float> %73, %75
  77.   %77 = extractelement <2 x float> %31, i32 1
  78.   %78 = insertelement <2 x float> undef, float %77, i32 0
  79.   %79 = insertelement <2 x float> %78, float %22, i32 1
  80.   %80 = extractelement <2 x float> %15, i32 1
  81.   %81 = insertelement <2 x float> undef, float %80, i32 0
  82.   %82 = insertelement <2 x float> %81, float %8, i32 1
  83.   %83 = fsub <2 x float> %79, %82
  84.   %84 = insertelement <2 x float> undef, float %50, i32 0
  85.   %85 = shufflevector <2 x float> %84, <2 x float> %37, <2 x i32> <i32 0, i32 2>
  86.   %86 = fmul <2 x float> %83, %85
  87.   %87 = fadd <2 x float> %86, %76
  88.   %88 = fsub <2 x float> %15, %31
  89.   %89 = fmul <2 x float> %37, %88
  90.   %90 = fadd <2 x float> %89, %87
  91.   %91 = bitcast float* %72 to <2 x float>*
  92.   %92 = load <2 x float>, <2 x float>* %91, align 4, !tbaa !8
  93.   %93 = fmul <2 x float> %92, %90
  94.   %94 = extractelement <2 x float> %93, i32 0
  95.   %95 = fadd float %71, %94
  96.   %96 = extractelement <2 x float> %93, i32 1
  97.   %97 = fadd float %96, %95
  98.   ret float %97
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement