llvm.org GIT mirror llvm / 01139dc
Merging r214429: ------------------------------------------------------------------------ r214429 | willschm | 2014-07-31 12:50:53 -0700 (Thu, 31 Jul 2014) | 29 lines Disable IsSub subregister assert. pr18663. This is a follow-up to the activity in the bug at http://llvm.org/bugs/show_bug.cgi?id=18663 . The underlying issue has to do with how the KILL pseudo-instruction is handled. I defer to Hal/Jakob/Uli for additional details and background. This will disable the (bad?) assert, add an associated fixme comment, and add a pair of tests. The code change and the pr18663-2.ll test are copied from the referenced bug. That test does not immediately fail in my environment, but I have added the pr18663.ll test which does. (Comment from Hal) to provide everyone else with some context, this assert was not bad when it was written. At that time, we only generated KILL pseudo instructions around subregister copies. This logic, unfortunately, had its own problems. In r199797, the relevant logic in MachineCopyPropagation was replaced to generate KILLs for other kinds of copies too. This change in semantics broke this now-problematic assumption in AggressiveAntiDepBreaker. The AggressiveAntiDepBreaker really needs a proper cleanup to deal with the change, but removing the assert (which just allows the function to return false) is a safe conservative behavior, and should do for the time being. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_35@214683 91177308-0d34-0410-b5e6-96231b3b80d8 Bill Wendling 5 years ago
3 changed file(s) with 454 addition(s) and 1 deletion(s). Raw diff Collapse all Expand all
581581 unsigned Reg = Regs[i];
582582 if (Reg == SuperReg) continue;
583583 bool IsSub = TRI->isSubRegister(SuperReg, Reg);
584 assert(IsSub && "Expecting group subregister");
584 // FIXME: remove this once PR18663 has been properly fixed. For now,
585 // return a conservative answer:
586 // assert(IsSub && "Expecting group subregister");
585587 if (!IsSub)
586588 return false;
587589 }
0 ; RUN: llc < %s -march=ppc64 -mtriple=powerpc64-unknown-linux-gnu
1 ; RUN: llc < %s -march=ppc64le -mtriple=powerpc64le-unknown-linux-gnu
2
3 %"class.std::__1::locale::id.1580.4307.4610.8491" = type { %"struct.std::__1::once_flag.1579.4306.4609.8490", i32 }
4 %"struct.std::__1::once_flag.1579.4306.4609.8490" = type { i64 }
5 %"class.Foam::IOerror.1581.4308.4611.8505" = type { %"class.Foam::error.1535.4262.4565.8504", %"class.Foam::string.1530.4257.4560.8499", i32, i32 }
6 %"class.Foam::error.1535.4262.4565.8504" = type { %"class.std::exception.1523.4250.4553.8492", [36 x i8], %"class.Foam::string.1530.4257.4560.8499", %"class.Foam::string.1530.4257.4560.8499", i32, i8, i8, %"class.Foam::OStringStream.1534.4261.4564.8503"* }
7 %"class.std::exception.1523.4250.4553.8492" = type { i32 (...)** }
8 %"class.Foam::OStringStream.1534.4261.4564.8503" = type { %"class.Foam::OSstream.1533.4260.4563.8502" }
9 %"class.Foam::OSstream.1533.4260.4563.8502" = type { [50 x i8], %"class.Foam::fileName.1531.4258.4561.8500", %"class.std::__1::basic_ostream.1532.4259.4562.8501"* }
10 %"class.Foam::fileName.1531.4258.4561.8500" = type { %"class.Foam::string.1530.4257.4560.8499" }
11 %"class.std::__1::basic_ostream.1532.4259.4562.8501" = type { i32 (...)**, [148 x i8] }
12 %"class.Foam::string.1530.4257.4560.8499" = type { %"class.std::__1::basic_string.1529.4256.4559.8498" }
13 %"class.std::__1::basic_string.1529.4256.4559.8498" = type { %"class.std::__1::__compressed_pair.1528.4255.4558.8497" }
14 %"class.std::__1::__compressed_pair.1528.4255.4558.8497" = type { %"class.std::__1::__libcpp_compressed_pair_imp.1527.4254.4557.8496" }
15 %"class.std::__1::__libcpp_compressed_pair_imp.1527.4254.4557.8496" = type { %"struct.std::__1::basic_string, std::__1::allocator >::__rep.1526.4253.4556.8495" }
16 %"struct.std::__1::basic_string, std::__1::allocator >::__rep.1526.4253.4556.8495" = type { %union.anon.1525.4252.4555.8494 }
17 %union.anon.1525.4252.4555.8494 = type { %"struct.std::__1::basic_string, std::__1::allocator >::__long.1524.4251.4554.8493" }
18 %"struct.std::__1::basic_string, std::__1::allocator >::__long.1524.4251.4554.8493" = type { i64, i64, i8* }
19
20 @.str3 = external unnamed_addr constant [16 x i8], align 1
21 @_ZNSt3__15ctypeIcE2idE = external global %"class.std::__1::locale::id.1580.4307.4610.8491"
22 @_ZN4Foam12FatalIOErrorE = external global %"class.Foam::IOerror.1581.4308.4611.8505"
23 @.str204 = external unnamed_addr constant [18 x i8], align 1
24 @.str205 = external unnamed_addr constant [34 x i8], align 1
25
26 declare void @_ZN4FoamlsERNS_7OstreamEPKc() #0
27
28 declare i32 @__gxx_personality_v0(...)
29
30 declare void @_ZNKSt3__18ios_base6getlocEv() #0
31
32 declare void @_ZNKSt3__16locale9use_facetERNS0_2idE() #0
33
34 ; Function Attrs: noreturn
35 declare void @_ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv() #1 align 2
36
37 declare void @_ZN4Foam6string6expandEb() #0
38
39 declare void @_ZN4Foam8IFstreamC1ERKNS_8fileNameENS_8IOstream12streamFormatENS4_13versionNumberE() #0
40
41 declare void @_ZN4Foam7IOerrorclEPKcS2_iRKNS_8IOstreamE() #0
42
43 declare void @_ZN4Foam7IOerror4exitEi() #0
44
45 ; Function Attrs: inlinehint
46 declare void @_ZN4Foam8fileName12stripInvalidEv() #2 align 2
47
48 define void @_ZN4Foam3CSVINS_6VectorIdEEE4readEv() #0 align 2 {
49 entry:
50 invoke void @_ZN4Foam6string6expandEb()
51 to label %invoke.cont unwind label %lpad
52
53 invoke.cont: ; preds = %entry
54 br i1 undef, label %if.then.i.i.i.i176, label %_ZN4Foam6stringC2ERKS0_.exit.i
55
56 if.then.i.i.i.i176: ; preds = %invoke.cont
57 invoke void @_ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv()
58 to label %.noexc unwind label %lpad
59
60 .noexc: ; preds = %if.then.i.i.i.i176
61 unreachable
62
63 _ZN4Foam6stringC2ERKS0_.exit.i: ; preds = %invoke.cont
64 invoke void @_ZN4Foam8fileName12stripInvalidEv()
65 to label %invoke.cont2 unwind label %lpad.i
66
67 lpad.i: ; preds = %_ZN4Foam6stringC2ERKS0_.exit.i
68 %0 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
69 cleanup
70 br label %ehcleanup142
71
72 invoke.cont2: ; preds = %_ZN4Foam6stringC2ERKS0_.exit.i
73 invoke void @_ZN4Foam8IFstreamC1ERKNS_8fileNameENS_8IOstream12streamFormatENS4_13versionNumberE()
74 to label %invoke.cont4 unwind label %lpad3
75
76 invoke.cont4: ; preds = %invoke.cont2
77 br i1 undef, label %for.body, label %if.then
78
79 if.then: ; preds = %invoke.cont4
80 invoke void @_ZN4Foam7IOerrorclEPKcS2_iRKNS_8IOstreamE()
81 to label %invoke.cont8 unwind label %lpad5
82
83 invoke.cont8: ; preds = %if.then
84 invoke void @_ZN4FoamlsERNS_7OstreamEPKc()
85 to label %memptr.end.i unwind label %lpad5
86
87 memptr.end.i: ; preds = %invoke.cont8
88 invoke void @_ZN4Foam7IOerror4exitEi()
89 to label %if.end unwind label %lpad5
90
91 lpad: ; preds = %if.then.i.i.i.i176, %entry
92 %1 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
93 cleanup
94 br label %ehcleanup142
95
96 lpad3: ; preds = %invoke.cont2
97 %2 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
98 cleanup
99 br label %ehcleanup142
100
101 lpad5: ; preds = %memptr.end.i, %invoke.cont8, %if.then
102 %3 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
103 cleanup
104 br label %ehcleanup142
105
106 if.end: ; preds = %memptr.end.i
107 br i1 undef, label %for.body, label %vector.body
108
109 for.body: ; preds = %if.end, %invoke.cont4
110 invoke void @_ZNKSt3__18ios_base6getlocEv()
111 to label %.noexc205 unwind label %lpad19
112
113 .noexc205: ; preds = %for.body
114 invoke void @_ZNKSt3__16locale9use_facetERNS0_2idE()
115 to label %invoke.cont.i.i.i unwind label %lpad.i.i.i
116
117 invoke.cont.i.i.i: ; preds = %.noexc205
118 unreachable
119
120 lpad.i.i.i: ; preds = %.noexc205
121 %4 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
122 cleanup
123 br label %ehcleanup142
124
125 lpad19: ; preds = %for.body
126 %5 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
127 cleanup
128 br label %ehcleanup142
129
130 vector.body: ; preds = %vector.body, %if.end
131 %vec.phi = phi <8 x i32> [ %10, %vector.body ], [ undef, %if.end ]
132 %vec.phi1302 = phi <8 x i32> [ %11, %vector.body ], [ undef, %if.end ]
133 %vec.phi1303 = phi <8 x i32> [ %12, %vector.body ], [ undef, %if.end ]
134 %vec.phi1304 = phi <8 x i32> [ %13, %vector.body ], [ undef, %if.end ]
135 %6 = icmp sgt <8 x i32> undef, %vec.phi
136 %7 = icmp sgt <8 x i32> undef, %vec.phi1302
137 %8 = icmp sgt <8 x i32> undef, %vec.phi1303
138 %9 = icmp sgt <8 x i32> undef, %vec.phi1304
139 %10 = select <8 x i1> %6, <8 x i32> undef, <8 x i32> %vec.phi
140 %11 = select <8 x i1> %7, <8 x i32> undef, <8 x i32> %vec.phi1302
141 %12 = select <8 x i1> %8, <8 x i32> undef, <8 x i32> %vec.phi1303
142 %13 = select <8 x i1> %9, <8 x i32> undef, <8 x i32> %vec.phi1304
143 br label %vector.body
144
145 ehcleanup142: ; preds = %lpad19, %lpad.i.i.i, %lpad5, %lpad3, %lpad, %lpad.i
146 resume { i8*, i32 } undef
147 }
148
149 attributes #0 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
150 attributes #1 = { noreturn "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
151 attributes #2 = { inlinehint "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
152
0 ; RUN: llc < %s -march=ppc64 -mtriple=powerpc64-unknown-linux-gnu
1 ; RUN: llc < %s -march=ppc64le -mtriple=powerpc64le-unknown-linux-gnu
2
3 %class.Point.1 = type { %class.Tensor.0 }
4 %class.Tensor.0 = type { [3 x double] }
5 %class.TriaObjectAccessor.57 = type { %class.TriaAccessor.56 }
6 %class.TriaAccessor.56 = type { i32, i32, %class.Triangulation.55* }
7 %class.Triangulation.55 = type { %class.Subscriptor, %"class.std::vector.46", %"class.std::vector", %"class.std::vector.3.8", [255 x %class.Boundary.50*], i32, %struct.TriaNumberCache.54 }
8 %class.Subscriptor = type { i32 (...)**, i32, %"class.std::type_info.2"* }
9 %"class.std::type_info.2" = type { i32 (...)**, i8* }
10 %"class.std::vector.46" = type { %"struct.std::_Vector_base.45" }
11 %"struct.std::_Vector_base.45" = type { %"struct.std::_Vector_base *, std::allocator *> >::_Vector_impl.44" }
12 %"struct.std::_Vector_base *, std::allocator *> >::_Vector_impl.44" = type { %class.TriangulationLevel.43**, %class.TriangulationLevel.43**, %class.TriangulationLevel.43** }
13 %class.TriangulationLevel.43 = type { %class.TriangulationLevel.0.37, %"struct.TriangulationLevel<3>::HexesData.42" }
14 %class.TriangulationLevel.0.37 = type { %class.TriangulationLevel.1.31, %"struct.TriangulationLevel<2>::QuadsData.36" }
15 %class.TriangulationLevel.1.31 = type { %class.TriangulationLevel, %"struct.TriangulationLevel<1>::LinesData.30" }
16 %class.TriangulationLevel = type { %"class.std::vector.3.8", %"class.std::vector.3.8", %"class.std::vector.7.12", %"class.std::vector.12.15" }
17 %"class.std::vector.7.12" = type { %"struct.std::_Vector_base" }
18 %"struct.std::_Vector_base" = type { %"struct.std::_Vector_base, std::allocator > >::_Vector_impl.10" }
19 %"struct.std::_Vector_base, std::allocator > >::_Vector_impl.10" = type { %"struct.std::pair.9"*, %"struct.std::pair.9"*, %"struct.std::pair.9"* }
20 %"struct.std::pair.9" = type opaque
21 %"class.std::vector.12.15" = type { %"struct.std::_Vector_base.13.14" }
22 %"struct.std::_Vector_base.13.14" = type { %"struct.std::_Vector_base >::_Vector_impl.13" }
23 %"struct.std::_Vector_base >::_Vector_impl.13" = type { i32*, i32*, i32* }
24 %"struct.TriangulationLevel<1>::LinesData.30" = type { %"class.std::vector.17.20", %"class.std::vector.22.23", %"class.std::vector.3.8", %"class.std::vector.3.8", %"class.std::vector.27.26", %"class.std::vector.32.29" }
25 %"class.std::vector.17.20" = type { %"struct.std::_Vector_base.18.19" }
26 %"struct.std::_Vector_base.18.19" = type { %"struct.std::_Vector_base >::_Vector_impl.18" }
27 %"struct.std::_Vector_base >::_Vector_impl.18" = type { %class.Line.17*, %class.Line.17*, %class.Line.17* }
28 %class.Line.17 = type { [2 x i32] }
29 %"class.std::vector.22.23" = type { %"struct.std::_Vector_base.23.22" }
30 %"struct.std::_Vector_base.23.22" = type { %"struct.std::_Vector_base >::_Vector_impl.21" }
31 %"struct.std::_Vector_base >::_Vector_impl.21" = type { i32*, i32*, i32* }
32 %"class.std::vector.27.26" = type { %"struct.std::_Vector_base.28.25" }
33 %"struct.std::_Vector_base.28.25" = type { %"struct.std::_Vector_base >::_Vector_impl.24" }
34 %"struct.std::_Vector_base >::_Vector_impl.24" = type { i8*, i8*, i8* }
35 %"class.std::vector.32.29" = type { %"struct.std::_Vector_base.33.28" }
36 %"struct.std::_Vector_base.33.28" = type { %"struct.std::_Vector_base >::_Vector_impl.27" }
37 %"struct.std::_Vector_base >::_Vector_impl.27" = type { i8**, i8**, i8** }
38 %"struct.TriangulationLevel<2>::QuadsData.36" = type { %"class.std::vector.37.35", %"class.std::vector.22.23", %"class.std::vector.3.8", %"class.std::vector.3.8", %"class.std::vector.27.26", %"class.std::vector.32.29" }
39 %"class.std::vector.37.35" = type { %"struct.std::_Vector_base.38.34" }
40 %"struct.std::_Vector_base.38.34" = type { %"struct.std::_Vector_base >::_Vector_impl.33" }
41 %"struct.std::_Vector_base >::_Vector_impl.33" = type { %class.Quad.32*, %class.Quad.32*, %class.Quad.32* }
42 %class.Quad.32 = type { [4 x i32] }
43 %"struct.TriangulationLevel<3>::HexesData.42" = type { %"class.std::vector.42.41", %"class.std::vector.22.23", %"class.std::vector.3.8", %"class.std::vector.3.8", %"class.std::vector.27.26", %"class.std::vector.32.29", %"class.std::vector.3.8" }
44 %"class.std::vector.42.41" = type { %"struct.std::_Vector_base.43.40" }
45 %"struct.std::_Vector_base.43.40" = type { %"struct.std::_Vector_base >::_Vector_impl.39" }
46 %"struct.std::_Vector_base >::_Vector_impl.39" = type { %class.Hexahedron.38*, %class.Hexahedron.38*, %class.Hexahedron.38* }
47 %class.Hexahedron.38= type { [6 x i32] }
48 %"class.std::vector" = type { %"struct.std::_Vector_base.48.48" }
49 %"struct.std::_Vector_base.48.48" = type { %"struct.std::_Vector_base, std::allocator > >::_Vector_impl.47" }
50 %"struct.std::_Vector_base, std::allocator > >::_Vector_impl.47" = type { %class.Point.1*, %class.Point.1*, %class.Point.1* }
51 %"class.std::vector.3.8" = type { %"struct.std::_Bvector_base.7" }
52 %"struct.std::_Bvector_base.7" = type { %"struct.std::_Bvector_base >::_Bvector_impl.6" }
53 %"struct.std::_Bvector_base >::_Bvector_impl.6" = type { %"struct.std::_Bit_iterator.5", %"struct.std::_Bit_iterator.5", i64* }
54 %"struct.std::_Bit_iterator.5" = type { %"struct.std::_Bit_iterator_base.base.4", [4 x i8] }
55 %"struct.std::_Bit_iterator_base.base.4" = type <{ i64*, i32 }>
56 %class.Boundary.50 = type opaque
57 %struct.TriaNumberCache.54 = type { %struct.TriaNumberCache.52.52, i32, %"class.std::vector.12.15", i32, %"class.std::vector.12.15" }
58 %struct.TriaNumberCache.52.52 = type { %struct.TriaNumberCache.53.51, i32, %"class.std::vector.12.15", i32, %"class.std::vector.12.15" }
59 %struct.TriaNumberCache.53.51 = type { i32, %"class.std::vector.12.15", i32, %"class.std::vector.12.15" }
60
61 define void @_ZNK18TriaObjectAccessorILi3ELi3EE10barycenterEv(%class.Point.1* noalias nocapture sret %agg.result, %class.TriaObjectAccessor.57* %this) #0 align 2 {
62 entry:
63 %0 = load double* null, align 8
64 %1 = load double* undef, align 8
65 %call18 = tail call dereferenceable(24) %class.Point.1* @_ZNK18TriaObjectAccessorILi3ELi3EE6vertexEj(%class.TriaObjectAccessor.57* %this, i32 zeroext 6)
66 %2 = load double* undef, align 8
67 %call21 = tail call dereferenceable(24) %class.Point.1* @_ZNK18TriaObjectAccessorILi3ELi3EE6vertexEj(%class.TriaObjectAccessor.57* %this, i32 zeroext 7)
68 %3 = load double* undef, align 8
69 %call33 = tail call dereferenceable(24) %class.Point.1* @_ZNK18TriaObjectAccessorILi3ELi3EE6vertexEj(%class.TriaObjectAccessor.57* %this, i32 zeroext 3)
70 %4 = load double* null, align 8
71 %5 = load double* undef, align 8
72 %call45 = tail call dereferenceable(24) %class.Point.1* @_ZNK18TriaObjectAccessorILi3ELi3EE6vertexEj(%class.TriaObjectAccessor.57* %this, i32 zeroext 7)
73 %6 = load double* undef, align 8
74 %call48 = tail call dereferenceable(24) %class.Point.1* @_ZNK18TriaObjectAccessorILi3ELi3EE6vertexEj(%class.TriaObjectAccessor.57* %this, i32 zeroext 0)
75 %7 = load double* undef, align 8
76 %call66 = tail call dereferenceable(24) %class.Point.1* @_ZNK18TriaObjectAccessorILi3ELi3EE6vertexEj(%class.TriaObjectAccessor.57* %this, i32 zeroext 6)
77 %8 = load double* undef, align 8
78 %mul334 = fmul double undef, 2.000000e+00
79 %mul579 = fmul double %2, %5
80 %mul597 = fmul double undef, %mul579
81 %mul679 = fmul double %2, %8
82 %mul1307 = fmul double undef, %1
83 %mul2092 = fmul double undef, %4
84 %mul2679 = fmul double undef, undef
85 %mul2931 = fmul double undef, %3
86 %mul3094 = fmul double undef, %3
87 %mul3096 = fmul double %mul3094, %8
88 %sub3097 = fsub double 0.000000e+00, %mul3096
89 %add3105 = fadd double undef, %sub3097
90 %add3113 = fadd double 0.000000e+00, %add3105
91 %sub3121 = fsub double %add3113, undef
92 %sub3129 = fsub double %sub3121, undef
93 %add3137 = fadd double undef, %sub3129
94 %add3145 = fadd double undef, %add3137
95 %sub3153 = fsub double %add3145, undef
96 %sub3162 = fsub double %sub3153, 0.000000e+00
97 %add3171 = fadd double undef, %sub3162
98 %add3180 = fadd double undef, %add3171
99 %add3189 = fadd double 0.000000e+00, %add3180
100 %mul3197 = fmul double %4, %mul2679
101 %sub3198 = fsub double %add3189, %mul3197
102 %sub3207 = fsub double %sub3198, 0.000000e+00
103 %mul3212 = fmul double %2, undef
104 %mul3214 = fmul double %mul3212, undef
105 %sub3215 = fsub double %sub3207, %mul3214
106 %mul3222 = fmul double %5, 0.000000e+00
107 %sub3223 = fsub double %sub3215, %mul3222
108 %mul3228 = fmul double %2, undef
109 %mul3230 = fmul double %3, %mul3228
110 %add3231 = fadd double %mul3230, %sub3223
111 %mul3236 = fmul double undef, undef
112 %mul3238 = fmul double %mul3236, %8
113 %add3239 = fadd double %mul3238, %add3231
114 %mul3244 = fmul double %mul1307, %3
115 %mul3246 = fmul double %mul3244, %7
116 %sub3247 = fsub double %add3239, %mul3246
117 %mul3252 = fmul double undef, undef
118 %mul3254 = fmul double %mul3252, %7
119 %add3255 = fadd double %mul3254, %sub3247
120 %sub3263 = fsub double %add3255, undef
121 %add3271 = fadd double 0.000000e+00, %sub3263
122 %sub3279 = fsub double %add3271, undef
123 %sub3287 = fsub double %sub3279, undef
124 %mul3292 = fmul double %mul1307, %5
125 %mul3294 = fmul double %mul3292, undef
126 %add3295 = fadd double %mul3294, %sub3287
127 %add3303 = fadd double undef, %add3295
128 %add3311 = fadd double 0.000000e+00, %add3303
129 %mul3318 = fmul double undef, %7
130 %sub3319 = fsub double %add3311, %mul3318
131 %mul3326 = fmul double %4, %mul3228
132 %sub3327 = fsub double %sub3319, %mul3326
133 %mul3334 = fmul double undef, %8
134 %sub3335 = fsub double %sub3327, %mul3334
135 %add3343 = fadd double undef, %sub3335
136 %mul3350 = fmul double %mul3212, %7
137 %add3351 = fadd double %mul3350, %add3343
138 %mul3358 = fmul double %mul2092, undef
139 %sub3359 = fsub double %add3351, %mul3358
140 %mul3362 = fmul double undef, %1
141 %mul3366 = fmul double 0.000000e+00, %8
142 %add3367 = fadd double %mul3366, %sub3359
143 %mul3372 = fmul double %mul3362, %5
144 %sub3375 = fsub double %add3367, undef
145 %add3383 = fadd double undef, %sub3375
146 %mul3389 = fmul double %2, 0.000000e+00
147 %mul3391 = fmul double %4, %mul3389
148 %sub3392 = fsub double %add3383, %mul3391
149 %mul3396 = fmul double undef, 0.000000e+00
150 %mul3400 = fmul double undef, %7
151 %sub3401 = fsub double %sub3392, %mul3400
152 %mul3407 = fmul double %mul3396, %4
153 %mul3409 = fmul double %mul3407, %8
154 %add3410 = fadd double %mul3409, %sub3401
155 %add3419 = fadd double undef, %add3410
156 %mul3423 = fmul double undef, %mul334
157 %add3428 = fadd double undef, %add3419
158 %add3437 = fadd double undef, %add3428
159 %mul3443 = fmul double %mul3423, %3
160 %mul3445 = fmul double %mul3443, %8
161 %sub3446 = fsub double %add3437, %mul3445
162 %mul3453 = fmul double %mul3372, undef
163 %add3454 = fadd double %mul3453, %sub3446
164 %add3462 = fadd double 0.000000e+00, %add3454
165 %mul3467 = fmul double %mul3362, %3
166 %mul3469 = fmul double %mul3467, %8
167 %sub3470 = fsub double %add3462, %mul3469
168 %add3478 = fadd double 0.000000e+00, %sub3470
169 %sub3486 = fsub double %add3478, undef
170 %mul3490 = fmul double %mul334, 0.000000e+00
171 %mul3492 = fmul double %2, %mul3490
172 %mul3494 = fmul double %mul3492, undef
173 %sub3495 = fsub double %sub3486, %mul3494
174 %sub3503 = fsub double %sub3495, undef
175 %sub3512 = fsub double %sub3503, undef
176 %add3520 = fadd double undef, %sub3512
177 %sub3528 = fsub double %add3520, undef
178 %add3537 = fadd double undef, %sub3528
179 %add3545 = fadd double 0.000000e+00, %add3537
180 %sub3553 = fsub double %add3545, undef
181 %add3561 = fadd double undef, %sub3553
182 %sub3569 = fsub double %add3561, undef
183 %mul3574 = fmul double undef, undef
184 %mul3576 = fmul double %mul3574, %7
185 %add3577 = fadd double %mul3576, %sub3569
186 %sub3585 = fsub double %add3577, undef
187 %mul3592 = fmul double %4, undef
188 %sub3593 = fsub double %sub3585, %mul3592
189 %mul3598 = fmul double %2, undef
190 %mul3600 = fmul double %mul3598, %7
191 %add3601 = fadd double %mul3600, %sub3593
192 %mul3608 = fmul double %mul3598, undef
193 %sub3609 = fsub double %add3601, %mul3608
194 %sub3618 = fsub double %sub3609, undef
195 %add3627 = fadd double undef, %sub3618
196 %add3635 = fadd double undef, %add3627
197 %mul3638 = fmul double undef, %2
198 %mul3640 = fmul double %mul3638, %5
199 %mul3642 = fmul double %mul3640, %7
200 %sub3643 = fsub double %add3635, %mul3642
201 %mul3648 = fmul double %1, undef
202 %mul3650 = fmul double %mul3648, %8
203 %sub3651 = fsub double %sub3643, %mul3650
204 %mul3656 = fmul double %mul3638, %4
205 %mul3658 = fmul double %mul3656, %8
206 %add3659 = fadd double %mul3658, %sub3651
207 %mul3666 = fmul double %5, 0.000000e+00
208 %add3667 = fadd double %mul3666, %add3659
209 %sub3675 = fsub double %add3667, undef
210 %mul3680 = fmul double %mul3638, %3
211 %mul3682 = fmul double %mul3680, %8
212 %sub3683 = fsub double %sub3675, %mul3682
213 %add3692 = fadd double 0.000000e+00, %sub3683
214 %mul3696 = fmul double undef, undef
215 %mul3698 = fmul double %mul3696, %4
216 %mul3700 = fmul double %mul3698, %8
217 %add3701 = fadd double %mul3700, %add3692
218 %sub3710 = fsub double %add3701, undef
219 %mul3716 = fmul double undef, %3
220 %mul3718 = fmul double %mul3716, %8
221 %sub3719 = fsub double %sub3710, %mul3718
222 %add3727 = fadd double undef, %sub3719
223 %mul3734 = fmul double %mul3574, %8
224 %add3735 = fadd double %mul3734, %add3727
225 %sub3743 = fsub double %add3735, 0.000000e+00
226 %add3751 = fadd double 0.000000e+00, %sub3743
227 %mul3758 = fmul double %6, 0.000000e+00
228 %sub3759 = fsub double %add3751, %mul3758
229 %mul3764 = fmul double undef, %mul2931
230 %mul3766 = fmul double %mul3764, undef
231 %sub3767 = fsub double %sub3759, %mul3766
232 %add3775 = fadd double 0.000000e+00, %sub3767
233 %add3783 = fadd double undef, %add3775
234 %sub3791 = fsub double %add3783, 0.000000e+00
235 %add3799 = fadd double undef, %sub3791
236 %sub3807 = fsub double %add3799, undef
237 %mul3814 = fmul double 0.000000e+00, undef
238 %add3815 = fadd double %mul3814, %sub3807
239 %mul3822 = fmul double %mul597, undef
240 %sub3823 = fsub double %add3815, %mul3822
241 %add3831 = fadd double undef, %sub3823
242 %mul3836 = fmul double undef, %mul679
243 %mul3838 = fmul double %6, %mul3836
244 %sub3839 = fsub double %add3831, %mul3838
245 %add3847 = fadd double undef, %sub3839
246 %add3855 = fadd double undef, %add3847
247 %mul3858 = fmul double undef, %8
248 %mul3860 = fmul double undef, %mul3858
249 %mul3862 = fmul double %6, %mul3860
250 %sub3863 = fsub double %add3855, %mul3862
251 %add3872 = fadd double undef, %sub3863
252 %sub3880 = fsub double %add3872, undef
253 %sub3889 = fsub double %sub3880, undef
254 %sub3898 = fsub double %sub3889, undef
255 %add3907 = fadd double undef, %sub3898
256 %sub3915 = fsub double %add3907, 0.000000e+00
257 %add3923 = fadd double undef, %sub3915
258 %mul3930 = fmul double %3, undef
259 %add3931 = fadd double %mul3930, %add3923
260 %add3940 = fadd double undef, %add3931
261 %sub3949 = fsub double %add3940, undef
262 %mul3952 = fmul double %2, %3
263 %sub3957 = fsub double %sub3949, undef
264 %sub3966 = fsub double %sub3957, undef
265 %add3975 = fadd double undef, %sub3966
266 %add3983 = fadd double undef, %add3975
267 %sub3992 = fsub double %add3983, undef
268 %mul3997 = fmul double undef, %mul3952
269 %mul3999 = fmul double %mul3997, %8
270 %add4000 = fadd double %mul3999, %sub3992
271 %sub4008 = fsub double %add4000, undef
272 %add4017 = fadd double undef, %sub4008
273 %add4026 = fadd double 0.000000e+00, %add4017
274 %mul4034 = fmul double %6, undef
275 %sub4035 = fsub double %add4026, %mul4034
276 %add4043 = fadd double undef, %sub4035
277 %sub4051 = fsub double %add4043, 0.000000e+00
278 %mul4916 = fmul double 0.000000e+00, %sub4051
279 %mul4917 = fmul double %mul4916, 0x3FC5555555555555
280 %mul7317 = fmul double 0.000000e+00, %3
281 %mul7670 = fmul double %0, %mul7317
282 %mul8882 = fmul double %0, 0.000000e+00
283 %mul8884 = fmul double undef, %mul8882
284 %sub8885 = fsub double 0.000000e+00, %mul8884
285 %mul8892 = fmul double %mul7670, undef
286 %add8893 = fadd double %mul8892, %sub8885
287 %mul8900 = fmul double undef, undef
288 %add8901 = fadd double %mul8900, %add8893
289 %mul9767 = fmul double 0.000000e+00, %add8901
290 %mul9768 = fmul double %mul9767, 0x3FC5555555555555
291 store double %mul4917, double* undef, align 8
292 store double %mul9768, double* undef, align 8
293 ret void
294 }
295
296 declare dereferenceable(24) %class.Point.1* @_ZNK18TriaObjectAccessorILi3ELi3EE6vertexEj(%class.TriaObjectAccessor.57*, i32 zeroext) #0
297