aboutsummaryrefslogtreecommitdiff
path: root/test/CodeGen/X86
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2013-12-22 00:04:03 +0000
committerDimitry Andric <dim@FreeBSD.org>2013-12-22 00:04:03 +0000
commitf8af5cf600354830d4ccf59732403f0f073eccb9 (patch)
tree2ba0398b4c42ad4f55561327538044fd2c925a8b /test/CodeGen/X86
parent59d6cff90eecf31cb3dd860c4e786674cfdd42eb (diff)
Notes
Diffstat (limited to 'test/CodeGen/X86')
-rw-r--r--test/CodeGen/X86/2006-05-02-InstrSched1.ll6
-rw-r--r--test/CodeGen/X86/2006-05-11-InstrSched.ll2
-rw-r--r--test/CodeGen/X86/2006-11-12-CSRetCC.ll2
-rw-r--r--test/CodeGen/X86/2007-01-08-InstrSched.ll4
-rw-r--r--test/CodeGen/X86/2007-02-04-OrAddrMode.ll4
-rw-r--r--test/CodeGen/X86/2007-02-23-DAGCombine-Miscompile.ll2
-rw-r--r--test/CodeGen/X86/2007-03-24-InlineAsmXConstraint.ll2
-rw-r--r--test/CodeGen/X86/2007-05-07-InvokeSRet.ll19
-rw-r--r--test/CodeGen/X86/2007-09-06-ExtWeakAliasee.ll13
-rw-r--r--test/CodeGen/X86/2007-09-27-LDIntrinsics.ll4
-rw-r--r--test/CodeGen/X86/2007-10-12-CoalesceExtSubReg.ll6
-rw-r--r--test/CodeGen/X86/2007-10-12-SpillerUnfold2.ll2
-rw-r--r--test/CodeGen/X86/2008-01-08-SchedulerCrash.ll2
-rw-r--r--test/CodeGen/X86/2008-02-08-LoadFoldingBug.ll99
-rw-r--r--test/CodeGen/X86/2008-03-14-SpillerCrash.ll4
-rw-r--r--test/CodeGen/X86/2008-04-24-pblendw-fold-crash.ll2
-rw-r--r--test/CodeGen/X86/2008-04-26-Asm-Optimize-Imm.ll2
-rw-r--r--test/CodeGen/X86/2008-05-22-FoldUnalignedLoad.ll2
-rw-r--r--test/CodeGen/X86/2008-07-19-movups-spills.ll673
-rw-r--r--test/CodeGen/X86/2008-08-19-SubAndFetch.ll2
-rw-r--r--test/CodeGen/X86/2008-08-31-EH_RETURN32.ll2
-rw-r--r--test/CodeGen/X86/2008-09-11-CoalescerBug2.ll12
-rw-r--r--test/CodeGen/X86/2009-02-12-DebugInfoVLA.ll18
-rw-r--r--test/CodeGen/X86/2009-02-12-InlineAsm-nieZ-constraints.ll2
-rw-r--r--test/CodeGen/X86/2009-02-26-MachineLICMBug.ll10
-rw-r--r--test/CodeGen/X86/2009-03-23-MultiUseSched.ll2
-rw-r--r--test/CodeGen/X86/2009-04-21-NoReloadImpDef.ll2
-rw-r--r--test/CodeGen/X86/2009-05-23-dagcombine-shifts.ll2
-rw-r--r--test/CodeGen/X86/2009-09-21-NoSpillLoopCount.ll2
-rw-r--r--test/CodeGen/X86/2009-10-16-Scope.ll12
-rw-r--r--test/CodeGen/X86/2009-11-16-MachineLICM.ll2
-rw-r--r--test/CodeGen/X86/2009-11-16-UnfoldMemOpBug.ll2
-rw-r--r--test/CodeGen/X86/2009-12-01-EarlyClobberBug.ll4
-rw-r--r--test/CodeGen/X86/2009-12-11-TLSNoRedZone.ll2
-rw-r--r--test/CodeGen/X86/2010-01-08-Atomic64Bug.ll2
-rw-r--r--test/CodeGen/X86/2010-01-18-DbgValue.ll15
-rw-r--r--test/CodeGen/X86/2010-02-01-DbgValueCrash.ll24
-rw-r--r--test/CodeGen/X86/2010-02-19-TailCallRetAddrBug.ll6
-rw-r--r--test/CodeGen/X86/2010-02-23-DAGCombineBug.ll2
-rw-r--r--test/CodeGen/X86/2010-04-08-CoalescerBug.ll2
-rw-r--r--test/CodeGen/X86/2010-05-25-DotDebugLoc.ll11
-rw-r--r--test/CodeGen/X86/2010-05-26-DotDebugLoc.ll37
-rw-r--r--test/CodeGen/X86/2010-05-28-Crash.ll23
-rw-r--r--test/CodeGen/X86/2010-06-01-DeadArg-DbgInfo.ll43
-rw-r--r--test/CodeGen/X86/2010-07-06-DbgCrash.ll22
-rw-r--r--test/CodeGen/X86/2010-07-29-SetccSimplify.ll2
-rw-r--r--test/CodeGen/X86/2010-08-04-StackVariable.ll56
-rw-r--r--test/CodeGen/X86/2010-09-16-EmptyFilename.ll19
-rw-r--r--test/CodeGen/X86/2010-09-17-SideEffectsInChain.ll8
-rw-r--r--test/CodeGen/X86/2010-11-02-DbgParameter.ll21
-rw-r--r--test/CodeGen/X86/2010-12-02-MC-Set.ll14
-rw-r--r--test/CodeGen/X86/2011-01-24-DbgValue-Before-Use.ll19
-rw-r--r--test/CodeGen/X86/2011-04-19-sclr-bb.ll2
-rw-r--r--test/CodeGen/X86/2011-05-09-loaduse.ll2
-rw-r--r--test/CodeGen/X86/2011-05-26-UnreachableBlockElim.ll15
-rw-r--r--test/CodeGen/X86/2011-06-03-x87chain.ll18
-rw-r--r--test/CodeGen/X86/2011-07-13-BadFrameIndexDisplacement.ll2
-rw-r--r--test/CodeGen/X86/2011-09-14-valcoalesce.ll37
-rw-r--r--test/CodeGen/X86/2011-09-18-sse2cmp.ll2
-rw-r--r--test/CodeGen/X86/2011-09-21-setcc-bug.ll2
-rw-r--r--test/CodeGen/X86/2011-10-11-srl.ll2
-rw-r--r--test/CodeGen/X86/2011-10-12-MachineCSE.ll29
-rw-r--r--test/CodeGen/X86/2011-10-18-FastISel-VectorParams.ll2
-rw-r--r--test/CodeGen/X86/2011-10-19-LegelizeLoad.ll3
-rw-r--r--test/CodeGen/X86/2011-10-27-tstore.ll2
-rw-r--r--test/CodeGen/X86/2011-10-30-padd.ll4
-rw-r--r--test/CodeGen/X86/2011-12-06-AVXVectorExtractCombine.ll2
-rw-r--r--test/CodeGen/X86/2011-12-15-vec_shift.ll4
-rw-r--r--test/CodeGen/X86/2011-12-26-extractelement-duplicate-load.ll4
-rw-r--r--test/CodeGen/X86/2011-20-21-zext-ui2fp.ll2
-rw-r--r--test/CodeGen/X86/2012-01-11-split-cv.ll2
-rw-r--r--test/CodeGen/X86/2012-01-16-mfence-nosse-flags.ll2
-rw-r--r--test/CodeGen/X86/2012-01-18-vbitcast.ll2
-rw-r--r--test/CodeGen/X86/2012-02-20-MachineCPBug.ll78
-rw-r--r--test/CodeGen/X86/2012-04-26-sdglue.ll6
-rw-r--r--test/CodeGen/X86/2012-05-17-TwoAddressBug.ll2
-rw-r--r--test/CodeGen/X86/2012-07-10-extload64.ll4
-rw-r--r--test/CodeGen/X86/2012-07-15-broadcastfold.ll2
-rw-r--r--test/CodeGen/X86/2012-08-07-CmpISelBug.ll2
-rw-r--r--test/CodeGen/X86/2012-08-16-setcc.ll8
-rw-r--r--test/CodeGen/X86/2012-08-17-legalizer-crash.ll3
-rw-r--r--test/CodeGen/X86/2012-1-10-buildvector.ll4
-rw-r--r--test/CodeGen/X86/2012-11-30-handlemove-dbg.ll8
-rw-r--r--test/CodeGen/X86/2012-11-30-misched-dbg.ll8
-rw-r--r--test/CodeGen/X86/2012-11-30-regpres-dbg.ll10
-rw-r--r--test/CodeGen/X86/2013-03-13-VEX-DestReg.ll2
-rw-r--r--test/CodeGen/X86/2013-10-14-FastISel-incorrect-vreg.ll132
-rw-r--r--test/CodeGen/X86/3addr-16bit.ll23
-rw-r--r--test/CodeGen/X86/3addr-or.ll10
-rw-r--r--test/CodeGen/X86/GC/lit.local.cfg2
-rw-r--r--test/CodeGen/X86/GC/ocaml-gc-assert.ll21
-rw-r--r--test/CodeGen/X86/GC/ocaml-gc.ll20
-rw-r--r--test/CodeGen/X86/MachineSink-CritEdge.ll4
-rw-r--r--test/CodeGen/X86/MachineSink-DbgValue.ll15
-rw-r--r--test/CodeGen/X86/MergeConsecutiveStores.ll10
-rw-r--r--test/CodeGen/X86/StackColoring-dbg.ll9
-rw-r--r--test/CodeGen/X86/StackColoring.ll43
-rw-r--r--test/CodeGen/X86/WidenArith.ll2
-rw-r--r--test/CodeGen/X86/abi-isel.ll1224
-rw-r--r--test/CodeGen/X86/add-of-carry.ll6
-rw-r--r--test/CodeGen/X86/add.ll34
-rw-r--r--test/CodeGen/X86/aes_intrinsics.ll48
-rw-r--r--test/CodeGen/X86/alias-error.ll5
-rw-r--r--test/CodeGen/X86/aliases.ll26
-rw-r--r--test/CodeGen/X86/alloca-align-rounding-32.ll2
-rw-r--r--test/CodeGen/X86/alloca-align-rounding.ll2
-rw-r--r--test/CodeGen/X86/and-su.ll4
-rw-r--r--test/CodeGen/X86/anyregcc-crash.ll17
-rw-r--r--test/CodeGen/X86/anyregcc.ll348
-rw-r--r--test/CodeGen/X86/apm.ll8
-rw-r--r--test/CodeGen/X86/asm-global-imm.ll2
-rw-r--r--test/CodeGen/X86/asm-modifier-P.ll16
-rw-r--r--test/CodeGen/X86/asm-modifier.ll8
-rw-r--r--test/CodeGen/X86/atom-bypass-slow-division-64.ll21
-rw-r--r--test/CodeGen/X86/atom-bypass-slow-division.ll20
-rw-r--r--test/CodeGen/X86/atom-call-reg-indirect.ll14
-rw-r--r--test/CodeGen/X86/atom-lea-addw-bug.ll19
-rw-r--r--test/CodeGen/X86/atom-lea-sp.ll12
-rw-r--r--test/CodeGen/X86/atom-sched.ll4
-rw-r--r--test/CodeGen/X86/atomic-dagsched.ll8
-rw-r--r--test/CodeGen/X86/atomic-minmax-i6432.ll2
-rw-r--r--test/CodeGen/X86/atomic-or.ll4
-rw-r--r--test/CodeGen/X86/atomic_add.ll48
-rw-r--r--test/CodeGen/X86/avx-arith.ll5
-rw-r--r--test/CodeGen/X86/avx-basic.ll4
-rw-r--r--test/CodeGen/X86/avx-bitcast.ll2
-rw-r--r--test/CodeGen/X86/avx-blend.ll26
-rw-r--r--test/CodeGen/X86/avx-brcond.ll12
-rwxr-xr-xtest/CodeGen/X86/avx-fp2int.ll4
-rw-r--r--test/CodeGen/X86/avx-intel-ocl.ll13
-rw-r--r--test/CodeGen/X86/avx-minmax.ll16
-rwxr-xr-xtest/CodeGen/X86/avx-sext.ll11
-rw-r--r--test/CodeGen/X86/avx-shift.ll3
-rwxr-xr-xtest/CodeGen/X86/avx-shuffle-x86_32.ll2
-rw-r--r--test/CodeGen/X86/avx-shuffle.ll16
-rw-r--r--test/CodeGen/X86/avx-splat.ll2
-rwxr-xr-xtest/CodeGen/X86/avx-trunc.ll7
-rw-r--r--test/CodeGen/X86/avx-varargs-x86_64.ll2
-rw-r--r--test/CodeGen/X86/avx-vextractf128.ll2
-rw-r--r--test/CodeGen/X86/avx-vpermil.ll2
-rwxr-xr-xtest/CodeGen/X86/avx-zext.ll18
-rw-r--r--test/CodeGen/X86/avx2-arith.ll112
-rwxr-xr-xtest/CodeGen/X86/avx2-conversions.ll28
-rw-r--r--test/CodeGen/X86/avx2-gather.ll18
-rw-r--r--test/CodeGen/X86/avx2-logic.ll4
-rw-r--r--test/CodeGen/X86/avx2-palignr.ll18
-rw-r--r--test/CodeGen/X86/avx2-phaddsub.ll16
-rw-r--r--test/CodeGen/X86/avx2-shift.ll8
-rw-r--r--test/CodeGen/X86/avx2-shuffle.ll8
-rw-r--r--test/CodeGen/X86/avx2-vbroadcast.ll24
-rw-r--r--test/CodeGen/X86/avx2-vector-shifts.ll247
-rw-r--r--test/CodeGen/X86/avx512-arith.ll271
-rw-r--r--test/CodeGen/X86/avx512-build-vector.ll18
-rw-r--r--test/CodeGen/X86/avx512-cmp.ll27
-rw-r--r--test/CodeGen/X86/avx512-cvt.ll217
-rw-r--r--test/CodeGen/X86/avx512-fma-intrinsics.ll97
-rw-r--r--test/CodeGen/X86/avx512-fma.ll83
-rw-r--r--test/CodeGen/X86/avx512-gather-scatter-intrin.ll225
-rw-r--r--test/CodeGen/X86/avx512-insert-extract.ll125
-rw-r--r--test/CodeGen/X86/avx512-intrinsics.ll374
-rw-r--r--test/CodeGen/X86/avx512-mask-op.ll57
-rw-r--r--test/CodeGen/X86/avx512-mov.ll155
-rw-r--r--test/CodeGen/X86/avx512-select.ll22
-rw-r--r--test/CodeGen/X86/avx512-shift.ll108
-rw-r--r--test/CodeGen/X86/avx512-shuffle.ll226
-rw-r--r--test/CodeGen/X86/avx512-trunc-ext.ll127
-rw-r--r--test/CodeGen/X86/avx512-vbroadcast.ll53
-rw-r--r--test/CodeGen/X86/avx512-vec-cmp.ll113
-rw-r--r--test/CodeGen/X86/bc-extract.ll2
-rw-r--r--test/CodeGen/X86/bigstructret2.ll10
-rw-r--r--test/CodeGen/X86/bitcast2.ll4
-rw-r--r--test/CodeGen/X86/blend-msb.ll8
-rw-r--r--test/CodeGen/X86/block-placement.ll50
-rw-r--r--test/CodeGen/X86/bmi.ll136
-rw-r--r--test/CodeGen/X86/bool-simplify.ll2
-rw-r--r--test/CodeGen/X86/brcond.ll18
-rw-r--r--test/CodeGen/X86/break-anti-dependencies.ll2
-rw-r--r--test/CodeGen/X86/break-avx-dep.ll29
-rw-r--r--test/CodeGen/X86/break-sse-dep.ll12
-rw-r--r--test/CodeGen/X86/bswap-inline-asm.ll24
-rw-r--r--test/CodeGen/X86/bswap.ll113
-rw-r--r--test/CodeGen/X86/bt.ll54
-rw-r--r--test/CodeGen/X86/btq.ll4
-rw-r--r--test/CodeGen/X86/byval7.ll6
-rw-r--r--test/CodeGen/X86/call-push.ll2
-rw-r--r--test/CodeGen/X86/chain_order.ll37
-rw-r--r--test/CodeGen/X86/change-compare-stride-1.ll2
-rw-r--r--test/CodeGen/X86/change-compare-stride-trickiness-0.ll2
-rw-r--r--test/CodeGen/X86/change-compare-stride-trickiness-1.ll2
-rw-r--r--test/CodeGen/X86/clz.ll24
-rw-r--r--test/CodeGen/X86/cmov-fp.ll192
-rw-r--r--test/CodeGen/X86/cmov-into-branch.ll10
-rw-r--r--test/CodeGen/X86/cmov.ll24
-rw-r--r--test/CodeGen/X86/cmp.ll27
-rw-r--r--test/CodeGen/X86/coalesce-implicitdef.ll35
-rw-r--r--test/CodeGen/X86/coalescer-commute1.ll2
-rw-r--r--test/CodeGen/X86/code_placement_align_all.ll2
-rw-r--r--test/CodeGen/X86/codegen-prepare.ll2
-rw-r--r--test/CodeGen/X86/codemodel.ll24
-rw-r--r--test/CodeGen/X86/coff-feat00.ll7
-rw-r--r--test/CodeGen/X86/commute-two-addr.ll14
-rw-r--r--test/CodeGen/X86/compact-unwind.ll23
-rw-r--r--test/CodeGen/X86/compare-inf.ll114
-rw-r--r--test/CodeGen/X86/compiler_used.ll2
-rw-r--r--test/CodeGen/X86/conditional-indecrement.ll16
-rw-r--r--test/CodeGen/X86/crash-nosse.ll2
-rw-r--r--test/CodeGen/X86/crash.ll13
-rw-r--r--test/CodeGen/X86/critical-edge-split-2.ll2
-rw-r--r--test/CodeGen/X86/ctpop-combine.ll6
-rw-r--r--test/CodeGen/X86/dag-rauw-cse.ll2
-rw-r--r--test/CodeGen/X86/dagcombine-buildvector.ll4
-rw-r--r--test/CodeGen/X86/dagcombine-shifts.ll209
-rw-r--r--test/CodeGen/X86/dagcombine-unsafe-math.ll (renamed from test/CodeGen/X86/dagcombine_unsafe_math.ll)2
-rw-r--r--test/CodeGen/X86/dbg-at-specficiation.ll20
-rw-r--r--test/CodeGen/X86/dbg-byval-parameter.ll49
-rw-r--r--test/CodeGen/X86/dbg-const-int.ll30
-rw-r--r--test/CodeGen/X86/dbg-const.ll36
-rw-r--r--test/CodeGen/X86/dbg-declare-arg.ll125
-rw-r--r--test/CodeGen/X86/dbg-declare.ll55
-rw-r--r--test/CodeGen/X86/dbg-file-name.ll21
-rw-r--r--test/CodeGen/X86/dbg-i128-const.ll31
-rw-r--r--test/CodeGen/X86/dbg-large-unsigned-const.ll58
-rw-r--r--test/CodeGen/X86/dbg-merge-loc-entry.ll78
-rw-r--r--test/CodeGen/X86/dbg-prolog-end.ll55
-rw-r--r--test/CodeGen/X86/dbg-subrange.ll34
-rw-r--r--test/CodeGen/X86/dbg-value-dag-combine.ll47
-rw-r--r--test/CodeGen/X86/dbg-value-isel.ll103
-rw-r--r--test/CodeGen/X86/dbg-value-location.ll74
-rw-r--r--test/CodeGen/X86/dbg-value-range.ll60
-rw-r--r--test/CodeGen/X86/divide-by-constant.ll18
-rw-r--r--test/CodeGen/X86/dwarf-comp-dir.ll5
-rw-r--r--test/CodeGen/X86/dyn_alloca_aligned.ll9
-rw-r--r--test/CodeGen/X86/emit-big-cst.ll17
-rw-r--r--test/CodeGen/X86/extended-fma-contraction.ll22
-rw-r--r--test/CodeGen/X86/extractelement-load.ll4
-rw-r--r--test/CodeGen/X86/fabs.ll18
-rw-r--r--test/CodeGen/X86/fast-cc-merge-stack-adj.ll2
-rw-r--r--test/CodeGen/X86/fast-cc-pass-in-regs.ll8
-rw-r--r--test/CodeGen/X86/fast-isel-call.ll8
-rw-r--r--test/CodeGen/X86/fast-isel-divrem-x86-64.ll10
-rw-r--r--test/CodeGen/X86/fast-isel-divrem.ll28
-rw-r--r--test/CodeGen/X86/fast-isel-extract.ll4
-rw-r--r--test/CodeGen/X86/fast-isel-fneg.ll4
-rw-r--r--test/CodeGen/X86/fast-isel-gep.ll20
-rw-r--r--test/CodeGen/X86/fast-isel-i1.ll4
-rw-r--r--test/CodeGen/X86/fast-isel-mem.ll6
-rw-r--r--test/CodeGen/X86/fast-isel-ret-ext.ll12
-rw-r--r--test/CodeGen/X86/fast-isel-store.ll64
-rw-r--r--test/CodeGen/X86/fast-isel-tls.ll4
-rw-r--r--test/CodeGen/X86/fast-isel-unaligned-store.ll18
-rw-r--r--test/CodeGen/X86/fast-isel-x86-64.ll46
-rw-r--r--test/CodeGen/X86/fast-isel-x86.ll10
-rw-r--r--test/CodeGen/X86/fastcc.ll4
-rw-r--r--test/CodeGen/X86/fastisel-gep-promote-before-add.ll37
-rw-r--r--test/CodeGen/X86/floor-soft-float.ll13
-rw-r--r--test/CodeGen/X86/fma.ll8
-rw-r--r--test/CodeGen/X86/fma_patterns.ll8
-rw-r--r--test/CodeGen/X86/fma_patterns_wide.ll84
-rw-r--r--test/CodeGen/X86/fold-add.ll2
-rw-r--r--test/CodeGen/X86/fold-and-shift.ll8
-rw-r--r--test/CodeGen/X86/fold-load-vec.ll6
-rw-r--r--test/CodeGen/X86/fold-load.ll14
-rw-r--r--test/CodeGen/X86/fold-pcmpeqd-1.ll4
-rw-r--r--test/CodeGen/X86/fold-pcmpeqd-2.ll17
-rw-r--r--test/CodeGen/X86/force-align-stack-alloca.ll2
-rw-r--r--test/CodeGen/X86/fp-elim-and-no-fp-elim.ll4
-rw-r--r--test/CodeGen/X86/fp-elim.ll64
-rw-r--r--test/CodeGen/X86/fp-fast.ll83
-rw-r--r--test/CodeGen/X86/fp-select-cmp-and.ll185
-rw-r--r--test/CodeGen/X86/fp-une-cmp.ll43
-rw-r--r--test/CodeGen/X86/fp_constant_op.ll24
-rw-r--r--test/CodeGen/X86/frame-base.ll22
-rw-r--r--test/CodeGen/X86/full-lsr.ll2
-rw-r--r--test/CodeGen/X86/gather-addresses.ll38
-rw-r--r--test/CodeGen/X86/gcc_except_table.ll6
-rw-r--r--test/CodeGen/X86/ghc-cc.ll7
-rw-r--r--test/CodeGen/X86/ghc-cc64.ll31
-rw-r--r--test/CodeGen/X86/global-sections.ll8
-rw-r--r--test/CodeGen/X86/h-register-addressing-32.ll23
-rw-r--r--test/CodeGen/X86/h-register-addressing-64.ll23
-rw-r--r--test/CodeGen/X86/h-registers-0.ll42
-rw-r--r--test/CodeGen/X86/h-registers-1.ll15
-rw-r--r--test/CodeGen/X86/h-registers-2.ll2
-rw-r--r--test/CodeGen/X86/haddsub.ll92
-rw-r--r--test/CodeGen/X86/hidden-vis-4.ll2
-rw-r--r--test/CodeGen/X86/hidden-vis.ll6
-rw-r--r--test/CodeGen/X86/hipe-cc.ll6
-rw-r--r--test/CodeGen/X86/hipe-cc64.ll12
-rw-r--r--test/CodeGen/X86/hipe-prologue.ll12
-rw-r--r--test/CodeGen/X86/hoist-common.ll14
-rw-r--r--test/CodeGen/X86/i128-mul.ll36
-rw-r--r--test/CodeGen/X86/i128-sdiv.ll6
-rw-r--r--test/CodeGen/X86/i486-fence-loop.ll27
-rw-r--r--test/CodeGen/X86/iabs.ll2
-rw-r--r--test/CodeGen/X86/ident-metadata.ll9
-rw-r--r--test/CodeGen/X86/inline-asm-R-constraint.ll2
-rw-r--r--test/CodeGen/X86/inline-asm-error.ll2
-rw-r--r--test/CodeGen/X86/inline-asm-flag-clobber.ll31
-rw-r--r--test/CodeGen/X86/inline-asm-fpstack.ll2
-rw-r--r--test/CodeGen/X86/inreg.ll4
-rw-r--r--test/CodeGen/X86/ins_subreg_coalesce-1.ll4
-rw-r--r--test/CodeGen/X86/isel-optnone.ll42
-rw-r--r--test/CodeGen/X86/isel-sink.ll2
-rw-r--r--test/CodeGen/X86/jump_sign.ll76
-rw-r--r--test/CodeGen/X86/large-gep-chain.ll25607
-rw-r--r--test/CodeGen/X86/lea-2.ll2
-rw-r--r--test/CodeGen/X86/lea-recursion.ll3
-rw-r--r--test/CodeGen/X86/lea.ll10
-rw-r--r--test/CodeGen/X86/leaf-fp-elim.ll4
-rw-r--r--test/CodeGen/X86/legalize-shift-64.ll39
-rw-r--r--test/CodeGen/X86/licm-dominance.ll2
-rw-r--r--test/CodeGen/X86/licm-nested.ll2
-rw-r--r--test/CodeGen/X86/lit.local.cfg8
-rw-r--r--test/CodeGen/X86/load-slice.ll139
-rw-r--r--test/CodeGen/X86/lock-inst-encoding.ll10
-rw-r--r--test/CodeGen/X86/long-extend.ll18
-rw-r--r--test/CodeGen/X86/longlong-deadload.ll2
-rw-r--r--test/CodeGen/X86/loop-blocks.ll8
-rw-r--r--test/CodeGen/X86/lsr-interesting-step.ll2
-rw-r--r--test/CodeGen/X86/lsr-loop-exit-cond.ll15
-rw-r--r--test/CodeGen/X86/lsr-reuse.ll22
-rw-r--r--test/CodeGen/X86/lsr-static-addr.ll3
-rw-r--r--test/CodeGen/X86/lzcnt.ll16
-rw-r--r--test/CodeGen/X86/machine-cp.ll4
-rw-r--r--test/CodeGen/X86/machine-cse.ll11
-rw-r--r--test/CodeGen/X86/masked-iv-safe.ll50
-rw-r--r--test/CodeGen/X86/maskmovdqu.ll6
-rw-r--r--test/CodeGen/X86/mcinst-avx-lowering.ll4
-rw-r--r--test/CodeGen/X86/mcinst-lowering.ll18
-rw-r--r--test/CodeGen/X86/memcmp.ll14
-rw-r--r--test/CodeGen/X86/memcpy-2.ll54
-rw-r--r--test/CodeGen/X86/memcpy.ll12
-rw-r--r--test/CodeGen/X86/memset-2.ll8
-rw-r--r--test/CodeGen/X86/memset-sse-stack-realignment.ll20
-rw-r--r--test/CodeGen/X86/merge_store.ll30
-rw-r--r--test/CodeGen/X86/mingw-alloca.ll25
-rw-r--r--test/CodeGen/X86/misched-balance.ll59
-rw-r--r--test/CodeGen/X86/misched-copy.ll12
-rw-r--r--test/CodeGen/X86/misched-fusion.ll108
-rw-r--r--test/CodeGen/X86/misched-matmul.ll11
-rw-r--r--test/CodeGen/X86/misched-matrix.ll12
-rw-r--r--test/CodeGen/X86/mmx-arg-passing.ll21
-rw-r--r--test/CodeGen/X86/mmx-builtins.ll12
-rw-r--r--test/CodeGen/X86/mmx-punpckhdq.ll2
-rw-r--r--test/CodeGen/X86/mmx-shift.ll15
-rw-r--r--test/CodeGen/X86/movbe.ll17
-rw-r--r--test/CodeGen/X86/movgs.ll20
-rw-r--r--test/CodeGen/X86/movmsk.ll6
-rw-r--r--test/CodeGen/X86/ms-inline-asm.ll4
-rw-r--r--test/CodeGen/X86/narrow-shl-cst.ll22
-rw-r--r--test/CodeGen/X86/narrow-shl-load.ll2
-rw-r--r--test/CodeGen/X86/narrow_op-1.ll13
-rw-r--r--test/CodeGen/X86/neg_cmp.ll2
-rw-r--r--test/CodeGen/X86/neg_fp.ll2
-rw-r--r--test/CodeGen/X86/newline-and-quote.ll6
-rw-r--r--test/CodeGen/X86/no-cmov.ll2
-rw-r--r--test/CodeGen/X86/no-compact-unwind.ll24
-rw-r--r--test/CodeGen/X86/no-elf-compact-unwind.ll48
-rw-r--r--test/CodeGen/X86/nocx16.ll21
-rw-r--r--test/CodeGen/X86/non-lazy-bind.ll6
-rw-r--r--test/CodeGen/X86/nonconst-static-ev.ll9
-rw-r--r--test/CodeGen/X86/nonconst-static-iv.ll9
-rw-r--r--test/CodeGen/X86/nosse-error1.ll2
-rw-r--r--test/CodeGen/X86/nosse-error2.ll2
-rw-r--r--test/CodeGen/X86/object-size.ll8
-rw-r--r--test/CodeGen/X86/opt-shuff-tstore.ll2
-rw-r--r--test/CodeGen/X86/optimize-max-3.ll4
-rw-r--r--test/CodeGen/X86/or-address.ll2
-rw-r--r--test/CodeGen/X86/palignr-2.ll4
-rw-r--r--test/CodeGen/X86/palignr.ll20
-rw-r--r--test/CodeGen/X86/pass-three.ll2
-rw-r--r--test/CodeGen/X86/patchpoint.ll100
-rw-r--r--test/CodeGen/X86/peep-setb.ll18
-rw-r--r--test/CodeGen/X86/peep-test-3.ll8
-rw-r--r--test/CodeGen/X86/peep-test-4.ll191
-rw-r--r--test/CodeGen/X86/peep-vector-extract-concat.ll4
-rw-r--r--test/CodeGen/X86/phaddsub.ll56
-rw-r--r--test/CodeGen/X86/phys_subreg_coalesce-3.ll2
-rw-r--r--test/CodeGen/X86/pic.ll16
-rw-r--r--test/CodeGen/X86/pmovext.ll27
-rw-r--r--test/CodeGen/X86/pmovsx-inreg.ll51
-rw-r--r--test/CodeGen/X86/pmul.ll4
-rw-r--r--test/CodeGen/X86/pmulld.ll12
-rw-r--r--test/CodeGen/X86/popcnt.ll8
-rw-r--r--test/CodeGen/X86/postra-licm.ll4
-rw-r--r--test/CodeGen/X86/pr10523.ll2
-rw-r--r--test/CodeGen/X86/pr10524.ll2
-rw-r--r--test/CodeGen/X86/pr10525.ll2
-rw-r--r--test/CodeGen/X86/pr10526.ll2
-rw-r--r--test/CodeGen/X86/pr12312.ll2
-rw-r--r--test/CodeGen/X86/pr12360.ll8
-rw-r--r--test/CodeGen/X86/pr13209.ll2
-rw-r--r--test/CodeGen/X86/pr14088.ll15
-rw-r--r--test/CodeGen/X86/pr14090.ll10
-rw-r--r--test/CodeGen/X86/pr1505b.ll3
-rw-r--r--test/CodeGen/X86/pr16031.ll27
-rw-r--r--test/CodeGen/X86/pr16360.ll16
-rw-r--r--test/CodeGen/X86/pr16807.ll18
-rw-r--r--test/CodeGen/X86/pr17546.ll10
-rw-r--r--test/CodeGen/X86/pr17631.ll34
-rw-r--r--test/CodeGen/X86/pr17764.ll10
-rw-r--r--test/CodeGen/X86/pr18014.ll16
-rw-r--r--test/CodeGen/X86/pr18023.ll31
-rw-r--r--test/CodeGen/X86/pr18054.ll10
-rw-r--r--test/CodeGen/X86/pr18162.ll27
-rw-r--r--test/CodeGen/X86/pr2182.ll2
-rw-r--r--test/CodeGen/X86/pr3216.ll2
-rw-r--r--test/CodeGen/X86/pr3457.ll2
-rw-r--r--test/CodeGen/X86/pre-ra-sched.ll5
-rw-r--r--test/CodeGen/X86/prefetch.ll5
-rw-r--r--test/CodeGen/X86/prefixdata.ll17
-rw-r--r--test/CodeGen/X86/private.ll16
-rw-r--r--test/CodeGen/X86/promote-i16.ll4
-rw-r--r--test/CodeGen/X86/rd-mod-wr-eflags.ll2
-rw-r--r--test/CodeGen/X86/rdrand.ll18
-rw-r--r--test/CodeGen/X86/rdseed.ll14
-rw-r--r--test/CodeGen/X86/red-zone.ll4
-rw-r--r--test/CodeGen/X86/red-zone2.ll2
-rw-r--r--test/CodeGen/X86/rem-2.ll7
-rw-r--r--test/CodeGen/X86/rem.ll17
-rw-r--r--test/CodeGen/X86/remat-mov-0.ll6
-rw-r--r--test/CodeGen/X86/remat-phys-dead.ll23
-rw-r--r--test/CodeGen/X86/ret-mmx.ll8
-rw-r--r--test/CodeGen/X86/returned-trunc-tail-calls.ll97
-rw-r--r--test/CodeGen/X86/reverse_branches.ll2
-rw-r--r--test/CodeGen/X86/rodata-relocs.ll37
-rw-r--r--test/CodeGen/X86/rot16.ll16
-rw-r--r--test/CodeGen/X86/rot32.ll24
-rw-r--r--test/CodeGen/X86/rot64.ll8
-rw-r--r--test/CodeGen/X86/rounding-ops.ll42
-rw-r--r--test/CodeGen/X86/sandybridge-loads.ll2
-rw-r--r--test/CodeGen/X86/scalar_widen_div.ll2
-rw-r--r--test/CodeGen/X86/sdiv-exact.ll4
-rw-r--r--test/CodeGen/X86/segmented-stacks-dynamic.ll8
-rw-r--r--test/CodeGen/X86/segmented-stacks.ll38
-rw-r--r--test/CodeGen/X86/select.ll96
-rw-r--r--test/CodeGen/X86/select_const.ll2
-rw-r--r--test/CodeGen/X86/setcc-narrowing.ll18
-rw-r--r--test/CodeGen/X86/setcc-sentinals.ll13
-rw-r--r--test/CodeGen/X86/setcc.ll6
-rw-r--r--test/CodeGen/X86/sext-i1.ll12
-rw-r--r--test/CodeGen/X86/sext-load.ll4
-rw-r--r--test/CodeGen/X86/sext-subreg.ll2
-rw-r--r--test/CodeGen/X86/sha.ll139
-rw-r--r--test/CodeGen/X86/shift-and.ll18
-rw-r--r--test/CodeGen/X86/shift-bmi2.ll27
-rw-r--r--test/CodeGen/X86/shift-coalesce.ll4
-rw-r--r--test/CodeGen/X86/shift-codegen.ll4
-rw-r--r--test/CodeGen/X86/shift-combine.ll2
-rw-r--r--test/CodeGen/X86/shift-folding.ll10
-rw-r--r--test/CodeGen/X86/shl-anyext.ll2
-rw-r--r--test/CodeGen/X86/shl_elim.ll9
-rw-r--r--test/CodeGen/X86/shrink-compare.ll59
-rw-r--r--test/CodeGen/X86/sibcall-2.ll16
-rw-r--r--test/CodeGen/X86/sibcall-3.ll4
-rw-r--r--test/CodeGen/X86/sibcall-4.ll2
-rw-r--r--test/CodeGen/X86/sibcall-5.ll8
-rw-r--r--test/CodeGen/X86/sibcall-6.ll13
-rw-r--r--test/CodeGen/X86/sibcall.ll86
-rw-r--r--test/CodeGen/X86/simple-zext.ll16
-rw-r--r--test/CodeGen/X86/sincos-opt.ll14
-rw-r--r--test/CodeGen/X86/sincos.ll10
-rw-r--r--test/CodeGen/X86/sink-hoist.ll19
-rw-r--r--test/CodeGen/X86/smul-with-overflow.ll10
-rw-r--r--test/CodeGen/X86/splat-scalar-load.ll2
-rw-r--r--test/CodeGen/X86/sqrt-fastmath.ll60
-rw-r--r--test/CodeGen/X86/sse-align-12.ll8
-rw-r--r--test/CodeGen/X86/sse-align-2.ll4
-rw-r--r--test/CodeGen/X86/sse-commute.ll2
-rw-r--r--test/CodeGen/X86/sse-intrinsics-x86.ll308
-rw-r--r--test/CodeGen/X86/sse-minmax.ll407
-rw-r--r--test/CodeGen/X86/sse1.ll2
-rw-r--r--test/CodeGen/X86/sse2-blend.ll2
-rw-r--r--test/CodeGen/X86/sse2-intrinsics-x86.ll712
-rw-r--r--test/CodeGen/X86/sse2-mul.ll2
-rw-r--r--test/CodeGen/X86/sse2-vector-shifts.ll247
-rw-r--r--test/CodeGen/X86/sse2.ll51
-rw-r--r--test/CodeGen/X86/sse3-intrinsics-x86.ll57
-rw-r--r--test/CodeGen/X86/sse3.ll56
-rw-r--r--test/CodeGen/X86/sse41-blend.ll16
-rw-r--r--test/CodeGen/X86/sse41-intrinsics-x86.ll326
-rw-r--r--test/CodeGen/X86/sse41.ll16
-rw-r--r--test/CodeGen/X86/sse42-intrinsics-x86.ll182
-rw-r--r--test/CodeGen/X86/sse42.ll4
-rw-r--r--test/CodeGen/X86/sse42_64.ll2
-rw-r--r--test/CodeGen/X86/sse4a.ll12
-rw-r--r--test/CodeGen/X86/sse_partial_update.ll4
-rw-r--r--test/CodeGen/X86/ssse3-intrinsics-x86.ll120
-rw-r--r--test/CodeGen/X86/stack-align-memcpy.ll2
-rw-r--r--test/CodeGen/X86/stack-align.ll4
-rw-r--r--test/CodeGen/X86/stack-protector-dbginfo.ll97
-rw-r--r--test/CodeGen/X86/stack-protector-vreg-to-vreg-copy.ll61
-rw-r--r--test/CodeGen/X86/stack-protector.ll825
-rw-r--r--test/CodeGen/X86/stackmap.ll292
-rw-r--r--test/CodeGen/X86/stdcall-notailcall.ll2
-rw-r--r--test/CodeGen/X86/store-narrow.ll56
-rw-r--r--test/CodeGen/X86/store_op_load_fold.ll4
-rw-r--r--test/CodeGen/X86/store_op_load_fold2.ll8
-rw-r--r--test/CodeGen/X86/sub-with-overflow.ll6
-rw-r--r--test/CodeGen/X86/sub.ll2
-rw-r--r--test/CodeGen/X86/subtarget-feature-change.ll62
-rw-r--r--test/CodeGen/X86/switch-bt.ll4
-rw-r--r--test/CodeGen/X86/switch-order-weight.ll2
-rw-r--r--test/CodeGen/X86/tail-call-attrs.ll56
-rw-r--r--test/CodeGen/X86/tail-call-got.ll4
-rw-r--r--test/CodeGen/X86/tail-call-legality.ll32
-rw-r--r--test/CodeGen/X86/tail-opts.ll22
-rw-r--r--test/CodeGen/X86/tailcall-64.ll32
-rw-r--r--test/CodeGen/X86/tailcall-calleesave.ll19
-rw-r--r--test/CodeGen/X86/tailcall-cgp-dup.ll4
-rw-r--r--test/CodeGen/X86/tailcall-disable.ll8
-rw-r--r--test/CodeGen/X86/tailcall-largecode.ll2
-rw-r--r--test/CodeGen/X86/tailcallbyval64.ll2
-rw-r--r--test/CodeGen/X86/tailcallfp2.ll2
-rw-r--r--test/CodeGen/X86/tbm-intrinsics-x86_64.ll43
-rw-r--r--test/CodeGen/X86/tbm_patterns.ll253
-rw-r--r--test/CodeGen/X86/test-nofold.ll9
-rw-r--r--test/CodeGen/X86/test-shrink.ll36
-rw-r--r--test/CodeGen/X86/testl-commute.ll6
-rw-r--r--test/CodeGen/X86/this-return-64.ll12
-rw-r--r--test/CodeGen/X86/tls-local-dynamic.ll4
-rw-r--r--test/CodeGen/X86/tls-models.ll80
-rw-r--r--test/CodeGen/X86/tls-pic.ll20
-rw-r--r--test/CodeGen/X86/tls-pie.ll16
-rw-r--r--test/CodeGen/X86/tls.ll109
-rw-r--r--test/CodeGen/X86/tlv-1.ll4
-rw-r--r--test/CodeGen/X86/tlv-3.ll10
-rw-r--r--test/CodeGen/X86/trap.ll4
-rw-r--r--test/CodeGen/X86/trunc-ext-ld-st.ll14
-rw-r--r--test/CodeGen/X86/trunc-to-bool.ll12
-rw-r--r--test/CodeGen/X86/twoaddr-lea.ll6
-rw-r--r--test/CodeGen/X86/uint_to_fp-2.ll2
-rw-r--r--test/CodeGen/X86/umul-with-overflow.ll6
-rw-r--r--test/CodeGen/X86/unaligned-spill-folding.ll49
-rw-r--r--test/CodeGen/X86/unknown-location.ll13
-rw-r--r--test/CodeGen/X86/unwind-init.ll36
-rw-r--r--test/CodeGen/X86/use-add-flags.ll6
-rw-r--r--test/CodeGen/X86/v-binop-widen.ll3
-rw-r--r--test/CodeGen/X86/v-binop-widen2.ll2
-rw-r--r--test/CodeGen/X86/v2f32.ll30
-rw-r--r--test/CodeGen/X86/v4i32load-crash.ll27
-rw-r--r--test/CodeGen/X86/v8i1-masks.ll2
-rw-r--r--test/CodeGen/X86/vec-sign.ll4
-rw-r--r--test/CodeGen/X86/vec_cast2.ll12
-rw-r--r--test/CodeGen/X86/vec_compare-sse4.ll16
-rw-r--r--test/CodeGen/X86/vec_compare.ll28
-rw-r--r--test/CodeGen/X86/vec_extract-sse4.ll2
-rw-r--r--test/CodeGen/X86/vec_extract.ll2
-rw-r--r--test/CodeGen/X86/vec_fpext.ll2
-rw-r--r--test/CodeGen/X86/vec_insert-2.ll14
-rw-r--r--test/CodeGen/X86/vec_insert-3.ll2
-rw-r--r--test/CodeGen/X86/vec_insert-5.ll44
-rw-r--r--test/CodeGen/X86/vec_insert-7.ll2
-rw-r--r--test/CodeGen/X86/vec_insert-8.ll2
-rw-r--r--test/CodeGen/X86/vec_insert-9.ll2
-rw-r--r--test/CodeGen/X86/vec_insert.ll4
-rw-r--r--test/CodeGen/X86/vec_round.ll22
-rw-r--r--test/CodeGen/X86/vec_sdiv_to_shift.ll8
-rw-r--r--test/CodeGen/X86/vec_set-8.ll4
-rw-r--r--test/CodeGen/X86/vec_set-9.ll2
-rw-r--r--test/CodeGen/X86/vec_set-C.ll6
-rw-r--r--test/CodeGen/X86/vec_set.ll2
-rw-r--r--test/CodeGen/X86/vec_setcc.ll187
-rw-r--r--test/CodeGen/X86/vec_shift4.ll2
-rw-r--r--test/CodeGen/X86/vec_shuffle-14.ll38
-rw-r--r--test/CodeGen/X86/vec_shuffle-16.ll16
-rw-r--r--test/CodeGen/X86/vec_shuffle-17.ll4
-rw-r--r--test/CodeGen/X86/vec_shuffle-25.ll2
-rw-r--r--test/CodeGen/X86/vec_shuffle-26.ll2
-rw-r--r--test/CodeGen/X86/vec_shuffle-27.ll6
-rw-r--r--test/CodeGen/X86/vec_shuffle-36.ll2
-rw-r--r--test/CodeGen/X86/vec_shuffle-39.ll18
-rw-r--r--test/CodeGen/X86/vec_splat-2.ll2
-rw-r--r--test/CodeGen/X86/vec_splat-3.ll50
-rw-r--r--test/CodeGen/X86/vec_splat.ll8
-rw-r--r--test/CodeGen/X86/vec_split.ll42
-rw-r--r--test/CodeGen/X86/vec_ss_load_fold.ll12
-rw-r--r--test/CodeGen/X86/vec_uint_to_fp.ll2
-rw-r--r--test/CodeGen/X86/vector-gep.ll14
-rw-r--r--test/CodeGen/X86/vector-variable-idx2.ll2
-rw-r--r--test/CodeGen/X86/viabs.ll50
-rw-r--r--test/CodeGen/X86/vselect-minmax.ll384
-rw-r--r--test/CodeGen/X86/vshift-1.ll24
-rw-r--r--test/CodeGen/X86/vshift-2.ll24
-rw-r--r--test/CodeGen/X86/vshift-3.ll22
-rw-r--r--test/CodeGen/X86/vshift-4.ll26
-rw-r--r--test/CodeGen/X86/vshift-5.ll8
-rw-r--r--test/CodeGen/X86/vsplit-and.ll2
-rw-r--r--test/CodeGen/X86/warn-stack.ll24
-rw-r--r--test/CodeGen/X86/weak_def_can_be_hidden.ll26
-rw-r--r--test/CodeGen/X86/wide-fma-contraction.ll19
-rw-r--r--test/CodeGen/X86/widen_arith-1.ll2
-rw-r--r--test/CodeGen/X86/widen_arith-2.ll2
-rw-r--r--test/CodeGen/X86/widen_arith-3.ll6
-rw-r--r--test/CodeGen/X86/widen_arith-4.ll4
-rw-r--r--test/CodeGen/X86/widen_arith-5.ll4
-rw-r--r--test/CodeGen/X86/widen_arith-6.ll2
-rw-r--r--test/CodeGen/X86/widen_cast-1.ll4
-rw-r--r--test/CodeGen/X86/widen_cast-2.ll2
-rw-r--r--test/CodeGen/X86/widen_cast-3.ll2
-rw-r--r--test/CodeGen/X86/widen_cast-4.ll2
-rw-r--r--test/CodeGen/X86/widen_cast-5.ll2
-rw-r--r--test/CodeGen/X86/widen_cast-6.ll2
-rw-r--r--test/CodeGen/X86/widen_conv-1.ll2
-rw-r--r--test/CodeGen/X86/widen_conv-2.ll6
-rw-r--r--test/CodeGen/X86/widen_conv-3.ll2
-rw-r--r--test/CodeGen/X86/widen_conv-4.ll2
-rw-r--r--test/CodeGen/X86/widen_extract-1.ll4
-rw-r--r--test/CodeGen/X86/widen_load-1.ll4
-rw-r--r--test/CodeGen/X86/widen_load-2.ll14
-rw-r--r--test/CodeGen/X86/widen_shuffle-1.ll12
-rw-r--r--test/CodeGen/X86/win32_sret.ll4
-rw-r--r--test/CodeGen/X86/win64_alloca_dynalloca.ll66
-rw-r--r--test/CodeGen/X86/win64_params.ll25
-rw-r--r--test/CodeGen/X86/win64_vararg.ll66
-rw-r--r--test/CodeGen/X86/win_chkstk.ll13
-rw-r--r--test/CodeGen/X86/x86-64-and-mask.ll12
-rw-r--r--test/CodeGen/X86/x86-64-pic-10.ll4
-rw-r--r--test/CodeGen/X86/x86-64-psub.ll220
-rw-r--r--test/CodeGen/X86/x86-64-sret-return.ll8
-rw-r--r--test/CodeGen/X86/x86-64-tls-1.ll6
-rw-r--r--test/CodeGen/X86/x86-shifts.ll12
-rw-r--r--test/CodeGen/X86/xmulo.ll6
-rw-r--r--test/CodeGen/X86/xor-icmp.ll8
-rw-r--r--test/CodeGen/X86/xor.ll67
-rw-r--r--test/CodeGen/X86/zero-remat.ll8
-rw-r--r--test/CodeGen/X86/zext-extract_subreg.ll4
-rw-r--r--test/CodeGen/X86/zext-fold.ll6
-rw-r--r--test/CodeGen/X86/zext-sext.ll17
-rw-r--r--test/CodeGen/X86/zext-shl.ll4
-rw-r--r--test/CodeGen/X86/zext-trunc.ll2
631 files changed, 40475 insertions, 5235 deletions
diff --git a/test/CodeGen/X86/2006-05-02-InstrSched1.ll b/test/CodeGen/X86/2006-05-02-InstrSched1.ll
index 0afddd8f876f2..69266dc4e44ba 100644
--- a/test/CodeGen/X86/2006-05-02-InstrSched1.ll
+++ b/test/CodeGen/X86/2006-05-02-InstrSched1.ll
@@ -1,7 +1,10 @@
; REQUIRES: asserts
; RUN: llc < %s -march=x86 -relocation-model=static -stats 2>&1 | \
-; RUN: grep asm-printer | grep 14
+; RUN: grep asm-printer | grep 16
;
+; It's possible to schedule this in 14 instructions by avoiding
+; callee-save registers, but the scheduler isn't currently that
+; conervative with registers.
@size20 = external global i32 ; <i32*> [#uses=1]
@in5 = external global i8* ; <i8**> [#uses=1]
@@ -21,4 +24,3 @@ define i32 @compare(i8* %a, i8* %b) nounwind {
}
declare i32 @memcmp(i8*, i8*, i32)
-
diff --git a/test/CodeGen/X86/2006-05-11-InstrSched.ll b/test/CodeGen/X86/2006-05-11-InstrSched.ll
index 6912351d7b7e1..3d0946698500d 100644
--- a/test/CodeGen/X86/2006-05-11-InstrSched.ll
+++ b/test/CodeGen/X86/2006-05-11-InstrSched.ll
@@ -1,5 +1,5 @@
; REQUIRES: asserts
-; RUN: llc < %s -march=x86 -mtriple=i386-linux-gnu -mcpu=penryn -mattr=+sse2 -stats -realign-stack=0 2>&1 | \
+; RUN: llc < %s -march=x86 -mtriple=i386-linux-gnu -mcpu=penryn -mattr=+sse2 -stats 2>&1 | \
; RUN: grep "asm-printer" | grep 35
target datalayout = "e-p:32:32"
diff --git a/test/CodeGen/X86/2006-11-12-CSRetCC.ll b/test/CodeGen/X86/2006-11-12-CSRetCC.ll
index a58c9b102d133..d7af1c3fdc716 100644
--- a/test/CodeGen/X86/2006-11-12-CSRetCC.ll
+++ b/test/CodeGen/X86/2006-11-12-CSRetCC.ll
@@ -4,7 +4,7 @@ target triple = "i686-pc-linux-gnu"
@str = internal constant [9 x i8] c"%f+%f*i\0A\00" ; <[9 x i8]*> [#uses=1]
define i32 @main() {
-; CHECK: main:
+; CHECK-LABEL: main:
; CHECK-NOT: ret
; CHECK: subl $4, %{{.*}}
; CHECK: ret
diff --git a/test/CodeGen/X86/2007-01-08-InstrSched.ll b/test/CodeGen/X86/2007-01-08-InstrSched.ll
index 24aa5b98d0bb8..4ec703921e29f 100644
--- a/test/CodeGen/X86/2007-01-08-InstrSched.ll
+++ b/test/CodeGen/X86/2007-01-08-InstrSched.ll
@@ -13,10 +13,10 @@ define float @foo(float %x) nounwind {
; CHECK: mulss
; CHECK: mulss
-; CHECK: addss
; CHECK: mulss
-; CHECK: addss
; CHECK: mulss
; CHECK: addss
+; CHECK: addss
+; CHECK: addss
; CHECK: ret
}
diff --git a/test/CodeGen/X86/2007-02-04-OrAddrMode.ll b/test/CodeGen/X86/2007-02-04-OrAddrMode.ll
index b0eb1c5441bf2..cea4d9d272fce 100644
--- a/test/CodeGen/X86/2007-02-04-OrAddrMode.ll
+++ b/test/CodeGen/X86/2007-02-04-OrAddrMode.ll
@@ -2,7 +2,7 @@
;; This example can't fold the or into an LEA.
define i32 @test(float ** %tmp2, i32 %tmp12) nounwind {
-; CHECK: test:
+; CHECK-LABEL: test:
; CHECK-NOT: ret
; CHECK: orl $1, %{{.*}}
; CHECK: ret
@@ -18,7 +18,7 @@ define i32 @test(float ** %tmp2, i32 %tmp12) nounwind {
;; This can!
define i32 @test2(i32 %a, i32 %b) nounwind {
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK-NOT: ret
; CHECK: leal 3(,%{{.*}},8)
; CHECK: ret
diff --git a/test/CodeGen/X86/2007-02-23-DAGCombine-Miscompile.ll b/test/CodeGen/X86/2007-02-23-DAGCombine-Miscompile.ll
index b48ce845f902d..cbc1bc47fb15e 100644
--- a/test/CodeGen/X86/2007-02-23-DAGCombine-Miscompile.ll
+++ b/test/CodeGen/X86/2007-02-23-DAGCombine-Miscompile.ll
@@ -2,7 +2,7 @@
; RUN: llc < %s -march=x86 | FileCheck %s
define i32 @test(i1 %X) {
-; CHECK: test:
+; CHECK-LABEL: test:
; CHECK-NOT: ret
; CHECK: movl $1, %eax
; CHECK: ret
diff --git a/test/CodeGen/X86/2007-03-24-InlineAsmXConstraint.ll b/test/CodeGen/X86/2007-03-24-InlineAsmXConstraint.ll
index e2cd750e2cac9..3e1786bef7932 100644
--- a/test/CodeGen/X86/2007-03-24-InlineAsmXConstraint.ll
+++ b/test/CodeGen/X86/2007-03-24-InlineAsmXConstraint.ll
@@ -3,7 +3,7 @@ target datalayout = "e-p:32:32"
target triple = "i686-apple-darwin9"
define void @test() {
-; CHECK: test:
+; CHECK-LABEL: test:
; CHECK-NOT: ret
; CHECK: psrlw $8, %xmm0
; CHECK: ret
diff --git a/test/CodeGen/X86/2007-05-07-InvokeSRet.ll b/test/CodeGen/X86/2007-05-07-InvokeSRet.ll
deleted file mode 100644
index c3d7e8a054725..0000000000000
--- a/test/CodeGen/X86/2007-05-07-InvokeSRet.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llc < %s -mtriple=i686-pc-linux-gnu -disable-fp-elim | not grep "addl .12, %esp"
-; PR1398
-
- %struct.S = type { i32, i32 }
-
-declare void @invokee(%struct.S* sret )
-
-define void @invoker(%struct.S* %name.0.0) {
-entry:
- invoke void @invokee( %struct.S* sret %name.0.0 )
- to label %return unwind label %return
-
-return: ; preds = %entry, %entry
- %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0
- cleanup
- ret void
-}
-
-declare i32 @__gxx_personality_v0(...)
diff --git a/test/CodeGen/X86/2007-09-06-ExtWeakAliasee.ll b/test/CodeGen/X86/2007-09-06-ExtWeakAliasee.ll
index c5d2a46f92c27..638d399056a22 100644
--- a/test/CodeGen/X86/2007-09-06-ExtWeakAliasee.ll
+++ b/test/CodeGen/X86/2007-09-06-ExtWeakAliasee.ll
@@ -1,4 +1,13 @@
-; RUN: llc < %s -march=x86 | grep weak | count 2
+; RUN: llc < %s -mtriple=i686-pc-linux-gnu | FileCheck %s
+
@__gthrw_pthread_once = alias weak i32 (i32*, void ()*)* @pthread_once ; <i32 (i32*, void ()*)*> [#uses=0]
-declare extern_weak i32 @pthread_once(i32*, void ()*)
+define weak i32 @pthread_once(i32*, void ()*) {
+ ret i32 0
+}
+
+; CHECK: .weak pthread_once
+; CHECK: pthread_once:
+
+; CHECK: .weak __gthrw_pthread_once
+; CHECK: __gthrw_pthread_once = pthread_once
diff --git a/test/CodeGen/X86/2007-09-27-LDIntrinsics.ll b/test/CodeGen/X86/2007-09-27-LDIntrinsics.ll
index f7ffb9337ef8c..88057c86fd9d3 100644
--- a/test/CodeGen/X86/2007-09-27-LDIntrinsics.ll
+++ b/test/CodeGen/X86/2007-09-27-LDIntrinsics.ll
@@ -7,7 +7,7 @@ entry:
%tmp2 = call x86_fp80 @llvm.sqrt.f80( x86_fp80 %x )
ret x86_fp80 %tmp2
-; CHECK: foo:
+; CHECK-LABEL: foo:
; CHECK: fldt 4(%esp)
; CHECK-NEXT: fsqrt
; CHECK-NEXT: ret
@@ -19,7 +19,7 @@ define x86_fp80 @bar(x86_fp80 %x) nounwind {
entry:
%tmp2 = call x86_fp80 @llvm.powi.f80( x86_fp80 %x, i32 3 )
ret x86_fp80 %tmp2
-; CHECK: bar:
+; CHECK-LABEL: bar:
; CHECK: fldt 4(%esp)
; CHECK-NEXT: fld %st(0)
; CHECK-NEXT: fmul %st(1)
diff --git a/test/CodeGen/X86/2007-10-12-CoalesceExtSubReg.ll b/test/CodeGen/X86/2007-10-12-CoalesceExtSubReg.ll
index 8091bd1bc1ca0..d3a47aefb7d0e 100644
--- a/test/CodeGen/X86/2007-10-12-CoalesceExtSubReg.ll
+++ b/test/CodeGen/X86/2007-10-12-CoalesceExtSubReg.ll
@@ -7,8 +7,10 @@ entry:
cond_next127: ; preds = %cond_next391, %entry
%v.1 = phi i32 [ undef, %entry ], [ %tmp411, %cond_next391 ] ; <i32> [#uses=1]
%tmp149 = mul i32 0, %v.1 ; <i32> [#uses=0]
- %tmp254 = and i32 0, 15 ; <i32> [#uses=1]
- %tmp256 = and i32 0, 15 ; <i32> [#uses=2]
+ %tmpss = load i32* %ss, align 4 ; <i32> [#uses=1]
+ %tmpbp = load i32* %bp, align 4 ; <i32> [#uses=2]
+ %tmp254 = and i32 %tmpss, 15 ; <i32> [#uses=1]
+ %tmp256 = and i32 %tmpbp, 15 ; <i32> [#uses=2]
br label %cond_next391
cond_next391: ; preds = %cond_next127
diff --git a/test/CodeGen/X86/2007-10-12-SpillerUnfold2.ll b/test/CodeGen/X86/2007-10-12-SpillerUnfold2.ll
index 7a3d72dd4b07a..1ec9c70d570c5 100644
--- a/test/CodeGen/X86/2007-10-12-SpillerUnfold2.ll
+++ b/test/CodeGen/X86/2007-10-12-SpillerUnfold2.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86 | grep sarl | not grep esp
+; RUN: llc < %s -march=x86 -mcpu=corei7 | grep sarl | not grep esp
define signext i16 @t(i16* %qmatrix, i16* %dct, i16* %acBaseTable, i16* %acExtTable, i16 signext %acBaseRes, i16 signext %acMaskRes, i16 signext %acExtRes, i32* %bitptr, i32* %source, i32 %markerPrefix, i8** %byteptr, i32 %scale, i32 %round, i32 %bits) {
entry:
diff --git a/test/CodeGen/X86/2008-01-08-SchedulerCrash.ll b/test/CodeGen/X86/2008-01-08-SchedulerCrash.ll
index 39af9319c8d15..9b9b781cfa2e3 100644
--- a/test/CodeGen/X86/2008-01-08-SchedulerCrash.ll
+++ b/test/CodeGen/X86/2008-01-08-SchedulerCrash.ll
@@ -19,7 +19,7 @@ bb917: ; preds = %entry
ret i32 0
bb951: ; preds = %bb986, %entry
- %tmp955 = sdiv i32 0, 2 ; <i32> [#uses=3]
+ %tmp955 = sdiv i32 %offset, 2 ; <i32> [#uses=3]
%tmp961 = getelementptr %struct.indexentry* null, i32 %tmp955, i32 0 ; <i32*> [#uses=1]
br i1 %cond, label %bb986, label %bb967
diff --git a/test/CodeGen/X86/2008-02-08-LoadFoldingBug.ll b/test/CodeGen/X86/2008-02-08-LoadFoldingBug.ll
deleted file mode 100644
index b772d77f6405f..0000000000000
--- a/test/CodeGen/X86/2008-02-08-LoadFoldingBug.ll
+++ /dev/null
@@ -1,99 +0,0 @@
-; RUN: llc < %s -march=x86 -mattr=+sse2 | grep andpd | not grep esp
-
-declare double @llvm.sqrt.f64(double) nounwind readnone
-
-declare fastcc void @ApplyGivens(double**, double, double, i32, i32, i32, i32) nounwind
-
-declare double @fabs(double)
-
-define void @main_bb114_2E_outer_2E_i_bb3_2E_i27(double** %tmp12.sub.i.i, [51 x double*]* %tmp12.i.i.i, i32 %i.0.reg2mem.0.ph.i, i32 %tmp11688.i, i32 %tmp19.i, i32 %tmp24.i, [51 x double*]* %tmp12.i.i) {
-newFuncRoot:
- br label %bb3.i27
-
-bb111.i77.bb121.i_crit_edge.exitStub: ; preds = %bb111.i77
- ret void
-
-bb3.i27: ; preds = %bb111.i77.bb3.i27_crit_edge, %newFuncRoot
- %indvar94.i = phi i32 [ 0, %newFuncRoot ], [ %tmp113.i76, %bb111.i77.bb3.i27_crit_edge ] ; <i32> [#uses=6]
- %tmp6.i20 = getelementptr [51 x double*]* %tmp12.i.i, i32 0, i32 %indvar94.i ; <double**> [#uses=1]
- %tmp7.i21 = load double** %tmp6.i20, align 4 ; <double*> [#uses=2]
- %tmp10.i = add i32 %indvar94.i, %i.0.reg2mem.0.ph.i ; <i32> [#uses=5]
- %tmp11.i22 = getelementptr double* %tmp7.i21, i32 %tmp10.i ; <double*> [#uses=1]
- %tmp12.i23 = load double* %tmp11.i22, align 8 ; <double> [#uses=4]
- %tmp20.i24 = add i32 %tmp19.i, %indvar94.i ; <i32> [#uses=3]
- %tmp21.i = getelementptr double* %tmp7.i21, i32 %tmp20.i24 ; <double*> [#uses=1]
- %tmp22.i25 = load double* %tmp21.i, align 8 ; <double> [#uses=3]
- %tmp1.i.i26 = fcmp oeq double %tmp12.i23, 0.000000e+00 ; <i1> [#uses=1]
- br i1 %tmp1.i.i26, label %bb3.i27.Givens.exit.i49_crit_edge, label %bb5.i.i31
-
-bb5.i.i31: ; preds = %bb3.i27
- %tmp7.i.i28 = call double @fabs( double %tmp12.i23 ) nounwind ; <double> [#uses=1]
- %tmp9.i.i29 = call double @fabs( double %tmp22.i25 ) nounwind ; <double> [#uses=1]
- %tmp10.i.i30 = fcmp ogt double %tmp7.i.i28, %tmp9.i.i29 ; <i1> [#uses=1]
- br i1 %tmp10.i.i30, label %bb13.i.i37, label %bb30.i.i43
-
-bb13.i.i37: ; preds = %bb5.i.i31
- %tmp15.i.i32 = fsub double -0.000000e+00, %tmp22.i25 ; <double> [#uses=1]
- %tmp17.i.i33 = fdiv double %tmp15.i.i32, %tmp12.i23 ; <double> [#uses=3]
- %tmp20.i4.i = fmul double %tmp17.i.i33, %tmp17.i.i33 ; <double> [#uses=1]
- %tmp21.i.i34 = fadd double %tmp20.i4.i, 1.000000e+00 ; <double> [#uses=1]
- %tmp22.i.i35 = call double @llvm.sqrt.f64( double %tmp21.i.i34 ) nounwind ; <double> [#uses=1]
- %tmp23.i5.i = fdiv double 1.000000e+00, %tmp22.i.i35 ; <double> [#uses=2]
- %tmp28.i.i36 = fmul double %tmp23.i5.i, %tmp17.i.i33 ; <double> [#uses=1]
- br label %Givens.exit.i49
-
-bb30.i.i43: ; preds = %bb5.i.i31
- %tmp32.i.i38 = fsub double -0.000000e+00, %tmp12.i23 ; <double> [#uses=1]
- %tmp34.i.i39 = fdiv double %tmp32.i.i38, %tmp22.i25 ; <double> [#uses=3]
- %tmp37.i6.i = fmul double %tmp34.i.i39, %tmp34.i.i39 ; <double> [#uses=1]
- %tmp38.i.i40 = fadd double %tmp37.i6.i, 1.000000e+00 ; <double> [#uses=1]
- %tmp39.i7.i = call double @llvm.sqrt.f64( double %tmp38.i.i40 ) nounwind ; <double> [#uses=1]
- %tmp40.i.i41 = fdiv double 1.000000e+00, %tmp39.i7.i ; <double> [#uses=2]
- %tmp45.i.i42 = fmul double %tmp40.i.i41, %tmp34.i.i39 ; <double> [#uses=1]
- br label %Givens.exit.i49
-
-Givens.exit.i49: ; preds = %bb3.i27.Givens.exit.i49_crit_edge, %bb30.i.i43, %bb13.i.i37
- %s.0.i44 = phi double [ %tmp45.i.i42, %bb30.i.i43 ], [ %tmp23.i5.i, %bb13.i.i37 ], [ 0.000000e+00, %bb3.i27.Givens.exit.i49_crit_edge ] ; <double> [#uses=2]
- %c.0.i45 = phi double [ %tmp40.i.i41, %bb30.i.i43 ], [ %tmp28.i.i36, %bb13.i.i37 ], [ 1.000000e+00, %bb3.i27.Givens.exit.i49_crit_edge ] ; <double> [#uses=2]
- %tmp26.i46 = add i32 %tmp24.i, %indvar94.i ; <i32> [#uses=2]
- %tmp27.i47 = icmp slt i32 %tmp26.i46, 51 ; <i1> [#uses=1]
- %min.i48 = select i1 %tmp27.i47, i32 %tmp26.i46, i32 50 ; <i32> [#uses=1]
- call fastcc void @ApplyGivens( double** %tmp12.sub.i.i, double %s.0.i44, double %c.0.i45, i32 %tmp20.i24, i32 %tmp10.i, i32 %indvar94.i, i32 %min.i48 ) nounwind
- br label %codeRepl
-
-codeRepl: ; preds = %Givens.exit.i49
- call void @main_bb114_2E_outer_2E_i_bb3_2E_i27_bb_2E_i48_2E_i( i32 %tmp10.i, i32 %tmp20.i24, double %s.0.i44, double %c.0.i45, [51 x double*]* %tmp12.i.i.i )
- br label %ApplyRGivens.exit49.i
-
-ApplyRGivens.exit49.i: ; preds = %codeRepl
- %tmp10986.i = icmp sgt i32 %tmp11688.i, %tmp10.i ; <i1> [#uses=1]
- br i1 %tmp10986.i, label %ApplyRGivens.exit49.i.bb52.i57_crit_edge, label %ApplyRGivens.exit49.i.bb111.i77_crit_edge
-
-codeRepl1: ; preds = %ApplyRGivens.exit49.i.bb52.i57_crit_edge
- call void @main_bb114_2E_outer_2E_i_bb3_2E_i27_bb52_2E_i57( i32 %tmp10.i, double** %tmp12.sub.i.i, [51 x double*]* %tmp12.i.i.i, i32 %i.0.reg2mem.0.ph.i, i32 %tmp11688.i, i32 %tmp19.i, i32 %tmp24.i, [51 x double*]* %tmp12.i.i )
- br label %bb105.i.bb111.i77_crit_edge
-
-bb111.i77: ; preds = %bb105.i.bb111.i77_crit_edge, %ApplyRGivens.exit49.i.bb111.i77_crit_edge
- %tmp113.i76 = add i32 %indvar94.i, 1 ; <i32> [#uses=2]
- %tmp118.i = icmp sgt i32 %tmp11688.i, %tmp113.i76 ; <i1> [#uses=1]
- br i1 %tmp118.i, label %bb111.i77.bb3.i27_crit_edge, label %bb111.i77.bb121.i_crit_edge.exitStub
-
-bb3.i27.Givens.exit.i49_crit_edge: ; preds = %bb3.i27
- br label %Givens.exit.i49
-
-ApplyRGivens.exit49.i.bb52.i57_crit_edge: ; preds = %ApplyRGivens.exit49.i
- br label %codeRepl1
-
-ApplyRGivens.exit49.i.bb111.i77_crit_edge: ; preds = %ApplyRGivens.exit49.i
- br label %bb111.i77
-
-bb105.i.bb111.i77_crit_edge: ; preds = %codeRepl1
- br label %bb111.i77
-
-bb111.i77.bb3.i27_crit_edge: ; preds = %bb111.i77
- br label %bb3.i27
-}
-
-declare void @main_bb114_2E_outer_2E_i_bb3_2E_i27_bb_2E_i48_2E_i(i32, i32, double, double, [51 x double*]*)
-
-declare void @main_bb114_2E_outer_2E_i_bb3_2E_i27_bb52_2E_i57(i32, double**, [51 x double*]*, i32, i32, i32, i32, [51 x double*]*)
diff --git a/test/CodeGen/X86/2008-03-14-SpillerCrash.ll b/test/CodeGen/X86/2008-03-14-SpillerCrash.ll
index 8946415108f4a..18b3714f851f8 100644
--- a/test/CodeGen/X86/2008-03-14-SpillerCrash.ll
+++ b/test/CodeGen/X86/2008-03-14-SpillerCrash.ll
@@ -45,4 +45,6 @@ bb383: ; preds = %bb374.us, %bb311.split
ret i64 0
}
-declare i64 @__wcstoll_l(i32*, i32**, i32, %struct.__locale_struct*) nounwind
+define i64 @__wcstoll_l(i32*, i32**, i32, %struct.__locale_struct*) nounwind {
+ ret i64 0
+}
diff --git a/test/CodeGen/X86/2008-04-24-pblendw-fold-crash.ll b/test/CodeGen/X86/2008-04-24-pblendw-fold-crash.ll
index 4eaca17c88616..86bce8e977ac9 100644
--- a/test/CodeGen/X86/2008-04-24-pblendw-fold-crash.ll
+++ b/test/CodeGen/X86/2008-04-24-pblendw-fold-crash.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -mattr=+sse41
+; RUN: llc < %s -mattr=+sse4.1
; rdar://5886601
; gcc testsuite: gcc.target/i386/sse4_1-pblendw.c
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
diff --git a/test/CodeGen/X86/2008-04-26-Asm-Optimize-Imm.ll b/test/CodeGen/X86/2008-04-26-Asm-Optimize-Imm.ll
index 6e9a6298436d5..d4805b4bb63e7 100644
--- a/test/CodeGen/X86/2008-04-26-Asm-Optimize-Imm.ll
+++ b/test/CodeGen/X86/2008-04-26-Asm-Optimize-Imm.ll
@@ -4,7 +4,7 @@ target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f3
target triple = "i386-apple-darwin8"
define void @test() nounwind {
-; CHECK: test:
+; CHECK-LABEL: test:
; CHECK-NOT: ret
; CHECK: 1 $2 3
; CHECK: ret
diff --git a/test/CodeGen/X86/2008-05-22-FoldUnalignedLoad.ll b/test/CodeGen/X86/2008-05-22-FoldUnalignedLoad.ll
index fc38135032c2b..da56ce7ab5830 100644
--- a/test/CodeGen/X86/2008-05-22-FoldUnalignedLoad.ll
+++ b/test/CodeGen/X86/2008-05-22-FoldUnalignedLoad.ll
@@ -8,7 +8,7 @@ entry:
ret void
}
-; CHECK: a:
+; CHECK-LABEL: a:
; CHECK: movups
; CHECK: movups
; CHECK-NOT: movups
diff --git a/test/CodeGen/X86/2008-07-19-movups-spills.ll b/test/CodeGen/X86/2008-07-19-movups-spills.ll
index 368af6d8abde6..cd86ee1889493 100644
--- a/test/CodeGen/X86/2008-07-19-movups-spills.ll
+++ b/test/CodeGen/X86/2008-07-19-movups-spills.ll
@@ -1,5 +1,4 @@
-; RUN: llc < %s -mtriple=i686-pc-linux -realign-stack=1 -mattr=sse2 | grep movups | count 33
-; RUN: llc < %s -mtriple=i686-pc-linux -realign-stack=0 -mattr=sse2 | grep movups | count 33
+; RUN: llc < %s -mtriple=i686-pc-linux -mattr=sse2 | FileCheck %s
; PR2539
; PR8969 - make 32-bit linux have a 16-byte aligned stack
; Verify that movups is still generated with an aligned stack for the globals
@@ -40,7 +39,42 @@ external global <4 x float>, align 1 ; <<4 x float>*>:31 [#uses=1]
declare void @abort()
-define void @""() {
+define void @test1() {
+; CHECK: test1
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK-NOT: movups
load <4 x float>* @0, align 1 ; <<4 x float>>:1 [#uses=2]
load <4 x float>* @1, align 1 ; <<4 x float>>:2 [#uses=3]
load <4 x float>* @2, align 1 ; <<4 x float>>:3 [#uses=4]
@@ -637,3 +671,636 @@ define void @""() {
store <4 x float> %593, <4 x float>* @0, align 1
ret void
}
+
+define void @test2() "no-realign-stack" {
+; CHECK: test2
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK-NOT: movups
+ load <4 x float>* @0, align 1
+ load <4 x float>* @1, align 1
+ load <4 x float>* @2, align 1
+ load <4 x float>* @3, align 1
+ load <4 x float>* @4, align 1
+ load <4 x float>* @5, align 1
+ load <4 x float>* @6, align 1
+ load <4 x float>* @7, align 1
+ load <4 x float>* @8, align 1
+ load <4 x float>* @9, align 1
+ load <4 x float>* @10, align 1
+ load <4 x float>* @11, align 1
+ load <4 x float>* @12, align 1
+ load <4 x float>* @13, align 1
+ load <4 x float>* @14, align 1
+ load <4 x float>* @15, align 1
+ load <4 x float>* @16, align 1
+ load <4 x float>* @17, align 1
+ load <4 x float>* @18, align 1
+ load <4 x float>* @19, align 1
+ load <4 x float>* @20, align 1
+ load <4 x float>* @21, align 1
+ load <4 x float>* @22, align 1
+ load <4 x float>* @23, align 1
+ load <4 x float>* @24, align 1
+ load <4 x float>* @25, align 1
+ load <4 x float>* @26, align 1
+ load <4 x float>* @27, align 1
+ load <4 x float>* @28, align 1
+ load <4 x float>* @29, align 1
+ load <4 x float>* @30, align 1
+ load <4 x float>* @31, align 1
+ fmul <4 x float> %1, %1
+ fmul <4 x float> %33, %2
+ fmul <4 x float> %34, %3
+ fmul <4 x float> %35, %4
+ fmul <4 x float> %36, %5
+ fmul <4 x float> %37, %6
+ fmul <4 x float> %38, %7
+ fmul <4 x float> %39, %8
+ fmul <4 x float> %40, %9
+ fmul <4 x float> %41, %10
+ fmul <4 x float> %42, %11 ; <<4 x float>>:43 [#uses=1]
+ fmul <4 x float> %43, %12 ; <<4 x float>>:44 [#uses=1]
+ fmul <4 x float> %44, %13 ; <<4 x float>>:45 [#uses=1]
+ fmul <4 x float> %45, %14 ; <<4 x float>>:46 [#uses=1]
+ fmul <4 x float> %46, %15 ; <<4 x float>>:47 [#uses=1]
+ fmul <4 x float> %47, %16 ; <<4 x float>>:48 [#uses=1]
+ fmul <4 x float> %48, %17 ; <<4 x float>>:49 [#uses=1]
+ fmul <4 x float> %49, %18 ; <<4 x float>>:50 [#uses=1]
+ fmul <4 x float> %50, %19 ; <<4 x float>>:51 [#uses=1]
+ fmul <4 x float> %51, %20 ; <<4 x float>>:52 [#uses=1]
+ fmul <4 x float> %52, %21 ; <<4 x float>>:53 [#uses=1]
+ fmul <4 x float> %53, %22 ; <<4 x float>>:54 [#uses=1]
+ fmul <4 x float> %54, %23 ; <<4 x float>>:55 [#uses=1]
+ fmul <4 x float> %55, %24 ; <<4 x float>>:56 [#uses=1]
+ fmul <4 x float> %56, %25 ; <<4 x float>>:57 [#uses=1]
+ fmul <4 x float> %57, %26 ; <<4 x float>>:58 [#uses=1]
+ fmul <4 x float> %58, %27 ; <<4 x float>>:59 [#uses=1]
+ fmul <4 x float> %59, %28 ; <<4 x float>>:60 [#uses=1]
+ fmul <4 x float> %60, %29 ; <<4 x float>>:61 [#uses=1]
+ fmul <4 x float> %61, %30 ; <<4 x float>>:62 [#uses=1]
+ fmul <4 x float> %62, %31 ; <<4 x float>>:63 [#uses=1]
+ fmul <4 x float> %63, %32 ; <<4 x float>>:64 [#uses=3]
+ fmul <4 x float> %2, %2 ; <<4 x float>>:65 [#uses=1]
+ fmul <4 x float> %65, %3 ; <<4 x float>>:66 [#uses=1]
+ fmul <4 x float> %66, %4 ; <<4 x float>>:67 [#uses=1]
+ fmul <4 x float> %67, %5 ; <<4 x float>>:68 [#uses=1]
+ fmul <4 x float> %68, %6 ; <<4 x float>>:69 [#uses=1]
+ fmul <4 x float> %69, %7 ; <<4 x float>>:70 [#uses=1]
+ fmul <4 x float> %70, %8 ; <<4 x float>>:71 [#uses=1]
+ fmul <4 x float> %71, %9 ; <<4 x float>>:72 [#uses=1]
+ fmul <4 x float> %72, %10 ; <<4 x float>>:73 [#uses=1]
+ fmul <4 x float> %73, %11 ; <<4 x float>>:74 [#uses=1]
+ fmul <4 x float> %74, %12 ; <<4 x float>>:75 [#uses=1]
+ fmul <4 x float> %75, %13 ; <<4 x float>>:76 [#uses=1]
+ fmul <4 x float> %76, %14 ; <<4 x float>>:77 [#uses=1]
+ fmul <4 x float> %77, %15 ; <<4 x float>>:78 [#uses=1]
+ fmul <4 x float> %78, %16 ; <<4 x float>>:79 [#uses=1]
+ fmul <4 x float> %79, %17 ; <<4 x float>>:80 [#uses=1]
+ fmul <4 x float> %80, %18 ; <<4 x float>>:81 [#uses=1]
+ fmul <4 x float> %81, %19 ; <<4 x float>>:82 [#uses=1]
+ fmul <4 x float> %82, %20 ; <<4 x float>>:83 [#uses=1]
+ fmul <4 x float> %83, %21 ; <<4 x float>>:84 [#uses=1]
+ fmul <4 x float> %84, %22 ; <<4 x float>>:85 [#uses=1]
+ fmul <4 x float> %85, %23 ; <<4 x float>>:86 [#uses=1]
+ fmul <4 x float> %86, %24 ; <<4 x float>>:87 [#uses=1]
+ fmul <4 x float> %87, %25 ; <<4 x float>>:88 [#uses=1]
+ fmul <4 x float> %88, %26 ; <<4 x float>>:89 [#uses=1]
+ fmul <4 x float> %89, %27 ; <<4 x float>>:90 [#uses=1]
+ fmul <4 x float> %90, %28 ; <<4 x float>>:91 [#uses=1]
+ fmul <4 x float> %91, %29 ; <<4 x float>>:92 [#uses=1]
+ fmul <4 x float> %92, %30 ; <<4 x float>>:93 [#uses=1]
+ fmul <4 x float> %93, %31 ; <<4 x float>>:94 [#uses=1]
+ fmul <4 x float> %94, %32 ; <<4 x float>>:95 [#uses=1]
+ fmul <4 x float> %3, %3 ; <<4 x float>>:96 [#uses=1]
+ fmul <4 x float> %96, %4 ; <<4 x float>>:97 [#uses=1]
+ fmul <4 x float> %97, %5 ; <<4 x float>>:98 [#uses=1]
+ fmul <4 x float> %98, %6 ; <<4 x float>>:99 [#uses=1]
+ fmul <4 x float> %99, %7 ; <<4 x float>>:100 [#uses=1]
+ fmul <4 x float> %100, %8 ; <<4 x float>>:101 [#uses=1]
+ fmul <4 x float> %101, %9 ; <<4 x float>>:102 [#uses=1]
+ fmul <4 x float> %102, %10 ; <<4 x float>>:103 [#uses=1]
+ fmul <4 x float> %103, %11 ; <<4 x float>>:104 [#uses=1]
+ fmul <4 x float> %104, %12 ; <<4 x float>>:105 [#uses=1]
+ fmul <4 x float> %105, %13 ; <<4 x float>>:106 [#uses=1]
+ fmul <4 x float> %106, %14 ; <<4 x float>>:107 [#uses=1]
+ fmul <4 x float> %107, %15 ; <<4 x float>>:108 [#uses=1]
+ fmul <4 x float> %108, %16 ; <<4 x float>>:109 [#uses=1]
+ fmul <4 x float> %109, %17 ; <<4 x float>>:110 [#uses=1]
+ fmul <4 x float> %110, %18 ; <<4 x float>>:111 [#uses=1]
+ fmul <4 x float> %111, %19 ; <<4 x float>>:112 [#uses=1]
+ fmul <4 x float> %112, %20 ; <<4 x float>>:113 [#uses=1]
+ fmul <4 x float> %113, %21 ; <<4 x float>>:114 [#uses=1]
+ fmul <4 x float> %114, %22 ; <<4 x float>>:115 [#uses=1]
+ fmul <4 x float> %115, %23 ; <<4 x float>>:116 [#uses=1]
+ fmul <4 x float> %116, %24 ; <<4 x float>>:117 [#uses=1]
+ fmul <4 x float> %117, %25 ; <<4 x float>>:118 [#uses=1]
+ fmul <4 x float> %118, %26 ; <<4 x float>>:119 [#uses=1]
+ fmul <4 x float> %119, %27 ; <<4 x float>>:120 [#uses=1]
+ fmul <4 x float> %120, %28 ; <<4 x float>>:121 [#uses=1]
+ fmul <4 x float> %121, %29 ; <<4 x float>>:122 [#uses=1]
+ fmul <4 x float> %122, %30 ; <<4 x float>>:123 [#uses=1]
+ fmul <4 x float> %123, %31 ; <<4 x float>>:124 [#uses=1]
+ fmul <4 x float> %124, %32 ; <<4 x float>>:125 [#uses=1]
+ fmul <4 x float> %4, %4 ; <<4 x float>>:126 [#uses=1]
+ fmul <4 x float> %126, %5 ; <<4 x float>>:127 [#uses=1]
+ fmul <4 x float> %127, %6 ; <<4 x float>>:128 [#uses=1]
+ fmul <4 x float> %128, %7 ; <<4 x float>>:129 [#uses=1]
+ fmul <4 x float> %129, %8 ; <<4 x float>>:130 [#uses=1]
+ fmul <4 x float> %130, %9 ; <<4 x float>>:131 [#uses=1]
+ fmul <4 x float> %131, %10 ; <<4 x float>>:132 [#uses=1]
+ fmul <4 x float> %132, %11 ; <<4 x float>>:133 [#uses=1]
+ fmul <4 x float> %133, %12 ; <<4 x float>>:134 [#uses=1]
+ fmul <4 x float> %134, %13 ; <<4 x float>>:135 [#uses=1]
+ fmul <4 x float> %135, %14 ; <<4 x float>>:136 [#uses=1]
+ fmul <4 x float> %136, %15 ; <<4 x float>>:137 [#uses=1]
+ fmul <4 x float> %137, %16 ; <<4 x float>>:138 [#uses=1]
+ fmul <4 x float> %138, %17 ; <<4 x float>>:139 [#uses=1]
+ fmul <4 x float> %139, %18 ; <<4 x float>>:140 [#uses=1]
+ fmul <4 x float> %140, %19 ; <<4 x float>>:141 [#uses=1]
+ fmul <4 x float> %141, %20 ; <<4 x float>>:142 [#uses=1]
+ fmul <4 x float> %142, %21 ; <<4 x float>>:143 [#uses=1]
+ fmul <4 x float> %143, %22 ; <<4 x float>>:144 [#uses=1]
+ fmul <4 x float> %144, %23 ; <<4 x float>>:145 [#uses=1]
+ fmul <4 x float> %145, %24 ; <<4 x float>>:146 [#uses=1]
+ fmul <4 x float> %146, %25 ; <<4 x float>>:147 [#uses=1]
+ fmul <4 x float> %147, %26 ; <<4 x float>>:148 [#uses=1]
+ fmul <4 x float> %148, %27 ; <<4 x float>>:149 [#uses=1]
+ fmul <4 x float> %149, %28 ; <<4 x float>>:150 [#uses=1]
+ fmul <4 x float> %150, %29 ; <<4 x float>>:151 [#uses=1]
+ fmul <4 x float> %151, %30 ; <<4 x float>>:152 [#uses=1]
+ fmul <4 x float> %152, %31 ; <<4 x float>>:153 [#uses=1]
+ fmul <4 x float> %153, %32 ; <<4 x float>>:154 [#uses=1]
+ fmul <4 x float> %5, %5 ; <<4 x float>>:155 [#uses=1]
+ fmul <4 x float> %155, %6 ; <<4 x float>>:156 [#uses=1]
+ fmul <4 x float> %156, %7 ; <<4 x float>>:157 [#uses=1]
+ fmul <4 x float> %157, %8 ; <<4 x float>>:158 [#uses=1]
+ fmul <4 x float> %158, %9 ; <<4 x float>>:159 [#uses=1]
+ fmul <4 x float> %159, %10 ; <<4 x float>>:160 [#uses=1]
+ fmul <4 x float> %160, %11 ; <<4 x float>>:161 [#uses=1]
+ fmul <4 x float> %161, %12 ; <<4 x float>>:162 [#uses=1]
+ fmul <4 x float> %162, %13 ; <<4 x float>>:163 [#uses=1]
+ fmul <4 x float> %163, %14 ; <<4 x float>>:164 [#uses=1]
+ fmul <4 x float> %164, %15 ; <<4 x float>>:165 [#uses=1]
+ fmul <4 x float> %165, %16 ; <<4 x float>>:166 [#uses=1]
+ fmul <4 x float> %166, %17 ; <<4 x float>>:167 [#uses=1]
+ fmul <4 x float> %167, %18 ; <<4 x float>>:168 [#uses=1]
+ fmul <4 x float> %168, %19 ; <<4 x float>>:169 [#uses=1]
+ fmul <4 x float> %169, %20 ; <<4 x float>>:170 [#uses=1]
+ fmul <4 x float> %170, %21 ; <<4 x float>>:171 [#uses=1]
+ fmul <4 x float> %171, %22 ; <<4 x float>>:172 [#uses=1]
+ fmul <4 x float> %172, %23 ; <<4 x float>>:173 [#uses=1]
+ fmul <4 x float> %173, %24 ; <<4 x float>>:174 [#uses=1]
+ fmul <4 x float> %174, %25 ; <<4 x float>>:175 [#uses=1]
+ fmul <4 x float> %175, %26 ; <<4 x float>>:176 [#uses=1]
+ fmul <4 x float> %176, %27 ; <<4 x float>>:177 [#uses=1]
+ fmul <4 x float> %177, %28 ; <<4 x float>>:178 [#uses=1]
+ fmul <4 x float> %178, %29 ; <<4 x float>>:179 [#uses=1]
+ fmul <4 x float> %179, %30 ; <<4 x float>>:180 [#uses=1]
+ fmul <4 x float> %180, %31 ; <<4 x float>>:181 [#uses=1]
+ fmul <4 x float> %181, %32 ; <<4 x float>>:182 [#uses=1]
+ fmul <4 x float> %6, %6 ; <<4 x float>>:183 [#uses=1]
+ fmul <4 x float> %183, %7 ; <<4 x float>>:184 [#uses=1]
+ fmul <4 x float> %184, %8 ; <<4 x float>>:185 [#uses=1]
+ fmul <4 x float> %185, %9 ; <<4 x float>>:186 [#uses=1]
+ fmul <4 x float> %186, %10 ; <<4 x float>>:187 [#uses=1]
+ fmul <4 x float> %187, %11 ; <<4 x float>>:188 [#uses=1]
+ fmul <4 x float> %188, %12 ; <<4 x float>>:189 [#uses=1]
+ fmul <4 x float> %189, %13 ; <<4 x float>>:190 [#uses=1]
+ fmul <4 x float> %190, %14 ; <<4 x float>>:191 [#uses=1]
+ fmul <4 x float> %191, %15 ; <<4 x float>>:192 [#uses=1]
+ fmul <4 x float> %192, %16 ; <<4 x float>>:193 [#uses=1]
+ fmul <4 x float> %193, %17 ; <<4 x float>>:194 [#uses=1]
+ fmul <4 x float> %194, %18 ; <<4 x float>>:195 [#uses=1]
+ fmul <4 x float> %195, %19 ; <<4 x float>>:196 [#uses=1]
+ fmul <4 x float> %196, %20 ; <<4 x float>>:197 [#uses=1]
+ fmul <4 x float> %197, %21 ; <<4 x float>>:198 [#uses=1]
+ fmul <4 x float> %198, %22 ; <<4 x float>>:199 [#uses=1]
+ fmul <4 x float> %199, %23 ; <<4 x float>>:200 [#uses=1]
+ fmul <4 x float> %200, %24 ; <<4 x float>>:201 [#uses=1]
+ fmul <4 x float> %201, %25 ; <<4 x float>>:202 [#uses=1]
+ fmul <4 x float> %202, %26 ; <<4 x float>>:203 [#uses=1]
+ fmul <4 x float> %203, %27 ; <<4 x float>>:204 [#uses=1]
+ fmul <4 x float> %204, %28 ; <<4 x float>>:205 [#uses=1]
+ fmul <4 x float> %205, %29 ; <<4 x float>>:206 [#uses=1]
+ fmul <4 x float> %206, %30 ; <<4 x float>>:207 [#uses=1]
+ fmul <4 x float> %207, %31 ; <<4 x float>>:208 [#uses=1]
+ fmul <4 x float> %208, %32 ; <<4 x float>>:209 [#uses=1]
+ fmul <4 x float> %7, %7 ; <<4 x float>>:210 [#uses=1]
+ fmul <4 x float> %210, %8 ; <<4 x float>>:211 [#uses=1]
+ fmul <4 x float> %211, %9 ; <<4 x float>>:212 [#uses=1]
+ fmul <4 x float> %212, %10 ; <<4 x float>>:213 [#uses=1]
+ fmul <4 x float> %213, %11 ; <<4 x float>>:214 [#uses=1]
+ fmul <4 x float> %214, %12 ; <<4 x float>>:215 [#uses=1]
+ fmul <4 x float> %215, %13 ; <<4 x float>>:216 [#uses=1]
+ fmul <4 x float> %216, %14 ; <<4 x float>>:217 [#uses=1]
+ fmul <4 x float> %217, %15 ; <<4 x float>>:218 [#uses=1]
+ fmul <4 x float> %218, %16 ; <<4 x float>>:219 [#uses=1]
+ fmul <4 x float> %219, %17 ; <<4 x float>>:220 [#uses=1]
+ fmul <4 x float> %220, %18 ; <<4 x float>>:221 [#uses=1]
+ fmul <4 x float> %221, %19 ; <<4 x float>>:222 [#uses=1]
+ fmul <4 x float> %222, %20 ; <<4 x float>>:223 [#uses=1]
+ fmul <4 x float> %223, %21 ; <<4 x float>>:224 [#uses=1]
+ fmul <4 x float> %224, %22 ; <<4 x float>>:225 [#uses=1]
+ fmul <4 x float> %225, %23 ; <<4 x float>>:226 [#uses=1]
+ fmul <4 x float> %226, %24 ; <<4 x float>>:227 [#uses=1]
+ fmul <4 x float> %227, %25 ; <<4 x float>>:228 [#uses=1]
+ fmul <4 x float> %228, %26 ; <<4 x float>>:229 [#uses=1]
+ fmul <4 x float> %229, %27 ; <<4 x float>>:230 [#uses=1]
+ fmul <4 x float> %230, %28 ; <<4 x float>>:231 [#uses=1]
+ fmul <4 x float> %231, %29 ; <<4 x float>>:232 [#uses=1]
+ fmul <4 x float> %232, %30 ; <<4 x float>>:233 [#uses=1]
+ fmul <4 x float> %233, %31 ; <<4 x float>>:234 [#uses=1]
+ fmul <4 x float> %234, %32 ; <<4 x float>>:235 [#uses=1]
+ fmul <4 x float> %8, %8 ; <<4 x float>>:236 [#uses=1]
+ fmul <4 x float> %236, %9 ; <<4 x float>>:237 [#uses=1]
+ fmul <4 x float> %237, %10 ; <<4 x float>>:238 [#uses=1]
+ fmul <4 x float> %238, %11 ; <<4 x float>>:239 [#uses=1]
+ fmul <4 x float> %239, %12 ; <<4 x float>>:240 [#uses=1]
+ fmul <4 x float> %240, %13 ; <<4 x float>>:241 [#uses=1]
+ fmul <4 x float> %241, %14 ; <<4 x float>>:242 [#uses=1]
+ fmul <4 x float> %242, %15 ; <<4 x float>>:243 [#uses=1]
+ fmul <4 x float> %243, %16 ; <<4 x float>>:244 [#uses=1]
+ fmul <4 x float> %244, %17 ; <<4 x float>>:245 [#uses=1]
+ fmul <4 x float> %245, %18 ; <<4 x float>>:246 [#uses=1]
+ fmul <4 x float> %246, %19 ; <<4 x float>>:247 [#uses=1]
+ fmul <4 x float> %247, %20 ; <<4 x float>>:248 [#uses=1]
+ fmul <4 x float> %248, %21 ; <<4 x float>>:249 [#uses=1]
+ fmul <4 x float> %249, %22 ; <<4 x float>>:250 [#uses=1]
+ fmul <4 x float> %250, %23 ; <<4 x float>>:251 [#uses=1]
+ fmul <4 x float> %251, %24 ; <<4 x float>>:252 [#uses=1]
+ fmul <4 x float> %252, %25 ; <<4 x float>>:253 [#uses=1]
+ fmul <4 x float> %253, %26 ; <<4 x float>>:254 [#uses=1]
+ fmul <4 x float> %254, %27 ; <<4 x float>>:255 [#uses=1]
+ fmul <4 x float> %255, %28 ; <<4 x float>>:256 [#uses=1]
+ fmul <4 x float> %256, %29 ; <<4 x float>>:257 [#uses=1]
+ fmul <4 x float> %257, %30 ; <<4 x float>>:258 [#uses=1]
+ fmul <4 x float> %258, %31 ; <<4 x float>>:259 [#uses=1]
+ fmul <4 x float> %259, %32 ; <<4 x float>>:260 [#uses=1]
+ fmul <4 x float> %9, %9 ; <<4 x float>>:261 [#uses=1]
+ fmul <4 x float> %261, %10 ; <<4 x float>>:262 [#uses=1]
+ fmul <4 x float> %262, %11 ; <<4 x float>>:263 [#uses=1]
+ fmul <4 x float> %263, %12 ; <<4 x float>>:264 [#uses=1]
+ fmul <4 x float> %264, %13 ; <<4 x float>>:265 [#uses=1]
+ fmul <4 x float> %265, %14 ; <<4 x float>>:266 [#uses=1]
+ fmul <4 x float> %266, %15 ; <<4 x float>>:267 [#uses=1]
+ fmul <4 x float> %267, %16 ; <<4 x float>>:268 [#uses=1]
+ fmul <4 x float> %268, %17 ; <<4 x float>>:269 [#uses=1]
+ fmul <4 x float> %269, %18 ; <<4 x float>>:270 [#uses=1]
+ fmul <4 x float> %270, %19 ; <<4 x float>>:271 [#uses=1]
+ fmul <4 x float> %271, %20 ; <<4 x float>>:272 [#uses=1]
+ fmul <4 x float> %272, %21 ; <<4 x float>>:273 [#uses=1]
+ fmul <4 x float> %273, %22 ; <<4 x float>>:274 [#uses=1]
+ fmul <4 x float> %274, %23 ; <<4 x float>>:275 [#uses=1]
+ fmul <4 x float> %275, %24 ; <<4 x float>>:276 [#uses=1]
+ fmul <4 x float> %276, %25 ; <<4 x float>>:277 [#uses=1]
+ fmul <4 x float> %277, %26 ; <<4 x float>>:278 [#uses=1]
+ fmul <4 x float> %278, %27 ; <<4 x float>>:279 [#uses=1]
+ fmul <4 x float> %279, %28 ; <<4 x float>>:280 [#uses=1]
+ fmul <4 x float> %280, %29 ; <<4 x float>>:281 [#uses=1]
+ fmul <4 x float> %281, %30 ; <<4 x float>>:282 [#uses=1]
+ fmul <4 x float> %282, %31 ; <<4 x float>>:283 [#uses=1]
+ fmul <4 x float> %283, %32 ; <<4 x float>>:284 [#uses=1]
+ fmul <4 x float> %10, %10 ; <<4 x float>>:285 [#uses=1]
+ fmul <4 x float> %285, %11 ; <<4 x float>>:286 [#uses=1]
+ fmul <4 x float> %286, %12 ; <<4 x float>>:287 [#uses=1]
+ fmul <4 x float> %287, %13 ; <<4 x float>>:288 [#uses=1]
+ fmul <4 x float> %288, %14 ; <<4 x float>>:289 [#uses=1]
+ fmul <4 x float> %289, %15 ; <<4 x float>>:290 [#uses=1]
+ fmul <4 x float> %290, %16 ; <<4 x float>>:291 [#uses=1]
+ fmul <4 x float> %291, %17 ; <<4 x float>>:292 [#uses=1]
+ fmul <4 x float> %292, %18 ; <<4 x float>>:293 [#uses=1]
+ fmul <4 x float> %293, %19 ; <<4 x float>>:294 [#uses=1]
+ fmul <4 x float> %294, %20 ; <<4 x float>>:295 [#uses=1]
+ fmul <4 x float> %295, %21 ; <<4 x float>>:296 [#uses=1]
+ fmul <4 x float> %296, %22 ; <<4 x float>>:297 [#uses=1]
+ fmul <4 x float> %297, %23 ; <<4 x float>>:298 [#uses=1]
+ fmul <4 x float> %298, %24 ; <<4 x float>>:299 [#uses=1]
+ fmul <4 x float> %299, %25 ; <<4 x float>>:300 [#uses=1]
+ fmul <4 x float> %300, %26 ; <<4 x float>>:301 [#uses=1]
+ fmul <4 x float> %301, %27 ; <<4 x float>>:302 [#uses=1]
+ fmul <4 x float> %302, %28 ; <<4 x float>>:303 [#uses=1]
+ fmul <4 x float> %303, %29 ; <<4 x float>>:304 [#uses=1]
+ fmul <4 x float> %304, %30 ; <<4 x float>>:305 [#uses=1]
+ fmul <4 x float> %305, %31 ; <<4 x float>>:306 [#uses=1]
+ fmul <4 x float> %306, %32 ; <<4 x float>>:307 [#uses=1]
+ fmul <4 x float> %11, %11 ; <<4 x float>>:308 [#uses=1]
+ fmul <4 x float> %308, %12 ; <<4 x float>>:309 [#uses=1]
+ fmul <4 x float> %309, %13 ; <<4 x float>>:310 [#uses=1]
+ fmul <4 x float> %310, %14 ; <<4 x float>>:311 [#uses=1]
+ fmul <4 x float> %311, %15 ; <<4 x float>>:312 [#uses=1]
+ fmul <4 x float> %312, %16 ; <<4 x float>>:313 [#uses=1]
+ fmul <4 x float> %313, %17 ; <<4 x float>>:314 [#uses=1]
+ fmul <4 x float> %314, %18 ; <<4 x float>>:315 [#uses=1]
+ fmul <4 x float> %315, %19 ; <<4 x float>>:316 [#uses=1]
+ fmul <4 x float> %316, %20 ; <<4 x float>>:317 [#uses=1]
+ fmul <4 x float> %317, %21 ; <<4 x float>>:318 [#uses=1]
+ fmul <4 x float> %318, %22 ; <<4 x float>>:319 [#uses=1]
+ fmul <4 x float> %319, %23 ; <<4 x float>>:320 [#uses=1]
+ fmul <4 x float> %320, %24 ; <<4 x float>>:321 [#uses=1]
+ fmul <4 x float> %321, %25 ; <<4 x float>>:322 [#uses=1]
+ fmul <4 x float> %322, %26 ; <<4 x float>>:323 [#uses=1]
+ fmul <4 x float> %323, %27 ; <<4 x float>>:324 [#uses=1]
+ fmul <4 x float> %324, %28 ; <<4 x float>>:325 [#uses=1]
+ fmul <4 x float> %325, %29 ; <<4 x float>>:326 [#uses=1]
+ fmul <4 x float> %326, %30 ; <<4 x float>>:327 [#uses=1]
+ fmul <4 x float> %327, %31 ; <<4 x float>>:328 [#uses=1]
+ fmul <4 x float> %328, %32 ; <<4 x float>>:329 [#uses=1]
+ fmul <4 x float> %12, %12 ; <<4 x float>>:330 [#uses=1]
+ fmul <4 x float> %330, %13 ; <<4 x float>>:331 [#uses=1]
+ fmul <4 x float> %331, %14 ; <<4 x float>>:332 [#uses=1]
+ fmul <4 x float> %332, %15 ; <<4 x float>>:333 [#uses=1]
+ fmul <4 x float> %333, %16 ; <<4 x float>>:334 [#uses=1]
+ fmul <4 x float> %334, %17 ; <<4 x float>>:335 [#uses=1]
+ fmul <4 x float> %335, %18 ; <<4 x float>>:336 [#uses=1]
+ fmul <4 x float> %336, %19 ; <<4 x float>>:337 [#uses=1]
+ fmul <4 x float> %337, %20 ; <<4 x float>>:338 [#uses=1]
+ fmul <4 x float> %338, %21 ; <<4 x float>>:339 [#uses=1]
+ fmul <4 x float> %339, %22 ; <<4 x float>>:340 [#uses=1]
+ fmul <4 x float> %340, %23 ; <<4 x float>>:341 [#uses=1]
+ fmul <4 x float> %341, %24 ; <<4 x float>>:342 [#uses=1]
+ fmul <4 x float> %342, %25 ; <<4 x float>>:343 [#uses=1]
+ fmul <4 x float> %343, %26 ; <<4 x float>>:344 [#uses=1]
+ fmul <4 x float> %344, %27 ; <<4 x float>>:345 [#uses=1]
+ fmul <4 x float> %345, %28 ; <<4 x float>>:346 [#uses=1]
+ fmul <4 x float> %346, %29 ; <<4 x float>>:347 [#uses=1]
+ fmul <4 x float> %347, %30 ; <<4 x float>>:348 [#uses=1]
+ fmul <4 x float> %348, %31 ; <<4 x float>>:349 [#uses=1]
+ fmul <4 x float> %349, %32 ; <<4 x float>>:350 [#uses=1]
+ fmul <4 x float> %13, %13 ; <<4 x float>>:351 [#uses=1]
+ fmul <4 x float> %351, %14 ; <<4 x float>>:352 [#uses=1]
+ fmul <4 x float> %352, %15 ; <<4 x float>>:353 [#uses=1]
+ fmul <4 x float> %353, %16 ; <<4 x float>>:354 [#uses=1]
+ fmul <4 x float> %354, %17 ; <<4 x float>>:355 [#uses=1]
+ fmul <4 x float> %355, %18 ; <<4 x float>>:356 [#uses=1]
+ fmul <4 x float> %356, %19 ; <<4 x float>>:357 [#uses=1]
+ fmul <4 x float> %357, %20 ; <<4 x float>>:358 [#uses=1]
+ fmul <4 x float> %358, %21 ; <<4 x float>>:359 [#uses=1]
+ fmul <4 x float> %359, %22 ; <<4 x float>>:360 [#uses=1]
+ fmul <4 x float> %360, %23 ; <<4 x float>>:361 [#uses=1]
+ fmul <4 x float> %361, %24 ; <<4 x float>>:362 [#uses=1]
+ fmul <4 x float> %362, %25 ; <<4 x float>>:363 [#uses=1]
+ fmul <4 x float> %363, %26 ; <<4 x float>>:364 [#uses=1]
+ fmul <4 x float> %364, %27 ; <<4 x float>>:365 [#uses=1]
+ fmul <4 x float> %365, %28 ; <<4 x float>>:366 [#uses=1]
+ fmul <4 x float> %366, %29 ; <<4 x float>>:367 [#uses=1]
+ fmul <4 x float> %367, %30 ; <<4 x float>>:368 [#uses=1]
+ fmul <4 x float> %368, %31 ; <<4 x float>>:369 [#uses=1]
+ fmul <4 x float> %369, %32 ; <<4 x float>>:370 [#uses=1]
+ fmul <4 x float> %14, %14 ; <<4 x float>>:371 [#uses=1]
+ fmul <4 x float> %371, %15 ; <<4 x float>>:372 [#uses=1]
+ fmul <4 x float> %372, %16 ; <<4 x float>>:373 [#uses=1]
+ fmul <4 x float> %373, %17 ; <<4 x float>>:374 [#uses=1]
+ fmul <4 x float> %374, %18 ; <<4 x float>>:375 [#uses=1]
+ fmul <4 x float> %375, %19 ; <<4 x float>>:376 [#uses=1]
+ fmul <4 x float> %376, %20 ; <<4 x float>>:377 [#uses=1]
+ fmul <4 x float> %377, %21 ; <<4 x float>>:378 [#uses=1]
+ fmul <4 x float> %378, %22 ; <<4 x float>>:379 [#uses=1]
+ fmul <4 x float> %379, %23 ; <<4 x float>>:380 [#uses=1]
+ fmul <4 x float> %380, %24 ; <<4 x float>>:381 [#uses=1]
+ fmul <4 x float> %381, %25 ; <<4 x float>>:382 [#uses=1]
+ fmul <4 x float> %382, %26 ; <<4 x float>>:383 [#uses=1]
+ fmul <4 x float> %383, %27 ; <<4 x float>>:384 [#uses=1]
+ fmul <4 x float> %384, %28 ; <<4 x float>>:385 [#uses=1]
+ fmul <4 x float> %385, %29 ; <<4 x float>>:386 [#uses=1]
+ fmul <4 x float> %386, %30 ; <<4 x float>>:387 [#uses=1]
+ fmul <4 x float> %387, %31 ; <<4 x float>>:388 [#uses=1]
+ fmul <4 x float> %388, %32 ; <<4 x float>>:389 [#uses=1]
+ fmul <4 x float> %15, %15 ; <<4 x float>>:390 [#uses=1]
+ fmul <4 x float> %390, %16 ; <<4 x float>>:391 [#uses=1]
+ fmul <4 x float> %391, %17 ; <<4 x float>>:392 [#uses=1]
+ fmul <4 x float> %392, %18 ; <<4 x float>>:393 [#uses=1]
+ fmul <4 x float> %393, %19 ; <<4 x float>>:394 [#uses=1]
+ fmul <4 x float> %394, %20 ; <<4 x float>>:395 [#uses=1]
+ fmul <4 x float> %395, %21 ; <<4 x float>>:396 [#uses=1]
+ fmul <4 x float> %396, %22 ; <<4 x float>>:397 [#uses=1]
+ fmul <4 x float> %397, %23 ; <<4 x float>>:398 [#uses=1]
+ fmul <4 x float> %398, %24 ; <<4 x float>>:399 [#uses=1]
+ fmul <4 x float> %399, %25 ; <<4 x float>>:400 [#uses=1]
+ fmul <4 x float> %400, %26 ; <<4 x float>>:401 [#uses=1]
+ fmul <4 x float> %401, %27 ; <<4 x float>>:402 [#uses=1]
+ fmul <4 x float> %402, %28 ; <<4 x float>>:403 [#uses=1]
+ fmul <4 x float> %403, %29 ; <<4 x float>>:404 [#uses=1]
+ fmul <4 x float> %404, %30 ; <<4 x float>>:405 [#uses=1]
+ fmul <4 x float> %405, %31 ; <<4 x float>>:406 [#uses=1]
+ fmul <4 x float> %406, %32 ; <<4 x float>>:407 [#uses=1]
+ fmul <4 x float> %16, %16 ; <<4 x float>>:408 [#uses=1]
+ fmul <4 x float> %408, %17 ; <<4 x float>>:409 [#uses=1]
+ fmul <4 x float> %409, %18 ; <<4 x float>>:410 [#uses=1]
+ fmul <4 x float> %410, %19 ; <<4 x float>>:411 [#uses=1]
+ fmul <4 x float> %411, %20 ; <<4 x float>>:412 [#uses=1]
+ fmul <4 x float> %412, %21 ; <<4 x float>>:413 [#uses=1]
+ fmul <4 x float> %413, %22 ; <<4 x float>>:414 [#uses=1]
+ fmul <4 x float> %414, %23 ; <<4 x float>>:415 [#uses=1]
+ fmul <4 x float> %415, %24 ; <<4 x float>>:416 [#uses=1]
+ fmul <4 x float> %416, %25 ; <<4 x float>>:417 [#uses=1]
+ fmul <4 x float> %417, %26 ; <<4 x float>>:418 [#uses=1]
+ fmul <4 x float> %418, %27 ; <<4 x float>>:419 [#uses=1]
+ fmul <4 x float> %419, %28 ; <<4 x float>>:420 [#uses=1]
+ fmul <4 x float> %420, %29 ; <<4 x float>>:421 [#uses=1]
+ fmul <4 x float> %421, %30 ; <<4 x float>>:422 [#uses=1]
+ fmul <4 x float> %422, %31 ; <<4 x float>>:423 [#uses=1]
+ fmul <4 x float> %423, %32 ; <<4 x float>>:424 [#uses=1]
+ fmul <4 x float> %17, %17 ; <<4 x float>>:425 [#uses=1]
+ fmul <4 x float> %425, %18 ; <<4 x float>>:426 [#uses=1]
+ fmul <4 x float> %426, %19 ; <<4 x float>>:427 [#uses=1]
+ fmul <4 x float> %427, %20 ; <<4 x float>>:428 [#uses=1]
+ fmul <4 x float> %428, %21 ; <<4 x float>>:429 [#uses=1]
+ fmul <4 x float> %429, %22 ; <<4 x float>>:430 [#uses=1]
+ fmul <4 x float> %430, %23 ; <<4 x float>>:431 [#uses=1]
+ fmul <4 x float> %431, %24 ; <<4 x float>>:432 [#uses=1]
+ fmul <4 x float> %432, %25 ; <<4 x float>>:433 [#uses=1]
+ fmul <4 x float> %433, %26 ; <<4 x float>>:434 [#uses=1]
+ fmul <4 x float> %434, %27 ; <<4 x float>>:435 [#uses=1]
+ fmul <4 x float> %435, %28 ; <<4 x float>>:436 [#uses=1]
+ fmul <4 x float> %436, %29 ; <<4 x float>>:437 [#uses=1]
+ fmul <4 x float> %437, %30 ; <<4 x float>>:438 [#uses=1]
+ fmul <4 x float> %438, %31 ; <<4 x float>>:439 [#uses=1]
+ fmul <4 x float> %439, %32 ; <<4 x float>>:440 [#uses=1]
+ fmul <4 x float> %18, %18 ; <<4 x float>>:441 [#uses=1]
+ fmul <4 x float> %441, %19 ; <<4 x float>>:442 [#uses=1]
+ fmul <4 x float> %442, %20 ; <<4 x float>>:443 [#uses=1]
+ fmul <4 x float> %443, %21 ; <<4 x float>>:444 [#uses=1]
+ fmul <4 x float> %444, %22 ; <<4 x float>>:445 [#uses=1]
+ fmul <4 x float> %445, %23 ; <<4 x float>>:446 [#uses=1]
+ fmul <4 x float> %446, %24 ; <<4 x float>>:447 [#uses=1]
+ fmul <4 x float> %447, %25 ; <<4 x float>>:448 [#uses=1]
+ fmul <4 x float> %448, %26 ; <<4 x float>>:449 [#uses=1]
+ fmul <4 x float> %449, %27 ; <<4 x float>>:450 [#uses=1]
+ fmul <4 x float> %450, %28 ; <<4 x float>>:451 [#uses=1]
+ fmul <4 x float> %451, %29 ; <<4 x float>>:452 [#uses=1]
+ fmul <4 x float> %452, %30 ; <<4 x float>>:453 [#uses=1]
+ fmul <4 x float> %453, %31 ; <<4 x float>>:454 [#uses=1]
+ fmul <4 x float> %454, %32 ; <<4 x float>>:455 [#uses=1]
+ fmul <4 x float> %19, %19 ; <<4 x float>>:456 [#uses=1]
+ fmul <4 x float> %456, %20 ; <<4 x float>>:457 [#uses=1]
+ fmul <4 x float> %457, %21 ; <<4 x float>>:458 [#uses=1]
+ fmul <4 x float> %458, %22 ; <<4 x float>>:459 [#uses=1]
+ fmul <4 x float> %459, %23 ; <<4 x float>>:460 [#uses=1]
+ fmul <4 x float> %460, %24 ; <<4 x float>>:461 [#uses=1]
+ fmul <4 x float> %461, %25 ; <<4 x float>>:462 [#uses=1]
+ fmul <4 x float> %462, %26 ; <<4 x float>>:463 [#uses=1]
+ fmul <4 x float> %463, %27 ; <<4 x float>>:464 [#uses=1]
+ fmul <4 x float> %464, %28 ; <<4 x float>>:465 [#uses=1]
+ fmul <4 x float> %465, %29 ; <<4 x float>>:466 [#uses=1]
+ fmul <4 x float> %466, %30 ; <<4 x float>>:467 [#uses=1]
+ fmul <4 x float> %467, %31 ; <<4 x float>>:468 [#uses=1]
+ fmul <4 x float> %468, %32 ; <<4 x float>>:469 [#uses=1]
+ fmul <4 x float> %20, %20 ; <<4 x float>>:470 [#uses=1]
+ fmul <4 x float> %470, %21 ; <<4 x float>>:471 [#uses=1]
+ fmul <4 x float> %471, %22 ; <<4 x float>>:472 [#uses=1]
+ fmul <4 x float> %472, %23 ; <<4 x float>>:473 [#uses=1]
+ fmul <4 x float> %473, %24 ; <<4 x float>>:474 [#uses=1]
+ fmul <4 x float> %474, %25 ; <<4 x float>>:475 [#uses=1]
+ fmul <4 x float> %475, %26 ; <<4 x float>>:476 [#uses=1]
+ fmul <4 x float> %476, %27 ; <<4 x float>>:477 [#uses=1]
+ fmul <4 x float> %477, %28 ; <<4 x float>>:478 [#uses=1]
+ fmul <4 x float> %478, %29 ; <<4 x float>>:479 [#uses=1]
+ fmul <4 x float> %479, %30 ; <<4 x float>>:480 [#uses=1]
+ fmul <4 x float> %480, %31 ; <<4 x float>>:481 [#uses=1]
+ fmul <4 x float> %481, %32 ; <<4 x float>>:482 [#uses=1]
+ fmul <4 x float> %21, %21 ; <<4 x float>>:483 [#uses=1]
+ fmul <4 x float> %483, %22 ; <<4 x float>>:484 [#uses=1]
+ fmul <4 x float> %484, %23 ; <<4 x float>>:485 [#uses=1]
+ fmul <4 x float> %485, %24 ; <<4 x float>>:486 [#uses=1]
+ fmul <4 x float> %486, %25 ; <<4 x float>>:487 [#uses=1]
+ fmul <4 x float> %487, %26 ; <<4 x float>>:488 [#uses=1]
+ fmul <4 x float> %488, %27 ; <<4 x float>>:489 [#uses=1]
+ fmul <4 x float> %489, %28 ; <<4 x float>>:490 [#uses=1]
+ fmul <4 x float> %490, %29 ; <<4 x float>>:491 [#uses=1]
+ fmul <4 x float> %491, %30 ; <<4 x float>>:492 [#uses=1]
+ fmul <4 x float> %492, %31 ; <<4 x float>>:493 [#uses=1]
+ fmul <4 x float> %493, %32 ; <<4 x float>>:494 [#uses=1]
+ fmul <4 x float> %22, %22 ; <<4 x float>>:495 [#uses=1]
+ fmul <4 x float> %495, %23 ; <<4 x float>>:496 [#uses=1]
+ fmul <4 x float> %496, %24 ; <<4 x float>>:497 [#uses=1]
+ fmul <4 x float> %497, %25 ; <<4 x float>>:498 [#uses=1]
+ fmul <4 x float> %498, %26 ; <<4 x float>>:499 [#uses=1]
+ fmul <4 x float> %499, %27 ; <<4 x float>>:500 [#uses=1]
+ fmul <4 x float> %500, %28 ; <<4 x float>>:501 [#uses=1]
+ fmul <4 x float> %501, %29 ; <<4 x float>>:502 [#uses=1]
+ fmul <4 x float> %502, %30 ; <<4 x float>>:503 [#uses=1]
+ fmul <4 x float> %503, %31 ; <<4 x float>>:504 [#uses=1]
+ fmul <4 x float> %504, %32 ; <<4 x float>>:505 [#uses=1]
+ fmul <4 x float> %23, %23 ; <<4 x float>>:506 [#uses=1]
+ fmul <4 x float> %506, %24 ; <<4 x float>>:507 [#uses=1]
+ fmul <4 x float> %507, %25 ; <<4 x float>>:508 [#uses=1]
+ fmul <4 x float> %508, %26 ; <<4 x float>>:509 [#uses=1]
+ fmul <4 x float> %509, %27 ; <<4 x float>>:510 [#uses=1]
+ fmul <4 x float> %510, %28 ; <<4 x float>>:511 [#uses=1]
+ fmul <4 x float> %511, %29 ; <<4 x float>>:512 [#uses=1]
+ fmul <4 x float> %512, %30 ; <<4 x float>>:513 [#uses=1]
+ fmul <4 x float> %513, %31 ; <<4 x float>>:514 [#uses=1]
+ fmul <4 x float> %514, %32 ; <<4 x float>>:515 [#uses=1]
+ fmul <4 x float> %24, %24 ; <<4 x float>>:516 [#uses=1]
+ fmul <4 x float> %516, %25 ; <<4 x float>>:517 [#uses=1]
+ fmul <4 x float> %517, %26 ; <<4 x float>>:518 [#uses=1]
+ fmul <4 x float> %518, %27 ; <<4 x float>>:519 [#uses=1]
+ fmul <4 x float> %519, %28 ; <<4 x float>>:520 [#uses=1]
+ fmul <4 x float> %520, %29 ; <<4 x float>>:521 [#uses=1]
+ fmul <4 x float> %521, %30 ; <<4 x float>>:522 [#uses=1]
+ fmul <4 x float> %522, %31 ; <<4 x float>>:523 [#uses=1]
+ fmul <4 x float> %523, %32 ; <<4 x float>>:524 [#uses=1]
+ fmul <4 x float> %25, %25 ; <<4 x float>>:525 [#uses=1]
+ fmul <4 x float> %525, %26 ; <<4 x float>>:526 [#uses=1]
+ fmul <4 x float> %526, %27 ; <<4 x float>>:527 [#uses=1]
+ fmul <4 x float> %527, %28 ; <<4 x float>>:528 [#uses=1]
+ fmul <4 x float> %528, %29 ; <<4 x float>>:529 [#uses=1]
+ fmul <4 x float> %529, %30 ; <<4 x float>>:530 [#uses=1]
+ fmul <4 x float> %530, %31 ; <<4 x float>>:531 [#uses=1]
+ fmul <4 x float> %531, %32 ; <<4 x float>>:532 [#uses=1]
+ fmul <4 x float> %26, %26 ; <<4 x float>>:533 [#uses=1]
+ fmul <4 x float> %533, %27 ; <<4 x float>>:534 [#uses=1]
+ fmul <4 x float> %534, %28 ; <<4 x float>>:535 [#uses=1]
+ fmul <4 x float> %535, %29 ; <<4 x float>>:536 [#uses=1]
+ fmul <4 x float> %536, %30 ; <<4 x float>>:537 [#uses=1]
+ fmul <4 x float> %537, %31 ; <<4 x float>>:538 [#uses=1]
+ fmul <4 x float> %538, %32 ; <<4 x float>>:539 [#uses=1]
+ fmul <4 x float> %27, %27 ; <<4 x float>>:540 [#uses=1]
+ fmul <4 x float> %540, %28 ; <<4 x float>>:541 [#uses=1]
+ fmul <4 x float> %541, %29 ; <<4 x float>>:542 [#uses=1]
+ fmul <4 x float> %542, %30 ; <<4 x float>>:543 [#uses=1]
+ fmul <4 x float> %543, %31 ; <<4 x float>>:544 [#uses=1]
+ fmul <4 x float> %544, %32 ; <<4 x float>>:545 [#uses=1]
+ fmul <4 x float> %28, %28 ; <<4 x float>>:546 [#uses=1]
+ fmul <4 x float> %546, %29 ; <<4 x float>>:547 [#uses=1]
+ fmul <4 x float> %547, %30 ; <<4 x float>>:548 [#uses=1]
+ fmul <4 x float> %548, %31 ; <<4 x float>>:549 [#uses=1]
+ fmul <4 x float> %549, %32 ; <<4 x float>>:550 [#uses=1]
+ fmul <4 x float> %29, %29 ; <<4 x float>>:551 [#uses=1]
+ fmul <4 x float> %551, %30 ; <<4 x float>>:552 [#uses=1]
+ fmul <4 x float> %552, %31 ; <<4 x float>>:553 [#uses=1]
+ fmul <4 x float> %553, %32 ; <<4 x float>>:554 [#uses=1]
+ fmul <4 x float> %30, %30 ; <<4 x float>>:555 [#uses=1]
+ fmul <4 x float> %555, %31 ; <<4 x float>>:556 [#uses=1]
+ fmul <4 x float> %556, %32 ; <<4 x float>>:557 [#uses=1]
+ fmul <4 x float> %31, %31 ; <<4 x float>>:558 [#uses=1]
+ fmul <4 x float> %558, %32 ; <<4 x float>>:559 [#uses=1]
+ fmul <4 x float> %32, %32 ; <<4 x float>>:560 [#uses=1]
+ fadd <4 x float> %64, %64 ; <<4 x float>>:561 [#uses=1]
+ fadd <4 x float> %561, %64 ; <<4 x float>>:562 [#uses=1]
+ fadd <4 x float> %562, %95 ; <<4 x float>>:563 [#uses=1]
+ fadd <4 x float> %563, %125 ; <<4 x float>>:564 [#uses=1]
+ fadd <4 x float> %564, %154 ; <<4 x float>>:565 [#uses=1]
+ fadd <4 x float> %565, %182 ; <<4 x float>>:566 [#uses=1]
+ fadd <4 x float> %566, %209 ; <<4 x float>>:567 [#uses=1]
+ fadd <4 x float> %567, %235 ; <<4 x float>>:568 [#uses=1]
+ fadd <4 x float> %568, %260 ; <<4 x float>>:569 [#uses=1]
+ fadd <4 x float> %569, %284 ; <<4 x float>>:570 [#uses=1]
+ fadd <4 x float> %570, %307 ; <<4 x float>>:571 [#uses=1]
+ fadd <4 x float> %571, %329 ; <<4 x float>>:572 [#uses=1]
+ fadd <4 x float> %572, %350 ; <<4 x float>>:573 [#uses=1]
+ fadd <4 x float> %573, %370 ; <<4 x float>>:574 [#uses=1]
+ fadd <4 x float> %574, %389 ; <<4 x float>>:575 [#uses=1]
+ fadd <4 x float> %575, %407 ; <<4 x float>>:576 [#uses=1]
+ fadd <4 x float> %576, %424 ; <<4 x float>>:577 [#uses=1]
+ fadd <4 x float> %577, %440 ; <<4 x float>>:578 [#uses=1]
+ fadd <4 x float> %578, %455 ; <<4 x float>>:579 [#uses=1]
+ fadd <4 x float> %579, %469 ; <<4 x float>>:580 [#uses=1]
+ fadd <4 x float> %580, %482 ; <<4 x float>>:581 [#uses=1]
+ fadd <4 x float> %581, %494 ; <<4 x float>>:582 [#uses=1]
+ fadd <4 x float> %582, %505 ; <<4 x float>>:583 [#uses=1]
+ fadd <4 x float> %583, %515 ; <<4 x float>>:584 [#uses=1]
+ fadd <4 x float> %584, %524 ; <<4 x float>>:585 [#uses=1]
+ fadd <4 x float> %585, %532 ; <<4 x float>>:586 [#uses=1]
+ fadd <4 x float> %586, %539 ; <<4 x float>>:587 [#uses=1]
+ fadd <4 x float> %587, %545 ; <<4 x float>>:588 [#uses=1]
+ fadd <4 x float> %588, %550 ; <<4 x float>>:589 [#uses=1]
+ fadd <4 x float> %589, %554 ; <<4 x float>>:590 [#uses=1]
+ fadd <4 x float> %590, %557 ; <<4 x float>>:591 [#uses=1]
+ fadd <4 x float> %591, %559 ; <<4 x float>>:592 [#uses=1]
+ fadd <4 x float> %592, %560 ; <<4 x float>>:593 [#uses=1]
+ store <4 x float> %593, <4 x float>* @0, align 1
+ ret void
+}
diff --git a/test/CodeGen/X86/2008-08-19-SubAndFetch.ll b/test/CodeGen/X86/2008-08-19-SubAndFetch.ll
index 360ec73bc4364..9324d5dfa3bb8 100644
--- a/test/CodeGen/X86/2008-08-19-SubAndFetch.ll
+++ b/test/CodeGen/X86/2008-08-19-SubAndFetch.ll
@@ -4,7 +4,7 @@
define i32 @main() nounwind {
entry:
-; CHECK: main:
+; CHECK-LABEL: main:
; CHECK: lock
; CHECK: decq
atomicrmw sub i64* @var, i64 1 monotonic
diff --git a/test/CodeGen/X86/2008-08-31-EH_RETURN32.ll b/test/CodeGen/X86/2008-08-31-EH_RETURN32.ll
index c63c890add50b..7cf9cb007708e 100644
--- a/test/CodeGen/X86/2008-08-31-EH_RETURN32.ll
+++ b/test/CodeGen/X86/2008-08-31-EH_RETURN32.ll
@@ -1,5 +1,5 @@
; Check that eh_return & unwind_init were properly lowered
-; RUN: llc < %s -verify-machineinstrs | FileCheck %s
+; RUN: llc -mcpu=corei7 < %s -verify-machineinstrs | FileCheck %s
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
target triple = "i386-pc-linux"
diff --git a/test/CodeGen/X86/2008-09-11-CoalescerBug2.ll b/test/CodeGen/X86/2008-09-11-CoalescerBug2.ll
index 534f990333727..59d1c7f77abf8 100644
--- a/test/CodeGen/X86/2008-09-11-CoalescerBug2.ll
+++ b/test/CodeGen/X86/2008-09-11-CoalescerBug2.ll
@@ -1,4 +1,5 @@
; RUN: llc < %s -march=x86
+; RUN: llc -pre-RA-sched=source < %s -march=x86 -mcpu=corei7 | FileCheck %s --check-prefix=SOURCE-SCHED
; PR2748
@g_73 = external global i32 ; <i32*> [#uses=1]
@@ -6,6 +7,17 @@
define i32 @func_44(i16 signext %p_46) nounwind {
entry:
+; SOURCE-SCHED: subl
+; SOURCE-SCHED: movl
+; SOURCE-SCHED: sarl
+; SOURCE-SCHED: cmpl
+; SOURCE-SCHED: setg
+; SOURCE-SCHED: movzbl
+; SOURCE-SCHED: movb
+; SOURCE-SCHED: xorl
+; SOURCE-SCHED: subl
+; SOURCE-SCHED: testb
+; SOURCE-SCHED: jne
%0 = load i32* @g_5, align 4 ; <i32> [#uses=1]
%1 = ashr i32 %0, 1 ; <i32> [#uses=1]
%2 = icmp sgt i32 %1, 1 ; <i1> [#uses=1]
diff --git a/test/CodeGen/X86/2009-02-12-DebugInfoVLA.ll b/test/CodeGen/X86/2009-02-12-DebugInfoVLA.ll
index 890fd0f067cfe..296f0ca135b8b 100644
--- a/test/CodeGen/X86/2009-02-12-DebugInfoVLA.ll
+++ b/test/CodeGen/X86/2009-02-12-DebugInfoVLA.ll
@@ -67,19 +67,21 @@ declare i64 @strlen(i8*) nounwind readonly
declare void @llvm.stackrestore(i8*) nounwind
!0 = metadata !{i32 459009, metadata !1, metadata !"s1", metadata !2, i32 2, metadata !6} ; [ DW_TAG_arg_variable ]
-!1 = metadata !{i32 458798, i32 0, metadata !2, metadata !"foo", metadata !"foo", metadata !"foo", metadata !2, i32 2, metadata !3, i1 false, i1 true, i32 0, i32 0, null, i1 false} ; [ DW_TAG_subprogram ]
-!2 = metadata !{i32 458769, i32 0, i32 1, metadata !"vla.c", metadata !"/tmp/", metadata !"4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", i1 true, i1 false, metadata !"", i32 0} ; [ DW_TAG_compile_unit ]
-!3 = metadata !{i32 458773, metadata !2, metadata !"", metadata !2, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !4, i32 0, null} ; [ DW_TAG_subroutine_type ]
+!1 = metadata !{i32 458798, i32 0, metadata !2, metadata !"foo", metadata !"foo", metadata !"foo", i32 2, metadata !3, i1 false, i1 true, i32 0, i32 0, null, i32 0, i32 0, null, null, null, null, i32 0} ; [ DW_TAG_subprogram ]
+!2 = metadata !{i32 458769, metadata !17, i32 1, metadata !"4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", i1 true, metadata !"", i32 0, metadata !18, metadata !18, null, null, null, metadata !""} ; [ DW_TAG_compile_unit ]
+!3 = metadata !{i32 458773, null, metadata !2, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !4, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
!4 = metadata !{metadata !5, metadata !6}
-!5 = metadata !{i32 458788, metadata !2, metadata !"char", metadata !2, i32 0, i64 8, i64 8, i64 0, i32 0, i32 6} ; [ DW_TAG_base_type ]
-!6 = metadata !{i32 458767, metadata !2, metadata !"", metadata !2, i32 0, i64 64, i64 64, i64 0, i32 0, metadata !5} ; [ DW_TAG_pointer_type ]
+!5 = metadata !{i32 458788, null, metadata !2, metadata !"char", i32 0, i64 8, i64 8, i64 0, i32 0, i32 6} ; [ DW_TAG_base_type ]
+!6 = metadata !{i32 458767, null, metadata !2, metadata !"", i32 0, i64 64, i64 64, i64 0, i32 0, metadata !5} ; [ DW_TAG_pointer_type ]
!7 = metadata !{i32 2, i32 0, metadata !1, null}
!8 = metadata !{i32 459008, metadata !1, metadata !"str.0", metadata !2, i32 3, metadata !9} ; [ DW_TAG_auto_variable ]
-!9 = metadata !{i32 458767, metadata !2, metadata !"", metadata !2, i32 0, i64 64, i64 64, i64 0, i32 64, metadata !10} ; [ DW_TAG_pointer_type ]
-!10 = metadata !{i32 458753, metadata !2, metadata !"", metadata !2, i32 0, i64 8, i64 8, i64 0, i32 0, metadata !5, metadata !11, i32 0, null} ; [ DW_TAG_array_type ]
+!9 = metadata !{i32 458767, null, metadata !2, metadata !"", i32 0, i64 64, i64 64, i64 0, i32 64, metadata !10} ; [ DW_TAG_pointer_type ]
+!10 = metadata !{i32 458753, null, metadata !2, metadata !"", i32 0, i64 8, i64 8, i64 0, i32 0, metadata !5, metadata !11, i32 0, null, null, null} ; [ DW_TAG_array_type ] [line 0, size 8, align 8, offset 0] [from char]
!11 = metadata !{metadata !12}
!12 = metadata !{i32 458785, i64 0, i64 1} ; [ DW_TAG_subrange_type ]
!13 = metadata !{i32 3, i32 0, metadata !14, null}
-!14 = metadata !{i32 458763, metadata !1, i32 0, i32 0} ; [ DW_TAG_lexical_block ]
+!14 = metadata !{i32 458763, metadata !17, metadata !1, i32 0, i32 0, i32 0} ; [ DW_TAG_lexical_block ]
!15 = metadata !{i32 4, i32 0, metadata !14, null}
!16 = metadata !{i32 5, i32 0, metadata !14, null}
+!17 = metadata !{metadata !"vla.c", metadata !"/tmp/"}
+!18 = metadata !{i32 0}
diff --git a/test/CodeGen/X86/2009-02-12-InlineAsm-nieZ-constraints.ll b/test/CodeGen/X86/2009-02-12-InlineAsm-nieZ-constraints.ll
index d64c96658014e..75496518afa6a 100644
--- a/test/CodeGen/X86/2009-02-12-InlineAsm-nieZ-constraints.ll
+++ b/test/CodeGen/X86/2009-02-12-InlineAsm-nieZ-constraints.ll
@@ -5,7 +5,7 @@ target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f3
target triple = "i386-apple-darwin9.6"
define void @f() nounwind {
-; CHECK: f:
+; CHECK-LABEL: f:
; CHECK-NOT: ret
; CHECK: foo $-81920
; CHECK-NOT: ret
diff --git a/test/CodeGen/X86/2009-02-26-MachineLICMBug.ll b/test/CodeGen/X86/2009-02-26-MachineLICMBug.ll
index 68a9fafb6de83..764c2cdd6d993 100644
--- a/test/CodeGen/X86/2009-02-26-MachineLICMBug.ll
+++ b/test/CodeGen/X86/2009-02-26-MachineLICMBug.ll
@@ -1,6 +1,6 @@
; REQUIRES: asserts
-; RUN: llc < %s -march=x86-64 -mattr=+sse3,+sse41 -mcpu=penryn -stats 2>&1 | grep "5 machine-licm"
-; RUN: llc < %s -march=x86-64 -mattr=+sse3,+sse41 -mcpu=penryn | FileCheck %s
+; RUN: llc < %s -march=x86-64 -mattr=+sse3,+sse4.1 -mcpu=penryn -stats 2>&1 | grep "4 machine-licm"
+; RUN: llc < %s -march=x86-64 -mattr=+sse3,+sse4.1 -mcpu=penryn | FileCheck %s
; rdar://6627786
; rdar://7792037
@@ -15,11 +15,11 @@ entry:
bb4: ; preds = %bb.i, %bb26, %bb4, %entry
; CHECK: %bb4
-; CHECK: xorb
+; CHECK: xorl
; CHECK: callq
-; CHECK: movq
; CHECK: xorl
-; CHECK: xorb
+; CHECK: xorl
+; CHECK: movq
%0 = call i32 (...)* @xxGetOffsetForCode(i32 undef) nounwind ; <i32> [#uses=0]
%ins = or i64 %p, 2097152 ; <i64> [#uses=1]
diff --git a/test/CodeGen/X86/2009-03-23-MultiUseSched.ll b/test/CodeGen/X86/2009-03-23-MultiUseSched.ll
index 351a1722a231e..bbc1d341d4e09 100644
--- a/test/CodeGen/X86/2009-03-23-MultiUseSched.ll
+++ b/test/CodeGen/X86/2009-03-23-MultiUseSched.ll
@@ -1,5 +1,5 @@
; REQUIRES: asserts
-; RUN: llc < %s -mtriple=x86_64-linux -relocation-model=static -o /dev/null -stats -info-output-file - > %t
+; RUN: llc < %s -mtriple=x86_64-linux -mcpu=corei7 -relocation-model=static -o /dev/null -stats -info-output-file - > %t
; RUN: not grep spill %t
; RUN: not grep "%rsp" %t
; RUN: not grep "%rbp" %t
diff --git a/test/CodeGen/X86/2009-04-21-NoReloadImpDef.ll b/test/CodeGen/X86/2009-04-21-NoReloadImpDef.ll
index 5cb05e8a796fa..e1930e012dd83 100644
--- a/test/CodeGen/X86/2009-04-21-NoReloadImpDef.ll
+++ b/test/CodeGen/X86/2009-04-21-NoReloadImpDef.ll
@@ -1,5 +1,5 @@
; RUN: llc -mtriple=i386-apple-darwin10.0 -relocation-model=pic -asm-verbose=false \
-; RUN: -mcpu=generic -disable-fp-elim -mattr=-sse41,-sse3,+sse2 -post-RA-scheduler=false -regalloc=basic < %s | \
+; RUN: -mcpu=generic -disable-fp-elim -mattr=-sse4.1,-sse3,+sse2 -post-RA-scheduler=false -regalloc=basic < %s | \
; RUN: FileCheck %s
; rdar://6808032
diff --git a/test/CodeGen/X86/2009-05-23-dagcombine-shifts.ll b/test/CodeGen/X86/2009-05-23-dagcombine-shifts.ll
index 3cd54169745d0..7c87598d0d9c4 100644
--- a/test/CodeGen/X86/2009-05-23-dagcombine-shifts.ll
+++ b/test/CodeGen/X86/2009-05-23-dagcombine-shifts.ll
@@ -9,7 +9,7 @@ target triple = "x86_64-unknown-linux-gnu"
define i64 @foo(i64 %b) nounwind readnone {
entry:
-; CHECK: foo:
+; CHECK-LABEL: foo:
; CHECK: shlq $56, %rdi
; CHECK: sarq $48, %rdi
; CHECK: leaq 1(%rdi), %rax
diff --git a/test/CodeGen/X86/2009-09-21-NoSpillLoopCount.ll b/test/CodeGen/X86/2009-09-21-NoSpillLoopCount.ll
index 80b883582ce53..0268d817c70df 100644
--- a/test/CodeGen/X86/2009-09-21-NoSpillLoopCount.ll
+++ b/test/CodeGen/X86/2009-09-21-NoSpillLoopCount.ll
@@ -1,7 +1,7 @@
; RUN: llc < %s -mtriple=i386-apple-darwin10.0 -relocation-model=pic | FileCheck %s
define void @dot(i16* nocapture %A, i32 %As, i16* nocapture %B, i32 %Bs, i16* nocapture %C, i32 %N) nounwind ssp {
-; CHECK: dot:
+; CHECK-LABEL: dot:
; CHECK: decl %
; CHECK-NEXT: jne
entry:
diff --git a/test/CodeGen/X86/2009-10-16-Scope.ll b/test/CodeGen/X86/2009-10-16-Scope.ll
index e41038d3fdcff..a936edc120d82 100644
--- a/test/CodeGen/X86/2009-10-16-Scope.ll
+++ b/test/CodeGen/X86/2009-10-16-Scope.ll
@@ -23,10 +23,12 @@ declare void @llvm.dbg.declare(metadata, metadata) nounwind readnone
declare i32 @foo(i32) ssp
!0 = metadata !{i32 5, i32 2, metadata !1, null}
-!1 = metadata !{i32 458763, metadata !2, i32 1, i32 1}; [DW_TAG_lexical_block ]
-!2 = metadata !{i32 458798, i32 0, metadata !3, metadata !"bar", metadata !"bar", metadata !"bar", metadata !3, i32 4, null, i1 false, i1 true}; [DW_TAG_subprogram ]
-!3 = metadata !{i32 458769, i32 0, i32 12, metadata !"genmodes.i", metadata !"/Users/yash/Downloads", metadata !"clang 1.1", i1 true, i1 false, metadata !"", i32 0}; [DW_TAG_compile_unit ]
+!1 = metadata !{i32 458763, null, metadata !2, i32 1, i32 1, i32 0}; [DW_TAG_lexical_block ]
+!2 = metadata !{i32 458798, i32 0, metadata !3, metadata !"bar", metadata !"bar", metadata !"bar", i32 4, null, i1 false, i1 true, i32 0, i32 0, null, i32 0, i32 0, null, null, null, null, i32 0} ; [ DW_TAG_subprogram ]
+!3 = metadata !{i32 458769, metadata !8, i32 12, metadata !"clang 1.1", i1 true, metadata !"", i32 0, null, metadata !9, null, null, null, metadata !""}; [DW_TAG_compile_unit ]
!4 = metadata !{i32 459008, metadata !5, metadata !"count_", metadata !3, i32 5, metadata !6}; [ DW_TAG_auto_variable ]
-!5 = metadata !{i32 458763, metadata !1, i32 1, i32 1}; [DW_TAG_lexical_block ]
-!6 = metadata !{i32 458788, metadata !3, metadata !"int", metadata !3, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5}; [DW_TAG_base_type ]
+!5 = metadata !{i32 458763, null, metadata !1, i32 1, i32 1, i32 0}; [DW_TAG_lexical_block ]
+!6 = metadata !{i32 458788, null, metadata !3, metadata !"int", i32 0, i64 32, i64 32, i64 0, i32 0, i32 5}; [DW_TAG_base_type ]
!7 = metadata !{i32 6, i32 1, metadata !2, null}
+!8 = metadata !{metadata !"genmodes.i", metadata !"/Users/yash/Downloads"}
+!9 = metadata !{i32 0}
diff --git a/test/CodeGen/X86/2009-11-16-MachineLICM.ll b/test/CodeGen/X86/2009-11-16-MachineLICM.ll
index 2ac688fd80af1..fedb2a51f3573 100644
--- a/test/CodeGen/X86/2009-11-16-MachineLICM.ll
+++ b/test/CodeGen/X86/2009-11-16-MachineLICM.ll
@@ -5,7 +5,7 @@
define void @foo(i32 %n, float* nocapture %x) nounwind ssp {
entry:
-; CHECK: foo:
+; CHECK-LABEL: foo:
%0 = icmp sgt i32 %n, 0 ; <i1> [#uses=1]
br i1 %0, label %bb.nph, label %return
diff --git a/test/CodeGen/X86/2009-11-16-UnfoldMemOpBug.ll b/test/CodeGen/X86/2009-11-16-UnfoldMemOpBug.ll
index c2d9d84d4c5a1..08a99e3f66182 100644
--- a/test/CodeGen/X86/2009-11-16-UnfoldMemOpBug.ll
+++ b/test/CodeGen/X86/2009-11-16-UnfoldMemOpBug.ll
@@ -5,7 +5,7 @@
define void @t(i32 %count) ssp nounwind {
entry:
-; CHECK: t:
+; CHECK-LABEL: t:
; CHECK: movups L_str+12(%rip), %xmm0
; CHECK: movups L_str(%rip), %xmm1
%tmp0 = alloca [60 x i8], align 1
diff --git a/test/CodeGen/X86/2009-12-01-EarlyClobberBug.ll b/test/CodeGen/X86/2009-12-01-EarlyClobberBug.ll
index 07003234a9930..b1664470551b6 100644
--- a/test/CodeGen/X86/2009-12-01-EarlyClobberBug.ll
+++ b/test/CodeGen/X86/2009-12-01-EarlyClobberBug.ll
@@ -3,7 +3,7 @@
define void @t() nounwind ssp {
entry:
-; CHECK: t:
+; CHECK-LABEL: t:
; CHECK: movl %ecx, %eax
; CHECK: %eax = foo (%eax, %ecx)
%b = alloca i32 ; <i32*> [#uses=2]
@@ -21,7 +21,7 @@ return: ; preds = %entry
define void @t2() nounwind ssp {
entry:
-; CHECK: t2:
+; CHECK-LABEL: t2:
; CHECK: movl
; CHECK: [[D2:%e.x]] = foo
; CHECK: ([[D2]],
diff --git a/test/CodeGen/X86/2009-12-11-TLSNoRedZone.ll b/test/CodeGen/X86/2009-12-11-TLSNoRedZone.ll
index 823e0ca465efa..65b70a7d49364 100644
--- a/test/CodeGen/X86/2009-12-11-TLSNoRedZone.ll
+++ b/test/CodeGen/X86/2009-12-11-TLSNoRedZone.ll
@@ -18,7 +18,7 @@ target triple = "x86_64-unknown-linux-gnu"
@_dm_offset_addr_mask = external global [1 x i64], align 64 ; <[1 x i64]*> [#uses=0]
define void @leaf() nounwind {
-; CHECK: leaf:
+; CHECK-LABEL: leaf:
; CHECK-NOT: -8(%rsp)
; CHECK: leaq link_ptr@TLSGD
; CHECK: callq __tls_get_addr@PLT
diff --git a/test/CodeGen/X86/2010-01-08-Atomic64Bug.ll b/test/CodeGen/X86/2010-01-08-Atomic64Bug.ll
index 3d058bc28965c..f9bf3109ea106 100644
--- a/test/CodeGen/X86/2010-01-08-Atomic64Bug.ll
+++ b/test/CodeGen/X86/2010-01-08-Atomic64Bug.ll
@@ -6,7 +6,7 @@
define void @t(i64* nocapture %p) nounwind ssp {
entry:
-; CHECK: t:
+; CHECK-LABEL: t:
; CHECK: movl ([[REG:%[a-z]+]]), %eax
; CHECK: movl 4([[REG]]), %edx
; CHECK: LBB0_1:
diff --git a/test/CodeGen/X86/2010-01-18-DbgValue.ll b/test/CodeGen/X86/2010-01-18-DbgValue.ll
index 7dba332b1becc..f99e682428117 100644
--- a/test/CodeGen/X86/2010-01-18-DbgValue.ll
+++ b/test/CodeGen/X86/2010-01-18-DbgValue.ll
@@ -29,24 +29,27 @@ return: ; preds = %entry
declare void @llvm.dbg.declare(metadata, metadata) nounwind readnone
!llvm.dbg.cu = !{!3}
+!llvm.module.flags = !{!21}
!0 = metadata !{i32 786689, metadata !1, metadata !"my_r0", metadata !2, i32 11, metadata !7, i32 0, null} ; [ DW_TAG_arg_variable ]
-!1 = metadata !{i32 786478, metadata !2, metadata !"foo", metadata !"foo", metadata !"foo", metadata !2, i32 11, metadata !4, i1 false, i1 true, i32 0, i32 0, null, i32 0, i1 false, double (%struct.Rect*)* @foo, null, null, null, i32 11} ; [ DW_TAG_subprogram ]
+!1 = metadata !{i32 786478, metadata !19, metadata !2, metadata !"foo", metadata !"foo", metadata !"foo", i32 11, metadata !4, i1 false, i1 true, i32 0, i32 0, null, i32 0, i1 false, double (%struct.Rect*)* @foo, null, null, null, i32 11} ; [ DW_TAG_subprogram ]
!2 = metadata !{i32 786473, metadata !19} ; [ DW_TAG_file_type ]
-!3 = metadata !{i32 786449, i32 1, metadata !2, metadata !"4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", i1 false, metadata !"", i32 0, null, null, metadata !18, null, metadata !""} ; [ DW_TAG_compile_unit ]
-!4 = metadata !{i32 786453, metadata !19, metadata !2, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !5, i32 0, null} ; [ DW_TAG_subroutine_type ]
+!3 = metadata !{i32 786449, metadata !19, i32 1, metadata !"4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", i1 false, metadata !"", i32 0, metadata !20, metadata !20, metadata !18, null, null, metadata !""} ; [ DW_TAG_compile_unit ]
+!4 = metadata !{i32 786453, metadata !19, metadata !2, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !5, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
!5 = metadata !{metadata !6, metadata !7}
!6 = metadata !{i32 786468, metadata !19, metadata !2, metadata !"double", i32 0, i64 64, i64 64, i64 0, i32 0, i32 4} ; [ DW_TAG_base_type ]
-!7 = metadata !{i32 786451, metadata !19, metadata !2, metadata !"Rect", i32 6, i64 256, i64 64, i64 0, i32 0, null, metadata !8, i32 0, null} ; [ DW_TAG_structure_type ]
+!7 = metadata !{i32 786451, metadata !19, metadata !2, metadata !"Rect", i32 6, i64 256, i64 64, i64 0, i32 0, null, metadata !8, i32 0, null, null, null} ; [ DW_TAG_structure_type ] [Rect] [line 6, size 256, align 64, offset 0] [def] [from ]
!8 = metadata !{metadata !9, metadata !14}
!9 = metadata !{i32 786445, metadata !19, metadata !7, metadata !"P1", i32 7, i64 128, i64 64, i64 0, i32 0, metadata !10} ; [ DW_TAG_member ]
-!10 = metadata !{i32 786451, metadata !19, metadata !2, metadata !"Pt", i32 1, i64 128, i64 64, i64 0, i32 0, null, metadata !11, i32 0, null} ; [ DW_TAG_structure_type ]
+!10 = metadata !{i32 786451, metadata !19, metadata !2, metadata !"Pt", i32 1, i64 128, i64 64, i64 0, i32 0, null, metadata !11, i32 0, null, null, null} ; [ DW_TAG_structure_type ] [Pt] [line 1, size 128, align 64, offset 0] [def] [from ]
!11 = metadata !{metadata !12, metadata !13}
!12 = metadata !{i32 786445, metadata !19, metadata !10, metadata !"x", i32 2, i64 64, i64 64, i64 0, i32 0, metadata !6} ; [ DW_TAG_member ]
!13 = metadata !{i32 786445, metadata !19, metadata !10, metadata !"y", i32 3, i64 64, i64 64, i64 64, i32 0, metadata !6} ; [ DW_TAG_member ]
!14 = metadata !{i32 786445, metadata !19, metadata !7, metadata !"P2", i32 8, i64 128, i64 64, i64 128, i32 0, metadata !10} ; [ DW_TAG_member ]
!15 = metadata !{i32 11, i32 0, metadata !1, null}
!16 = metadata !{i32 12, i32 0, metadata !17, null}
-!17 = metadata !{i32 786443, metadata !1, i32 11, i32 0} ; [ DW_TAG_lexical_block ]
+!17 = metadata !{i32 786443, metadata !19, metadata !1, i32 11, i32 0, i32 0} ; [ DW_TAG_lexical_block ]
!18 = metadata !{metadata !1}
!19 = metadata !{metadata !"b2.c", metadata !"/tmp/"}
+!20 = metadata !{i32 0}
+!21 = metadata !{i32 1, metadata !"Debug Info Version", i32 1}
diff --git a/test/CodeGen/X86/2010-02-01-DbgValueCrash.ll b/test/CodeGen/X86/2010-02-01-DbgValueCrash.ll
index 2113263c0ac3d..4d4e8c197d871 100644
--- a/test/CodeGen/X86/2010-02-01-DbgValueCrash.ll
+++ b/test/CodeGen/X86/2010-02-01-DbgValueCrash.ll
@@ -16,18 +16,20 @@ entry:
declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
declare void @"tart.reflect.ComplexType.create->tart.core.Object"(%tart.reflect.ComplexType*) nounwind readnone
-!0 = metadata !{i32 458769, i32 0, i32 1, metadata !"sm.c", metadata !"/Volumes/MacOS9/tests/", metadata !"4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", i1 true, i1 false, metadata !"", i32 0} ; [ DW_TAG_compile_unit ]
-!1 = metadata !{i32 458790, metadata !0, metadata !"", metadata !0, i32 0, i64 192, i64 64, i64 0, i32 0, metadata !2} ; [ DW_TAG_const_type ]
-!2 = metadata !{i32 458771, metadata !0, metadata !"C", metadata !0, i32 1, i64 192, i64 64, i64 0, i32 0, null, metadata !3, i32 0, null} ; [ DW_TAG_structure_type ]
+!0 = metadata !{i32 458769, metadata !15, i32 1, metadata !"4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", i1 true, metadata !"", i32 0, metadata !16, metadata !16, null, null, null, i32 0} ; [ DW_TAG_compile_unit ]
+!1 = metadata !{i32 458790, metadata !15, metadata !0, metadata !"", i32 0, i64 192, i64 64, i64 0, i32 0, metadata !2} ; [ DW_TAG_const_type ]
+!2 = metadata !{i32 458771, metadata !15, metadata !0, metadata !"C", i32 1, i64 192, i64 64, i64 0, i32 0, null, metadata !3, i32 0, null, null, null} ; [ DW_TAG_structure_type ] [C] [line 1, size 192, align 64, offset 0] [def] [from ]
!3 = metadata !{metadata !4, metadata !6, metadata !7}
-!4 = metadata !{i32 458765, metadata !2, metadata !"x", metadata !0, i32 1, i64 64, i64 64, i64 0, i32 0, metadata !5} ; [ DW_TAG_member ]
-!5 = metadata !{i32 458788, metadata !0, metadata !"double", metadata !0, i32 0, i64 64, i64 64, i64 0, i32 0, i32 4} ; [ DW_TAG_base_type ]
-!6 = metadata !{i32 458765, metadata !2, metadata !"y", metadata !0, i32 1, i64 64, i64 64, i64 64, i32 0, metadata !5} ; [ DW_TAG_member ]
-!7 = metadata !{i32 458765, metadata !2, metadata !"z", metadata !0, i32 1, i64 64, i64 64, i64 128, i32 0, metadata !5} ; [ DW_TAG_member ]
+!4 = metadata !{i32 458765, metadata !15, metadata !2, metadata !"x", i32 1, i64 64, i64 64, i64 0, i32 0, metadata !5} ; [ DW_TAG_member ]
+!5 = metadata !{i32 458788, metadata !15, metadata !0, metadata !"double", i32 0, i64 64, i64 64, i64 0, i32 0, i32 4} ; [ DW_TAG_base_type ]
+!6 = metadata !{i32 458765, metadata !15, metadata !2, metadata !"y", i32 1, i64 64, i64 64, i64 64, i32 0, metadata !5} ; [ DW_TAG_member ]
+!7 = metadata !{i32 458765, metadata !15, metadata !2, metadata !"z", i32 1, i64 64, i64 64, i64 128, i32 0, metadata !5} ; [ DW_TAG_member ]
!8 = metadata !{i32 459008, metadata !9, metadata !"t", metadata !0, i32 5, metadata !2} ; [ DW_TAG_auto_variable ]
-!9 = metadata !{i32 458763, metadata !10} ; [ DW_TAG_lexical_block ]
-!10 = metadata !{i32 458798, i32 0, metadata !0, metadata !"foo", metadata !"foo", metadata !"foo", metadata !0, i32 4, metadata !11, i1 false, i1 true, i32 0, i32 0, null} ; [ DW_TAG_subprogram ]
-!11 = metadata !{i32 458773, metadata !0, metadata !"", metadata !0, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !12, i32 0, null} ; [ DW_TAG_subroutine_type ]
+!9 = metadata !{i32 458763, null, metadata !10, i32 0, i32 0, i32 0} ; [ DW_TAG_lexical_block ]
+!10 = metadata !{i32 458798, i32 0, metadata !0, metadata !"foo", metadata !"foo", metadata !"foo", i32 4, metadata !11, i1 false, i1 true, i32 0, i32 0, null, i32 0, i32 0, null, null, null, null, i32 0} ; [ DW_TAG_subprogram ]
+!11 = metadata !{i32 458773, metadata !15, metadata !0, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !12, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
!12 = metadata !{metadata !13}
-!13 = metadata !{i32 458788, metadata !0, metadata !"int", metadata !0, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
+!13 = metadata !{i32 458788, metadata !15, metadata !0, metadata !"int", i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
!14 = metadata !{%tart.reflect.ComplexType* @.type.SwitchStmtTest}
+!15 = metadata !{metadata !"sm.c", metadata !""}
+!16 = metadata !{i32 0}
diff --git a/test/CodeGen/X86/2010-02-19-TailCallRetAddrBug.ll b/test/CodeGen/X86/2010-02-19-TailCallRetAddrBug.ll
index d4a74c9e7e7a7..060c535dd778c 100644
--- a/test/CodeGen/X86/2010-02-19-TailCallRetAddrBug.ll
+++ b/test/CodeGen/X86/2010-02-19-TailCallRetAddrBug.ll
@@ -1,9 +1,9 @@
-; RUN: llc -mcpu=generic -mtriple=i386-apple-darwin -tailcallopt < %s | FileCheck %s
+; RUN: llc -mcpu=generic -mtriple=i386-apple-darwin -tailcallopt -enable-misched=false < %s | FileCheck %s
; Check that lowered argumens do not overwrite the return address before it is moved.
; Bug 6225
;
; If a call is a fastcc tail call and tail call optimization is enabled, the
-; caller frame is replaced by the callee frame. This can require that arguments are
+; caller frame is replaced by the callee frame. This can require that arguments are
; placed on the former return address stack slot. Special care needs to be taken
; taken that the return address is moved / or stored in a register before
; lowering of arguments potentially overwrites the value.
@@ -51,5 +51,3 @@ false:
tail call fastcc void @l298(i32 %r10, i32 %r9, i32 %r4) noreturn nounwind
ret void
}
-
-
diff --git a/test/CodeGen/X86/2010-02-23-DAGCombineBug.ll b/test/CodeGen/X86/2010-02-23-DAGCombineBug.ll
index 6a58e9e551828..a8c87fa2074ac 100644
--- a/test/CodeGen/X86/2010-02-23-DAGCombineBug.ll
+++ b/test/CodeGen/X86/2010-02-23-DAGCombineBug.ll
@@ -2,7 +2,7 @@
define i32* @t() nounwind optsize ssp {
entry:
-; CHECK: t:
+; CHECK-LABEL: t:
; CHECK: testl %eax, %eax
; CHECK: js
%cmp = icmp slt i32 undef, 0 ; <i1> [#uses=1]
diff --git a/test/CodeGen/X86/2010-04-08-CoalescerBug.ll b/test/CodeGen/X86/2010-04-08-CoalescerBug.ll
index 9a5958e62a0eb..5e86ecf42b113 100644
--- a/test/CodeGen/X86/2010-04-08-CoalescerBug.ll
+++ b/test/CodeGen/X86/2010-04-08-CoalescerBug.ll
@@ -11,7 +11,7 @@
define void @t(%struct.F* %this) nounwind {
entry:
-; CHECK: t:
+; CHECK-LABEL: t:
; CHECK: addq $12, %rsi
%BitValueArray = alloca [32 x i32], align 4
%tmp2 = getelementptr inbounds %struct.F* %this, i64 0, i32 0
diff --git a/test/CodeGen/X86/2010-05-25-DotDebugLoc.ll b/test/CodeGen/X86/2010-05-25-DotDebugLoc.ll
index 7650a5c3be88b..7faee993a7d1e 100644
--- a/test/CodeGen/X86/2010-05-25-DotDebugLoc.ll
+++ b/test/CodeGen/X86/2010-05-25-DotDebugLoc.ll
@@ -199,12 +199,13 @@ declare float @copysignf(float, float) nounwind readnone
declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
!llvm.dbg.cu = !{!3}
+!llvm.module.flags = !{!48}
!0 = metadata !{i32 786689, metadata !1, metadata !"a", metadata !2, i32 1921, metadata !9, i32 0, null} ; [ DW_TAG_arg_variable ]
-!1 = metadata !{i32 786478, metadata !2, metadata !"__divsc3", metadata !"__divsc3", metadata !"__divsc3", metadata !2, i32 1922, metadata !4, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 true, %0 (float, float, float, float)* @__divsc3, null, null, metadata !43, i32 1922} ; [ DW_TAG_subprogram ]
+!1 = metadata !{i32 786478, metadata !45, metadata !2, metadata !"__divsc3", metadata !"__divsc3", metadata !"__divsc3", i32 1922, metadata !4, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 true, %0 (float, float, float, float)* @__divsc3, null, null, metadata !43, i32 1922} ; [ DW_TAG_subprogram ]
!2 = metadata !{i32 786473, metadata !45} ; [ DW_TAG_file_type ]
-!3 = metadata !{i32 786449, i32 1, metadata !2, metadata !"4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", i1 true, metadata !"", i32 0, null, null, metadata !44, null, null, metadata !""} ; [ DW_TAG_compile_unit ]
-!4 = metadata !{i32 786453, metadata !45, metadata !2, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !5, i32 0, null} ; [ DW_TAG_subroutine_type ]
+!3 = metadata !{i32 786449, metadata !45, i32 1, metadata !"4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", i1 true, metadata !"", i32 0, metadata !47, metadata !47, metadata !44, null, null, metadata !""} ; [ DW_TAG_compile_unit ]
+!4 = metadata !{i32 786453, metadata !45, metadata !2, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !5, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
!5 = metadata !{metadata !6, metadata !9, metadata !9, metadata !9, metadata !9}
!6 = metadata !{i32 786454, metadata !46, metadata !7, metadata !"SCtype", i32 170, i64 0, i64 0, i64 0, i32 0, metadata !8} ; [ DW_TAG_typedef ]
!7 = metadata !{i32 786473, metadata !46} ; [ DW_TAG_file_type ]
@@ -215,7 +216,7 @@ declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
!12 = metadata !{i32 786689, metadata !1, metadata !"c", metadata !2, i32 1921, metadata !9, i32 0, null} ; [ DW_TAG_arg_variable ]
!13 = metadata !{i32 786689, metadata !1, metadata !"d", metadata !2, i32 1921, metadata !9, i32 0, null} ; [ DW_TAG_arg_variable ]
!14 = metadata !{i32 786688, metadata !15, metadata !"denom", metadata !2, i32 1923, metadata !9, i32 0, null} ; [ DW_TAG_auto_variable ]
-!15 = metadata !{i32 786443, metadata !2, metadata !1, i32 1922, i32 0} ; [ DW_TAG_lexical_block ]
+!15 = metadata !{i32 786443, metadata !45, metadata !1, i32 1922, i32 0, i32 0} ; [ DW_TAG_lexical_block ]
!16 = metadata !{i32 786688, metadata !15, metadata !"ratio", metadata !2, i32 1923, metadata !9, i32 0, null} ; [ DW_TAG_auto_variable ]
!17 = metadata !{i32 786688, metadata !15, metadata !"x", metadata !2, i32 1923, metadata !9, i32 0, null} ; [ DW_TAG_auto_variable ]
!18 = metadata !{i32 786688, metadata !15, metadata !"y", metadata !2, i32 1923, metadata !9, i32 0, null} ; [ DW_TAG_auto_variable ]
@@ -247,3 +248,5 @@ declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
!44 = metadata !{metadata !1}
!45 = metadata !{metadata !"libgcc2.c", metadata !"/Users/yash/clean/LG.D/gcc/../../llvmgcc/gcc"}
!46 = metadata !{metadata !"libgcc2.h", metadata !"/Users/yash/clean/LG.D/gcc/../../llvmgcc/gcc"}
+!47 = metadata !{i32 0}
+!48 = metadata !{i32 1, metadata !"Debug Info Version", i32 1}
diff --git a/test/CodeGen/X86/2010-05-26-DotDebugLoc.ll b/test/CodeGen/X86/2010-05-26-DotDebugLoc.ll
index 6510ff17f7bb7..c5736eb9b4495 100644
--- a/test/CodeGen/X86/2010-05-26-DotDebugLoc.ll
+++ b/test/CodeGen/X86/2010-05-26-DotDebugLoc.ll
@@ -22,32 +22,33 @@ declare void @foo(i32) nounwind optsize noinline ssp
declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
!llvm.dbg.cu = !{!2}
+!llvm.module.flags = !{!38}
-!0 = metadata !{i32 786484, i32 0, metadata !1, metadata !"ret", metadata !"ret", metadata !"", metadata !1, i32 7, metadata !3, i1 false, i1 true, null} ; [ DW_TAG_variable ]
+!0 = metadata !{i32 786484, i32 0, metadata !1, metadata !"ret", metadata !"ret", metadata !"", metadata !1, i32 7, metadata !3, i1 false, i1 true, null, null} ; [ DW_TAG_variable ]
!1 = metadata !{i32 786473, metadata !36} ; [ DW_TAG_file_type ]
-!2 = metadata !{i32 786449, metadata !36, i32 1, metadata !"4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", i1 true, metadata !"", i32 0, null, null, metadata !32, metadata !31, metadata !31, metadata !""} ; [ DW_TAG_compile_unit ]
-!3 = metadata !{i32 786468, metadata !1, metadata !"int", metadata !1, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
+!2 = metadata !{i32 786449, metadata !36, i32 1, metadata !"4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", i1 true, metadata !"", i32 0, metadata !37, metadata !37, metadata !32, metadata !31, metadata !31, metadata !""} ; [ DW_TAG_compile_unit ]
+!3 = metadata !{i32 786468, metadata !36, metadata !1, metadata !"int", i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
!4 = metadata !{i32 786689, metadata !5, metadata !"x", metadata !1, i32 12, metadata !3, i32 0, null} ; [ DW_TAG_arg_variable ]
-!5 = metadata !{i32 786478, metadata !1, metadata !"foo", metadata !"foo", metadata !"foo", metadata !1, i32 13, metadata !6, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 true, void (i32)* @foo, null, null, metadata !33, i32 13} ; [ DW_TAG_subprogram ]
-!6 = metadata !{i32 786453, metadata !1, metadata !"", metadata !1, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !7, i32 0, null} ; [ DW_TAG_subroutine_type ]
+!5 = metadata !{i32 786478, metadata !36, metadata !1, metadata !"foo", metadata !"foo", metadata !"foo", i32 13, metadata !6, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 true, void (i32)* @foo, null, null, metadata !33, i32 13} ; [ DW_TAG_subprogram ]
+!6 = metadata !{i32 786453, metadata !36, metadata !1, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !7, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
!7 = metadata !{null, metadata !3}
!8 = metadata !{i32 786689, metadata !9, metadata !"myvar", metadata !1, i32 17, metadata !13, i32 0, null} ; [ DW_TAG_arg_variable ]
-!9 = metadata !{i32 786478, metadata !1, metadata !"bar", metadata !"bar", metadata !"bar", metadata !1, i32 17, metadata !10, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 true, i8* (%struct.a*)* @bar, null, null, metadata !34, i32 17} ; [ DW_TAG_subprogram ]
-!10 = metadata !{i32 786453, metadata !1, metadata !"", metadata !1, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !11, i32 0, null} ; [ DW_TAG_subroutine_type ]
+!9 = metadata !{i32 786478, metadata !36, metadata !1, metadata !"bar", metadata !"bar", metadata !"bar", i32 17, metadata !10, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 true, i8* (%struct.a*)* @bar, null, null, metadata !34, i32 17} ; [ DW_TAG_subprogram ]
+!10 = metadata !{i32 786453, metadata !36, metadata !1, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !11, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
!11 = metadata !{metadata !12, metadata !13}
-!12 = metadata !{i32 786447, metadata !1, metadata !"", metadata !1, i32 0, i64 64, i64 64, i64 0, i32 0, null} ; [ DW_TAG_pointer_type ]
-!13 = metadata !{i32 786447, metadata !1, metadata !"", metadata !1, i32 0, i64 64, i64 64, i64 0, i32 0, metadata !14} ; [ DW_TAG_pointer_type ]
-!14 = metadata !{i32 786451, metadata !1, metadata !"a", metadata !1, i32 2, i64 128, i64 64, i64 0, i32 0, null, metadata !15, i32 0, null} ; [ DW_TAG_structure_type ]
+!12 = metadata !{i32 786447, metadata !36, metadata !1, metadata !"", i32 0, i64 64, i64 64, i64 0, i32 0, null} ; [ DW_TAG_pointer_type ]
+!13 = metadata !{i32 786447, metadata !36, metadata !1, metadata !"", i32 0, i64 64, i64 64, i64 0, i32 0, metadata !14} ; [ DW_TAG_pointer_type ]
+!14 = metadata !{i32 786451, metadata !36, metadata !1, metadata !"a", i32 2, i64 128, i64 64, i64 0, i32 0, null, metadata !15, i32 0, null, null, null} ; [ DW_TAG_structure_type ] [a] [line 2, size 128, align 64, offset 0] [def] [from ]
!15 = metadata !{metadata !16, metadata !17}
-!16 = metadata !{i32 786445, metadata !14, metadata !"c", metadata !1, i32 3, i64 32, i64 32, i64 0, i32 0, metadata !3} ; [ DW_TAG_member ]
-!17 = metadata !{i32 786445, metadata !14, metadata !"d", metadata !1, i32 4, i64 64, i64 64, i64 64, i32 0, metadata !13} ; [ DW_TAG_member ]
+!16 = metadata !{i32 786445, metadata !36, metadata !14, metadata !"c", i32 3, i64 32, i64 32, i64 0, i32 0, metadata !3} ; [ DW_TAG_member ]
+!17 = metadata !{i32 786445, metadata !36, metadata !14, metadata !"d", i32 4, i64 64, i64 64, i64 64, i32 0, metadata !13} ; [ DW_TAG_member ]
!18 = metadata !{i32 786689, metadata !19, metadata !"argc", metadata !1, i32 22, metadata !3, i32 0, null} ; [ DW_TAG_arg_variable ]
-!19 = metadata !{i32 786478, metadata !1, metadata !"main", metadata !"main", metadata !"main", metadata !1, i32 22, metadata !20, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 true, null, null, null, metadata !35, i32 22} ; [ DW_TAG_subprogram ]
-!20 = metadata !{i32 786453, metadata !1, metadata !"", metadata !1, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !21, i32 0, null} ; [ DW_TAG_subroutine_type ]
+!19 = metadata !{i32 786478, metadata !36, metadata !1, metadata !"main", metadata !"main", metadata !"main", i32 22, metadata !20, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 true, null, null, null, metadata !35, i32 22} ; [ DW_TAG_subprogram ]
+!20 = metadata !{i32 786453, metadata !36, metadata !1, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !21, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
!21 = metadata !{metadata !3, metadata !3, metadata !22}
-!22 = metadata !{i32 786447, metadata !1, metadata !"", metadata !1, i32 0, i64 64, i64 64, i64 0, i32 0, metadata !23} ; [ DW_TAG_pointer_type ]
-!23 = metadata !{i32 786447, metadata !1, metadata !"", metadata !1, i32 0, i64 64, i64 64, i64 0, i32 0, metadata !24} ; [ DW_TAG_pointer_type ]
-!24 = metadata !{i32 786468, metadata !1, metadata !"char", metadata !1, i32 0, i64 8, i64 8, i64 0, i32 0, i32 6} ; [ DW_TAG_base_type ]
+!22 = metadata !{i32 786447, metadata !36, metadata !1, metadata !"", i32 0, i64 64, i64 64, i64 0, i32 0, metadata !23} ; [ DW_TAG_pointer_type ]
+!23 = metadata !{i32 786447, metadata !36, metadata !1, metadata !"", i32 0, i64 64, i64 64, i64 0, i32 0, metadata !24} ; [ DW_TAG_pointer_type ]
+!24 = metadata !{i32 786468, metadata !36, metadata !1, metadata !"char", i32 0, i64 8, i64 8, i64 0, i32 0, i32 6} ; [ DW_TAG_base_type ]
!25 = metadata !{i32 786689, metadata !19, metadata !"argv", metadata !1, i32 22, metadata !22, i32 0, null} ; [ DW_TAG_arg_variable ]
!26 = metadata !{i32 786688, metadata !27, metadata !"e", metadata !1, i32 23, metadata !14, i32 0, null} ; [ DW_TAG_auto_variable ]
!27 = metadata !{i32 786443, metadata !36, metadata !19, i32 22, i32 0, i32 0} ; [ DW_TAG_lexical_block ]
@@ -60,6 +61,7 @@ declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
!34 = metadata !{metadata !8}
!35 = metadata !{metadata !18, metadata !25, metadata !26}
!36 = metadata !{metadata !"foo.c", metadata !"/tmp/"}
+!37 = metadata !{i32 0}
; The variable bar:myvar changes registers after the first movq.
; It is cobbered by popq %rbx
@@ -85,3 +87,4 @@ declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
; CHECK-NEXT: Ltmp{{.*}}:
; CHECK-NEXT: .byte 83
; CHECK-NEXT: Ltmp{{.*}}:
+!38 = metadata !{i32 1, metadata !"Debug Info Version", i32 1}
diff --git a/test/CodeGen/X86/2010-05-28-Crash.ll b/test/CodeGen/X86/2010-05-28-Crash.ll
index ee00dbacbf602..1114c8dc87bbc 100644
--- a/test/CodeGen/X86/2010-05-28-Crash.ll
+++ b/test/CodeGen/X86/2010-05-28-Crash.ll
@@ -1,5 +1,5 @@
-; RUN: llc -mtriple=x86_64-apple-darwin < %s | FileCheck %s
-; RUN: llc -mtriple=x86_64-apple-darwin -regalloc=basic < %s | FileCheck %s
+; RUN: llc -mtriple=x86_64-apple-darwin < %s | FileCheck %s
+; RUN: llc -mtriple=x86_64-apple-darwin -regalloc=basic < %s | FileCheck %s
; Test to check separate label for inlined function argument.
define i32 @foo(i32 %y) nounwind optsize ssp {
@@ -23,27 +23,30 @@ entry:
}
!llvm.dbg.cu = !{!3}
+!llvm.module.flags = !{!20}
!0 = metadata !{i32 786689, metadata !1, metadata !"y", metadata !2, i32 2, metadata !6, i32 0, null} ; [ DW_TAG_arg_variable ]
-!1 = metadata !{i32 786478, metadata !2, metadata !"foo", metadata !"foo", metadata !"foo", metadata !2, i32 2, metadata !4, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 true, i32 (i32)* @foo, null, null, metadata !15, i32 2} ; [ DW_TAG_subprogram ]
+!1 = metadata !{i32 786478, metadata !18, metadata !2, metadata !"foo", metadata !"foo", metadata !"foo", i32 2, metadata !4, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 true, i32 (i32)* @foo, null, null, metadata !15, i32 2} ; [ DW_TAG_subprogram ]
!2 = metadata !{i32 786473, metadata !18} ; [ DW_TAG_file_type ]
-!3 = metadata !{i32 786449, i32 1, metadata !2, metadata !"4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", i1 true, metadata !"", i32 0, null, null, metadata !17, null, null, metadata !""} ; [ DW_TAG_compile_unit ]
-!4 = metadata !{i32 786453, metadata !2, metadata !"", metadata !2, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !5, i32 0, null} ; [ DW_TAG_subroutine_type ]
+!3 = metadata !{i32 786449, metadata !18, i32 1, metadata !"4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", i1 true, metadata !"", i32 0, metadata !19, metadata !19, metadata !17, null, null, metadata !""} ; [ DW_TAG_compile_unit ]
+!4 = metadata !{i32 786453, metadata !18, metadata !2, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !5, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
!5 = metadata !{metadata !6, metadata !6}
-!6 = metadata !{i32 786468, metadata !2, metadata !"int", metadata !2, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
+!6 = metadata !{i32 786468, metadata !18, metadata !2, metadata !"int", i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
!7 = metadata !{i32 786689, metadata !8, metadata !"x", metadata !2, i32 6, metadata !6, i32 0, null} ; [ DW_TAG_arg_variable ]
-!8 = metadata !{i32 786478, metadata !2, metadata !"bar", metadata !"bar", metadata !"bar", metadata !2, i32 6, metadata !4, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 true, i32 (i32)* @bar, null, null, metadata !16, i32 6} ; [ DW_TAG_subprogram ]
+!8 = metadata !{i32 786478, metadata !18, metadata !2, metadata !"bar", metadata !"bar", metadata !"bar", i32 6, metadata !4, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 true, i32 (i32)* @bar, null, null, metadata !16, i32 6} ; [ DW_TAG_subprogram ]
!9 = metadata !{i32 3, i32 0, metadata !10, null}
-!10 = metadata !{i32 786443, metadata !2, metadata !1, i32 2, i32 0} ; [ DW_TAG_lexical_block ]
+!10 = metadata !{i32 786443, metadata !18, metadata !1, i32 2, i32 0, i32 0} ; [ DW_TAG_lexical_block ]
!11 = metadata !{i32 1}
!12 = metadata !{i32 3, i32 0, metadata !10, metadata !13}
!13 = metadata !{i32 7, i32 0, metadata !14, null}
-!14 = metadata !{i32 786443, metadata !2, metadata !8, i32 6, i32 0} ; [ DW_TAG_lexical_block ]
+!14 = metadata !{i32 786443, metadata !18, metadata !8, i32 6, i32 0, i32 0} ; [ DW_TAG_lexical_block ]
!15 = metadata !{metadata !0}
!16 = metadata !{metadata !7}
!17 = metadata !{metadata !1, metadata !8}
!18 = metadata !{metadata !"f.c", metadata !"/tmp"}
+!19 = metadata !{i32 0}
;CHECK: DEBUG_VALUE: bar:x <- E
;CHECK: Ltmp
-;CHECK: DEBUG_VALUE: foo:y <- 1+0
+;CHECK: DEBUG_VALUE: foo:y <- 1{{$}}
+!20 = metadata !{i32 1, metadata !"Debug Info Version", i32 1}
diff --git a/test/CodeGen/X86/2010-06-01-DeadArg-DbgInfo.ll b/test/CodeGen/X86/2010-06-01-DeadArg-DbgInfo.ll
index b764b0b345977..b45ac226a6502 100644
--- a/test/CodeGen/X86/2010-06-01-DeadArg-DbgInfo.ll
+++ b/test/CodeGen/X86/2010-06-01-DeadArg-DbgInfo.ll
@@ -8,7 +8,7 @@ target triple = "x86_64-apple-darwin10.2"
@llvm.used = appending global [1 x i8*] [i8* bitcast (i32 (%struct.foo*, i32)* @_ZN3foo3bazEi to i8*)], section "llvm.metadata" ; <[1 x i8*]*> [#uses=0]
define i32 @_ZN3foo3bazEi(%struct.foo* nocapture %this, i32 %x) nounwind readnone optsize noinline ssp align 2 {
-;CHECK: DEBUG_VALUE: baz:this <- RDI+0
+;CHECK: DEBUG_VALUE: baz:this <- RDI{{$}}
entry:
tail call void @llvm.dbg.value(metadata !{%struct.foo* %this}, i64 0, metadata !15)
tail call void @llvm.dbg.value(metadata !{i32 %x}, i64 0, metadata !16)
@@ -19,37 +19,42 @@ entry:
declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
+!llvm.dbg.cu = !{!4}
+!llvm.module.flags = !{!34}
!llvm.dbg.lv = !{!0, !14, !15, !16, !17, !24, !25, !28}
!0 = metadata !{i32 786689, metadata !1, metadata !"this", metadata !3, i32 11, metadata !12, i32 0, null} ; [ DW_TAG_arg_variable ]
-!1 = metadata !{i32 786478, metadata !3, metadata !2, metadata !"bar", metadata !"bar", metadata !"_ZN3foo3barEi", i32 11, metadata !9, i1 false, i1 true, i32 0, i32 0, null, i32 0, i1 true, i32 (%struct.foo*, i32)* @_ZN3foo3bazEi, null, null, null, i32 11} ; [ DW_TAG_subprogram ]
-!2 = metadata !{i32 786451, metadata !3, metadata !"foo", metadata !3, i32 3, i64 32, i64 32, i64 0, i32 0, null, metadata !5, i32 0, null} ; [ DW_TAG_structure_type ]
+!1 = metadata !{i32 786478, metadata !31, metadata !2, metadata !"bar", metadata !"bar", metadata !"_ZN3foo3barEi", i32 11, metadata !9, i1 false, i1 true, i32 0, i32 0, null, i32 0, i1 true, i32 (%struct.foo*, i32)* @_ZN3foo3bazEi, null, null, null, i32 11} ; [ DW_TAG_subprogram ]
+!2 = metadata !{i32 786451, metadata !31, metadata !3, metadata !"foo", i32 3, i64 32, i64 32, i64 0, i32 0, null, metadata !5, i32 0, null, null, null} ; [ DW_TAG_structure_type ] [foo] [line 3, size 32, align 32, offset 0] [def] [from ]
!3 = metadata !{i32 786473, metadata !31} ; [ DW_TAG_file_type ]
-!4 = metadata !{i32 786449, i32 0, i32 4, metadata !"foo.cp", metadata !"/tmp/", metadata !"4.2.1 LLVM build", i1 true, i1 true, metadata !"", i32 0} ; [ DW_TAG_compile_unit ]
+!4 = metadata !{i32 786449, metadata !31, i32 4, metadata !"4.2.1 LLVM build", i1 true, metadata !"", i32 0, metadata !32, metadata !32, metadata !33, null, null, metadata !""} ; [ DW_TAG_compile_unit ]
!5 = metadata !{metadata !6, metadata !1, metadata !8}
-!6 = metadata !{i32 786445, metadata !2, metadata !"y", metadata !3, i32 8, i64 32, i64 32, i64 0, i32 0, metadata !7} ; [ DW_TAG_member ]
-!7 = metadata !{i32 786468, metadata !3, metadata !"int", metadata !3, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
-!8 = metadata !{i32 786478, metadata !3, metadata !2, metadata !"baz", metadata !"baz", metadata !"_ZN3foo3bazEi", i32 15, metadata !9, i1 false, i1 true, i32 0, i32 0, null, i32 0, i1 true, i32 (%struct.foo*, i32)* @_ZN3foo3bazEi, null, null, null, i32 15} ; [ DW_TAG_subprogram ]
-!9 = metadata !{i32 786453, metadata !3, metadata !"", metadata !3, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !10, i32 0, null} ; [ DW_TAG_subroutine_type ]
+!6 = metadata !{i32 786445, metadata !31, metadata !2, metadata !"y", i32 8, i64 32, i64 32, i64 0, i32 0, metadata !7} ; [ DW_TAG_member ]
+!7 = metadata !{i32 786468, metadata !31, metadata !3, metadata !"int", i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
+!8 = metadata !{i32 786478, metadata !31, metadata !2, metadata !"baz", metadata !"baz", metadata !"_ZN3foo3bazEi", i32 15, metadata !9, i1 false, i1 true, i32 0, i32 0, null, i32 0, i1 true, i32 (%struct.foo*, i32)* @_ZN3foo3bazEi, null, null, null, i32 15} ; [ DW_TAG_subprogram ]
+!9 = metadata !{i32 786453, metadata !31, metadata !3, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !10, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
!10 = metadata !{metadata !7, metadata !11, metadata !7}
-!11 = metadata !{i32 786447, metadata !3, metadata !"", metadata !3, i32 0, i64 64, i64 64, i64 0, i32 64, metadata !2} ; [ DW_TAG_pointer_type ]
-!12 = metadata !{i32 786470, metadata !3, metadata !"", metadata !3, i32 0, i64 64, i64 64, i64 0, i32 64, metadata !13} ; [ DW_TAG_const_type ]
-!13 = metadata !{i32 786447, metadata !3, metadata !"", metadata !3, i32 0, i64 64, i64 64, i64 0, i32 0, metadata !2} ; [ DW_TAG_pointer_type ]
+!11 = metadata !{i32 786447, metadata !31, metadata !3, metadata !"", i32 0, i64 64, i64 64, i64 0, i32 64, metadata !2} ; [ DW_TAG_pointer_type ]
+!12 = metadata !{i32 786470, metadata !31, metadata !3, metadata !"", i32 0, i64 64, i64 64, i64 0, i32 64, metadata !13} ; [ DW_TAG_const_type ]
+!13 = metadata !{i32 786447, metadata !31, metadata !3, metadata !"", i32 0, i64 64, i64 64, i64 0, i32 0, metadata !2} ; [ DW_TAG_pointer_type ]
!14 = metadata !{i32 786689, metadata !1, metadata !"x", metadata !3, i32 11, metadata !7, i32 0, null} ; [ DW_TAG_arg_variable ]
!15 = metadata !{i32 786689, metadata !8, metadata !"this", metadata !3, i32 15, metadata !12, i32 0, null} ; [ DW_TAG_arg_variable ]
!16 = metadata !{i32 786689, metadata !8, metadata !"x", metadata !3, i32 15, metadata !7, i32 0, null} ; [ DW_TAG_arg_variable ]
!17 = metadata !{i32 786689, metadata !18, metadata !"argc", metadata !3, i32 19, metadata !7, i32 0, null} ; [ DW_TAG_arg_variable ]
-!18 = metadata !{i32 786478, metadata !3, metadata !3, metadata !"main", metadata !"main", metadata !"main", i32 19, metadata !19, i1 false, i1 true, i32 0, i32 0, null, i32 0, i1 true, null, null, null, null, i32 19} ; [ DW_TAG_subprogram ]
-!19 = metadata !{i32 786453, metadata !3, metadata !"", metadata !3, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !20, i32 0, null} ; [ DW_TAG_subroutine_type ]
+!18 = metadata !{i32 786478, metadata !31, metadata !3, metadata !"main", metadata !"main", metadata !"main", i32 19, metadata !19, i1 false, i1 true, i32 0, i32 0, null, i32 0, i1 true, null, null, null, null, i32 19} ; [ DW_TAG_subprogram ]
+!19 = metadata !{i32 786453, metadata !31, metadata !3, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !20, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
!20 = metadata !{metadata !7, metadata !7, metadata !21}
-!21 = metadata !{i32 786447, metadata !3, metadata !"", metadata !3, i32 0, i64 64, i64 64, i64 0, i32 0, metadata !22} ; [ DW_TAG_pointer_type ]
-!22 = metadata !{i32 786447, metadata !3, metadata !"", metadata !3, i32 0, i64 64, i64 64, i64 0, i32 0, metadata !23} ; [ DW_TAG_pointer_type ]
-!23 = metadata !{i32 786468, metadata !3, metadata !"char", metadata !3, i32 0, i64 8, i64 8, i64 0, i32 0, i32 6} ; [ DW_TAG_base_type ]
+!21 = metadata !{i32 786447, metadata !31, metadata !3, metadata !"", i32 0, i64 64, i64 64, i64 0, i32 0, metadata !22} ; [ DW_TAG_pointer_type ]
+!22 = metadata !{i32 786447, metadata !31, metadata !3, metadata !"", i32 0, i64 64, i64 64, i64 0, i32 0, metadata !23} ; [ DW_TAG_pointer_type ]
+!23 = metadata !{i32 786468, metadata !31, metadata !3, metadata !"char", i32 0, i64 8, i64 8, i64 0, i32 0, i32 6} ; [ DW_TAG_base_type ]
!24 = metadata !{i32 786689, metadata !18, metadata !"argv", metadata !3, i32 19, metadata !21, i32 0, null} ; [ DW_TAG_arg_variable ]
!25 = metadata !{i32 786688, metadata !26, metadata !"a", metadata !3, i32 20, metadata !2, i32 0, null} ; [ DW_TAG_auto_variable ]
-!26 = metadata !{i32 786443, metadata !27, i32 19, i32 0} ; [ DW_TAG_lexical_block ]
-!27 = metadata !{i32 786443, metadata !18, i32 19, i32 0} ; [ DW_TAG_lexical_block ]
+!26 = metadata !{i32 786443, metadata !31, metadata !27, i32 19, i32 0, i32 0} ; [ DW_TAG_lexical_block ]
+!27 = metadata !{i32 786443, metadata !31, metadata !18, i32 19, i32 0, i32 0} ; [ DW_TAG_lexical_block ]
!28 = metadata !{i32 786688, metadata !26, metadata !"b", metadata !3, i32 21, metadata !7, i32 0, null} ; [ DW_TAG_auto_variable ]
!29 = metadata !{i32 16, i32 0, metadata !30, null}
-!30 = metadata !{i32 786443, metadata !8, i32 15, i32 0} ; [ DW_TAG_lexical_block ]
+!30 = metadata !{i32 786443, metadata !31, metadata !8, i32 15, i32 0, i32 0} ; [ DW_TAG_lexical_block ]
!31 = metadata !{metadata !"foo.cp", metadata !"/tmp/"}
+!32 = metadata !{i32 0}
+!33 = metadata !{metadata !1, metadata !8, metadata !18}
+!34 = metadata !{i32 1, metadata !"Debug Info Version", i32 1}
diff --git a/test/CodeGen/X86/2010-07-06-DbgCrash.ll b/test/CodeGen/X86/2010-07-06-DbgCrash.ll
index 208e93e098e6e..b49aec3af87a9 100644
--- a/test/CodeGen/X86/2010-07-06-DbgCrash.ll
+++ b/test/CodeGen/X86/2010-07-06-DbgCrash.ll
@@ -3,21 +3,23 @@
@.str = private constant [4 x i8] c"one\00", align 1 ; <[4 x i8]*> [#uses=1]
@.str1 = private constant [4 x i8] c"two\00", align 1 ; <[5 x i8]*> [#uses=1]
@C.9.2167 = internal constant [2 x i8*] [i8* getelementptr inbounds ([4 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8]* @.str1, i64 0, i64 0)]
-!38 = metadata !{i32 524329, metadata !"pbmsrch.c", metadata !"/Users/grawp/LLVM/test-suite/MultiSource/Benchmarks/MiBench/office-stringsearch", metadata !39} ; [ DW_TAG_file_type ]
-!39 = metadata !{i32 524305, i32 0, i32 1, metadata !"pbmsrch.c", metadata !"/Users/grawp/LLVM/test-suite/MultiSource/Benchmarks/MiBench/office-stringsearch", metadata !"4.2.1 (Based on Apple Inc. build 5658) (LLVM build 9999)", i1 true, i1 false, metadata !"", i32 0} ; [ DW_TAG_compile_unit ]
-!46 = metadata !{i32 524303, metadata !38, metadata !"", metadata !38, i32 0, i64 64, i64 64, i64 0, i32 0, metadata !47} ; [ DW_TAG_pointer_type ]!97 = metadata !{i32 524334, i32 0, metadata !38, metadata !"main", metadata !"main", metadata !"main", metadata !38, i32 73, metadata !98, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 false, null} ; [ DW_TAG_subprogram ]!101 = metadata !{[2 x i8*]* @C.9.2167}
-!47 = metadata !{i32 524324, metadata !38, metadata !"char", metadata !38, i32 0, i64 8, i64 8, i64 0, i32 0, i32 6} ; [ DW_TAG_base_type ]
-!97 = metadata !{i32 524334, i32 0, metadata !38, metadata !"main", metadata !"main", metadata !"main", metadata !38, i32 73, metadata !98, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 false, null} ; [ DW_TAG_subprogram ]
-!98 = metadata !{i32 524309, metadata !38, metadata !"", metadata !38, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !99, i32 0, null} ; [ DW_TAG_subroutine_type ]
+!38 = metadata !{i32 524329, metadata !109} ; [ DW_TAG_file_type ]
+!39 = metadata !{i32 524305, metadata !109, i32 1, metadata !"4.2.1 (Based on Apple Inc. build 5658) (LLVM build 9999)", i1 true, metadata !"", i32 0, metadata !108, metadata !108, null, null, null, metadata !""} ; [ DW_TAG_compile_unit ]
+!46 = metadata !{i32 524303, metadata !109, null, metadata !"", i32 0, i64 64, i64 64, i64 0, i32 0, metadata !47} ; [ DW_TAG_pointer_type ]
+!47 = metadata !{i32 524324, metadata !109, null, metadata !"char", i32 0, i64 8, i64 8, i64 0, i32 0, i32 6} ; [ DW_TAG_base_type ]
+!97 = metadata !{i32 524334, i32 0, metadata !39, metadata !"main", metadata !"main", metadata !"main", i32 73, metadata !98, i1 false, i1 true, i32 0, i32 0, null, i32 0, i32 0, null, null, null, null, i32 0} ; [ DW_TAG_subprogram ]
+!98 = metadata !{i32 524309, metadata !109, null, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !99, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
!99 = metadata !{metadata !100}
-!100 = metadata !{i32 524324, metadata !38, metadata !"int", metadata !38, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
+!100 = metadata !{i32 524324, metadata !109, null, metadata !"int", i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
!101 = metadata !{[2 x i8*]* @C.9.2167}
-!102 = metadata !{i32 524544, metadata !103, metadata !"find_strings", metadata !38, i32 75, metadata !104} ; [ DW_TAG_auto_variable ]
-!103 = metadata !{i32 524299, metadata !97, i32 73, i32 0} ; [ DW_TAG_lexical_block ]
-!104 = metadata !{i32 524289, metadata !38, metadata !"", metadata !38, i32 0, i64 85312, i64 64, i64 0, i32 0, metadata !46, metadata !105, i32 0, null} ; [ DW_TAG_array_type ]
+!102 = metadata !{i32 524544, metadata !103, metadata !"find_strings", metadata !38, i32 75, metadata !104, i32 0, i32 0} ; [ DW_TAG_auto_variable ]
+!103 = metadata !{i32 524299, null, metadata !97, i32 73, i32 0, i32 0} ; [ DW_TAG_lexical_block ]
+!104 = metadata !{i32 524289, metadata !109, null, metadata !"", i32 0, i64 85312, i64 64, i64 0, i32 0, metadata !46, metadata !105, i32 0, null, null, null} ; [ DW_TAG_array_type ] [line 0, size 85312, align 64, offset 0] [from ]
!105 = metadata !{metadata !106}
!106 = metadata !{i32 524321, i64 0, i64 1333} ; [ DW_TAG_subrange_type ]
!107 = metadata !{i32 73, i32 0, metadata !103, null}
+!108 = metadata !{i32 0}
+!109 = metadata !{metadata !"pbmsrch.c", metadata !"/Users/grawp/LLVM/test-suite/MultiSource/Benchmarks/MiBench/office-stringsearch"}
define i32 @main() nounwind ssp {
bb.nph:
diff --git a/test/CodeGen/X86/2010-07-29-SetccSimplify.ll b/test/CodeGen/X86/2010-07-29-SetccSimplify.ll
index 96016cfe1c730..47e511f920988 100644
--- a/test/CodeGen/X86/2010-07-29-SetccSimplify.ll
+++ b/test/CodeGen/X86/2010-07-29-SetccSimplify.ll
@@ -9,6 +9,6 @@ entry:
ret i32 %3
}
-; CHECK: extend2bit_v2:
+; CHECK-LABEL: extend2bit_v2:
; CHECK: xorl %eax, %eax
; CHECK-NEXT: ret
diff --git a/test/CodeGen/X86/2010-08-04-StackVariable.ll b/test/CodeGen/X86/2010-08-04-StackVariable.ll
index 91711bb758c37..91fec3beefcb8 100644
--- a/test/CodeGen/X86/2010-08-04-StackVariable.ll
+++ b/test/CodeGen/X86/2010-08-04-StackVariable.ll
@@ -75,51 +75,55 @@ return: ; preds = %entry
declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
!llvm.dbg.cu = !{!3}
+!llvm.module.flags = !{!49}
!46 = metadata !{metadata !0, metadata !9, metadata !16, metadata !17, metadata !20}
-!0 = metadata !{i32 786478, metadata !1, metadata !"SVal", metadata !"SVal", metadata !"", metadata !2, i32 11, metadata !14, i1 false, i1 false, i32 0, i32 0, null, i1 false, i1 false, null, null, null, null, i32 11} ; [ DW_TAG_subprogram ]
-!1 = metadata !{i32 786451, metadata !2, metadata !"SVal", metadata !2, i32 1, i64 128, i64 64, i64 0, i32 0, null, metadata !4, i32 0, null} ; [ DW_TAG_structure_type ]
-!2 = metadata !{i32 786473, metadata !"small.cc", metadata !"/Users/manav/R8248330", metadata !3} ; [ DW_TAG_file_type ]
-!3 = metadata !{i32 786449, i32 4, metadata !2, metadata !"4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", i1 false, metadata !"", i32 0, null, null, metadata !46, null, null, metadata !""} ; [ DW_TAG_compile_unit ]
+!0 = metadata !{i32 786478, metadata !47, metadata !1, metadata !"SVal", metadata !"SVal", metadata !"", i32 11, metadata !14, i1 false, i1 false, i32 0, i32 0, null, i1 false, i1 false, null, null, null, null, i32 11} ; [ DW_TAG_subprogram ]
+!1 = metadata !{i32 786451, metadata !47, metadata !2, metadata !"SVal", i32 1, i64 128, i64 64, i64 0, i32 0, null, metadata !4, i32 0, null, null, null} ; [ DW_TAG_structure_type ] [SVal] [line 1, size 128, align 64, offset 0] [def] [from ]
+!2 = metadata !{i32 786473, metadata !47} ; [ DW_TAG_file_type ]
+!3 = metadata !{i32 786449, metadata !47, i32 4, metadata !"4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", i1 false, metadata !"", i32 0, metadata !48, metadata !48, metadata !46, null, null, metadata !""} ; [ DW_TAG_compile_unit ]
!4 = metadata !{metadata !5, metadata !7, metadata !0, metadata !9}
-!5 = metadata !{i32 786445, metadata !1, metadata !"Data", metadata !2, i32 7, i64 64, i64 64, i64 0, i32 0, metadata !6} ; [ DW_TAG_member ]
-!6 = metadata !{i32 786447, metadata !2, metadata !"", metadata !2, i32 0, i64 64, i64 64, i64 0, i32 0, null} ; [ DW_TAG_pointer_type ]
-!7 = metadata !{i32 786445, metadata !1, metadata !"Kind", metadata !2, i32 8, i64 32, i64 32, i64 64, i32 0, metadata !8} ; [ DW_TAG_member ]
-!8 = metadata !{i32 786468, metadata !2, metadata !"unsigned int", metadata !2, i32 0, i64 32, i64 32, i64 0, i32 0, i32 7} ; [ DW_TAG_base_type ]
-!9 = metadata !{i32 786478, metadata !1, metadata !"~SVal", metadata !"~SVal", metadata !"", metadata !2, i32 12, metadata !10, i1 false, i1 false, i32 0, i32 0, null, i1 false, i1 false, null, null, null, null, i32 12} ; [ DW_TAG_subprogram ]
-!10 = metadata !{i32 786453, metadata !2, metadata !"", metadata !2, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !11, i32 0, null} ; [ DW_TAG_subroutine_type ]
+!5 = metadata !{i32 786445, metadata !47, metadata !1, metadata !"Data", i32 7, i64 64, i64 64, i64 0, i32 0, metadata !6} ; [ DW_TAG_member ]
+!6 = metadata !{i32 786447, metadata !47, metadata !2, metadata !"", i32 0, i64 64, i64 64, i64 0, i32 0, null} ; [ DW_TAG_pointer_type ]
+!7 = metadata !{i32 786445, metadata !47, metadata !1, metadata !"Kind", i32 8, i64 32, i64 32, i64 64, i32 0, metadata !8} ; [ DW_TAG_member ]
+!8 = metadata !{i32 786468, metadata !47, metadata !2, metadata !"unsigned int", i32 0, i64 32, i64 32, i64 0, i32 0, i32 7} ; [ DW_TAG_base_type ]
+!9 = metadata !{i32 786478, metadata !47, metadata !1, metadata !"~SVal", metadata !"~SVal", metadata !"", i32 12, metadata !10, i1 false, i1 false, i32 0, i32 0, null, i1 false, i1 false, null, null, null, null, i32 12} ; [ DW_TAG_subprogram ]
+!10 = metadata !{i32 786453, metadata !47, metadata !2, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !11, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
!11 = metadata !{null, metadata !12, metadata !13}
-!12 = metadata !{i32 786447, metadata !2, metadata !"", metadata !2, i32 0, i64 64, i64 64, i64 0, i32 64, metadata !1} ; [ DW_TAG_pointer_type ]
-!13 = metadata !{i32 786468, metadata !2, metadata !"int", metadata !2, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
-!14 = metadata !{i32 786453, metadata !2, metadata !"", metadata !2, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !15, i32 0, null} ; [ DW_TAG_subroutine_type ]
+!12 = metadata !{i32 786447, metadata !47, metadata !2, metadata !"", i32 0, i64 64, i64 64, i64 0, i32 64, metadata !1} ; [ DW_TAG_pointer_type ]
+!13 = metadata !{i32 786468, metadata !47, metadata !2, metadata !"int", i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
+!14 = metadata !{i32 786453, metadata !47, metadata !2, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !15, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
!15 = metadata !{null, metadata !12}
-!16 = metadata !{i32 786478, metadata !1, metadata !"SVal", metadata !"SVal", metadata !"_ZN4SValC1Ev", metadata !2, i32 11, metadata !14, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 false, void (%struct.SVal*)* @_ZN4SValC1Ev, null, null, null, i32 11} ; [ DW_TAG_subprogram ]
-!17 = metadata !{i32 786478, metadata !2, metadata !"foo", metadata !"foo", metadata !"_Z3fooi4SVal", metadata !2, i32 16, metadata !18, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 false, i32 (i32, %struct.SVal*)* @_Z3fooi4SVal, null, null, null, i32 16} ; [ DW_TAG_subprogram ]
-!18 = metadata !{i32 786453, metadata !2, metadata !"", metadata !2, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !19, i32 0, null} ; [ DW_TAG_subroutine_type ]
+!16 = metadata !{i32 786478, metadata !47, metadata !1, metadata !"SVal", metadata !"SVal", metadata !"_ZN4SValC1Ev", i32 11, metadata !14, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 false, void (%struct.SVal*)* @_ZN4SValC1Ev, null, null, null, i32 11} ; [ DW_TAG_subprogram ]
+!17 = metadata !{i32 786478, metadata !47, metadata !2, metadata !"foo", metadata !"foo", metadata !"_Z3fooi4SVal", i32 16, metadata !18, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 false, i32 (i32, %struct.SVal*)* @_Z3fooi4SVal, null, null, null, i32 16} ; [ DW_TAG_subprogram ]
+!18 = metadata !{i32 786453, metadata !47, metadata !2, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !19, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
!19 = metadata !{metadata !13, metadata !13, metadata !1}
-!20 = metadata !{i32 786478, metadata !2, metadata !"main", metadata !"main", metadata !"main", metadata !2, i32 23, metadata !21, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 false, i32 ()* @main, null, null, null, i32 23} ; [ DW_TAG_subprogram ]
-!21 = metadata !{i32 786453, metadata !2, metadata !"", metadata !2, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !22, i32 0, null} ; [ DW_TAG_subroutine_type ]
+!20 = metadata !{i32 786478, metadata !47, metadata !2, metadata !"main", metadata !"main", metadata !"main", i32 23, metadata !21, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 false, i32 ()* @main, null, null, null, i32 23} ; [ DW_TAG_subprogram ]
+!21 = metadata !{i32 786453, metadata !47, metadata !2, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !22, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
!22 = metadata !{metadata !13}
!23 = metadata !{i32 786689, metadata !17, metadata !"i", metadata !2, i32 16, metadata !13, i32 0, null} ; [ DW_TAG_arg_variable ]
!24 = metadata !{i32 16, i32 0, metadata !17, null}
!25 = metadata !{i32 786689, metadata !17, metadata !"location", metadata !2, i32 16, metadata !26, i32 0, null} ; [ DW_TAG_arg_variable ]
-!26 = metadata !{i32 786448, metadata !2, metadata !"SVal", metadata !2, i32 0, i64 64, i64 64, i64 0, i32 0, metadata !1} ; [ DW_TAG_reference_type ]
+!26 = metadata !{i32 786448, metadata !47, metadata !2, metadata !"SVal", i32 0, i64 64, i64 64, i64 0, i32 0, metadata !1} ; [ DW_TAG_reference_type ]
!27 = metadata !{i32 17, i32 0, metadata !28, null}
-!28 = metadata !{i32 786443, metadata !2, metadata !17, i32 16, i32 0, i32 2} ; [ DW_TAG_lexical_block ]
+!28 = metadata !{i32 786443, metadata !47, metadata !17, i32 16, i32 0, i32 2} ; [ DW_TAG_lexical_block ]
!29 = metadata !{i32 18, i32 0, metadata !28, null}
!30 = metadata !{i32 20, i32 0, metadata !28, null}
!31 = metadata !{i32 786689, metadata !16, metadata !"this", metadata !2, i32 11, metadata !32, i32 0, null} ; [ DW_TAG_arg_variable ]
-!32 = metadata !{i32 786470, metadata !2, metadata !"", metadata !2, i32 0, i64 64, i64 64, i64 0, i32 64, metadata !33} ; [ DW_TAG_const_type ]
-!33 = metadata !{i32 786447, metadata !2, metadata !"", metadata !2, i32 0, i64 64, i64 64, i64 0, i32 0, metadata !1} ; [ DW_TAG_pointer_type ]
+!32 = metadata !{i32 786470, metadata !47, metadata !2, metadata !"", i32 0, i64 64, i64 64, i64 0, i32 64, metadata !33} ; [ DW_TAG_const_type ]
+!33 = metadata !{i32 786447, metadata !47, metadata !2, metadata !"", i32 0, i64 64, i64 64, i64 0, i32 0, metadata !1} ; [ DW_TAG_pointer_type ]
!34 = metadata !{i32 11, i32 0, metadata !16, null}
!35 = metadata !{i32 11, i32 0, metadata !36, null}
-!36 = metadata !{i32 786443, metadata !2, metadata !37, i32 11, i32 0, i32 1} ; [ DW_TAG_lexical_block ]
-!37 = metadata !{i32 786443, metadata !2, metadata !16, i32 11, i32 0, i32 0} ; [ DW_TAG_lexical_block ]
+!36 = metadata !{i32 786443, metadata !47, metadata !37, i32 11, i32 0, i32 1} ; [ DW_TAG_lexical_block ]
+!37 = metadata !{i32 786443, metadata !47, metadata !16, i32 11, i32 0, i32 0} ; [ DW_TAG_lexical_block ]
!38 = metadata !{i32 786688, metadata !39, metadata !"v", metadata !2, i32 24, metadata !1, i32 0, null} ; [ DW_TAG_auto_variable ]
-!39 = metadata !{i32 786443, metadata !2, metadata !40, i32 23, i32 0, i32 4} ; [ DW_TAG_lexical_block ]
-!40 = metadata !{i32 786443, metadata !2, metadata !20, i32 23, i32 0, i32 3} ; [ DW_TAG_lexical_block ]
+!39 = metadata !{i32 786443, metadata !47, metadata !40, i32 23, i32 0, i32 4} ; [ DW_TAG_lexical_block ]
+!40 = metadata !{i32 786443, metadata !47, metadata !20, i32 23, i32 0, i32 3} ; [ DW_TAG_lexical_block ]
!41 = metadata !{i32 24, i32 0, metadata !39, null}
!42 = metadata !{i32 25, i32 0, metadata !39, null}
!43 = metadata !{i32 26, i32 0, metadata !39, null}
!44 = metadata !{i32 786688, metadata !39, metadata !"k", metadata !2, i32 26, metadata !13, i32 0, null} ; [ DW_TAG_auto_variable ]
!45 = metadata !{i32 27, i32 0, metadata !39, null}
+!47 = metadata !{metadata !"small.cc", metadata !"/Users/manav/R8248330"}
+!48 = metadata !{i32 0}
+!49 = metadata !{i32 1, metadata !"Debug Info Version", i32 1}
diff --git a/test/CodeGen/X86/2010-09-16-EmptyFilename.ll b/test/CodeGen/X86/2010-09-16-EmptyFilename.ll
index de0d216e266f5..9aa41c32c3668 100644
--- a/test/CodeGen/X86/2010-09-16-EmptyFilename.ll
+++ b/test/CodeGen/X86/2010-09-16-EmptyFilename.ll
@@ -13,20 +13,23 @@ entry:
}
!llvm.dbg.cu = !{!2}
+!llvm.module.flags = !{!17}
-!0 = metadata !{i32 786478, metadata !1, metadata !"foo", metadata !"foo", metadata !"foo", metadata !1, i32 53, metadata !3, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 false, i32 ()* @foo} ; [ DW_TAG_subprogram ]
+!0 = metadata !{i32 786478, metadata !14, metadata !1, metadata !"foo", metadata !"foo", metadata !"foo", i32 53, metadata !3, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 false, i32 ()* @foo, null, null, null, i32 0} ; [ DW_TAG_subprogram ]
!1 = metadata !{i32 786473, metadata !14} ; [ DW_TAG_file_type ]
-!2 = metadata !{i32 786449, metadata !15, i32 12, metadata !"clang version 2.9 (trunk 114084)", i1 false, metadata !"", i32 0, null, null, metadata !13, null, metadata !""} ; [ DW_TAG_compile_unit ]
-!3 = metadata !{i32 786453, metadata !1, metadata !"", metadata !1, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !4, i32 0, null, null, metadata !13, null} ; [ DW_TAG_subroutine_type ]
+!2 = metadata !{i32 786449, metadata !15, i32 12, metadata !"clang version 2.9 (trunk 114084)", i1 false, metadata !"", i32 0, metadata !16, metadata !16, metadata !13, null, null, metadata !""} ; [ DW_TAG_compile_unit ]
+!3 = metadata !{i32 786453, metadata !14, metadata !1, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !4, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
!4 = metadata !{metadata !5}
-!5 = metadata !{i32 786468, metadata !1, metadata !"int", metadata !1, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
-!6 = metadata !{i32 786478, metadata !7, metadata !"bar", metadata !"bar", metadata !"bar", metadata !7, i32 4, metadata !3, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 false, i32 ()* @bar} ; [ DW_TAG_subprogram ]
+!5 = metadata !{i32 786468, metadata !14, metadata !1, metadata !"int", i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
+!6 = metadata !{i32 786478, metadata !15, metadata !7, metadata !"bar", metadata !"bar", metadata !"bar", i32 4, metadata !3, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 false, i32 ()* @bar, null, null, null, i32 0} ; [ DW_TAG_subprogram ]
!7 = metadata !{i32 786473, metadata !15} ; [ DW_TAG_file_type ]
!8 = metadata !{i32 53, i32 13, metadata !9, null}
-!9 = metadata !{i32 786443, metadata !0, i32 53, i32 11, metadata !1, i32 0} ; [ DW_TAG_lexical_block ]
+!9 = metadata !{i32 786443, metadata !14, metadata !0, i32 53, i32 11, i32 0} ; [ DW_TAG_lexical_block ]
!10 = metadata !{i32 4, i32 13, metadata !11, null}
-!11 = metadata !{i32 786443, metadata !12, i32 4, i32 13, metadata !7, i32 2} ; [ DW_TAG_lexical_block ]
-!12 = metadata !{i32 786443, metadata !6, i32 4, i32 11, metadata !7, i32 1} ; [ DW_TAG_lexical_block ]
+!11 = metadata !{i32 786443, metadata !15, metadata !12, i32 4, i32 13, i32 2} ; [ DW_TAG_lexical_block ]
+!12 = metadata !{i32 786443, metadata !15, metadata !6, i32 4, i32 11, i32 1} ; [ DW_TAG_lexical_block ]
!13 = metadata !{metadata !0, metadata !6}
!14 = metadata !{metadata !"", metadata !"/private/tmp"}
!15 = metadata !{metadata !"bug.c", metadata !"/private/tmp"}
+!16 = metadata !{i32 0}
+!17 = metadata !{i32 1, metadata !"Debug Info Version", i32 1}
diff --git a/test/CodeGen/X86/2010-09-17-SideEffectsInChain.ll b/test/CodeGen/X86/2010-09-17-SideEffectsInChain.ll
index 1b339777f5710..39d89e3d82763 100644
--- a/test/CodeGen/X86/2010-09-17-SideEffectsInChain.ll
+++ b/test/CodeGen/X86/2010-09-17-SideEffectsInChain.ll
@@ -19,8 +19,8 @@ entry:
}
; CHECK: movq ___stack_chk_guard@GOTPCREL(%rip)
-; CHECK: movb 38(%rsp), [[R0:%.+]]
-; CHECK: movb 8(%rsp), [[R1:%.+]]
-; CHECK: movb [[R1]], 8(%rsp)
-; CHECK: movb [[R0]], 38(%rsp)
+; CHECK: movb (%rsp), [[R1:%.+]]
+; CHECK: movb 30(%rsp), [[R0:%.+]]
+; CHECK: movb [[R1]], (%rsp)
+; CHECK: movb [[R0]], 30(%rsp)
; CHECK: callq ___stack_chk_fail
diff --git a/test/CodeGen/X86/2010-11-02-DbgParameter.ll b/test/CodeGen/X86/2010-11-02-DbgParameter.ll
index 8719f738b7cc1..21ac7c9079e8b 100644
--- a/test/CodeGen/X86/2010-11-02-DbgParameter.ll
+++ b/test/CodeGen/X86/2010-11-02-DbgParameter.ll
@@ -16,22 +16,25 @@ entry:
declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
!llvm.dbg.cu = !{!2}
+!llvm.module.flags = !{!19}
-!0 = metadata !{i32 786478, metadata !1, metadata !"foo", metadata !"foo", metadata !"", metadata !1, i32 3, metadata !3, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 true, i32 (%struct.bar*)* @foo, null, null, metadata !16, i32 3} ; [ DW_TAG_subprogram ]
+!0 = metadata !{i32 786478, metadata !17, metadata !1, metadata !"foo", metadata !"foo", metadata !"", i32 3, metadata !3, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 true, i32 (%struct.bar*)* @foo, null, null, metadata !16, i32 3} ; [ DW_TAG_subprogram ]
!1 = metadata !{i32 786473, metadata !17} ; [ DW_TAG_file_type ]
-!2 = metadata !{i32 786449, i32 12, metadata !1, metadata !"clang version 2.9 (trunk 117922)", i1 true, metadata !"", i32 0, null, null, metadata !15, null, null, metadata !""} ; [ DW_TAG_compile_unit ]
-!3 = metadata !{i32 786453, metadata !1, metadata !"", metadata !1, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !4, i32 0, null} ; [ DW_TAG_subroutine_type ]
+!2 = metadata !{i32 786449, metadata !17, i32 12, metadata !"clang version 2.9 (trunk 117922)", i1 true, metadata !"", i32 0, metadata !18, metadata !18, metadata !15, null, null, metadata !""} ; [ DW_TAG_compile_unit ]
+!3 = metadata !{i32 786453, metadata !17, metadata !1, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !4, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
!4 = metadata !{metadata !5}
-!5 = metadata !{i32 786468, metadata !2, metadata !"int", metadata !1, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
+!5 = metadata !{i32 786468, metadata !17, metadata !2, metadata !"int", i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
!6 = metadata !{i32 786689, metadata !0, metadata !"i", metadata !1, i32 3, metadata !7, i32 0, null} ; [ DW_TAG_arg_variable ]
-!7 = metadata !{i32 786447, metadata !1, metadata !"", metadata !1, i32 0, i64 32, i64 32, i64 0, i32 0, metadata !8} ; [ DW_TAG_pointer_type ]
-!8 = metadata !{i32 786451, metadata !1, metadata !"bar", metadata !1, i32 2, i64 64, i64 32, i64 0, i32 0, null, metadata !9, i32 0, null} ; [ DW_TAG_structure_type ]
+!7 = metadata !{i32 786447, metadata !17, metadata !1, metadata !"", i32 0, i64 32, i64 32, i64 0, i32 0, metadata !8} ; [ DW_TAG_pointer_type ]
+!8 = metadata !{i32 786451, metadata !17, metadata !1, metadata !"bar", i32 2, i64 64, i64 32, i64 0, i32 0, null, metadata !9, i32 0, null, null, null} ; [ DW_TAG_structure_type ] [bar] [line 2, size 64, align 32, offset 0] [def] [from ]
!9 = metadata !{metadata !10, metadata !11}
-!10 = metadata !{i32 786445, metadata !1, metadata !"x", metadata !1, i32 2, i64 32, i64 32, i64 0, i32 0, metadata !5} ; [ DW_TAG_member ]
-!11 = metadata !{i32 786445, metadata !1, metadata !"y", metadata !1, i32 2, i64 32, i64 32, i64 32, i32 0, metadata !5} ; [ DW_TAG_member ]
+!10 = metadata !{i32 786445, metadata !17, metadata !1, metadata !"x", i32 2, i64 32, i64 32, i64 0, i32 0, metadata !5} ; [ DW_TAG_member ]
+!11 = metadata !{i32 786445, metadata !17, metadata !1, metadata !"y", i32 2, i64 32, i64 32, i64 32, i32 0, metadata !5} ; [ DW_TAG_member ]
!12 = metadata !{i32 3, i32 47, metadata !0, null}
!13 = metadata !{i32 4, i32 2, metadata !14, null}
-!14 = metadata !{i32 786443, metadata !0, i32 3, i32 50, metadata !1, i32 0} ; [ DW_TAG_lexical_block ]
+!14 = metadata !{i32 786443, metadata !17, metadata !0, i32 3, i32 50, i32 0} ; [ DW_TAG_lexical_block ]
!15 = metadata !{metadata !0}
!16 = metadata !{metadata !6}
!17 = metadata !{metadata !"one.c", metadata !"/private/tmp"}
+!18 = metadata !{i32 0}
+!19 = metadata !{i32 1, metadata !"Debug Info Version", i32 1}
diff --git a/test/CodeGen/X86/2010-12-02-MC-Set.ll b/test/CodeGen/X86/2010-12-02-MC-Set.ll
index 4d8d974f703e7..5a407d3f99729 100644
--- a/test/CodeGen/X86/2010-12-02-MC-Set.ll
+++ b/test/CodeGen/X86/2010-12-02-MC-Set.ll
@@ -7,17 +7,21 @@ entry:
}
!llvm.dbg.cu = !{!2}
+!llvm.module.flags = !{!10}
!7 = metadata !{metadata !0}
-!0 = metadata !{i32 786478, metadata !1, metadata !"foo", metadata !"foo", metadata !"", metadata !1, i32 3, metadata !3, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 false, void ()* @foo, null, null, null, i32 0} ; [ DW_TAG_subprogram ]
-!1 = metadata !{i32 786473, metadata !"e.c", metadata !"/private/tmp", metadata !2} ; [ DW_TAG_file_type ]
-!2 = metadata !{i32 786449, i32 12, metadata !1, metadata !"clang version 2.9 (trunk 120563)", i1 false, metadata !"", i32 0, null, null, metadata !7, null, metadata !""} ; [ DW_TAG_compile_unit ]
-!3 = metadata !{i32 786453, metadata !1, metadata !"", metadata !1, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !4, i32 0, null} ; [ DW_TAG_subroutine_type ]
+!0 = metadata !{i32 786478, metadata !9, metadata !1, metadata !"foo", metadata !"foo", metadata !"", i32 3, metadata !3, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 false, void ()* @foo, null, null, null, i32 0} ; [ DW_TAG_subprogram ]
+!1 = metadata !{i32 786473, metadata !9} ; [ DW_TAG_file_type ]
+!2 = metadata !{i32 786449, metadata !9, i32 12, metadata !"clang version 2.9 (trunk 120563)", i1 false, metadata !"", i32 0, metadata !8, metadata !8, metadata !7, null, null, metadata !""} ; [ DW_TAG_compile_unit ]
+!3 = metadata !{i32 786453, metadata !9, metadata !1, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !4, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
!4 = metadata !{null}
!5 = metadata !{i32 5, i32 1, metadata !6, null}
-!6 = metadata !{i32 786443, metadata !0, i32 3, i32 16, metadata !1, i32 0} ; [ DW_TAG_lexical_block ]
+!6 = metadata !{i32 786443, metadata !9, metadata !0, i32 3, i32 16, i32 0} ; [ DW_TAG_lexical_block ]
+!8 = metadata !{i32 0}
+!9 = metadata !{metadata !"e.c", metadata !"/private/tmp"}
; CHECK: .subsections_via_symbols
; CHECK-NEXT: __debug_line
; CHECK-NEXT: Lline_table_start0
; CHECK-NEXT: Ltmp{{[0-9]}} = (Ltmp
+!10 = metadata !{i32 1, metadata !"Debug Info Version", i32 1}
diff --git a/test/CodeGen/X86/2011-01-24-DbgValue-Before-Use.ll b/test/CodeGen/X86/2011-01-24-DbgValue-Before-Use.ll
index 14fb3e493231c..d5340300df543 100644
--- a/test/CodeGen/X86/2011-01-24-DbgValue-Before-Use.ll
+++ b/test/CodeGen/X86/2011-01-24-DbgValue-Before-Use.ll
@@ -70,30 +70,31 @@ declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
declare i32 @puts(i8* nocapture) nounwind
!llvm.dbg.cu = !{!2}
+!llvm.module.flags = !{!33}
-!0 = metadata !{i32 786478, metadata !1, metadata !"gcd", metadata !"gcd", metadata !"", metadata !1, i32 5, metadata !3, i1 false, i1 true, i32 0, i32 0, i32 0, i32 256, i1 true, i64 (i64, i64)* @gcd, null, null, metadata !29, i32 0} ; [ DW_TAG_subprogram ]
+!0 = metadata !{i32 786478, metadata !31, metadata !1, metadata !"gcd", metadata !"gcd", metadata !"", i32 5, metadata !3, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 true, i64 (i64, i64)* @gcd, null, null, metadata !29, i32 0} ; [ DW_TAG_subprogram ] [line 5] [def] [scope 0] [gcd]
!1 = metadata !{i32 786473, metadata !31} ; [ DW_TAG_file_type ]
-!2 = metadata !{i32 786449, metadata !31, i32 12, metadata !"clang version 2.9 (trunk 124117)", i1 true, metadata !"", i32 0, null, null, metadata !28, null, null, null} ; [ DW_TAG_compile_unit ]
-!3 = metadata !{i32 786453, metadata !1, metadata !1, metadata !"", i32 0, i64 0, i64 0, i32 0, i32 0, i32 0, metadata !4, i32 0, i32 0} ; [ DW_TAG_subroutine_type ]
+!2 = metadata !{i32 786449, metadata !31, i32 12, metadata !"clang version 2.9 (trunk 124117)", i1 true, metadata !"", i32 0, metadata !32, metadata !32, metadata !28, null, null, null} ; [ DW_TAG_compile_unit ]
+!3 = metadata !{i32 786453, metadata !31, metadata !1, metadata !"", i32 0, i64 0, i64 0, i32 0, i32 0, null, metadata !4, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
!4 = metadata !{metadata !5}
!5 = metadata !{i32 786468, null, metadata !2, metadata !"long int", i32 0, i64 64, i64 64, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
-!6 = metadata !{i32 786478, metadata !1, metadata !"main", metadata !"main", metadata !"", metadata !1, i32 25, metadata !7, i1 false, i1 true, i32 0, i32 0, i32 0, i32 0, i1 true, i32 ()* @main, null, null, metadata !30, i32 0} ; [ DW_TAG_subprogram ]
-!7 = metadata !{i32 786453, metadata !1, metadata !1, metadata !"", i32 0, i64 0, i64 0, i32 0, i32 0, i32 0, metadata !8, i32 0, i32 0} ; [ DW_TAG_subroutine_type ]
+!6 = metadata !{i32 786478, metadata !31, metadata !1, metadata !"main", metadata !"main", metadata !"", i32 25, metadata !7, i1 false, i1 true, i32 0, i32 0, null, i32 0, i1 true, i32 ()* @main, null, null, metadata !30, i32 0} ; [ DW_TAG_subprogram ] [line 25] [def] [scope 0] [main]
+!7 = metadata !{i32 786453, metadata !31, metadata !1, metadata !"", i32 0, i64 0, i64 0, i32 0, i32 0, null, metadata !8, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
!8 = metadata !{metadata !9}
!9 = metadata !{i32 786468, null, metadata !2, metadata !"int", i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
!10 = metadata !{i32 786689, metadata !0, metadata !"a", metadata !1, i32 5, metadata !5, i32 0, null} ; [ DW_TAG_arg_variable ]
!11 = metadata !{i32 786689, metadata !0, metadata !"b", metadata !1, i32 5, metadata !5, i32 0, null} ; [ DW_TAG_arg_variable ]
!12 = metadata !{i32 786688, metadata !13, metadata !"c", metadata !1, i32 6, metadata !5, i32 0, null} ; [ DW_TAG_auto_variable ]
-!13 = metadata !{i32 786443, metadata !1, metadata !0, i32 5, i32 52, i32 0} ; [ DW_TAG_lexical_block ]
+!13 = metadata !{i32 786443, metadata !31, metadata !0, i32 5, i32 52, i32 0} ; [ DW_TAG_lexical_block ]
!14 = metadata !{i32 786688, metadata !15, metadata !"m", metadata !1, i32 26, metadata !16, i32 0, null} ; [ DW_TAG_auto_variable ]
-!15 = metadata !{i32 786443, metadata !1, metadata !6, i32 25, i32 12, i32 2} ; [ DW_TAG_lexical_block ]
+!15 = metadata !{i32 786443, metadata !31, metadata !6, i32 25, i32 12, i32 2} ; [ DW_TAG_lexical_block ]
!16 = metadata !{i32 786468, null, metadata !2, metadata !"unsigned int", i32 0, i64 32, i64 32, i64 0, i32 0, i32 7} ; [ DW_TAG_base_type ]
!17 = metadata !{i32 786688, metadata !15, metadata !"z_s", metadata !1, i32 27, metadata !9, i32 0, null} ; [ DW_TAG_auto_variable ]
!18 = metadata !{i32 5, i32 41, metadata !0, null}
!19 = metadata !{i32 5, i32 49, metadata !0, null}
!20 = metadata !{i32 7, i32 5, metadata !13, null}
!21 = metadata !{i32 8, i32 9, metadata !22, null}
-!22 = metadata !{i32 786443, metadata !1, metadata !13, i32 7, i32 14, i32 1} ; [ DW_TAG_lexical_block ]
+!22 = metadata !{i32 786443, metadata !31, metadata !13, i32 7, i32 14, i32 1} ; [ DW_TAG_lexical_block ]
!23 = metadata !{i32 9, i32 9, metadata !22, null}
!24 = metadata !{i32 26, i32 38, metadata !15, null}
!25 = metadata !{i32 27, i32 38, metadata !15, null}
@@ -103,3 +104,5 @@ declare i32 @puts(i8* nocapture) nounwind
!29 = metadata !{metadata !10, metadata !11, metadata !12}
!30 = metadata !{metadata !14, metadata !17}
!31 = metadata !{metadata !"rem_small.c", metadata !"/private/tmp"}
+!32 = metadata !{i32 0}
+!33 = metadata !{i32 1, metadata !"Debug Info Version", i32 1}
diff --git a/test/CodeGen/X86/2011-04-19-sclr-bb.ll b/test/CodeGen/X86/2011-04-19-sclr-bb.ll
index 771e4b3a08159..b77cc40acf3c8 100644
--- a/test/CodeGen/X86/2011-04-19-sclr-bb.ll
+++ b/test/CodeGen/X86/2011-04-19-sclr-bb.ll
@@ -1,7 +1,7 @@
; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=corei7 | FileCheck %s
; Make sure that values of illegal types are not scalarized between basic blocks.
-;CHECK: test
+;CHECK-LABEL: test:
;CHECK-NOT: pinsrw
;CHECK-NOT: pextrb
;CHECK: ret
diff --git a/test/CodeGen/X86/2011-05-09-loaduse.ll b/test/CodeGen/X86/2011-05-09-loaduse.ll
index 8673d7433fac0..adcea5cf61592 100644
--- a/test/CodeGen/X86/2011-05-09-loaduse.ll
+++ b/test/CodeGen/X86/2011-05-09-loaduse.ll
@@ -1,6 +1,6 @@
; RUN: llc < %s -march=x86 -mcpu=corei7 | FileCheck %s
-;CHECK: test
+;CHECK-LABEL: test:
;CHECK-not: pshufd
;CHECK: ret
define float @test(<4 x float>* %A) nounwind {
diff --git a/test/CodeGen/X86/2011-05-26-UnreachableBlockElim.ll b/test/CodeGen/X86/2011-05-26-UnreachableBlockElim.ll
index 0f18f0969bada..91cd208f0167f 100644
--- a/test/CodeGen/X86/2011-05-26-UnreachableBlockElim.ll
+++ b/test/CodeGen/X86/2011-05-26-UnreachableBlockElim.ll
@@ -8,7 +8,7 @@ target triple = "x86_64-apple-macosx10.6.0"
@aux_temp = external global %struct.dfa, align 8
-declare i64 @llvm.objectsize.i64(i8*, i1) nounwind readnone
+declare i64 @llvm.objectsize.i64.p0i8(i8*, i1) nounwind readnone
declare void @__memset_chk() nounwind
@@ -21,12 +21,12 @@ if.end.i: ; preds = %entry
br i1 undef, label %land.end.thread.i, label %land.end.i
land.end.thread.i: ; preds = %if.end.i
- %0 = call i64 @llvm.objectsize.i64(i8* undef, i1 false) nounwind
+ %0 = call i64 @llvm.objectsize.i64.p0i8(i8* undef, i1 false) nounwind
%cmp1710.i = icmp eq i64 %0, -1
br i1 %cmp1710.i, label %cond.false156.i, label %cond.true138.i
land.end.i: ; preds = %if.end.i
- %1 = call i64 @llvm.objectsize.i64(i8* undef, i1 false) nounwind
+ %1 = call i64 @llvm.objectsize.i64.p0i8(i8* undef, i1 false) nounwind
%cmp17.i = icmp eq i64 %1, -1
br i1 %cmp17.i, label %cond.false156.i, label %cond.true138.i
@@ -41,13 +41,8 @@ cond.false156.i: ; preds = %for.end.i, %land.en
cond.end166.i: ; preds = %cond.false156.i, %cond.true138.i
%idxprom1113.i = phi i64 [ %idxprom1114.i, %cond.false156.i ], [ undef, %cond.true138.i ]
- %tmp235.i = load %struct.state** getelementptr inbounds (%struct.dfa* @aux_temp, i64 0, i32 2), align 8, !tbaa !0
+ %tmp235.i = load %struct.state** getelementptr inbounds (%struct.dfa* @aux_temp, i64 0, i32 2), align 8
%att.i = getelementptr inbounds %struct.state* %tmp235.i, i64 %idxprom1113.i, i32 0
- store i32 0, i32* %att.i, align 4, !tbaa !3
+ store i32 0, i32* %att.i, align 4
ret void
}
-
-!0 = metadata !{metadata !"any pointer", metadata !1}
-!1 = metadata !{metadata !"omnipotent char", metadata !2}
-!2 = metadata !{metadata !"Simple C/C++ TBAA", null}
-!3 = metadata !{metadata !"int", metadata !1}
diff --git a/test/CodeGen/X86/2011-06-03-x87chain.ll b/test/CodeGen/X86/2011-06-03-x87chain.ll
index ce63c74fbdfd3..5275b6889bff4 100644
--- a/test/CodeGen/X86/2011-06-03-x87chain.ll
+++ b/test/CodeGen/X86/2011-06-03-x87chain.ll
@@ -29,3 +29,21 @@ entry:
store float %conv, float* %f, align 4
ret float %conv
}
+
+define void @PR17495() {
+entry:
+ br i1 undef, label %while.end, label %while.body
+
+while.body: ; preds = %while.body, %entry
+ %x.1.copyload = load i24* undef, align 1
+ %conv = sitofp i24 %x.1.copyload to float
+ %div = fmul float %conv, 0x3E80000000000000
+ store float %div, float* undef, align 4
+ br i1 false, label %while.end, label %while.body
+
+while.end: ; preds = %while.body, %entry
+ ret void
+
+; CHECK-LABEL: @PR17495
+; CHECK-NOT: fildll
+}
diff --git a/test/CodeGen/X86/2011-07-13-BadFrameIndexDisplacement.ll b/test/CodeGen/X86/2011-07-13-BadFrameIndexDisplacement.ll
index 7632034e13b5a..aea53b3b98555 100644
--- a/test/CodeGen/X86/2011-07-13-BadFrameIndexDisplacement.ll
+++ b/test/CodeGen/X86/2011-07-13-BadFrameIndexDisplacement.ll
@@ -16,5 +16,5 @@ entry:
%tmp10 = sext i8 %tmp9 to i32
ret i32 %tmp10
}
-; CHECK: f:
+; CHECK-LABEL: f:
; CHECK: movsbl -2147483647
diff --git a/test/CodeGen/X86/2011-09-14-valcoalesce.ll b/test/CodeGen/X86/2011-09-14-valcoalesce.ll
index 6d91109daafb9..4e84e84c1aa9a 100644
--- a/test/CodeGen/X86/2011-09-14-valcoalesce.ll
+++ b/test/CodeGen/X86/2011-09-14-valcoalesce.ll
@@ -14,22 +14,47 @@
; Prior to fixing PR10920 401.bzip miscompile, the coalescer would
; consider vreg1 and vreg27 to be copies of the same value. It would
; then remove one of the critical edge copes, which cannot safely be removed.
-;
+
+; There are two obvious ways the register-allocator could go here, either
+; reusing the pre-addition register later, or the post-addition one. Currently,
+; it does the latter, so we check:
+
; CHECK: # %while.body85.i
; CHECK-NOT: # %
; CHECK-NOT: add
; CHECK: movl %[[POSTR:e[abcdxi]+]], %[[PRER:e[abcdxi]+]]
; CHECK: addl %{{.*}}, %[[POSTR]]
; CHECK: # %while.end.i
-; CHECK: movl %[[POSTR]], %[[USER:e[abcdxi]+]]
+; CHECK-NOT: movl %[[POSTR]]
; CHECK: # %land.lhs.true.i
-; CHECK: movl %[[POSTR]], %[[USER]]
+; CHECK-NOT: movl %[[POSTR]]
; CHECK: # %land.lhs.true103.i
-; CHECK: movl %[[POSTR]], %[[USER]]
+; CHECK-NOT: movl %[[POSTR]]
; CHECK: # %if.then108.i
-; [[PRER] live out, so nothing on this path should define it.
-; CHECK-NOT: , %[[PRER]]
+; CHECK: movl %[[PRER]], %[[POSTR]]
; CHECK: # %if.end117.i
+; and use it for fprintf:
+; CHECK: movl %[[POSTR]], 12(%esp)
+
+
+; If it ever reverts to reusing the pre-addition register then we should
+; *probably* check this instead (it certainly worked last time):
+
+; CHECKALT: # %while.body85.i
+; CHECKALT-NOT: # %
+; CHECKALT-NOT: add
+; CHECKALT: movl %[[POSTR:e[abcdxi]+]], %[[PRER:e[abcdxi]+]]
+; CHECKALT: addl %{{.*}}, %[[POSTR]]
+; CHECKALT: # %while.end.i
+; CHECKALT: movl %[[POSTR]], %[[USER:e[abcdxi]+]]
+; CHECKALT: # %land.lhs.true.i
+; CHECKALT: movl %[[POSTR]], %[[USER]]
+; CHECKALT: # %land.lhs.true103.i
+; CHECKALT: movl %[[POSTR]], %[[USER]]
+; CHECKALT: # %if.then108.i
+; [[PRER] live out, so nothing on this path should define it.
+; CHECKALT-NOT: , %[[PRER]]
+; CHECKALT: # %if.end117.i
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128-n8:16:32"
diff --git a/test/CodeGen/X86/2011-09-18-sse2cmp.ll b/test/CodeGen/X86/2011-09-18-sse2cmp.ll
index a6f428fdacc35..89de648ca966e 100644
--- a/test/CodeGen/X86/2011-09-18-sse2cmp.ll
+++ b/test/CodeGen/X86/2011-09-18-sse2cmp.ll
@@ -1,4 +1,4 @@
-;RUN: llc < %s -march=x86 -mcpu=yonah -mattr=+sse2,-sse41 | FileCheck %s
+;RUN: llc < %s -march=x86 -mcpu=yonah -mattr=+sse2,-sse4.1 | FileCheck %s
;CHECK: @max
;CHECK: cmplepd
diff --git a/test/CodeGen/X86/2011-09-21-setcc-bug.ll b/test/CodeGen/X86/2011-09-21-setcc-bug.ll
index 4daf6781495a8..a67c3f338862c 100644
--- a/test/CodeGen/X86/2011-09-21-setcc-bug.ll
+++ b/test/CodeGen/X86/2011-09-21-setcc-bug.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86-64 -mcpu=corei7 -mattr=+sse41
+; RUN: llc < %s -march=x86-64 -mcpu=corei7 -mattr=+sse4.1
; Make sure we are not crashing on this code.
diff --git a/test/CodeGen/X86/2011-10-11-srl.ll b/test/CodeGen/X86/2011-10-11-srl.ll
index 6c6d340fd1a49..434f88c14b6ab 100644
--- a/test/CodeGen/X86/2011-10-11-srl.ll
+++ b/test/CodeGen/X86/2011-10-11-srl.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=corei7-avx -mattr=-sse41
+; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=corei7-avx -mattr=-sse4.1
target triple = "x86_64-unknown-linux-gnu"
diff --git a/test/CodeGen/X86/2011-10-12-MachineCSE.ll b/test/CodeGen/X86/2011-10-12-MachineCSE.ll
index cd15f84605a86..72e672ac4f1fb 100644
--- a/test/CodeGen/X86/2011-10-12-MachineCSE.ll
+++ b/test/CodeGen/X86/2011-10-12-MachineCSE.ll
@@ -20,11 +20,11 @@ entry:
%2 = lshr i32 %1, 16
%bf.clear = and i32 %2, 255
%idxprom = sext i32 %bf.clear to i64
- %3 = load %struct.optab** getelementptr inbounds ([49 x %struct.optab*]* @optab_table, i32 0, i64 0), align 8, !tbaa !0
+ %3 = load %struct.optab** getelementptr inbounds ([49 x %struct.optab*]* @optab_table, i32 0, i64 0), align 8
%handlers = getelementptr inbounds %struct.optab* %3, i32 0, i32 1
%arrayidx = getelementptr inbounds [59 x %struct.anon.3]* %handlers, i32 0, i64 %idxprom
%insn_code = getelementptr inbounds %struct.anon.3* %arrayidx, i32 0, i32 0
- %4 = load i32* %insn_code, align 4, !tbaa !3
+ %4 = load i32* %insn_code, align 4
%cmp = icmp eq i32 %4, 1317
br i1 %cmp, label %if.then, label %lor.lhs.false
@@ -32,14 +32,14 @@ lor.lhs.false: ; preds = %entry
%idxprom1 = sext i32 %4 to i64
%arrayidx2 = getelementptr inbounds [0 x %struct.insn_data]* @insn_data, i32 0, i64 %idxprom1
%operand = getelementptr inbounds %struct.insn_data* %arrayidx2, i32 0, i32 3
- %5 = load %struct.insn_operand_data** %operand, align 8, !tbaa !0
+ %5 = load %struct.insn_operand_data** %operand, align 8
%arrayidx3 = getelementptr inbounds %struct.insn_operand_data* %5, i64 0
%predicate = getelementptr inbounds %struct.insn_operand_data* %arrayidx3, i32 0, i32 0
- %6 = load i32 (%struct.rtx_def*, i32)** %predicate, align 8, !tbaa !0
+ %6 = load i32 (%struct.rtx_def*, i32)** %predicate, align 8
%idxprom4 = sext i32 %4 to i64
%arrayidx5 = getelementptr inbounds [0 x %struct.insn_data]* @insn_data, i32 0, i64 %idxprom4
%operand6 = getelementptr inbounds %struct.insn_data* %arrayidx5, i32 0, i32 3
- %7 = load %struct.insn_operand_data** %operand6, align 8, !tbaa !0
+ %7 = load %struct.insn_operand_data** %operand6, align 8
%arrayidx7 = getelementptr inbounds %struct.insn_operand_data* %7, i64 0
%8 = bitcast %struct.insn_operand_data* %arrayidx7 to i8*
%bf.field.offs = getelementptr i8* %8, i32 16
@@ -54,14 +54,14 @@ lor.lhs.false9: ; preds = %lor.lhs.false
%idxprom10 = sext i32 %4 to i64
%arrayidx11 = getelementptr inbounds [0 x %struct.insn_data]* @insn_data, i32 0, i64 %idxprom10
%operand12 = getelementptr inbounds %struct.insn_data* %arrayidx11, i32 0, i32 3
- %11 = load %struct.insn_operand_data** %operand12, align 8, !tbaa !0
+ %11 = load %struct.insn_operand_data** %operand12, align 8
%arrayidx13 = getelementptr inbounds %struct.insn_operand_data* %11, i64 1
%predicate14 = getelementptr inbounds %struct.insn_operand_data* %arrayidx13, i32 0, i32 0
- %12 = load i32 (%struct.rtx_def*, i32)** %predicate14, align 8, !tbaa !0
+ %12 = load i32 (%struct.rtx_def*, i32)** %predicate14, align 8
%idxprom15 = sext i32 %4 to i64
%arrayidx16 = getelementptr inbounds [0 x %struct.insn_data]* @insn_data, i32 0, i64 %idxprom15
%operand17 = getelementptr inbounds %struct.insn_data* %arrayidx16, i32 0, i32 3
- %13 = load %struct.insn_operand_data** %operand17, align 8, !tbaa !0
+ %13 = load %struct.insn_operand_data** %operand17, align 8
%arrayidx18 = getelementptr inbounds %struct.insn_operand_data* %13, i64 1
%14 = bitcast %struct.insn_operand_data* %arrayidx18 to i8*
%bf.field.offs19 = getelementptr i8* %14, i32 16
@@ -76,14 +76,14 @@ lor.lhs.false23: ; preds = %lor.lhs.false9
%idxprom24 = sext i32 %4 to i64
%arrayidx25 = getelementptr inbounds [0 x %struct.insn_data]* @insn_data, i32 0, i64 %idxprom24
%operand26 = getelementptr inbounds %struct.insn_data* %arrayidx25, i32 0, i32 3
- %17 = load %struct.insn_operand_data** %operand26, align 8, !tbaa !0
+ %17 = load %struct.insn_operand_data** %operand26, align 8
%arrayidx27 = getelementptr inbounds %struct.insn_operand_data* %17, i64 2
%predicate28 = getelementptr inbounds %struct.insn_operand_data* %arrayidx27, i32 0, i32 0
- %18 = load i32 (%struct.rtx_def*, i32)** %predicate28, align 8, !tbaa !0
+ %18 = load i32 (%struct.rtx_def*, i32)** %predicate28, align 8
%idxprom29 = sext i32 %4 to i64
%arrayidx30 = getelementptr inbounds [0 x %struct.insn_data]* @insn_data, i32 0, i64 %idxprom29
%operand31 = getelementptr inbounds %struct.insn_data* %arrayidx30, i32 0, i32 3
- %19 = load %struct.insn_operand_data** %operand31, align 8, !tbaa !0
+ %19 = load %struct.insn_operand_data** %operand31, align 8
%arrayidx32 = getelementptr inbounds %struct.insn_operand_data* %19, i64 2
%20 = bitcast %struct.insn_operand_data* %arrayidx32 to i8*
%bf.field.offs33 = getelementptr i8* %20, i32 16
@@ -101,7 +101,7 @@ if.end: ; preds = %lor.lhs.false23
%idxprom37 = sext i32 %4 to i64
%arrayidx38 = getelementptr inbounds [0 x %struct.insn_data]* @insn_data, i32 0, i64 %idxprom37
%genfun = getelementptr inbounds %struct.insn_data* %arrayidx38, i32 0, i32 2
- %23 = load %struct.rtx_def* (%struct.rtx_def*, ...)** %genfun, align 8, !tbaa !0
+ %23 = load %struct.rtx_def* (%struct.rtx_def*, ...)** %genfun, align 8
%call39 = tail call %struct.rtx_def* (%struct.rtx_def*, ...)* %23(%struct.rtx_def* %r0, %struct.rtx_def* %r1, %struct.rtx_def* %c)
br label %return
@@ -109,8 +109,3 @@ return: ; preds = %if.end, %if.then
%24 = phi %struct.rtx_def* [ %call39, %if.end ], [ null, %if.then ]
ret %struct.rtx_def* %24
}
-
-!0 = metadata !{metadata !"any pointer", metadata !1}
-!1 = metadata !{metadata !"omnipotent char", metadata !2}
-!2 = metadata !{metadata !"Simple C/C++ TBAA", null}
-!3 = metadata !{metadata !"_ZTS9insn_code", metadata !1}
diff --git a/test/CodeGen/X86/2011-10-18-FastISel-VectorParams.ll b/test/CodeGen/X86/2011-10-18-FastISel-VectorParams.ll
index 8c09d97f08d2f..e7d1e194d9cdf 100644
--- a/test/CodeGen/X86/2011-10-18-FastISel-VectorParams.ll
+++ b/test/CodeGen/X86/2011-10-18-FastISel-VectorParams.ll
@@ -20,7 +20,7 @@ entry:
%2 = load <4 x float>* %p3, align 16
%3 = load <4 x float>* %p4, align 16
%4 = load <4 x float>* %p5, align 16
-; CHECK: movaps {{%xmm[0-7]}}, (%esp)
+; CHECK: movups {{%xmm[0-7]}}, (%esp)
; CHECK-NEXT: calll _dovectortest
call void @dovectortest(<4 x float> %0, <4 x float> %1, <4 x float> %2, <4 x float> %3, <4 x float> %4)
ret void
diff --git a/test/CodeGen/X86/2011-10-19-LegelizeLoad.ll b/test/CodeGen/X86/2011-10-19-LegelizeLoad.ll
index da734d4b64543..07a6910c65e01 100644
--- a/test/CodeGen/X86/2011-10-19-LegelizeLoad.ll
+++ b/test/CodeGen/X86/2011-10-19-LegelizeLoad.ll
@@ -16,8 +16,8 @@ target triple = "x86_64-unknown-linux-gnu"
; CHECK: main
define i32 @main() nounwind uwtable {
entry:
-; CHECK: pmovsxbq j(%rip), %
; CHECK: pmovsxbq i(%rip), %
+; CHECK: pmovsxbq j(%rip), %
%0 = load <2 x i8>* @i, align 8
%1 = load <2 x i8>* @j, align 8
%div = sdiv <2 x i8> %1, %0
@@ -25,4 +25,3 @@ entry:
ret i32 0
; CHECK: ret
}
-
diff --git a/test/CodeGen/X86/2011-10-27-tstore.ll b/test/CodeGen/X86/2011-10-27-tstore.ll
index 6e83f6713ae45..6dea92b630715 100644
--- a/test/CodeGen/X86/2011-10-27-tstore.ll
+++ b/test/CodeGen/X86/2011-10-27-tstore.ll
@@ -2,7 +2,7 @@
target triple = "x86_64-unknown-linux-gnu"
-;CHECK: ltstore
+;CHECK-LABEL: ltstore:
;CHECK: movq
;CHECK: movq
;CHECK: ret
diff --git a/test/CodeGen/X86/2011-10-30-padd.ll b/test/CodeGen/X86/2011-10-30-padd.ll
index 180ca15a0ee20..1b8c12bc8e381 100644
--- a/test/CodeGen/X86/2011-10-30-padd.ll
+++ b/test/CodeGen/X86/2011-10-30-padd.ll
@@ -1,6 +1,6 @@
; RUN: llc < %s -march=x86 -mcpu=corei7 | FileCheck %s
-;CHECK: addXX_test
+;CHECK-LABEL: addXX_test:
;CHECK: padd
;CHECK: ret
@@ -10,7 +10,7 @@ define <16 x i8> @addXX_test(<16 x i8> %a) {
ret <16 x i8> %b
}
-;CHECK: instcombine_test
+;CHECK-LABEL: instcombine_test:
;CHECK: padd
;CHECK: ret
define <16 x i8> @instcombine_test(<16 x i8> %a) {
diff --git a/test/CodeGen/X86/2011-12-06-AVXVectorExtractCombine.ll b/test/CodeGen/X86/2011-12-06-AVXVectorExtractCombine.ll
index fcaabddd2cc51..df9823aa38257 100644
--- a/test/CodeGen/X86/2011-12-06-AVXVectorExtractCombine.ll
+++ b/test/CodeGen/X86/2011-12-06-AVXVectorExtractCombine.ll
@@ -2,7 +2,7 @@
; PR11494
define void @test(<4 x i32>* nocapture %p) nounwind {
- ; CHECK: test:
+ ; CHECK-LABEL: test:
; CHECK: vpxor %xmm0, %xmm0, %xmm0
; CHECK-NEXT: vpmaxsd {{.*}}, %xmm0, %xmm0
; CHECK-NEXT: vmovdqu %xmm0, (%rdi)
diff --git a/test/CodeGen/X86/2011-12-15-vec_shift.ll b/test/CodeGen/X86/2011-12-15-vec_shift.ll
index dc3a08bb4daf5..0183e107460eb 100644
--- a/test/CodeGen/X86/2011-12-15-vec_shift.ll
+++ b/test/CodeGen/X86/2011-12-15-vec_shift.ll
@@ -1,5 +1,5 @@
-; RUN: llc -march=x86-64 -mattr=+sse41 -mcpu=penryn < %s | FileCheck %s -check-prefix=CHECK-W-SSE4
-; RUN: llc -march=x86-64 -mattr=-sse41 -mcpu=penryn < %s | FileCheck %s -check-prefix=CHECK-WO-SSE4
+; RUN: llc -march=x86-64 -mattr=+sse4.1 -mcpu=penryn < %s | FileCheck %s -check-prefix=CHECK-W-SSE4
+; RUN: llc -march=x86-64 -mattr=-sse4.1 -mcpu=penryn < %s | FileCheck %s -check-prefix=CHECK-WO-SSE4
; Test case for r146671
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
target triple = "x86_64-apple-macosx10.7"
diff --git a/test/CodeGen/X86/2011-12-26-extractelement-duplicate-load.ll b/test/CodeGen/X86/2011-12-26-extractelement-duplicate-load.ll
index 39c213f00ab84..14643e4ba8b86 100644
--- a/test/CodeGen/X86/2011-12-26-extractelement-duplicate-load.ll
+++ b/test/CodeGen/X86/2011-12-26-extractelement-duplicate-load.ll
@@ -1,11 +1,11 @@
-; RUN: llc -march=x86-64 -mattr=-sse42,+sse41 < %s | FileCheck %s
+; RUN: llc -march=x86-64 -mattr=-sse4.2,+sse4.1 < %s | FileCheck %s
; Make sure we don't load from the location pointed to by %p
; twice: it has non-obvious performance implications, and
; the relevant transformation doesn't know how to update
; the chains correctly.
; PR10747
-; CHECK: test:
+; CHECK-LABEL: test:
; CHECK: pextrd $2, %xmm
define <4 x i32> @test(<4 x i32>* %p) {
%v = load <4 x i32>* %p
diff --git a/test/CodeGen/X86/2011-20-21-zext-ui2fp.ll b/test/CodeGen/X86/2011-20-21-zext-ui2fp.ll
index 75efcf5ac47bb..78cdfcf0e1f0e 100644
--- a/test/CodeGen/X86/2011-20-21-zext-ui2fp.ll
+++ b/test/CodeGen/X86/2011-20-21-zext-ui2fp.ll
@@ -5,7 +5,7 @@ target triple = "x86_64-unknown-linux-gnu"
; 0x1 means that we only look at the first bit.
;CHECK: 0x1
-;CHECK: ui_to_fp_conv
+;CHECK-LABEL: ui_to_fp_conv:
;CHECK: ret
define void @ui_to_fp_conv(<8 x float> * nocapture %aFOO, <8 x float>* nocapture %RET) nounwind {
allocas:
diff --git a/test/CodeGen/X86/2012-01-11-split-cv.ll b/test/CodeGen/X86/2012-01-11-split-cv.ll
index 7e914984fe445..69d4b93bb78de 100644
--- a/test/CodeGen/X86/2012-01-11-split-cv.ll
+++ b/test/CodeGen/X86/2012-01-11-split-cv.ll
@@ -1,6 +1,6 @@
; RUN: llc < %s -march=x86 -mcpu=corei7-avx -mattr=+avx -mtriple=i686-pc-win32 | FileCheck %s
-;CHECK: add18i16
+;CHECK-LABEL: add18i16:
define void @add18i16(<18 x i16>* nocapture sret %ret, <18 x i16>* %bp) nounwind {
;CHECK: vmovaps
%b = load <18 x i16>* %bp, align 16
diff --git a/test/CodeGen/X86/2012-01-16-mfence-nosse-flags.ll b/test/CodeGen/X86/2012-01-16-mfence-nosse-flags.ll
index a883d7938b55c..cd8a16f5732a2 100644
--- a/test/CodeGen/X86/2012-01-16-mfence-nosse-flags.ll
+++ b/test/CodeGen/X86/2012-01-16-mfence-nosse-flags.ll
@@ -15,7 +15,7 @@ entry:
; CHECK: lock
; CHECK-NEXT: orl {{.*}}, (%esp)
-; CHECK-NEXT: cmpl $0
+; CHECK-NEXT: testl [[REG:%e[a-z]+]], [[REG]]
if.then: ; preds = %entry
tail call void bitcast (void (...)* @foo to void ()*)() nounwind
diff --git a/test/CodeGen/X86/2012-01-18-vbitcast.ll b/test/CodeGen/X86/2012-01-18-vbitcast.ll
index 3ce7db6e41383..9eb59e41ef7de 100644
--- a/test/CodeGen/X86/2012-01-18-vbitcast.ll
+++ b/test/CodeGen/X86/2012-01-18-vbitcast.ll
@@ -1,6 +1,6 @@
; RUN: llc < %s -march=x86-64 -mcpu=corei7 -mtriple=x86_64-pc-win32 | FileCheck %s
-;CHECK: vcast
+;CHECK-LABEL: vcast:
define <2 x i32> @vcast(<2 x float> %a, <2 x float> %b) {
;CHECK: pmovzxdq
;CHECK: pmovzxdq
diff --git a/test/CodeGen/X86/2012-02-20-MachineCPBug.ll b/test/CodeGen/X86/2012-02-20-MachineCPBug.ll
deleted file mode 100644
index 477b4deba8209..0000000000000
--- a/test/CodeGen/X86/2012-02-20-MachineCPBug.ll
+++ /dev/null
@@ -1,78 +0,0 @@
-; RUN: llc < %s -mtriple=i386-apple-macosx -mcpu=core2 -mattr=+sse | FileCheck %s
-; PR11940: Do not optimize away movb %al, %ch
-
-%struct.APInt = type { i64* }
-
-declare noalias i8* @calloc(i32, i32) nounwind
-
-define void @bug(%struct.APInt* noalias nocapture sret %agg.result, %struct.APInt* nocapture %this, i32 %rotateAmt) nounwind align 2 {
-entry:
-; CHECK: bug:
- %call = tail call i8* @calloc(i32 1, i32 32)
- %call.i = tail call i8* @calloc(i32 1, i32 32) nounwind
- %0 = bitcast i8* %call.i to i64*
- %rem.i = and i32 %rotateAmt, 63
- %div.i = lshr i32 %rotateAmt, 6
- %cmp.i = icmp eq i32 %rem.i, 0
- br i1 %cmp.i, label %for.cond.preheader.i, label %if.end.i
-
-for.cond.preheader.i: ; preds = %entry
- %sub.i = sub i32 4, %div.i
- %cmp23.i = icmp eq i32 %div.i, 4
- br i1 %cmp23.i, label %for.body9.lr.ph.i, label %for.body.lr.ph.i
-
-for.body.lr.ph.i: ; preds = %for.cond.preheader.i
- %pVal.i = getelementptr inbounds %struct.APInt* %this, i32 0, i32 0
- %.pre5.i = load i64** %pVal.i, align 4
- br label %for.body.i
-
-for.body.i: ; preds = %for.body.i, %for.body.lr.ph.i
- %i.04.i = phi i32 [ 0, %for.body.lr.ph.i ], [ %inc.i, %for.body.i ]
- %add.i = add i32 %i.04.i, %div.i
- %arrayidx.i = getelementptr inbounds i64* %.pre5.i, i32 %add.i
- %1 = load i64* %arrayidx.i, align 4
- %arrayidx3.i = getelementptr inbounds i64* %0, i32 %i.04.i
- store i64 %1, i64* %arrayidx3.i, align 4
- %inc.i = add i32 %i.04.i, 1
- %cmp2.i = icmp ult i32 %inc.i, %sub.i
- br i1 %cmp2.i, label %for.body.i, label %if.end.i
-
-if.end.i: ; preds = %for.body.i, %entry
- %cmp81.i = icmp eq i32 %div.i, 3
- br i1 %cmp81.i, label %_ZNK5APInt4lshrEj.exit, label %for.body9.lr.ph.i
-
-for.body9.lr.ph.i: ; preds = %if.end.i, %for.cond.preheader.i
- %sub58.i = sub i32 3, %div.i
- %pVal11.i = getelementptr inbounds %struct.APInt* %this, i32 0, i32 0
- %sh_prom.i = zext i32 %rem.i to i64
- %sub17.i = sub i32 64, %rem.i
- %sh_prom18.i = zext i32 %sub17.i to i64
- %.pre.i = load i64** %pVal11.i, align 4
- br label %for.body9.i
-
-for.body9.i: ; preds = %for.body9.i, %for.body9.lr.ph.i
-; CHECK: %for.body9.i
-; CHECK: movb
-; CHECK: shrdl
- %i6.02.i = phi i32 [ 0, %for.body9.lr.ph.i ], [ %inc21.i, %for.body9.i ]
- %add10.i = add i32 %i6.02.i, %div.i
- %arrayidx12.i = getelementptr inbounds i64* %.pre.i, i32 %add10.i
- %2 = load i64* %arrayidx12.i, align 4
- %shr.i = lshr i64 %2, %sh_prom.i
- %add14.i = add i32 %add10.i, 1
- %arrayidx16.i = getelementptr inbounds i64* %.pre.i, i32 %add14.i
- %3 = load i64* %arrayidx16.i, align 4
- %shl.i = shl i64 %3, %sh_prom18.i
- %or.i = or i64 %shl.i, %shr.i
- %arrayidx19.i = getelementptr inbounds i64* %0, i32 %i6.02.i
- store i64 %or.i, i64* %arrayidx19.i, align 4
- %inc21.i = add i32 %i6.02.i, 1
- %cmp8.i = icmp ult i32 %inc21.i, %sub58.i
- br i1 %cmp8.i, label %for.body9.i, label %_ZNK5APInt4lshrEj.exit
-
-_ZNK5APInt4lshrEj.exit: ; preds = %for.body9.i, %if.end.i
- %call.i1 = tail call i8* @calloc(i32 1, i32 32) nounwind
- %4 = getelementptr inbounds %struct.APInt* %agg.result, i32 0, i32 0
- store i64* %0, i64** %4, align 4
- ret void
-}
diff --git a/test/CodeGen/X86/2012-04-26-sdglue.ll b/test/CodeGen/X86/2012-04-26-sdglue.ll
index 04659522d3604..16706ae957f2b 100644
--- a/test/CodeGen/X86/2012-04-26-sdglue.ll
+++ b/test/CodeGen/X86/2012-04-26-sdglue.ll
@@ -4,9 +4,9 @@
; It's hard to test for the ISEL condition because CodeGen optimizes
; away the bugpointed code. Just ensure the basics are still there.
-;CHECK: func:
-;CHECK: vxorps
-;CHECK: vinsertf128
+;CHECK-LABEL: func:
+;CHECK: vpxor
+;CHECK: vinserti128
;CHECK: vpshufd
;CHECK: vpshufd
;CHECK: vmulps
diff --git a/test/CodeGen/X86/2012-05-17-TwoAddressBug.ll b/test/CodeGen/X86/2012-05-17-TwoAddressBug.ll
index 171c3f18dc8bc..881fa37f99cb8 100644
--- a/test/CodeGen/X86/2012-05-17-TwoAddressBug.ll
+++ b/test/CodeGen/X86/2012-05-17-TwoAddressBug.ll
@@ -6,7 +6,7 @@
; rdar://11472010
define i32 @t(i32 %mask) nounwind readnone ssp {
entry:
-; CHECK: t:
+; CHECK-LABEL: t:
; CHECK-NOT: mov
%sub = add i32 %mask, -65535
%shr = lshr i32 %sub, 23
diff --git a/test/CodeGen/X86/2012-07-10-extload64.ll b/test/CodeGen/X86/2012-07-10-extload64.ll
index 4abdded38d8cc..723302723b6ba 100644
--- a/test/CodeGen/X86/2012-07-10-extload64.ll
+++ b/test/CodeGen/X86/2012-07-10-extload64.ll
@@ -13,7 +13,7 @@ entry:
}
; Make sure that we store a 64bit value, even on 32bit systems.
-;CHECK: store_64
+;CHECK-LABEL: store_64:
define void @store_64(<2 x i32>* %ptr) {
BB:
store <2 x i32> zeroinitializer, <2 x i32>* %ptr
@@ -22,7 +22,7 @@ BB:
;CHECK: ret
}
-;CHECK: load_64
+;CHECK-LABEL: load_64:
define <2 x i32> @load_64(<2 x i32>* %ptr) {
BB:
%t = load <2 x i32>* %ptr
diff --git a/test/CodeGen/X86/2012-07-15-broadcastfold.ll b/test/CodeGen/X86/2012-07-15-broadcastfold.ll
index 2c7dfc8dfd452..1c39c747cdc8d 100644
--- a/test/CodeGen/X86/2012-07-15-broadcastfold.ll
+++ b/test/CodeGen/X86/2012-07-15-broadcastfold.ll
@@ -2,7 +2,7 @@
declare x86_fastcallcc i64 @barrier()
-;CHECK: bcast_fold
+;CHECK-LABEL: bcast_fold:
;CHECK: vmov{{[au]}}ps %xmm{{[0-9]+}}, [[SPILLED:[^\)]+\)]]
;CHECK: barrier
;CHECK: vbroadcastss [[SPILLED]], %ymm0
diff --git a/test/CodeGen/X86/2012-08-07-CmpISelBug.ll b/test/CodeGen/X86/2012-08-07-CmpISelBug.ll
index 000b853ab8f6e..eba970e711ae0 100644
--- a/test/CodeGen/X86/2012-08-07-CmpISelBug.ll
+++ b/test/CodeGen/X86/2012-08-07-CmpISelBug.ll
@@ -6,7 +6,7 @@
define void @foo(i8 %arg4, i32 %arg5, i32* %arg14) nounwind {
bb:
-; CHECK: foo:
+; CHECK-LABEL: foo:
; CHECK-NOT: testl
; CHECK: testb
%tmp48 = zext i8 %arg4 to i32
diff --git a/test/CodeGen/X86/2012-08-16-setcc.ll b/test/CodeGen/X86/2012-08-16-setcc.ll
index ed511567c32b4..c03b923cadba2 100644
--- a/test/CodeGen/X86/2012-08-16-setcc.ll
+++ b/test/CodeGen/X86/2012-08-16-setcc.ll
@@ -2,7 +2,7 @@
; rdar://12081007
-; CHECK: and_1:
+; CHECK-LABEL: and_1:
; CHECK: andb
; CHECK-NEXT: cmovnel
; CHECK: ret
@@ -13,7 +13,7 @@ define i32 @and_1(i8 zeroext %a, i8 zeroext %b, i32 %x) {
ret i32 %3
}
-; CHECK: and_2:
+; CHECK-LABEL: and_2:
; CHECK: andb
; CHECK-NEXT: setne
; CHECK: ret
@@ -23,7 +23,7 @@ define zeroext i1 @and_2(i8 zeroext %a, i8 zeroext %b) {
ret i1 %2
}
-; CHECK: xor_1:
+; CHECK-LABEL: xor_1:
; CHECK: xorb
; CHECK-NEXT: cmovnel
; CHECK: ret
@@ -34,7 +34,7 @@ define i32 @xor_1(i8 zeroext %a, i8 zeroext %b, i32 %x) {
ret i32 %3
}
-; CHECK: xor_2:
+; CHECK-LABEL: xor_2:
; CHECK: xorb
; CHECK-NEXT: setne
; CHECK: ret
diff --git a/test/CodeGen/X86/2012-08-17-legalizer-crash.ll b/test/CodeGen/X86/2012-08-17-legalizer-crash.ll
index a65e6881540db..971e56d20ea28 100644
--- a/test/CodeGen/X86/2012-08-17-legalizer-crash.ll
+++ b/test/CodeGen/X86/2012-08-17-legalizer-crash.ll
@@ -25,8 +25,7 @@ if.then: ; preds = %entry
if.end: ; preds = %if.then, %entry
ret void
-; CHECK: fn1:
+; CHECK-LABEL: fn1:
; CHECK: shrq $32, [[REG:%.*]]
-; CHECK: testq [[REG]], [[REG]]
; CHECK: je
}
diff --git a/test/CodeGen/X86/2012-1-10-buildvector.ll b/test/CodeGen/X86/2012-1-10-buildvector.ll
index ff6be369dc571..a5f64c5eaf552 100644
--- a/test/CodeGen/X86/2012-1-10-buildvector.ll
+++ b/test/CodeGen/X86/2012-1-10-buildvector.ll
@@ -3,7 +3,7 @@
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f80:128:128-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32-S32"
target triple = "i686-pc-win32"
-;CHECK: bad_cast
+;CHECK-LABEL: bad_cast:
define void @bad_cast() {
entry:
%vext.i = shufflevector <2 x i64> undef, <2 x i64> undef, <3 x i32> <i32 0, i32 1, i32 undef>
@@ -14,7 +14,7 @@ entry:
}
-;CHECK: bad_insert
+;CHECK-LABEL: bad_insert:
define void @bad_insert(i32 %t) {
entry:
;CHECK: vpinsrd
diff --git a/test/CodeGen/X86/2012-11-30-handlemove-dbg.ll b/test/CodeGen/X86/2012-11-30-handlemove-dbg.ll
index 9164eb9c69124..d41b43228b6c6 100644
--- a/test/CodeGen/X86/2012-11-30-handlemove-dbg.ll
+++ b/test/CodeGen/X86/2012-11-30-handlemove-dbg.ll
@@ -6,7 +6,7 @@
;
; CHECK: %entry
; CHECK: DEBUG_VALUE: hg
-; CHECK: je
+; CHECK: j
%struct.node.0.27 = type { i16, double, [3 x double], i32, i32 }
%struct.hgstruct.2.29 = type { %struct.bnode.1.28*, [3 x double], double, [3 x double] }
@@ -36,13 +36,15 @@ return: ; preds = %for.cond.preheader,
declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
!llvm.dbg.cu = !{!0}
+!llvm.module.flags = !{!12}
-!0 = metadata !{i32 786449, i32 0, i32 12, metadata !"MultiSource/Benchmarks/Olden/bh/newbh.c", metadata !"MultiSource/Benchmarks/Olden/bh", metadata !"clang version 3.3 (trunk 168918) (llvm/trunk 168920)", i1 true, i1 true, metadata !"", i32 0, metadata !1, metadata !1, metadata !1, metadata !3} ; [ DW_TAG_compile_unit ] [MultiSource/Benchmarks/Olden/bh/newbh.c] [DW_LANG_C99]
+!0 = metadata !{i32 786449, metadata !11, i32 12, metadata !"clang version 3.3 (trunk 168918) (llvm/trunk 168920)", i1 true, metadata !"", i32 0, metadata !2, metadata !2, metadata !2, metadata !3, null, metadata !""} ; [ DW_TAG_compile_unit ] [MultiSource/Benchmarks/Olden/bh/newbh.c] [DW_LANG_C99]
!1 = metadata !{metadata !2}
!2 = metadata !{i32 0}
!3 = metadata !{null}
!4 = metadata !{i32 786689, null, metadata !"hg", metadata !5, i32 67109589, metadata !6, i32 0, i32 0} ; [ DW_TAG_arg_variable ] [hg] [line 725]
!5 = metadata !{i32 786473, metadata !11} ; [ DW_TAG_file_type ]
!6 = metadata !{i32 786454, metadata !11, null, metadata !"hgstruct", i32 492, i64 0, i64 0, i64 0, i32 0, metadata !7} ; [ DW_TAG_typedef ] [hgstruct] [line 492, size 0, align 0, offset 0] [from ]
-!7 = metadata !{i32 786451, metadata !11, null, metadata !"", i32 487, i64 512, i64 64, i32 0, i32 0, null, null, i32 0, i32 0, i32 0} ; [ DW_TAG_structure_type ] [line 487, size 512, align 64, offset 0] [from ]
+!7 = metadata !{i32 786451, metadata !11, null, metadata !"", i32 487, i64 512, i64 64, i32 0, i32 0, null, null, i32 0, null, i32 0, null} ; [ DW_TAG_structure_type ] [line 487, size 512, align 64, offset 0] [def] [from ]
!11 = metadata !{metadata !"MultiSource/Benchmarks/Olden/bh/newbh.c", metadata !"MultiSource/Benchmarks/Olden/bh"}
+!12 = metadata !{i32 1, metadata !"Debug Info Version", i32 1}
diff --git a/test/CodeGen/X86/2012-11-30-misched-dbg.ll b/test/CodeGen/X86/2012-11-30-misched-dbg.ll
index a0fbbb2ff9ef3..7befa6b4757db 100644
--- a/test/CodeGen/X86/2012-11-30-misched-dbg.ll
+++ b/test/CodeGen/X86/2012-11-30-misched-dbg.ll
@@ -63,8 +63,9 @@ if.else4114: ; preds = %if.then4073
declare i32 @__sprintf_chk(i8*, i32, i64, i8*, ...)
!llvm.dbg.cu = !{!0}
+!llvm.module.flags = !{!35}
-!0 = metadata !{i32 786449, i32 0, i32 12, metadata !"MultiSource/Benchmarks/MiBench/consumer-typeset/z19.c", metadata !"MultiSource/Benchmarks/MiBench/consumer-typeset", metadata !"clang version 3.3 (trunk 168918) (llvm/trunk 168920)", i1 true, i1 true, metadata !"", i32 0, metadata !1, metadata !1, metadata !3, metadata !1} ; [ DW_TAG_compile_unit ] [MultiSource/Benchmarks/MiBench/consumer-typeset/MultiSource/Benchmarks/MiBench/consumer-typeset/z19.c] [DW_LANG_C99]
+!0 = metadata !{i32 786449, metadata !19, i32 12, metadata !"clang version 3.3 (trunk 168918) (llvm/trunk 168920)", i1 true, metadata !"", i32 0, metadata !2, metadata !2, metadata !3, metadata !2, null, metadata !""} ; [ DW_TAG_compile_unit ] [MultiSource/Benchmarks/MiBench/consumer-typeset/MultiSource/Benchmarks/MiBench/consumer-typeset/z19.c] [DW_LANG_C99]
!1 = metadata !{metadata !2}
!2 = metadata !{i32 0}
!3 = metadata !{}
@@ -79,7 +80,7 @@ declare i32 @__sprintf_chk(i8*, i32, i64, i8*, ...)
!12 = metadata !{i32 786443, metadata !13, i32 249, i32 0, metadata !14, i32 23} ; [ DW_TAG_lexical_block ] [MultiSource/Benchmarks/MiBench/consumer-typeset/z19.c]
!13 = metadata !{i32 786443, metadata !3, i32 221, i32 0, metadata !14, i32 19} ; [ DW_TAG_lexical_block ] [MultiSource/Benchmarks/MiBench/consumer-typeset/z19.c]
!14 = metadata !{i32 786473, metadata !19} ; [ DW_TAG_file_type ]
-!15 = metadata !{i32 786433, null, null, metadata !"", i32 0, i64 160, i64 8, i32 0, i32 0, metadata !16, metadata !17, i32 0, i32 0} ; [ DW_TAG_array_type ] [line 0, size 160, align 8, offset 0] [from char]
+!15 = metadata !{i32 786433, null, null, metadata !"", i32 0, i64 160, i64 8, i32 0, i32 0, metadata !16, metadata !17, i32 0, null, null, null} ; [ DW_TAG_array_type ] [line 0, size 160, align 8, offset 0] [from char]
!16 = metadata !{i32 786468, null, null, metadata !"char", i32 0, i64 8, i64 8, i64 0, i32 0, i32 6} ; [ DW_TAG_base_type ] [char] [line 0, size 8, align 8, offset 0, enc DW_ATE_signed_char]
!17 = metadata !{metadata !18}
!18 = metadata !{i32 786465, i64 0, i64 20} ; [ DW_TAG_subrange_type ] [0, 19]
@@ -129,8 +130,9 @@ declare void @_Znwm()
!llvm.dbg.cu = !{!30}
-!30 = metadata !{i32 786449, i32 0, i32 4, metadata !"SingleSource/Benchmarks/Shootout-C++/hash.cpp", metadata !"SingleSource/Benchmarks/Shootout-C++", metadata !"clang version 3.3 (trunk 169129) (llvm/trunk 169135)", i1 true, i1 true, metadata !"", i32 0, null, null, null, null} ; [ DW_TAG_compile_unit ] [SingleSource/Benchmarks/Shootout-C++/hash.cpp] [DW_LANG_C_plus_plus]
+!30 = metadata !{i32 786449, metadata !34, i32 4, metadata !"clang version 3.3 (trunk 169129) (llvm/trunk 169135)", i1 true, metadata !"", i32 0, metadata !2, metadata !2, null, null, null, metadata !""} ; [ DW_TAG_compile_unit ] [SingleSource/Benchmarks/Shootout-C++/hash.cpp] [DW_LANG_C_plus_plus]
!31 = metadata !{i32 786688, null, metadata !"X", null, i32 29, metadata !32, i32 0, i32 0} ; [ DW_TAG_auto_variable ] [X] [line 29]
!32 = metadata !{i32 786454, metadata !34, null, metadata !"HM", i32 28, i64 0, i64 0, i64 0, i32 0, null} ; [ DW_TAG_typedef ] [HM] [line 28, size 0, align 0, offset 0] [from ]
!33 = metadata !{i32 786473, metadata !34} ; [ DW_TAG_file_type ]
!34 = metadata !{metadata !"SingleSource/Benchmarks/Shootout-C++/hash.cpp", metadata !"SingleSource/Benchmarks/Shootout-C++"}
+!35 = metadata !{i32 1, metadata !"Debug Info Version", i32 1}
diff --git a/test/CodeGen/X86/2012-11-30-regpres-dbg.ll b/test/CodeGen/X86/2012-11-30-regpres-dbg.ll
index df93c5647d954..5aec3d92c70fa 100644
--- a/test/CodeGen/X86/2012-11-30-regpres-dbg.ll
+++ b/test/CodeGen/X86/2012-11-30-regpres-dbg.ll
@@ -34,11 +34,13 @@ invoke.cont44: ; preds = %if.end
}
!llvm.dbg.cu = !{!0}
+!llvm.module.flags = !{!8}
-!0 = metadata !{i32 786449, i32 0, i32 4, metadata !"MultiSource/Benchmarks/Bullet/btCompoundCollisionAlgorithm.cpp", metadata !"MultiSource/Benchmarks/Bullet", metadata !"clang version 3.3 (trunk 168984) (llvm/trunk 168983)", i1 true, i1 true, metadata !"", i32 0, metadata !1, null, null, null} ; [ DW_TAG_compile_unit ] [MultiSource/Benchmarks/Bullet/MultiSource/Benchmarks/Bullet/btCompoundCollisionAlgorithm.cpp] [DW_LANG_C_plus_plus]
-!1 = metadata !{metadata !2}
-!2 = metadata !{null, null}
+!0 = metadata !{i32 786449, metadata !6, i32 4, metadata !"clang version 3.3 (trunk 168984) (llvm/trunk 168983)", i1 true, metadata !"", i32 0, metadata !2, metadata !7, null, null, null, metadata !""} ; [ DW_TAG_compile_unit ] [MultiSource/Benchmarks/Bullet/MultiSource/Benchmarks/Bullet/btCompoundCollisionAlgorithm.cpp] [DW_LANG_C_plus_plus]
+!2 = metadata !{null}
!3 = metadata !{i32 786688, null, metadata !"callback", null, i32 214, metadata !4, i32 0, i32 0} ; [ DW_TAG_auto_variable ] [callback] [line 214]
-!4 = metadata !{i32 786451, metadata !6, null, metadata !"btCompoundLeafCallback", i32 90, i64 512, i64 64, i32 0, i32 0, null, null, i32 0, null, null} ; [ DW_TAG_structure_type ] [btCompoundLeafCallback] [line 90, size 512, align 64, offset 0] [from ]
+!4 = metadata !{i32 786451, metadata !6, null, metadata !"btCompoundLeafCallback", i32 90, i64 512, i64 64, i32 0, i32 0, null, null, i32 0, null, null, null} ; [ DW_TAG_structure_type ] [btCompoundLeafCallback] [line 90, size 512, align 64, offset 0] [def] [from ]
!5 = metadata !{i32 786473, metadata !6} ; [ DW_TAG_file_type ]
!6 = metadata !{metadata !"MultiSource/Benchmarks/Bullet/btCompoundCollisionAlgorithm.cpp", metadata !"MultiSource/Benchmarks/Bullet"}
+!7 = metadata !{i32 0}
+!8 = metadata !{i32 1, metadata !"Debug Info Version", i32 1}
diff --git a/test/CodeGen/X86/2013-03-13-VEX-DestReg.ll b/test/CodeGen/X86/2013-03-13-VEX-DestReg.ll
index f0c7781fafe9c..0ff9d3951d5be 100644
--- a/test/CodeGen/X86/2013-03-13-VEX-DestReg.ll
+++ b/test/CodeGen/X86/2013-03-13-VEX-DestReg.ll
@@ -23,6 +23,6 @@ entry:
declare <4 x float> @llvm.x86.sse.rcp.ss(<4 x float>) #1
-attributes #0 = { nounwind ssp uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf"="true" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" }
+attributes #0 = { nounwind ssp uwtable "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" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { nounwind readnone }
attributes #2 = { nounwind }
diff --git a/test/CodeGen/X86/2013-10-14-FastISel-incorrect-vreg.ll b/test/CodeGen/X86/2013-10-14-FastISel-incorrect-vreg.ll
new file mode 100644
index 0000000000000..3455b68fb0e6f
--- /dev/null
+++ b/test/CodeGen/X86/2013-10-14-FastISel-incorrect-vreg.ll
@@ -0,0 +1,132 @@
+; RUN: llc -mtriple x86_64-apple-darwin -O0 < %s -o - | FileCheck %s
+;
+; During X86 fastisel, the address of indirect call was resolved
+; through bitcast, ptrtoint, and inttoptr instructions. This is valid
+; only if the related instructions are in that same basic block, otherwise
+; we may reference variables that were not live accross basic blocks
+; resulting in undefined virtual registers.
+;
+; In this example, this is illustrated by a the spill/reload of the
+; LOADED_PTR_SLOT.
+;
+; Before this patch, the compiler was accessing two different spill
+; slots.
+; <rdar://problem/15192473>
+
+; CHECK-LABEL: @test_bitcast
+; Load the value of the function pointer: %loaded_ptr
+; CHECK: movq (%rdi), [[LOADED_PTR:%[a-z]+]]
+; Spill %arg2.
+; CHECK: movq %rdx, [[ARG2_SLOT:[0-9]*\(%[a-z]+\)]]
+; Spill %loaded_ptr.
+; CHECK: movq [[LOADED_PTR]], [[LOADED_PTR_SLOT:[0-9]*\(%[a-z]+\)]]
+; Perform the indirect call.
+; Load the first argument
+; CHECK: movq [[ARG2_SLOT]], %rdi
+; Load the second argument
+; CHECK: movq [[ARG2_SLOT]], %rsi
+; Load the thrid argument
+; CHECK: movq [[ARG2_SLOT]], %rdx
+; Load the function pointer.
+; CHECK: movq [[LOADED_PTR_SLOT]], [[FCT_PTR:%[a-z]+]]
+; Call.
+; CHECK: callq *[[FCT_PTR]]
+; CHECK: ret
+define i64 @test_bitcast(i64 (i64, i64, i64)** %arg, i1 %bool, i64 %arg2) {
+entry:
+ %loaded_ptr = load i64 (i64, i64, i64)** %arg, align 8
+ %raw = bitcast i64 (i64, i64, i64)* %loaded_ptr to i8*
+ switch i1 %bool, label %default [
+ i1 true, label %label_true
+ i1 false, label %label_end
+ ]
+default:
+ unreachable
+
+label_true:
+ br label %label_end
+
+label_end:
+ %fct_ptr = bitcast i8* %raw to i64 (i64, i64, i64)*
+ %res = call i64 %fct_ptr(i64 %arg2, i64 %arg2, i64 %arg2)
+ ret i64 %res
+}
+
+; CHECK-LABEL: @test_inttoptr
+; Load the value of the function pointer: %loaded_ptr
+; CHECK: movq (%rdi), [[LOADED_PTR:%[a-z]+]]
+; Spill %arg2.
+; CHECK: movq %rdx, [[ARG2_SLOT:[0-9]*\(%[a-z]+\)]]
+; Spill %loaded_ptr.
+; CHECK: movq [[LOADED_PTR]], [[LOADED_PTR_SLOT:[0-9]*\(%[a-z]+\)]]
+; Perform the indirect call.
+; Load the first argument
+; CHECK: movq [[ARG2_SLOT]], %rdi
+; Load the second argument
+; CHECK: movq [[ARG2_SLOT]], %rsi
+; Load the thrid argument
+; CHECK: movq [[ARG2_SLOT]], %rdx
+; Load the function pointer.
+; CHECK: movq [[LOADED_PTR_SLOT]], [[FCT_PTR:%[a-z]+]]
+; Call.
+; CHECK: callq *[[FCT_PTR]]
+; CHECK: ret
+define i64 @test_inttoptr(i64 (i64, i64, i64)** %arg, i1 %bool, i64 %arg2) {
+entry:
+ %loaded_ptr = load i64 (i64, i64, i64)** %arg, align 8
+ %raw = ptrtoint i64 (i64, i64, i64)* %loaded_ptr to i64
+ switch i1 %bool, label %default [
+ i1 true, label %label_true
+ i1 false, label %label_end
+ ]
+default:
+ unreachable
+
+label_true:
+ br label %label_end
+
+label_end:
+ %fct_ptr = inttoptr i64 %raw to i64 (i64, i64, i64)*
+ %res = call i64 %fct_ptr(i64 %arg2, i64 %arg2, i64 %arg2)
+ ret i64 %res
+}
+
+; CHECK-LABEL: @test_ptrtoint
+; Load the value of the function pointer: %loaded_ptr
+; CHECK: movq (%rdi), [[LOADED_PTR:%[a-z]+]]
+; Spill %arg2.
+; CHECK: movq %rdx, [[ARG2_SLOT:[0-9]*\(%[a-z]+\)]]
+; Spill %loaded_ptr.
+; CHECK: movq [[LOADED_PTR]], [[LOADED_PTR_SLOT:[0-9]*\(%[a-z]+\)]]
+; Perform the indirect call.
+; Load the first argument
+; CHECK: movq [[ARG2_SLOT]], %rdi
+; Load the second argument
+; CHECK: movq [[ARG2_SLOT]], %rsi
+; Load the thrid argument
+; CHECK: movq [[ARG2_SLOT]], %rdx
+; Load the function pointer.
+; CHECK: movq [[LOADED_PTR_SLOT]], [[FCT_PTR:%[a-z]+]]
+; Call.
+; CHECK: callq *[[FCT_PTR]]
+; CHECK: ret
+define i64 @test_ptrtoint(i64 (i64, i64, i64)** %arg, i1 %bool, i64 %arg2) {
+entry:
+ %loaded_ptr = load i64 (i64, i64, i64)** %arg, align 8
+ %raw = bitcast i64 (i64, i64, i64)* %loaded_ptr to i8*
+ switch i1 %bool, label %default [
+ i1 true, label %label_true
+ i1 false, label %label_end
+ ]
+default:
+ unreachable
+
+label_true:
+ br label %label_end
+
+label_end:
+ %fct_int = ptrtoint i8* %raw to i64
+ %fct_ptr = inttoptr i64 %fct_int to i64 (i64, i64, i64)*
+ %res = call i64 %fct_ptr(i64 %arg2, i64 %arg2, i64 %arg2)
+ ret i64 %res
+}
diff --git a/test/CodeGen/X86/3addr-16bit.ll b/test/CodeGen/X86/3addr-16bit.ll
index c51247ab925a5..fafdfdb748118 100644
--- a/test/CodeGen/X86/3addr-16bit.ll
+++ b/test/CodeGen/X86/3addr-16bit.ll
@@ -5,12 +5,12 @@
define zeroext i16 @t1(i16 zeroext %c, i16 zeroext %k) nounwind ssp {
entry:
-; 32BIT: t1:
+; 32BIT-LABEL: t1:
; 32BIT: movw 20(%esp), %ax
; 32BIT-NOT: movw %ax, %cx
; 32BIT: leal 1(%eax), %ecx
-; 64BIT: t1:
+; 64BIT-LABEL: t1:
; 64BIT-NOT: movw %si, %ax
; 64BIT: leal 1(%rsi), %eax
%0 = icmp eq i16 %k, %c ; <i1> [#uses=1]
@@ -27,14 +27,15 @@ bb1: ; preds = %entry
define zeroext i16 @t2(i16 zeroext %c, i16 zeroext %k) nounwind ssp {
entry:
-; 32BIT: t2:
+; 32BIT-LABEL: t2:
; 32BIT: movw 20(%esp), %ax
; 32BIT-NOT: movw %ax, %cx
; 32BIT: leal -1(%eax), %ecx
-; 64BIT: t2:
+; 64BIT-LABEL: t2:
; 64BIT-NOT: movw %si, %ax
-; 64BIT: leal -1(%rsi), %eax
+; 64BIT: decl %eax
+; 64BIT: movzwl %ax
%0 = icmp eq i16 %k, %c ; <i1> [#uses=1]
%1 = add i16 %k, -1 ; <i16> [#uses=3]
br i1 %0, label %bb, label %bb1
@@ -51,14 +52,14 @@ declare void @foo(i16 zeroext)
define zeroext i16 @t3(i16 zeroext %c, i16 zeroext %k) nounwind ssp {
entry:
-; 32BIT: t3:
+; 32BIT-LABEL: t3:
; 32BIT: movw 20(%esp), %ax
; 32BIT-NOT: movw %ax, %cx
; 32BIT: leal 2(%eax), %ecx
-; 64BIT: t3:
+; 64BIT-LABEL: t3:
; 64BIT-NOT: movw %si, %ax
-; 64BIT: leal 2(%rsi), %eax
+; 64BIT: addl $2, %eax
%0 = add i16 %k, 2 ; <i16> [#uses=3]
%1 = icmp eq i16 %k, %c ; <i1> [#uses=1]
br i1 %1, label %bb, label %bb1
@@ -73,15 +74,15 @@ bb1: ; preds = %entry
define zeroext i16 @t4(i16 zeroext %c, i16 zeroext %k) nounwind ssp {
entry:
-; 32BIT: t4:
+; 32BIT-LABEL: t4:
; 32BIT: movw 16(%esp), %ax
; 32BIT: movw 20(%esp), %cx
; 32BIT-NOT: movw %cx, %dx
; 32BIT: leal (%ecx,%eax), %edx
-; 64BIT: t4:
+; 64BIT-LABEL: t4:
; 64BIT-NOT: movw %si, %ax
-; 64BIT: leal (%rsi,%rdi), %eax
+; 64BIT: addl %edi, %eax
%0 = add i16 %k, %c ; <i16> [#uses=3]
%1 = icmp eq i16 %k, %c ; <i1> [#uses=1]
br i1 %1, label %bb, label %bb1
diff --git a/test/CodeGen/X86/3addr-or.ll b/test/CodeGen/X86/3addr-or.ll
index 912bdc215474e..76fabbf0f6ae1 100644
--- a/test/CodeGen/X86/3addr-or.ll
+++ b/test/CodeGen/X86/3addr-or.ll
@@ -3,7 +3,7 @@
define i32 @test1(i32 %x) nounwind readnone ssp {
entry:
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: leal 3(%rdi), %eax
%0 = shl i32 %x, 5 ; <i32> [#uses=1]
%1 = or i32 %0, 3 ; <i32> [#uses=1]
@@ -11,7 +11,7 @@ entry:
}
define i64 @test2(i8 %A, i8 %B) nounwind {
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK: shrq $4
; CHECK-NOT: movq
; CHECK-NOT: orq
@@ -31,7 +31,7 @@ define i64 @test2(i8 %A, i8 %B) nounwind {
define void @test3(i32 %x, i32* %P) nounwind readnone ssp {
entry:
; No reason to emit an add here, should be an or.
-; CHECK: test3:
+; CHECK-LABEL: test3:
; CHECK: orl $3, %edi
%0 = shl i32 %x, 5
%1 = or i32 %0, 3
@@ -45,7 +45,7 @@ entry:
%and2 = and i32 %b, 16
%or = or i32 %and2, %and
ret i32 %or
-; CHECK: test4:
+; CHECK-LABEL: test4:
; CHECK: leal (%rsi,%rdi), %eax
}
@@ -56,6 +56,6 @@ entry:
%or = or i32 %and2, %and
store i32 %or, i32* %P, align 4
ret void
-; CHECK: test5:
+; CHECK-LABEL: test5:
; CHECK: orl
}
diff --git a/test/CodeGen/X86/GC/lit.local.cfg b/test/CodeGen/X86/GC/lit.local.cfg
index a8ad0f1a28b23..ba763cf03ffcc 100644
--- a/test/CodeGen/X86/GC/lit.local.cfg
+++ b/test/CodeGen/X86/GC/lit.local.cfg
@@ -1,5 +1,3 @@
-config.suffixes = ['.ll', '.c', '.cpp']
-
targets = set(config.root.targets_to_build.split())
if not 'X86' in targets:
config.unsupported = True
diff --git a/test/CodeGen/X86/GC/ocaml-gc-assert.ll b/test/CodeGen/X86/GC/ocaml-gc-assert.ll
new file mode 100644
index 0000000000000..b32ceca63441f
--- /dev/null
+++ b/test/CodeGen/X86/GC/ocaml-gc-assert.ll
@@ -0,0 +1,21 @@
+; RUN: llc < %s -mtriple=x86_64-apple-darwin | FileCheck %s
+; PR3168
+
+; CHECK-LABEL: append
+
+define i32* @append() gc "ocaml" {
+entry:
+ switch i32 0, label %L2 [i32 0, label %L1]
+L1:
+ %var8 = alloca i8*
+ call void @llvm.gcroot(i8** %var8,i8* null)
+ br label %L3
+L2:
+ call ccc void @oread_runtime_casenotcovered()
+ unreachable
+L3:
+ ret i32* null
+}
+
+declare ccc void @oread_runtime_casenotcovered()
+declare void @llvm.gcroot(i8**,i8*)
diff --git a/test/CodeGen/X86/GC/ocaml-gc.ll b/test/CodeGen/X86/GC/ocaml-gc.ll
index 44241a90d0e7a..6d5f8aebe1399 100644
--- a/test/CodeGen/X86/GC/ocaml-gc.ll
+++ b/test/CodeGen/X86/GC/ocaml-gc.ll
@@ -2,23 +2,23 @@
define i32 @main(i32 %x) nounwind gc "ocaml" {
; CHECK: .text
-; CHECK-NEXT: .globl caml_3C_stdin_3E___code_begin
-; CHECK-NEXT: caml_3C_stdin_3E___code_begin:
+; CHECK-NEXT: .globl "caml<stdin>__code_begin"
+; CHECK-NEXT: "caml<stdin>__code_begin":
; CHECK-NEXT: .data
-; CHECK-NEXT: .globl caml_3C_stdin_3E___data_begin
-; CHECK-NEXT: caml_3C_stdin_3E___data_begin:
+; CHECK-NEXT: .globl "caml<stdin>__data_begin"
+; CHECK-NEXT: "caml<stdin>__data_begin":
%puts = tail call i32 @foo(i32 %x)
ret i32 0
-; CHECK: .globl caml_3C_stdin_3E___code_end
-; CHECK-NEXT: caml_3C_stdin_3E___code_end:
+; CHECK: .globl "caml<stdin>__code_end"
+; CHECK-NEXT: "caml<stdin>__code_end":
; CHECK-NEXT: .data
-; CHECK-NEXT: .globl caml_3C_stdin_3E___data_end
-; CHECK-NEXT: caml_3C_stdin_3E___data_end:
+; CHECK-NEXT: .globl "caml<stdin>__data_end"
+; CHECK-NEXT: "caml<stdin>__data_end":
; CHECK-NEXT: .quad 0
-; CHECK-NEXT: .globl caml_3C_stdin_3E___frametable
-; CHECK-NEXT: caml_3C_stdin_3E___frametable:
+; CHECK-NEXT: .globl "caml<stdin>__frametable"
+; CHECK-NEXT: "caml<stdin>__frametable":
; CHECK-NEXT: .short 1
; CHECK-NEXT: .align 8
; CHECK-NEXT: # live roots for main
diff --git a/test/CodeGen/X86/MachineSink-CritEdge.ll b/test/CodeGen/X86/MachineSink-CritEdge.ll
index 74a1049772a02..bc058354a21f0 100644
--- a/test/CodeGen/X86/MachineSink-CritEdge.ll
+++ b/test/CodeGen/X86/MachineSink-CritEdge.ll
@@ -30,10 +30,10 @@ land.lhs.true:
%cmp4 = icmp eq i32 %call3, 10
br i1 %cmp4, label %do.body.preheader, label %if.then
-; %shl.i should be sinked all the way down to do.body.preheader, but not into the loop.
+; %add16.i should be sinked all the way down to do.body.preheader, but not into the loop.
; CHECK: do.body.preheader
; CHECK-NOT: do.body
-; CHECK: shll $12
+; CHECK: leal ([[SRC:%r[a-z0-9]+]],[[SRC]],8)
do.body.preheader:
%xor29.i = xor i32 %shr27.i, %add25.i
diff --git a/test/CodeGen/X86/MachineSink-DbgValue.ll b/test/CodeGen/X86/MachineSink-DbgValue.ll
index 13a6444a496b2..584e644ed51fa 100644
--- a/test/CodeGen/X86/MachineSink-DbgValue.ll
+++ b/test/CodeGen/X86/MachineSink-DbgValue.ll
@@ -26,17 +26,18 @@ bb2:
declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
!llvm.dbg.cu = !{!0}
+!llvm.module.flags = !{!22}
-!0 = metadata !{i32 786449, metadata !20, i32 12, metadata !"Apple clang version 3.0 (tags/Apple/clang-211.10.1) (based on LLVM 3.0svn)", i1 true, metadata !"", i32 0, null, null, metadata !18, null, null, null} ; [ DW_TAG_compile_unit ]
-!1 = metadata !{i32 786478, metadata !2, metadata !"foo", metadata !"foo", metadata !"", metadata !2, i32 2, metadata !3, i1 false, i1 true, i32 0, i32 0, i32 0, i32 256, i1 true, i32 (i32, i32*)* @foo, null, null, metadata !19, i32 0} ; [ DW_TAG_subprogram ]
+!0 = metadata !{i32 786449, metadata !20, i32 12, metadata !"Apple clang version 3.0 (tags/Apple/clang-211.10.1) (based on LLVM 3.0svn)", i1 true, metadata !"", i32 0, metadata !21, metadata !21, metadata !18, null, null, null} ; [ DW_TAG_compile_unit ]
+!1 = metadata !{i32 786478, metadata !20, metadata !2, metadata !"foo", metadata !"foo", metadata !"", i32 2, metadata !3, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 true, i32 (i32, i32*)* @foo, null, null, metadata !19, i32 0} ; [ DW_TAG_subprogram ] [line 2] [def] [scope 0] [foo]
!2 = metadata !{i32 786473, metadata !20} ; [ DW_TAG_file_type ]
-!3 = metadata !{i32 786453, metadata !2, metadata !"", metadata !2, i32 0, i64 0, i64 0, i32 0, i32 0, i32 0, metadata !4, i32 0, i32 0} ; [ DW_TAG_subroutine_type ]
+!3 = metadata !{i32 786453, metadata !20, metadata !2, metadata !"", i32 0, i64 0, i64 0, i32 0, i32 0, null, metadata !4, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
!4 = metadata !{metadata !5}
-!5 = metadata !{i32 786468, metadata !0, metadata !"int", null, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
+!5 = metadata !{i32 786468, null, metadata !0, metadata !"int", i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
!6 = metadata !{i32 786689, metadata !1, metadata !"i", metadata !2, i32 16777218, metadata !5, i32 0, null} ; [ DW_TAG_arg_variable ]
!7 = metadata !{i32 786689, metadata !1, metadata !"c", metadata !2, i32 33554434, metadata !8, i32 0, null} ; [ DW_TAG_arg_variable ]
-!8 = metadata !{i32 786447, metadata !0, metadata !"", null, i32 0, i64 64, i64 64, i64 0, i32 0, metadata !9} ; [ DW_TAG_pointer_type ]
-!9 = metadata !{i32 786468, metadata !0, metadata !"char", null, i32 0, i64 8, i64 8, i64 0, i32 0, i32 6} ; [ DW_TAG_base_type ]
+!8 = metadata !{i32 786447, null, metadata !0, metadata !"", i32 0, i64 64, i64 64, i64 0, i32 0, metadata !9} ; [ DW_TAG_pointer_type ]
+!9 = metadata !{i32 786468, null, metadata !0, metadata !"char", i32 0, i64 8, i64 8, i64 0, i32 0, i32 6} ; [ DW_TAG_base_type ]
!10 = metadata !{i32 786688, metadata !11, metadata !"a", metadata !2, i32 3, metadata !9, i32 0, null} ; [ DW_TAG_auto_variable ]
!11 = metadata !{i32 786443, metadata !20, metadata !1, i32 2, i32 25, i32 0} ; [ DW_TAG_lexical_block ]
!12 = metadata !{i32 2, i32 13, metadata !1, null}
@@ -48,3 +49,5 @@ declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
!18 = metadata !{metadata !1}
!19 = metadata !{metadata !6, metadata !7, metadata !10}
!20 = metadata !{metadata !"a.c", metadata !"/private/tmp"}
+!21 = metadata !{i32 0}
+!22 = metadata !{i32 1, metadata !"Debug Info Version", i32 1}
diff --git a/test/CodeGen/X86/MergeConsecutiveStores.ll b/test/CodeGen/X86/MergeConsecutiveStores.ll
index bb227a0185dfa..0ef3aa5b6f073 100644
--- a/test/CodeGen/X86/MergeConsecutiveStores.ll
+++ b/test/CodeGen/X86/MergeConsecutiveStores.ll
@@ -147,7 +147,7 @@ define void @merge_nonconst_store(i32 %count, i8 %zz, %struct.A* nocapture %p) n
}
-;CHECK: merge_loads_i16
+;CHECK-LABEL: merge_loads_i16:
; load:
;CHECK: movw
; store:
@@ -181,7 +181,7 @@ define void @merge_loads_i16(i32 %count, %struct.A* noalias nocapture %q, %struc
}
; The loads and the stores are interleved. Can't merge them.
-;CHECK: no_merge_loads
+;CHECK-LABEL: no_merge_loads:
;CHECK: movb
;CHECK: movb
;CHECK: movb
@@ -215,7 +215,7 @@ a4: ; preds = %4, %.lr.ph
}
-;CHECK: merge_loads_integer
+;CHECK-LABEL: merge_loads_integer:
; load:
;CHECK: movq
; store:
@@ -249,7 +249,7 @@ define void @merge_loads_integer(i32 %count, %struct.B* noalias nocapture %q, %s
}
-;CHECK: merge_loads_vector
+;CHECK-LABEL: merge_loads_vector:
; load:
;CHECK: movups
; store:
@@ -290,7 +290,7 @@ block4: ; preds = %4, %.lr.ph
ret void
}
-;CHECK: merge_loads_no_align
+;CHECK-LABEL: merge_loads_no_align:
; load:
;CHECK: movl
;CHECK: movl
diff --git a/test/CodeGen/X86/StackColoring-dbg.ll b/test/CodeGen/X86/StackColoring-dbg.ll
index 5982544f7a8c7..51d0d1775c673 100644
--- a/test/CodeGen/X86/StackColoring-dbg.ll
+++ b/test/CodeGen/X86/StackColoring-dbg.ll
@@ -25,6 +25,11 @@ declare void @llvm.lifetime.start(i64, i8* nocapture) nounwind
declare void @llvm.lifetime.end(i64, i8* nocapture) nounwind
-!16 = metadata !{i32 786468, null, metadata !"char", null, i32 0, i64 8, i64 8, i64 0, i32 0, i32 6}
+!llvm.dbg.cu = !{!0}
+!llvm.module.flags = !{!23}
+!0 = metadata !{i32 524305, metadata !1, i32 1, metadata !"clang", i1 true, metadata !"", i32 0, metadata !2, metadata !2, null, null, null, metadata !""} ; [ DW_TAG_compile_unit ]
+!1 = metadata !{metadata !"t.c", metadata !""}
+!16 = metadata !{i32 786468, null, null, metadata !"char", i32 0, i64 8, i64 8, i64 0, i32 0, i32 6}
!2 = metadata !{i32 0}
-!22 = metadata !{i32 786688, metadata !2, metadata !"x", metadata !2, i32 16, metadata !16, i32 0, i32 0}
+!22 = metadata !{i32 786688, null, metadata !"x", metadata !2, i32 16, metadata !16, i32 0, i32 0}
+!23 = metadata !{i32 1, metadata !"Debug Info Version", i32 1}
diff --git a/test/CodeGen/X86/StackColoring.ll b/test/CodeGen/X86/StackColoring.ll
index f8ae74f292d22..a8e3537fabe3a 100644
--- a/test/CodeGen/X86/StackColoring.ll
+++ b/test/CodeGen/X86/StackColoring.ll
@@ -4,8 +4,8 @@
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
target triple = "x86_64-apple-macosx10.8.0"
-;YESCOLOR: subq $136, %rsp
-;NOCOLOR: subq $264, %rsp
+;YESCOLOR: subq $144, %rsp
+;NOCOLOR: subq $272, %rsp
define i32 @myCall_w2(i32 %in) {
entry:
@@ -82,8 +82,8 @@ bb2:
bb3:
ret i32 0
}
-;YESCOLOR: subq $208, %rsp
-;NOCOLOR: subq $400, %rsp
+;YESCOLOR: subq $200, %rsp
+;NOCOLOR: subq $408, %rsp
@@ -297,8 +297,8 @@ bb3:
}
-;YESCOLOR: multi_region_bb
-;NOCOLOR: multi_region_bb
+;YESCOLOR-LABEL: multi_region_bb:
+;NOCOLOR-LABEL: multi_region_bb:
define void @multi_region_bb() nounwind ssp {
entry:
%A.i1 = alloca [100 x i32], align 4
@@ -350,10 +350,32 @@ bb3:
ret i32 0
}
+
+; Regression test for PR15707. %buf1 and %buf2 should not be merged
+; in this test case.
+;YESCOLOR-LABEL: myCall_pr15707:
+;YESCOLOR: subq $200008, %rsp
+;NOCOLOR-LABEL: myCall_pr15707:
+;NOCOLOR: subq $200008, %rsp
+define void @myCall_pr15707() {
+ %buf1 = alloca i8, i32 100000, align 16
+ %buf2 = alloca i8, i32 100000, align 16
+
+ call void @llvm.lifetime.start(i64 -1, i8* %buf1)
+ call void @llvm.lifetime.end(i64 -1, i8* %buf1)
+
+ call void @llvm.lifetime.start(i64 -1, i8* %buf1)
+ call void @llvm.lifetime.start(i64 -1, i8* %buf2)
+ %result1 = call i32 @foo(i32 0, i8* %buf1)
+ %result2 = call i32 @foo(i32 0, i8* %buf2)
+ ret void
+}
+
+
; Check that we don't assert and crash even when there are allocas
; outside the declared lifetime regions.
-;YESCOLOR: bad_range
-;NOCOLOR: bad_range
+;YESCOLOR-LABEL: bad_range:
+;NOCOLOR-LABEL: bad_range:
define void @bad_range() nounwind ssp {
entry:
%A.i1 = alloca [100 x i32], align 4
@@ -378,8 +400,8 @@ block2:
; Check that we don't assert and crash even when there are usages
; of allocas which do not read or write outside the declared lifetime regions.
-;YESCOLOR: shady_range
-;NOCOLOR: shady_range
+;YESCOLOR-LABEL: shady_range:
+;NOCOLOR-LABEL: shady_range:
%struct.Klass = type { i32, i32 }
@@ -407,4 +429,3 @@ declare void @llvm.lifetime.start(i64, i8* nocapture) nounwind
declare void @llvm.lifetime.end(i64, i8* nocapture) nounwind
declare i32 @foo(i32, i8*)
-
diff --git a/test/CodeGen/X86/WidenArith.ll b/test/CodeGen/X86/WidenArith.ll
index 0383bd665b0fd..f87b3821dde88 100644
--- a/test/CodeGen/X86/WidenArith.ll
+++ b/test/CodeGen/X86/WidenArith.ll
@@ -1,6 +1,6 @@
; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=corei7-avx | FileCheck %s
-;CHECK: test
+;CHECK-LABEL: test:
;CHECK: vaddps
;CHECK: vmulps
;CHECK: vsubps
diff --git a/test/CodeGen/X86/abi-isel.ll b/test/CodeGen/X86/abi-isel.ll
index 658ccaa71dc03..633e70f0285ae 100644
--- a/test/CodeGen/X86/abi-isel.ll
+++ b/test/CodeGen/X86/abi-isel.ll
@@ -1,16 +1,16 @@
-; RUN: llc < %s -asm-verbose=0 -mcpu=generic -mtriple=i686-unknown-linux-gnu -march=x86 -relocation-model=static -code-model=small | FileCheck %s -check-prefix=LINUX-32-STATIC
-; RUN: llc < %s -asm-verbose=0 -mcpu=generic -mtriple=i686-unknown-linux-gnu -march=x86 -relocation-model=static -code-model=small | FileCheck %s -check-prefix=LINUX-32-PIC
+; RUN: llc < %s -asm-verbose=0 -mcpu=generic -mtriple=i686-unknown-linux-gnu -march=x86 -relocation-model=static -code-model=small -pre-RA-sched=list-ilp | FileCheck %s -check-prefix=LINUX-32-STATIC
+; RUN: llc < %s -asm-verbose=0 -mcpu=generic -mtriple=i686-unknown-linux-gnu -march=x86 -relocation-model=static -code-model=small -pre-RA-sched=list-ilp | FileCheck %s -check-prefix=LINUX-32-PIC
-; RUN: llc < %s -asm-verbose=0 -mcpu=generic -mtriple=x86_64-unknown-linux-gnu -march=x86-64 -relocation-model=static -code-model=small | FileCheck %s -check-prefix=LINUX-64-STATIC
-; RUN: llc < %s -asm-verbose=0 -mcpu=generic -mtriple=x86_64-unknown-linux-gnu -march=x86-64 -relocation-model=pic -code-model=small | FileCheck %s -check-prefix=LINUX-64-PIC
+; RUN: llc < %s -asm-verbose=0 -mcpu=generic -mtriple=x86_64-unknown-linux-gnu -march=x86-64 -relocation-model=static -code-model=small -pre-RA-sched=list-ilp | FileCheck %s -check-prefix=LINUX-64-STATIC
+; RUN: llc < %s -asm-verbose=0 -mcpu=generic -mtriple=x86_64-unknown-linux-gnu -march=x86-64 -relocation-model=pic -code-model=small -pre-RA-sched=list-ilp | FileCheck %s -check-prefix=LINUX-64-PIC
-; RUN: llc < %s -asm-verbose=0 -mcpu=generic -mtriple=i686-apple-darwin -march=x86 -relocation-model=static -code-model=small | FileCheck %s -check-prefix=DARWIN-32-STATIC
-; RUN: llc < %s -asm-verbose=0 -mcpu=generic -mtriple=i686-apple-darwin -march=x86 -relocation-model=dynamic-no-pic -code-model=small | FileCheck %s -check-prefix=DARWIN-32-DYNAMIC
-; RUN: llc < %s -asm-verbose=0 -mcpu=generic -mtriple=i686-apple-darwin -march=x86 -relocation-model=pic -code-model=small | FileCheck %s -check-prefix=DARWIN-32-PIC
+; RUN: llc < %s -asm-verbose=0 -mcpu=generic -mtriple=i686-apple-darwin -march=x86 -relocation-model=static -code-model=small -pre-RA-sched=list-ilp | FileCheck %s -check-prefix=DARWIN-32-STATIC
+; RUN: llc < %s -asm-verbose=0 -mcpu=generic -mtriple=i686-apple-darwin -march=x86 -relocation-model=dynamic-no-pic -code-model=small -pre-RA-sched=list-ilp | FileCheck %s -check-prefix=DARWIN-32-DYNAMIC
+; RUN: llc < %s -asm-verbose=0 -mcpu=generic -mtriple=i686-apple-darwin -march=x86 -relocation-model=pic -code-model=small -pre-RA-sched=list-ilp | FileCheck %s -check-prefix=DARWIN-32-PIC
-; RUN: llc < %s -asm-verbose=0 -mcpu=generic -mtriple=x86_64-apple-darwin -march=x86-64 -relocation-model=static -code-model=small | FileCheck %s -check-prefix=DARWIN-64-STATIC
-; RUN: llc < %s -asm-verbose=0 -mcpu=generic -mtriple=x86_64-apple-darwin -march=x86-64 -relocation-model=dynamic-no-pic -code-model=small | FileCheck %s -check-prefix=DARWIN-64-DYNAMIC
-; RUN: llc < %s -asm-verbose=0 -mcpu=generic -mtriple=x86_64-apple-darwin -march=x86-64 -relocation-model=pic -code-model=small | FileCheck %s -check-prefix=DARWIN-64-PIC
+; RUN: llc < %s -asm-verbose=0 -mcpu=generic -mtriple=x86_64-apple-darwin -march=x86-64 -relocation-model=static -code-model=small -pre-RA-sched=list-ilp | FileCheck %s -check-prefix=DARWIN-64-STATIC
+; RUN: llc < %s -asm-verbose=0 -mcpu=generic -mtriple=x86_64-apple-darwin -march=x86-64 -relocation-model=dynamic-no-pic -code-model=small -pre-RA-sched=list-ilp | FileCheck %s -check-prefix=DARWIN-64-DYNAMIC
+; RUN: llc < %s -asm-verbose=0 -mcpu=generic -mtriple=x86_64-apple-darwin -march=x86-64 -relocation-model=pic -code-model=small -pre-RA-sched=list-ilp | FileCheck %s -check-prefix=DARWIN-64-PIC
@src = external global [131072 x i32]
@dst = external global [131072 x i32]
@@ -37,22 +37,22 @@ entry:
store i32 %0, i32* getelementptr ([131072 x i32]* @dst, i32 0, i64 0), align 4
ret void
-; LINUX-64-STATIC: foo00:
+; LINUX-64-STATIC-LABEL: foo00:
; LINUX-64-STATIC: movl src(%rip), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], dst
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: foo00:
+; LINUX-32-STATIC-LABEL: foo00:
; LINUX-32-STATIC: movl src, [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[EAX]], dst
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: foo00:
+; LINUX-32-PIC-LABEL: foo00:
; LINUX-32-PIC: movl src, [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[EAX]], dst
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: foo00:
+; LINUX-64-PIC-LABEL: foo00:
; LINUX-64-PIC: movq src@GOTPCREL(%rip), [[RAX:%r..]]
; LINUX-64-PIC-NEXT: movl ([[RAX]]), [[EAX:%e..]]
; LINUX-64-PIC-NEXT: movq dst@GOTPCREL(%rip), [[RCX:%r..]]
@@ -109,22 +109,22 @@ entry:
store i32 %0, i32* getelementptr ([32 x i32]* @xdst, i32 0, i64 0), align 4
ret void
-; LINUX-64-STATIC: fxo00:
+; LINUX-64-STATIC-LABEL: fxo00:
; LINUX-64-STATIC: movl xsrc(%rip), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], xdst
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: fxo00:
+; LINUX-32-STATIC-LABEL: fxo00:
; LINUX-32-STATIC: movl xsrc, [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[EAX]], xdst
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: fxo00:
+; LINUX-32-PIC-LABEL: fxo00:
; LINUX-32-PIC: movl xsrc, [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[EAX]], xdst
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: fxo00:
+; LINUX-64-PIC-LABEL: fxo00:
; LINUX-64-PIC: movq xsrc@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movl ([[RAX]]), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movq xdst@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -179,19 +179,19 @@ define void @foo01() nounwind {
entry:
store i32* getelementptr ([131072 x i32]* @dst, i32 0, i32 0), i32** @ptr, align 8
ret void
-; LINUX-64-STATIC: foo01:
+; LINUX-64-STATIC-LABEL: foo01:
; LINUX-64-STATIC: movq $dst, ptr
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: foo01:
+; LINUX-32-STATIC-LABEL: foo01:
; LINUX-32-STATIC: movl $dst, ptr
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: foo01:
+; LINUX-32-PIC-LABEL: foo01:
; LINUX-32-PIC: movl $dst, ptr
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: foo01:
+; LINUX-64-PIC-LABEL: foo01:
; LINUX-64-PIC: movq dst@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movq ptr@GOTPCREL(%rip), [[RCX:%r.x]]
; LINUX-64-PIC-NEXT: movq [[RAX]], ([[RCX]])
@@ -239,19 +239,19 @@ define void @fxo01() nounwind {
entry:
store i32* getelementptr ([32 x i32]* @xdst, i32 0, i32 0), i32** @ptr, align 8
ret void
-; LINUX-64-STATIC: fxo01:
+; LINUX-64-STATIC-LABEL: fxo01:
; LINUX-64-STATIC: movq $xdst, ptr
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: fxo01:
+; LINUX-32-STATIC-LABEL: fxo01:
; LINUX-32-STATIC: movl $xdst, ptr
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: fxo01:
+; LINUX-32-PIC-LABEL: fxo01:
; LINUX-32-PIC: movl $xdst, ptr
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: fxo01:
+; LINUX-64-PIC-LABEL: fxo01:
; LINUX-64-PIC: movq xdst@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movq ptr@GOTPCREL(%rip), [[RCX:%r.x]]
; LINUX-64-PIC-NEXT: movq [[RAX]], ([[RCX]])
@@ -301,25 +301,25 @@ entry:
%1 = load i32* getelementptr ([131072 x i32]* @src, i32 0, i64 0), align 4
store i32 %1, i32* %0, align 4
ret void
-; LINUX-64-STATIC: foo02:
+; LINUX-64-STATIC-LABEL: foo02:
; LINUX-64-STATIC: movl src(%rip), %
; LINUX-64-STATIC: movq ptr(%rip), %
; LINUX-64-STATIC: movl
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: foo02:
+; LINUX-32-STATIC-LABEL: foo02:
; LINUX-32-STATIC: movl src, [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl ptr, [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[EAX]], ([[ECX]])
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: foo02:
+; LINUX-32-PIC-LABEL: foo02:
; LINUX-32-PIC: movl src, [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl ptr, [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[EAX]], ([[ECX]])
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: foo02:
+; LINUX-64-PIC-LABEL: foo02:
; LINUX-64-PIC: movq src@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movl ([[RAX]]), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movq ptr@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -382,26 +382,26 @@ entry:
%0 = load i32** @ptr, align 8
%1 = load i32* getelementptr ([32 x i32]* @xsrc, i32 0, i64 0), align 4
store i32 %1, i32* %0, align 4
-; LINUX-64-STATIC: fxo02:
+; LINUX-64-STATIC-LABEL: fxo02:
; LINUX-64-STATIC: movl xsrc(%rip), %
; LINUX-64-STATIC: movq ptr(%rip), %
; LINUX-64-STATIC: movl
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: fxo02:
+; LINUX-32-STATIC-LABEL: fxo02:
; LINUX-32-STATIC: movl xsrc, [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl ptr, [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[EAX]], ([[ECX]])
; LINUX-32-STATIC-NEXT: ret
ret void
-; LINUX-32-PIC: fxo02:
+; LINUX-32-PIC-LABEL: fxo02:
; LINUX-32-PIC: movl xsrc, [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl ptr, [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[EAX]], ([[ECX]])
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: fxo02:
+; LINUX-64-PIC-LABEL: fxo02:
; LINUX-64-PIC: movq xsrc@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movl ([[RAX]]), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movq ptr@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -464,22 +464,22 @@ entry:
%0 = load i32* getelementptr ([131072 x i32]* @dsrc, i32 0, i64 0), align 32
store i32 %0, i32* getelementptr ([131072 x i32]* @ddst, i32 0, i64 0), align 32
ret void
-; LINUX-64-STATIC: foo03:
+; LINUX-64-STATIC-LABEL: foo03:
; LINUX-64-STATIC: movl dsrc(%rip), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], ddst
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: foo03:
+; LINUX-32-STATIC-LABEL: foo03:
; LINUX-32-STATIC: movl dsrc, [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[EAX]], ddst
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: foo03:
+; LINUX-32-PIC-LABEL: foo03:
; LINUX-32-PIC: movl dsrc, [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[EAX]], ddst
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: foo03:
+; LINUX-64-PIC-LABEL: foo03:
; LINUX-64-PIC: movq dsrc@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movl ([[RAX]]), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movq ddst@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -524,19 +524,19 @@ define void @foo04() nounwind {
entry:
store i32* getelementptr ([131072 x i32]* @ddst, i32 0, i32 0), i32** @dptr, align 8
ret void
-; LINUX-64-STATIC: foo04:
+; LINUX-64-STATIC-LABEL: foo04:
; LINUX-64-STATIC: movq $ddst, dptr
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: foo04:
+; LINUX-32-STATIC-LABEL: foo04:
; LINUX-32-STATIC: movl $ddst, dptr
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: foo04:
+; LINUX-32-PIC-LABEL: foo04:
; LINUX-32-PIC: movl $ddst, dptr
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: foo04:
+; LINUX-64-PIC-LABEL: foo04:
; LINUX-64-PIC: movq ddst@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movq dptr@GOTPCREL(%rip), [[RCX:%r.x]]
; LINUX-64-PIC-NEXT: movq [[RAX]], ([[RCX]])
@@ -580,25 +580,25 @@ entry:
%1 = load i32* getelementptr ([131072 x i32]* @dsrc, i32 0, i64 0), align 32
store i32 %1, i32* %0, align 4
ret void
-; LINUX-64-STATIC: foo05:
+; LINUX-64-STATIC-LABEL: foo05:
; LINUX-64-STATIC: movl dsrc(%rip), %
; LINUX-64-STATIC: movq dptr(%rip), %
; LINUX-64-STATIC: movl
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: foo05:
+; LINUX-32-STATIC-LABEL: foo05:
; LINUX-32-STATIC: movl dsrc, [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl dptr, [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[EAX]], ([[ECX]])
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: foo05:
+; LINUX-32-PIC-LABEL: foo05:
; LINUX-32-PIC: movl dsrc, [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl dptr, [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[EAX]], ([[ECX]])
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: foo05:
+; LINUX-64-PIC-LABEL: foo05:
; LINUX-64-PIC: movq dsrc@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movl ([[RAX]]), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movq dptr@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -651,22 +651,22 @@ entry:
%0 = load i32* getelementptr ([131072 x i32]* @lsrc, i32 0, i64 0), align 4
store i32 %0, i32* getelementptr ([131072 x i32]* @ldst, i32 0, i64 0), align 4
ret void
-; LINUX-64-STATIC: foo06:
+; LINUX-64-STATIC-LABEL: foo06:
; LINUX-64-STATIC: movl lsrc(%rip), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], ldst(%rip)
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: foo06:
+; LINUX-32-STATIC-LABEL: foo06:
; LINUX-32-STATIC: movl lsrc, [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[EAX]], ldst
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: foo06:
+; LINUX-32-PIC-LABEL: foo06:
; LINUX-32-PIC: movl lsrc, [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[EAX]], ldst
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: foo06:
+; LINUX-64-PIC-LABEL: foo06:
; LINUX-64-PIC: movl lsrc(%rip), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movl [[EAX]], ldst(%rip)
; LINUX-64-PIC-NEXT: ret
@@ -709,19 +709,19 @@ define void @foo07() nounwind {
entry:
store i32* getelementptr ([131072 x i32]* @ldst, i32 0, i32 0), i32** @lptr, align 8
ret void
-; LINUX-64-STATIC: foo07:
+; LINUX-64-STATIC-LABEL: foo07:
; LINUX-64-STATIC: movq $ldst, lptr
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: foo07:
+; LINUX-32-STATIC-LABEL: foo07:
; LINUX-32-STATIC: movl $ldst, lptr
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: foo07:
+; LINUX-32-PIC-LABEL: foo07:
; LINUX-32-PIC: movl $ldst, lptr
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: foo07:
+; LINUX-64-PIC-LABEL: foo07:
; LINUX-64-PIC: leaq ldst(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movq [[RAX]], lptr(%rip)
; LINUX-64-PIC-NEXT: ret
@@ -764,25 +764,25 @@ entry:
%1 = load i32* getelementptr ([131072 x i32]* @lsrc, i32 0, i64 0), align 4
store i32 %1, i32* %0, align 4
ret void
-; LINUX-64-STATIC: foo08:
+; LINUX-64-STATIC-LABEL: foo08:
; LINUX-64-STATIC: movl lsrc(%rip), %
; LINUX-64-STATIC: movq lptr(%rip), %
; LINUX-64-STATIC: movl
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: foo08:
+; LINUX-32-STATIC-LABEL: foo08:
; LINUX-32-STATIC: movl lsrc, [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl lptr, [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[EAX]], ([[ECX]])
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: foo08:
+; LINUX-32-PIC-LABEL: foo08:
; LINUX-32-PIC: movl lsrc, [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl lptr, [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[EAX]], ([[ECX]])
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: foo08:
+; LINUX-64-PIC-LABEL: foo08:
; LINUX-64-PIC: movl lsrc(%rip), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movq lptr(%rip), [[RCX:%r.x]]
; LINUX-64-PIC-NEXT: movl [[EAX]], ([[RCX]])
@@ -833,22 +833,22 @@ entry:
%0 = load i32* getelementptr ([131072 x i32]* @src, i32 0, i64 16), align 4
store i32 %0, i32* getelementptr ([131072 x i32]* @dst, i32 0, i64 16), align 4
ret void
-; LINUX-64-STATIC: qux00:
+; LINUX-64-STATIC-LABEL: qux00:
; LINUX-64-STATIC: movl src+64(%rip), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], dst+64(%rip)
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: qux00:
+; LINUX-32-STATIC-LABEL: qux00:
; LINUX-32-STATIC: movl src+64, [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[EAX]], dst+64
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: qux00:
+; LINUX-32-PIC-LABEL: qux00:
; LINUX-32-PIC: movl src+64, [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[EAX]], dst+64
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: qux00:
+; LINUX-64-PIC-LABEL: qux00:
; LINUX-64-PIC: movq src@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movl 64([[RAX]]), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movq dst@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -904,22 +904,22 @@ entry:
%0 = load i32* getelementptr ([32 x i32]* @xsrc, i32 0, i64 16), align 4
store i32 %0, i32* getelementptr ([32 x i32]* @xdst, i32 0, i64 16), align 4
ret void
-; LINUX-64-STATIC: qxx00:
+; LINUX-64-STATIC-LABEL: qxx00:
; LINUX-64-STATIC: movl xsrc+64(%rip), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], xdst+64(%rip)
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: qxx00:
+; LINUX-32-STATIC-LABEL: qxx00:
; LINUX-32-STATIC: movl xsrc+64, [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[EAX]], xdst+64
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: qxx00:
+; LINUX-32-PIC-LABEL: qxx00:
; LINUX-32-PIC: movl xsrc+64, [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[EAX]], xdst+64
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: qxx00:
+; LINUX-64-PIC-LABEL: qxx00:
; LINUX-64-PIC: movq xsrc@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movl 64([[RAX]]), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movq xdst@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -974,19 +974,19 @@ define void @qux01() nounwind {
entry:
store i32* getelementptr ([131072 x i32]* @dst, i32 0, i64 16), i32** @ptr, align 8
ret void
-; LINUX-64-STATIC: qux01:
+; LINUX-64-STATIC-LABEL: qux01:
; LINUX-64-STATIC: movq $dst+64, ptr
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: qux01:
+; LINUX-32-STATIC-LABEL: qux01:
; LINUX-32-STATIC: movl $dst+64, ptr
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: qux01:
+; LINUX-32-PIC-LABEL: qux01:
; LINUX-32-PIC: movl $dst+64, ptr
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: qux01:
+; LINUX-64-PIC-LABEL: qux01:
; LINUX-64-PIC: movq dst@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: addq $64, [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movq ptr@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -1040,19 +1040,19 @@ define void @qxx01() nounwind {
entry:
store i32* getelementptr ([32 x i32]* @xdst, i32 0, i64 16), i32** @ptr, align 8
ret void
-; LINUX-64-STATIC: qxx01:
+; LINUX-64-STATIC-LABEL: qxx01:
; LINUX-64-STATIC: movq $xdst+64, ptr
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: qxx01:
+; LINUX-32-STATIC-LABEL: qxx01:
; LINUX-32-STATIC: movl $xdst+64, ptr
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: qxx01:
+; LINUX-32-PIC-LABEL: qxx01:
; LINUX-32-PIC: movl $xdst+64, ptr
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: qxx01:
+; LINUX-64-PIC-LABEL: qxx01:
; LINUX-64-PIC: movq xdst@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: addq $64, [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movq ptr@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -1108,26 +1108,26 @@ entry:
%1 = load i32* getelementptr ([131072 x i32]* @src, i32 0, i64 16), align 4
%2 = getelementptr i32* %0, i64 16
store i32 %1, i32* %2, align 4
-; LINUX-64-STATIC: qux02:
+; LINUX-64-STATIC-LABEL: qux02:
; LINUX-64-STATIC: movl src+64(%rip), [[EAX:%e.x]]
; LINUX-64-STATIC: movq ptr(%rip), [[RCX:%r.x]]
; LINUX-64-STATIC: movl [[EAX]], 64([[RCX]])
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: qux02:
+; LINUX-32-STATIC-LABEL: qux02:
; LINUX-32-STATIC: movl src+64, [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl ptr, [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[EAX]], 64([[ECX]])
; LINUX-32-STATIC-NEXT: ret
ret void
-; LINUX-32-PIC: qux02:
+; LINUX-32-PIC-LABEL: qux02:
; LINUX-32-PIC: movl src+64, [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl ptr, [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[EAX]], 64([[ECX]])
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: qux02:
+; LINUX-64-PIC-LABEL: qux02:
; LINUX-64-PIC: movq src@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movl 64([[RAX]]), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movq ptr@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -1191,26 +1191,26 @@ entry:
%1 = load i32* getelementptr ([32 x i32]* @xsrc, i32 0, i64 16), align 4
%2 = getelementptr i32* %0, i64 16
store i32 %1, i32* %2, align 4
-; LINUX-64-STATIC: qxx02:
+; LINUX-64-STATIC-LABEL: qxx02:
; LINUX-64-STATIC: movl xsrc+64(%rip), [[EAX:%e.x]]
; LINUX-64-STATIC: movq ptr(%rip), [[RCX:%r.x]]
; LINUX-64-STATIC: movl [[EAX]], 64([[RCX]])
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: qxx02:
+; LINUX-32-STATIC-LABEL: qxx02:
; LINUX-32-STATIC: movl xsrc+64, [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl ptr, [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[EAX]], 64([[ECX]])
; LINUX-32-STATIC-NEXT: ret
ret void
-; LINUX-32-PIC: qxx02:
+; LINUX-32-PIC-LABEL: qxx02:
; LINUX-32-PIC: movl xsrc+64, [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl ptr, [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[EAX]], 64([[ECX]])
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: qxx02:
+; LINUX-64-PIC-LABEL: qxx02:
; LINUX-64-PIC: movq xsrc@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movl 64([[RAX]]), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movq ptr@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -1273,22 +1273,22 @@ entry:
%0 = load i32* getelementptr ([131072 x i32]* @dsrc, i32 0, i64 16), align 32
store i32 %0, i32* getelementptr ([131072 x i32]* @ddst, i32 0, i64 16), align 32
ret void
-; LINUX-64-STATIC: qux03:
+; LINUX-64-STATIC-LABEL: qux03:
; LINUX-64-STATIC: movl dsrc+64(%rip), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], ddst+64(%rip)
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: qux03:
+; LINUX-32-STATIC-LABEL: qux03:
; LINUX-32-STATIC: movl dsrc+64, [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[EAX]], ddst+64
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: qux03:
+; LINUX-32-PIC-LABEL: qux03:
; LINUX-32-PIC: movl dsrc+64, [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[EAX]], ddst+64
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: qux03:
+; LINUX-64-PIC-LABEL: qux03:
; LINUX-64-PIC: movq dsrc@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movl 64([[RAX]]), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movq ddst@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -1333,19 +1333,19 @@ define void @qux04() nounwind {
entry:
store i32* getelementptr ([131072 x i32]* @ddst, i32 0, i64 16), i32** @dptr, align 8
ret void
-; LINUX-64-STATIC: qux04:
+; LINUX-64-STATIC-LABEL: qux04:
; LINUX-64-STATIC: movq $ddst+64, dptr(%rip)
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: qux04:
+; LINUX-32-STATIC-LABEL: qux04:
; LINUX-32-STATIC: movl $ddst+64, dptr
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: qux04:
+; LINUX-32-PIC-LABEL: qux04:
; LINUX-32-PIC: movl $ddst+64, dptr
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: qux04:
+; LINUX-64-PIC-LABEL: qux04:
; LINUX-64-PIC: movq ddst@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: addq $64, [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movq dptr@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -1390,26 +1390,26 @@ entry:
%1 = load i32* getelementptr ([131072 x i32]* @dsrc, i32 0, i64 16), align 32
%2 = getelementptr i32* %0, i64 16
store i32 %1, i32* %2, align 4
-; LINUX-64-STATIC: qux05:
+; LINUX-64-STATIC-LABEL: qux05:
; LINUX-64-STATIC: movl dsrc+64(%rip), [[EAX:%e.x]]
; LINUX-64-STATIC: movq dptr(%rip), [[RCX:%r.x]]
; LINUX-64-STATIC: movl [[EAX]], 64([[RCX]])
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: qux05:
+; LINUX-32-STATIC-LABEL: qux05:
; LINUX-32-STATIC: movl dsrc+64, [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl dptr, [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[EAX]], 64([[ECX]])
; LINUX-32-STATIC-NEXT: ret
ret void
-; LINUX-32-PIC: qux05:
+; LINUX-32-PIC-LABEL: qux05:
; LINUX-32-PIC: movl dsrc+64, [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl dptr, [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[EAX]], 64([[ECX]])
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: qux05:
+; LINUX-64-PIC-LABEL: qux05:
; LINUX-64-PIC: movq dsrc@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movl 64([[RAX]]), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movq dptr@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -1462,22 +1462,22 @@ entry:
%0 = load i32* getelementptr ([131072 x i32]* @lsrc, i32 0, i64 16), align 4
store i32 %0, i32* getelementptr ([131072 x i32]* @ldst, i32 0, i64 16), align 4
ret void
-; LINUX-64-STATIC: qux06:
+; LINUX-64-STATIC-LABEL: qux06:
; LINUX-64-STATIC: movl lsrc+64(%rip), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], ldst+64
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: qux06:
+; LINUX-32-STATIC-LABEL: qux06:
; LINUX-32-STATIC: movl lsrc+64, [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[EAX]], ldst+64
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: qux06:
+; LINUX-32-PIC-LABEL: qux06:
; LINUX-32-PIC: movl lsrc+64, [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[EAX]], ldst+64
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: qux06:
+; LINUX-64-PIC-LABEL: qux06:
; LINUX-64-PIC: movl lsrc+64(%rip), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movl [[EAX]], ldst+64(%rip)
; LINUX-64-PIC-NEXT: ret
@@ -1520,19 +1520,19 @@ define void @qux07() nounwind {
entry:
store i32* getelementptr ([131072 x i32]* @ldst, i32 0, i64 16), i32** @lptr, align 8
ret void
-; LINUX-64-STATIC: qux07:
+; LINUX-64-STATIC-LABEL: qux07:
; LINUX-64-STATIC: movq $ldst+64, lptr
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: qux07:
+; LINUX-32-STATIC-LABEL: qux07:
; LINUX-32-STATIC: movl $ldst+64, lptr
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: qux07:
+; LINUX-32-PIC-LABEL: qux07:
; LINUX-32-PIC: movl $ldst+64, lptr
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: qux07:
+; LINUX-64-PIC-LABEL: qux07:
; LINUX-64-PIC: leaq ldst+64(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movq [[RAX]], lptr(%rip)
; LINUX-64-PIC-NEXT: ret
@@ -1575,26 +1575,26 @@ entry:
%1 = load i32* getelementptr ([131072 x i32]* @lsrc, i32 0, i64 16), align 4
%2 = getelementptr i32* %0, i64 16
store i32 %1, i32* %2, align 4
-; LINUX-64-STATIC: qux08:
+; LINUX-64-STATIC-LABEL: qux08:
; LINUX-64-STATIC: movl lsrc+64(%rip), [[EAX:%e.x]]
; LINUX-64-STATIC: movq lptr(%rip), [[RCX:%r.x]]
; LINUX-64-STATIC: movl [[EAX]], 64([[RCX]])
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: qux08:
+; LINUX-32-STATIC-LABEL: qux08:
; LINUX-32-STATIC: movl lsrc+64, [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl lptr, [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[EAX]], 64([[ECX]])
; LINUX-32-STATIC-NEXT: ret
ret void
-; LINUX-32-PIC: qux08:
+; LINUX-32-PIC-LABEL: qux08:
; LINUX-32-PIC: movl lsrc+64, [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl lptr, [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[EAX]], 64([[ECX]])
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: qux08:
+; LINUX-64-PIC-LABEL: qux08:
; LINUX-64-PIC: movl lsrc+64(%rip), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movq lptr(%rip), [[RCX:%r.x]]
; LINUX-64-PIC-NEXT: movl [[EAX]], 64([[RCX]])
@@ -1647,24 +1647,24 @@ entry:
%2 = getelementptr [131072 x i32]* @dst, i64 0, i64 %i
store i32 %1, i32* %2, align 4
ret void
-; LINUX-64-STATIC: ind00:
+; LINUX-64-STATIC-LABEL: ind00:
; LINUX-64-STATIC: movl src(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], dst(,%rdi,4)
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: ind00:
+; LINUX-32-STATIC-LABEL: ind00:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl src(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[ECX]], dst(,[[EAX]],4)
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: ind00:
+; LINUX-32-PIC-LABEL: ind00:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl src(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[ECX]], dst(,[[EAX]],4)
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: ind00:
+; LINUX-64-PIC-LABEL: ind00:
; LINUX-64-PIC: movq src@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movl ([[RAX]],%rdi,4), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movq dst@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -1725,24 +1725,24 @@ entry:
%2 = getelementptr [32 x i32]* @xdst, i64 0, i64 %i
store i32 %1, i32* %2, align 4
ret void
-; LINUX-64-STATIC: ixd00:
+; LINUX-64-STATIC-LABEL: ixd00:
; LINUX-64-STATIC: movl xsrc(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], xdst(,%rdi,4)
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: ixd00:
+; LINUX-32-STATIC-LABEL: ixd00:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl xsrc(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[ECX]], xdst(,[[EAX]],4)
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: ixd00:
+; LINUX-32-PIC-LABEL: ixd00:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl xsrc(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[ECX]], xdst(,[[EAX]],4)
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: ixd00:
+; LINUX-64-PIC-LABEL: ixd00:
; LINUX-64-PIC: movq xsrc@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movl ([[RAX]],%rdi,4), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movq xdst@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -1801,24 +1801,24 @@ entry:
%0 = getelementptr [131072 x i32]* @dst, i64 0, i64 %i
store i32* %0, i32** @ptr, align 8
ret void
-; LINUX-64-STATIC: ind01:
+; LINUX-64-STATIC-LABEL: ind01:
; LINUX-64-STATIC: leaq dst(,%rdi,4), [[RAX:%r.x]]
; LINUX-64-STATIC: movq [[RAX]], ptr
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: ind01:
+; LINUX-32-STATIC-LABEL: ind01:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: leal dst(,[[EAX]],4), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[EAX]], ptr
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: ind01:
+; LINUX-32-PIC-LABEL: ind01:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: leal dst(,[[EAX]],4), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[EAX]], ptr
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: ind01:
+; LINUX-64-PIC-LABEL: ind01:
; LINUX-64-PIC: shlq $2, %rdi
; LINUX-64-PIC-NEXT: addq dst@GOTPCREL(%rip), %rdi
; LINUX-64-PIC-NEXT: movq ptr@GOTPCREL(%rip), [[RAX:%r.x]]
@@ -1877,24 +1877,24 @@ entry:
%0 = getelementptr [32 x i32]* @xdst, i64 0, i64 %i
store i32* %0, i32** @ptr, align 8
ret void
-; LINUX-64-STATIC: ixd01:
+; LINUX-64-STATIC-LABEL: ixd01:
; LINUX-64-STATIC: leaq xdst(,%rdi,4), [[RAX:%r.x]]
; LINUX-64-STATIC: movq [[RAX]], ptr
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: ixd01:
+; LINUX-32-STATIC-LABEL: ixd01:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: leal xdst(,[[EAX]],4), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[EAX]], ptr
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: ixd01:
+; LINUX-32-PIC-LABEL: ixd01:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: leal xdst(,[[EAX]],4), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[EAX]], ptr
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: ixd01:
+; LINUX-64-PIC-LABEL: ixd01:
; LINUX-64-PIC: shlq $2, %rdi
; LINUX-64-PIC-NEXT: addq xdst@GOTPCREL(%rip), %rdi
; LINUX-64-PIC-NEXT: movq ptr@GOTPCREL(%rip), [[RAX:%r.x]]
@@ -1956,27 +1956,27 @@ entry:
%3 = getelementptr i32* %0, i64 %i
store i32 %2, i32* %3, align 4
ret void
-; LINUX-64-STATIC: ind02:
+; LINUX-64-STATIC-LABEL: ind02:
; LINUX-64-STATIC: movl src(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movq ptr(%rip), [[RCX:%r.x]]
; LINUX-64-STATIC: movl [[EAX]], ([[RCX]],%rdi,4)
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: ind02:
+; LINUX-32-STATIC-LABEL: ind02:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl src(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: movl ptr, [[EDX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[ECX]], ([[EDX]],[[EAX]],4)
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: ind02:
+; LINUX-32-PIC-LABEL: ind02:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl src(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: movl ptr, [[EDX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[ECX]], ([[EDX]],[[EAX]],4)
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: ind02:
+; LINUX-64-PIC-LABEL: ind02:
; LINUX-64-PIC: movq src@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movl ([[RAX]],%rdi,4), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movq ptr@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -2045,27 +2045,27 @@ entry:
%3 = getelementptr i32* %0, i64 %i
store i32 %2, i32* %3, align 4
ret void
-; LINUX-64-STATIC: ixd02:
+; LINUX-64-STATIC-LABEL: ixd02:
; LINUX-64-STATIC: movl xsrc(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movq ptr(%rip), [[RCX:%r.x]]
; LINUX-64-STATIC: movl [[EAX]], ([[RCX]],%rdi,4)
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: ixd02:
+; LINUX-32-STATIC-LABEL: ixd02:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl xsrc(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: movl ptr, [[EDX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[ECX]], ([[EDX]],[[EAX]],4)
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: ixd02:
+; LINUX-32-PIC-LABEL: ixd02:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl xsrc(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: movl ptr, [[EDX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[ECX]], ([[EDX]],[[EAX]],4)
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: ixd02:
+; LINUX-64-PIC-LABEL: ixd02:
; LINUX-64-PIC: movq xsrc@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movl ([[RAX]],%rdi,4), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movq ptr@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -2133,24 +2133,24 @@ entry:
%2 = getelementptr [131072 x i32]* @ddst, i64 0, i64 %i
store i32 %1, i32* %2, align 4
ret void
-; LINUX-64-STATIC: ind03:
+; LINUX-64-STATIC-LABEL: ind03:
; LINUX-64-STATIC: movl dsrc(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], ddst(,%rdi,4)
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: ind03:
+; LINUX-32-STATIC-LABEL: ind03:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl dsrc(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[ECX]], ddst(,[[EAX]],4)
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: ind03:
+; LINUX-32-PIC-LABEL: ind03:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl dsrc(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[ECX]], ddst(,[[EAX]],4)
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: ind03:
+; LINUX-64-PIC-LABEL: ind03:
; LINUX-64-PIC: movq dsrc@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movl ([[RAX]],%rdi,4), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movq ddst@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -2205,24 +2205,24 @@ entry:
%0 = getelementptr [131072 x i32]* @ddst, i64 0, i64 %i
store i32* %0, i32** @dptr, align 8
ret void
-; LINUX-64-STATIC: ind04:
+; LINUX-64-STATIC-LABEL: ind04:
; LINUX-64-STATIC: leaq ddst(,%rdi,4), [[RAX:%r.x]]
; LINUX-64-STATIC: movq [[RAX]], dptr
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: ind04:
+; LINUX-32-STATIC-LABEL: ind04:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: leal ddst(,[[EAX]],4), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[EAX]], dptr
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: ind04:
+; LINUX-32-PIC-LABEL: ind04:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: leal ddst(,[[EAX]],4), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[EAX]], dptr
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: ind04:
+; LINUX-64-PIC-LABEL: ind04:
; LINUX-64-PIC: shlq $2, %rdi
; LINUX-64-PIC-NEXT: addq ddst@GOTPCREL(%rip), %rdi
; LINUX-64-PIC-NEXT: movq dptr@GOTPCREL(%rip), [[RAX:%r.x]]
@@ -2277,27 +2277,27 @@ entry:
%3 = getelementptr i32* %0, i64 %i
store i32 %2, i32* %3, align 4
ret void
-; LINUX-64-STATIC: ind05:
+; LINUX-64-STATIC-LABEL: ind05:
; LINUX-64-STATIC: movl dsrc(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movq dptr(%rip), [[RCX:%r.x]]
; LINUX-64-STATIC: movl [[EAX]], ([[RCX]],%rdi,4)
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: ind05:
+; LINUX-32-STATIC-LABEL: ind05:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl dsrc(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: movl dptr, [[EDX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[ECX]], ([[EDX]],[[EAX]],4)
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: ind05:
+; LINUX-32-PIC-LABEL: ind05:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl dsrc(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: movl dptr, [[EDX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[ECX]], ([[EDX]],[[EAX]],4)
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: ind05:
+; LINUX-64-PIC-LABEL: ind05:
; LINUX-64-PIC: movq dsrc@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movl ([[RAX]],%rdi,4), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movq dptr@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -2358,24 +2358,24 @@ entry:
%2 = getelementptr [131072 x i32]* @ldst, i64 0, i64 %i
store i32 %1, i32* %2, align 4
ret void
-; LINUX-64-STATIC: ind06:
+; LINUX-64-STATIC-LABEL: ind06:
; LINUX-64-STATIC: movl lsrc(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], ldst(,%rdi,4)
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: ind06:
+; LINUX-32-STATIC-LABEL: ind06:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl lsrc(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[ECX]], ldst(,[[EAX]],4)
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: ind06:
+; LINUX-32-PIC-LABEL: ind06:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl lsrc(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[ECX]], ldst(,[[EAX]],4)
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: ind06:
+; LINUX-64-PIC-LABEL: ind06:
; LINUX-64-PIC: leaq lsrc(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movl ([[RAX]],%rdi,4), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: leaq ldst(%rip), [[RCX:%r.x]]
@@ -2430,24 +2430,24 @@ entry:
%0 = getelementptr [131072 x i32]* @ldst, i64 0, i64 %i
store i32* %0, i32** @lptr, align 8
ret void
-; LINUX-64-STATIC: ind07:
+; LINUX-64-STATIC-LABEL: ind07:
; LINUX-64-STATIC: leaq ldst(,%rdi,4), [[RAX:%r.x]]
; LINUX-64-STATIC: movq [[RAX]], lptr
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: ind07:
+; LINUX-32-STATIC-LABEL: ind07:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: leal ldst(,[[EAX]],4), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[EAX]], lptr
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: ind07:
+; LINUX-32-PIC-LABEL: ind07:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: leal ldst(,[[EAX]],4), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[EAX]], lptr
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: ind07:
+; LINUX-64-PIC-LABEL: ind07:
; LINUX-64-PIC: leaq ldst(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: leaq ([[RAX]],%rdi,4), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movq [[RAX]], lptr(%rip)
@@ -2501,27 +2501,27 @@ entry:
%3 = getelementptr i32* %0, i64 %i
store i32 %2, i32* %3, align 4
ret void
-; LINUX-64-STATIC: ind08:
+; LINUX-64-STATIC-LABEL: ind08:
; LINUX-64-STATIC: movl lsrc(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movq lptr(%rip), [[RCX:%r.x]]
; LINUX-64-STATIC: movl [[EAX]], ([[RCX]],%rdi,4)
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: ind08:
+; LINUX-32-STATIC-LABEL: ind08:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl lsrc(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: movl lptr, [[EDX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[ECX]], ([[EDX]],[[EAX]],4)
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: ind08:
+; LINUX-32-PIC-LABEL: ind08:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl lsrc(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: movl lptr, [[EDX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[ECX]], ([[EDX]],[[EAX]],4)
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: ind08:
+; LINUX-64-PIC-LABEL: ind08:
; LINUX-64-PIC: leaq lsrc(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movl ([[RAX]],%rdi,4), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movq lptr(%rip), [[RCX:%r.x]]
@@ -2582,24 +2582,24 @@ entry:
%3 = getelementptr [131072 x i32]* @dst, i64 0, i64 %0
store i32 %2, i32* %3, align 4
ret void
-; LINUX-64-STATIC: off00:
+; LINUX-64-STATIC-LABEL: off00:
; LINUX-64-STATIC: movl src+64(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], dst+64(,%rdi,4)
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: off00:
+; LINUX-32-STATIC-LABEL: off00:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl src+64(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[ECX]], dst+64(,[[EAX]],4)
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: off00:
+; LINUX-32-PIC-LABEL: off00:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl src+64(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[ECX]], dst+64(,[[EAX]],4)
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: off00:
+; LINUX-64-PIC-LABEL: off00:
; LINUX-64-PIC: movq src@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movl 64([[RAX]],%rdi,4), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movq dst@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -2661,24 +2661,24 @@ entry:
%3 = getelementptr [32 x i32]* @xdst, i64 0, i64 %0
store i32 %2, i32* %3, align 4
ret void
-; LINUX-64-STATIC: oxf00:
+; LINUX-64-STATIC-LABEL: oxf00:
; LINUX-64-STATIC: movl xsrc+64(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], xdst+64(,%rdi,4)
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: oxf00:
+; LINUX-32-STATIC-LABEL: oxf00:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl xsrc+64(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[ECX]], xdst+64(,[[EAX]],4)
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: oxf00:
+; LINUX-32-PIC-LABEL: oxf00:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl xsrc+64(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[ECX]], xdst+64(,[[EAX]],4)
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: oxf00:
+; LINUX-64-PIC-LABEL: oxf00:
; LINUX-64-PIC: movq xsrc@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movl 64([[RAX]],%rdi,4), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movq xdst@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -2738,24 +2738,24 @@ entry:
%0 = getelementptr [131072 x i32]* @dst, i64 0, i64 %.sum
store i32* %0, i32** @ptr, align 8
ret void
-; LINUX-64-STATIC: off01:
+; LINUX-64-STATIC-LABEL: off01:
; LINUX-64-STATIC: leaq dst+64(,%rdi,4), [[RAX:%r.x]]
; LINUX-64-STATIC: movq [[RAX]], ptr
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: off01:
+; LINUX-32-STATIC-LABEL: off01:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: leal dst+64(,[[EAX]],4), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[EAX]], ptr
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: off01:
+; LINUX-32-PIC-LABEL: off01:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: leal dst+64(,[[EAX]],4), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[EAX]], ptr
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: off01:
+; LINUX-64-PIC-LABEL: off01:
; LINUX-64-PIC: movq dst@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: leaq 64([[RAX]],%rdi,4), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movq ptr@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -2815,24 +2815,24 @@ entry:
%0 = getelementptr [32 x i32]* @xdst, i64 0, i64 %.sum
store i32* %0, i32** @ptr, align 8
ret void
-; LINUX-64-STATIC: oxf01:
+; LINUX-64-STATIC-LABEL: oxf01:
; LINUX-64-STATIC: leaq xdst+64(,%rdi,4), [[RAX:%r.x]]
; LINUX-64-STATIC: movq [[RAX]], ptr
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: oxf01:
+; LINUX-32-STATIC-LABEL: oxf01:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: leal xdst+64(,[[EAX]],4), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[EAX]], ptr
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: oxf01:
+; LINUX-32-PIC-LABEL: oxf01:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: leal xdst+64(,[[EAX]],4), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[EAX]], ptr
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: oxf01:
+; LINUX-64-PIC-LABEL: oxf01:
; LINUX-64-PIC: movq xdst@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: leaq 64([[RAX]],%rdi,4), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movq ptr@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -2895,27 +2895,27 @@ entry:
%4 = getelementptr i32* %0, i64 %1
store i32 %3, i32* %4, align 4
ret void
-; LINUX-64-STATIC: off02:
+; LINUX-64-STATIC-LABEL: off02:
; LINUX-64-STATIC: movl src+64(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movq ptr(%rip), [[RCX:%r.x]]
; LINUX-64-STATIC: movl [[EAX]], 64([[RCX]],%rdi,4)
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: off02:
+; LINUX-32-STATIC-LABEL: off02:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl src+64(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: movl ptr, [[EDX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[ECX]], 64([[EDX]],[[EAX]],4)
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: off02:
+; LINUX-32-PIC-LABEL: off02:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl src+64(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: movl ptr, [[EDX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[ECX]], 64([[EDX]],[[EAX]],4)
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: off02:
+; LINUX-64-PIC-LABEL: off02:
; LINUX-64-PIC: movq src@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movl 64([[RAX]],%rdi,4), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movq ptr@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -2985,27 +2985,27 @@ entry:
%4 = getelementptr i32* %0, i64 %1
store i32 %3, i32* %4, align 4
ret void
-; LINUX-64-STATIC: oxf02:
+; LINUX-64-STATIC-LABEL: oxf02:
; LINUX-64-STATIC: movl xsrc+64(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movq ptr(%rip), [[RCX:%r.x]]
; LINUX-64-STATIC: movl [[EAX]], 64([[RCX]],%rdi,4)
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: oxf02:
+; LINUX-32-STATIC-LABEL: oxf02:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl xsrc+64(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: movl ptr, [[EDX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[ECX]], 64([[EDX]],[[EAX]],4)
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: oxf02:
+; LINUX-32-PIC-LABEL: oxf02:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl xsrc+64(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: movl ptr, [[EDX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[ECX]], 64([[EDX]],[[EAX]],4)
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: oxf02:
+; LINUX-64-PIC-LABEL: oxf02:
; LINUX-64-PIC: movq xsrc@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movl 64([[RAX]],%rdi,4), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movq ptr@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -3074,24 +3074,24 @@ entry:
%3 = getelementptr [131072 x i32]* @ddst, i64 0, i64 %0
store i32 %2, i32* %3, align 4
ret void
-; LINUX-64-STATIC: off03:
+; LINUX-64-STATIC-LABEL: off03:
; LINUX-64-STATIC: movl dsrc+64(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], ddst+64(,%rdi,4)
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: off03:
+; LINUX-32-STATIC-LABEL: off03:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl dsrc+64(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[ECX]], ddst+64(,[[EAX]],4)
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: off03:
+; LINUX-32-PIC-LABEL: off03:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl dsrc+64(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[ECX]], ddst+64(,[[EAX]],4)
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: off03:
+; LINUX-64-PIC-LABEL: off03:
; LINUX-64-PIC: movq dsrc@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movl 64([[RAX]],%rdi,4), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movq ddst@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -3147,24 +3147,24 @@ entry:
%0 = getelementptr [131072 x i32]* @ddst, i64 0, i64 %.sum
store i32* %0, i32** @dptr, align 8
ret void
-; LINUX-64-STATIC: off04:
+; LINUX-64-STATIC-LABEL: off04:
; LINUX-64-STATIC: leaq ddst+64(,%rdi,4), [[RAX:%r.x]]
; LINUX-64-STATIC: movq [[RAX]], dptr
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: off04:
+; LINUX-32-STATIC-LABEL: off04:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: leal ddst+64(,[[EAX]],4), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[EAX]], dptr
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: off04:
+; LINUX-32-PIC-LABEL: off04:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: leal ddst+64(,[[EAX]],4), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[EAX]], dptr
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: off04:
+; LINUX-64-PIC-LABEL: off04:
; LINUX-64-PIC: movq ddst@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: leaq 64([[RAX]],%rdi,4), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movq dptr@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -3220,27 +3220,27 @@ entry:
%4 = getelementptr i32* %0, i64 %1
store i32 %3, i32* %4, align 4
ret void
-; LINUX-64-STATIC: off05:
+; LINUX-64-STATIC-LABEL: off05:
; LINUX-64-STATIC: movl dsrc+64(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movq dptr(%rip), [[RCX:%r.x]]
; LINUX-64-STATIC: movl [[EAX]], 64([[RCX]],%rdi,4)
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: off05:
+; LINUX-32-STATIC-LABEL: off05:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl dsrc+64(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: movl dptr, [[EDX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[ECX]], 64([[EDX]],[[EAX]],4)
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: off05:
+; LINUX-32-PIC-LABEL: off05:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl dsrc+64(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: movl dptr, [[EDX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[ECX]], 64([[EDX]],[[EAX]],4)
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: off05:
+; LINUX-64-PIC-LABEL: off05:
; LINUX-64-PIC: movq dsrc@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movl 64([[RAX]],%rdi,4), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movq dptr@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -3302,24 +3302,24 @@ entry:
%3 = getelementptr [131072 x i32]* @ldst, i64 0, i64 %0
store i32 %2, i32* %3, align 4
ret void
-; LINUX-64-STATIC: off06:
+; LINUX-64-STATIC-LABEL: off06:
; LINUX-64-STATIC: movl lsrc+64(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], ldst+64(,%rdi,4)
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: off06:
+; LINUX-32-STATIC-LABEL: off06:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl lsrc+64(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[ECX]], ldst+64(,[[EAX]],4)
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: off06:
+; LINUX-32-PIC-LABEL: off06:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl lsrc+64(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[ECX]], ldst+64(,[[EAX]],4)
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: off06:
+; LINUX-64-PIC-LABEL: off06:
; LINUX-64-PIC: leaq lsrc(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movl 64([[RAX]],%rdi,4), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: leaq ldst(%rip), [[RCX:%r.x]]
@@ -3375,24 +3375,24 @@ entry:
%0 = getelementptr [131072 x i32]* @ldst, i64 0, i64 %.sum
store i32* %0, i32** @lptr, align 8
ret void
-; LINUX-64-STATIC: off07:
+; LINUX-64-STATIC-LABEL: off07:
; LINUX-64-STATIC: leaq ldst+64(,%rdi,4), [[RAX:%r.x]]
; LINUX-64-STATIC: movq [[RAX]], lptr
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: off07:
+; LINUX-32-STATIC-LABEL: off07:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: leal ldst+64(,[[EAX]],4), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[EAX]], lptr
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: off07:
+; LINUX-32-PIC-LABEL: off07:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: leal ldst+64(,[[EAX]],4), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[EAX]], lptr
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: off07:
+; LINUX-64-PIC-LABEL: off07:
; LINUX-64-PIC: leaq ldst(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: leaq 64([[RAX]],%rdi,4), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movq [[RAX]], lptr(%rip)
@@ -3447,27 +3447,27 @@ entry:
%4 = getelementptr i32* %0, i64 %1
store i32 %3, i32* %4, align 4
ret void
-; LINUX-64-STATIC: off08:
+; LINUX-64-STATIC-LABEL: off08:
; LINUX-64-STATIC: movl lsrc+64(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movq lptr(%rip), [[RCX:%r.x]]
; LINUX-64-STATIC: movl [[EAX]], 64([[RCX]],%rdi,4)
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: off08:
+; LINUX-32-STATIC-LABEL: off08:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl lsrc+64(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: movl lptr, [[EDX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[ECX]], 64([[EDX]],[[EAX]],4)
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: off08:
+; LINUX-32-PIC-LABEL: off08:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl lsrc+64(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: movl lptr, [[EDX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[ECX]], 64([[EDX]],[[EAX]],4)
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: off08:
+; LINUX-64-PIC-LABEL: off08:
; LINUX-64-PIC: leaq lsrc(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movl 64([[RAX]],%rdi,4), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movq lptr(%rip), [[RCX:%r.x]]
@@ -3525,22 +3525,22 @@ entry:
%0 = load i32* getelementptr ([131072 x i32]* @src, i32 0, i64 65536), align 4
store i32 %0, i32* getelementptr ([131072 x i32]* @dst, i32 0, i64 65536), align 4
ret void
-; LINUX-64-STATIC: moo00:
+; LINUX-64-STATIC-LABEL: moo00:
; LINUX-64-STATIC: movl src+262144(%rip), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], dst+262144(%rip)
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: moo00:
+; LINUX-32-STATIC-LABEL: moo00:
; LINUX-32-STATIC: movl src+262144, [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[EAX]], dst+262144
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: moo00:
+; LINUX-32-PIC-LABEL: moo00:
; LINUX-32-PIC: movl src+262144, [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[EAX]], dst+262144
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: moo00:
+; LINUX-64-PIC-LABEL: moo00:
; LINUX-64-PIC: movq src@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movl 262144([[RAX]]), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movq dst@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -3595,19 +3595,19 @@ define void @moo01(i64 %i) nounwind {
entry:
store i32* getelementptr ([131072 x i32]* @dst, i32 0, i64 65536), i32** @ptr, align 8
ret void
-; LINUX-64-STATIC: moo01:
+; LINUX-64-STATIC-LABEL: moo01:
; LINUX-64-STATIC: movq $dst+262144, ptr(%rip)
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: moo01:
+; LINUX-32-STATIC-LABEL: moo01:
; LINUX-32-STATIC: movl $dst+262144, ptr
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: moo01:
+; LINUX-32-PIC-LABEL: moo01:
; LINUX-32-PIC: movl $dst+262144, ptr
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: moo01:
+; LINUX-64-PIC-LABEL: moo01:
; LINUX-64-PIC: movl $262144, [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: addq dst@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movq ptr@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -3664,25 +3664,25 @@ entry:
%2 = getelementptr i32* %0, i64 65536
store i32 %1, i32* %2, align 4
ret void
-; LINUX-64-STATIC: moo02:
+; LINUX-64-STATIC-LABEL: moo02:
; LINUX-64-STATIC: movl src+262144(%rip), [[EAX:%e.x]]
; LINUX-64-STATIC: movq ptr(%rip), [[RCX:%r.x]]
; LINUX-64-STATIC: movl [[EAX]], 262144([[RCX]])
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: moo02:
+; LINUX-32-STATIC-LABEL: moo02:
; LINUX-32-STATIC: movl src+262144, [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl ptr, [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[EAX]], 262144([[ECX]])
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: moo02:
+; LINUX-32-PIC-LABEL: moo02:
; LINUX-32-PIC: movl src+262144, [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl ptr, [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[EAX]], 262144([[ECX]])
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: moo02:
+; LINUX-64-PIC-LABEL: moo02:
; LINUX-64-PIC: movq src@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movl 262144([[RAX]]), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movq ptr@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -3745,22 +3745,22 @@ entry:
%0 = load i32* getelementptr ([131072 x i32]* @dsrc, i32 0, i64 65536), align 32
store i32 %0, i32* getelementptr ([131072 x i32]* @ddst, i32 0, i64 65536), align 32
ret void
-; LINUX-64-STATIC: moo03:
+; LINUX-64-STATIC-LABEL: moo03:
; LINUX-64-STATIC: movl dsrc+262144(%rip), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], ddst+262144(%rip)
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: moo03:
+; LINUX-32-STATIC-LABEL: moo03:
; LINUX-32-STATIC: movl dsrc+262144, [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[EAX]], ddst+262144
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: moo03:
+; LINUX-32-PIC-LABEL: moo03:
; LINUX-32-PIC: movl dsrc+262144, [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[EAX]], ddst+262144
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: moo03:
+; LINUX-64-PIC-LABEL: moo03:
; LINUX-64-PIC: movq dsrc@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movl 262144([[RAX]]), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movq ddst@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -3805,19 +3805,19 @@ define void @moo04(i64 %i) nounwind {
entry:
store i32* getelementptr ([131072 x i32]* @ddst, i32 0, i64 65536), i32** @dptr, align 8
ret void
-; LINUX-64-STATIC: moo04:
+; LINUX-64-STATIC-LABEL: moo04:
; LINUX-64-STATIC: movq $ddst+262144, dptr
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: moo04:
+; LINUX-32-STATIC-LABEL: moo04:
; LINUX-32-STATIC: movl $ddst+262144, dptr
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: moo04:
+; LINUX-32-PIC-LABEL: moo04:
; LINUX-32-PIC: movl $ddst+262144, dptr
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: moo04:
+; LINUX-64-PIC-LABEL: moo04:
; LINUX-64-PIC: movl $262144, [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: addq ddst@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movq dptr@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -3863,25 +3863,25 @@ entry:
%2 = getelementptr i32* %0, i64 65536
store i32 %1, i32* %2, align 4
ret void
-; LINUX-64-STATIC: moo05:
+; LINUX-64-STATIC-LABEL: moo05:
; LINUX-64-STATIC: movl dsrc+262144(%rip), [[EAX:%e.x]]
; LINUX-64-STATIC: movq dptr(%rip), [[RCX:%r.x]]
; LINUX-64-STATIC: movl [[EAX]], 262144([[RCX]])
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: moo05:
+; LINUX-32-STATIC-LABEL: moo05:
; LINUX-32-STATIC: movl dsrc+262144, [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl dptr, [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[EAX]], 262144([[ECX]])
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: moo05:
+; LINUX-32-PIC-LABEL: moo05:
; LINUX-32-PIC: movl dsrc+262144, [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl dptr, [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[EAX]], 262144([[ECX]])
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: moo05:
+; LINUX-64-PIC-LABEL: moo05:
; LINUX-64-PIC: movq dsrc@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movl 262144([[RAX]]), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movq dptr@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -3934,22 +3934,22 @@ entry:
%0 = load i32* getelementptr ([131072 x i32]* @lsrc, i32 0, i64 65536), align 4
store i32 %0, i32* getelementptr ([131072 x i32]* @ldst, i32 0, i64 65536), align 4
ret void
-; LINUX-64-STATIC: moo06:
+; LINUX-64-STATIC-LABEL: moo06:
; LINUX-64-STATIC: movl lsrc+262144(%rip), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], ldst+262144(%rip)
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: moo06:
+; LINUX-32-STATIC-LABEL: moo06:
; LINUX-32-STATIC: movl lsrc+262144, [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[EAX]], ldst+262144
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: moo06:
+; LINUX-32-PIC-LABEL: moo06:
; LINUX-32-PIC: movl lsrc+262144, [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[EAX]], ldst+262144
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: moo06:
+; LINUX-64-PIC-LABEL: moo06:
; LINUX-64-PIC: movl lsrc+262144(%rip), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movl [[EAX]], ldst+262144(%rip)
; LINUX-64-PIC-NEXT: ret
@@ -3992,19 +3992,19 @@ define void @moo07(i64 %i) nounwind {
entry:
store i32* getelementptr ([131072 x i32]* @ldst, i32 0, i64 65536), i32** @lptr, align 8
ret void
-; LINUX-64-STATIC: moo07:
+; LINUX-64-STATIC-LABEL: moo07:
; LINUX-64-STATIC: movq $ldst+262144, lptr
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: moo07:
+; LINUX-32-STATIC-LABEL: moo07:
; LINUX-32-STATIC: movl $ldst+262144, lptr
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: moo07:
+; LINUX-32-PIC-LABEL: moo07:
; LINUX-32-PIC: movl $ldst+262144, lptr
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: moo07:
+; LINUX-64-PIC-LABEL: moo07:
; LINUX-64-PIC: leaq ldst+262144(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movq [[RAX]], lptr(%rip)
; LINUX-64-PIC-NEXT: ret
@@ -4048,25 +4048,25 @@ entry:
%2 = getelementptr i32* %0, i64 65536
store i32 %1, i32* %2, align 4
ret void
-; LINUX-64-STATIC: moo08:
+; LINUX-64-STATIC-LABEL: moo08:
; LINUX-64-STATIC: movl lsrc+262144(%rip), [[EAX:%e.x]]
; LINUX-64-STATIC: movq lptr(%rip), [[RCX:%r.x]]
; LINUX-64-STATIC: movl [[EAX]], 262144([[RCX]])
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: moo08:
+; LINUX-32-STATIC-LABEL: moo08:
; LINUX-32-STATIC: movl lsrc+262144, [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl lptr, [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[EAX]], 262144([[ECX]])
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: moo08:
+; LINUX-32-PIC-LABEL: moo08:
; LINUX-32-PIC: movl lsrc+262144, [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl lptr, [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[EAX]], 262144([[ECX]])
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: moo08:
+; LINUX-64-PIC-LABEL: moo08:
; LINUX-64-PIC: movl lsrc+262144(%rip), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movq lptr(%rip), [[RCX:%r.x]]
; LINUX-64-PIC-NEXT: movl [[EAX]], 262144([[RCX]])
@@ -4120,24 +4120,24 @@ entry:
%3 = getelementptr [131072 x i32]* @dst, i64 0, i64 %0
store i32 %2, i32* %3, align 4
ret void
-; LINUX-64-STATIC: big00:
+; LINUX-64-STATIC-LABEL: big00:
; LINUX-64-STATIC: movl src+262144(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], dst+262144(,%rdi,4)
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: big00:
+; LINUX-32-STATIC-LABEL: big00:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl src+262144(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[ECX]], dst+262144(,[[EAX]],4)
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: big00:
+; LINUX-32-PIC-LABEL: big00:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl src+262144(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[ECX]], dst+262144(,[[EAX]],4)
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: big00:
+; LINUX-64-PIC-LABEL: big00:
; LINUX-64-PIC: movq src@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movl 262144([[RAX]],%rdi,4), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movq dst@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -4197,24 +4197,24 @@ entry:
%0 = getelementptr [131072 x i32]* @dst, i64 0, i64 %.sum
store i32* %0, i32** @ptr, align 8
ret void
-; LINUX-64-STATIC: big01:
+; LINUX-64-STATIC-LABEL: big01:
; LINUX-64-STATIC: leaq dst+262144(,%rdi,4), [[RAX:%r.x]]
; LINUX-64-STATIC: movq [[RAX]], ptr(%rip)
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: big01:
+; LINUX-32-STATIC-LABEL: big01:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: leal dst+262144(,[[EAX]],4), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[EAX]], ptr
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: big01:
+; LINUX-32-PIC-LABEL: big01:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: leal dst+262144(,[[EAX]],4), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[EAX]], ptr
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: big01:
+; LINUX-64-PIC-LABEL: big01:
; LINUX-64-PIC: movq dst@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: leaq 262144([[RAX]],%rdi,4), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movq ptr@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -4277,27 +4277,27 @@ entry:
%4 = getelementptr i32* %0, i64 %1
store i32 %3, i32* %4, align 4
ret void
-; LINUX-64-STATIC: big02:
+; LINUX-64-STATIC-LABEL: big02:
; LINUX-64-STATIC: movl src+262144(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movq ptr(%rip), [[RCX:%r.x]]
; LINUX-64-STATIC: movl [[EAX]], 262144([[RCX]],%rdi,4)
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: big02:
+; LINUX-32-STATIC-LABEL: big02:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl src+262144(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: movl ptr, [[EDX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[ECX]], 262144([[EDX]],[[EAX]],4)
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: big02:
+; LINUX-32-PIC-LABEL: big02:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl src+262144(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: movl ptr, [[EDX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[ECX]], 262144([[EDX]],[[EAX]],4)
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: big02:
+; LINUX-64-PIC-LABEL: big02:
; LINUX-64-PIC: movq src@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movl 262144([[RAX]],%rdi,4), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movq ptr@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -4366,24 +4366,24 @@ entry:
%3 = getelementptr [131072 x i32]* @ddst, i64 0, i64 %0
store i32 %2, i32* %3, align 4
ret void
-; LINUX-64-STATIC: big03:
+; LINUX-64-STATIC-LABEL: big03:
; LINUX-64-STATIC: movl dsrc+262144(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], ddst+262144(,%rdi,4)
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: big03:
+; LINUX-32-STATIC-LABEL: big03:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl dsrc+262144(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[ECX]], ddst+262144(,[[EAX]],4)
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: big03:
+; LINUX-32-PIC-LABEL: big03:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl dsrc+262144(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[ECX]], ddst+262144(,[[EAX]],4)
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: big03:
+; LINUX-64-PIC-LABEL: big03:
; LINUX-64-PIC: movq dsrc@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movl 262144([[RAX]],%rdi,4), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movq ddst@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -4439,24 +4439,24 @@ entry:
%0 = getelementptr [131072 x i32]* @ddst, i64 0, i64 %.sum
store i32* %0, i32** @dptr, align 8
ret void
-; LINUX-64-STATIC: big04:
+; LINUX-64-STATIC-LABEL: big04:
; LINUX-64-STATIC: leaq ddst+262144(,%rdi,4), [[RAX:%r.x]]
; LINUX-64-STATIC: movq [[RAX]], dptr
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: big04:
+; LINUX-32-STATIC-LABEL: big04:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: leal ddst+262144(,[[EAX]],4), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[EAX]], dptr
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: big04:
+; LINUX-32-PIC-LABEL: big04:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: leal ddst+262144(,[[EAX]],4), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[EAX]], dptr
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: big04:
+; LINUX-64-PIC-LABEL: big04:
; LINUX-64-PIC: movq ddst@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: leaq 262144([[RAX]],%rdi,4), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movq dptr@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -4512,27 +4512,27 @@ entry:
%4 = getelementptr i32* %0, i64 %1
store i32 %3, i32* %4, align 4
ret void
-; LINUX-64-STATIC: big05:
+; LINUX-64-STATIC-LABEL: big05:
; LINUX-64-STATIC: movl dsrc+262144(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movq dptr(%rip), [[RCX:%r.x]]
; LINUX-64-STATIC: movl [[EAX]], 262144([[RCX]],%rdi,4)
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: big05:
+; LINUX-32-STATIC-LABEL: big05:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl dsrc+262144(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: movl dptr, [[EDX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[ECX]], 262144([[EDX]],[[EAX]],4)
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: big05:
+; LINUX-32-PIC-LABEL: big05:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl dsrc+262144(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: movl dptr, [[EDX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[ECX]], 262144([[EDX]],[[EAX]],4)
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: big05:
+; LINUX-64-PIC-LABEL: big05:
; LINUX-64-PIC: movq dsrc@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movl 262144([[RAX]],%rdi,4), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movq dptr@GOTPCREL(%rip), [[RCX:%r.x]]
@@ -4594,24 +4594,24 @@ entry:
%3 = getelementptr [131072 x i32]* @ldst, i64 0, i64 %0
store i32 %2, i32* %3, align 4
ret void
-; LINUX-64-STATIC: big06:
+; LINUX-64-STATIC-LABEL: big06:
; LINUX-64-STATIC: movl lsrc+262144(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], ldst+262144(,%rdi,4)
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: big06:
+; LINUX-32-STATIC-LABEL: big06:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl lsrc+262144(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[ECX]], ldst+262144(,[[EAX]],4)
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: big06:
+; LINUX-32-PIC-LABEL: big06:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl lsrc+262144(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[ECX]], ldst+262144(,[[EAX]],4)
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: big06:
+; LINUX-64-PIC-LABEL: big06:
; LINUX-64-PIC: leaq lsrc(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movl 262144([[RAX]],%rdi,4), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: leaq ldst(%rip), [[RCX:%r.x]]
@@ -4667,24 +4667,24 @@ entry:
%0 = getelementptr [131072 x i32]* @ldst, i64 0, i64 %.sum
store i32* %0, i32** @lptr, align 8
ret void
-; LINUX-64-STATIC: big07:
+; LINUX-64-STATIC-LABEL: big07:
; LINUX-64-STATIC: leaq ldst+262144(,%rdi,4), [[RAX:%r.x]]
; LINUX-64-STATIC: movq [[RAX]], lptr
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: big07:
+; LINUX-32-STATIC-LABEL: big07:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: leal ldst+262144(,[[EAX]],4), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[EAX]], lptr
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: big07:
+; LINUX-32-PIC-LABEL: big07:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: leal ldst+262144(,[[EAX]],4), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[EAX]], lptr
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: big07:
+; LINUX-64-PIC-LABEL: big07:
; LINUX-64-PIC: leaq ldst(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: leaq 262144([[RAX]],%rdi,4), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movq [[RAX]], lptr(%rip)
@@ -4739,27 +4739,27 @@ entry:
%4 = getelementptr i32* %0, i64 %1
store i32 %3, i32* %4, align 4
ret void
-; LINUX-64-STATIC: big08:
+; LINUX-64-STATIC-LABEL: big08:
; LINUX-64-STATIC: movl lsrc+262144(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movq lptr(%rip), [[RCX:%r.x]]
; LINUX-64-STATIC: movl [[EAX]], 262144([[RCX]],%rdi,4)
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: big08:
+; LINUX-32-STATIC-LABEL: big08:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl lsrc+262144(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: movl lptr, [[EDX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[ECX]], 262144([[EDX]],[[EAX]],4)
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: big08:
+; LINUX-32-PIC-LABEL: big08:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl lsrc+262144(,[[EAX]],4), [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: movl lptr, [[EDX:%e.x]]
; LINUX-32-PIC-NEXT: movl [[ECX]], 262144([[EDX]],[[EAX]],4)
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: big08:
+; LINUX-64-PIC-LABEL: big08:
; LINUX-64-PIC: leaq lsrc(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movl 262144([[RAX]],%rdi,4), [[EAX:%e.x]]
; LINUX-64-PIC-NEXT: movq lptr(%rip), [[RCX:%r.x]]
@@ -4815,19 +4815,19 @@ entry:
define i8* @bar00() nounwind {
entry:
ret i8* bitcast ([131072 x i32]* @src to i8*)
-; LINUX-64-STATIC: bar00:
+; LINUX-64-STATIC-LABEL: bar00:
; LINUX-64-STATIC: movl $src, %eax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: bar00:
+; LINUX-32-STATIC-LABEL: bar00:
; LINUX-32-STATIC: movl $src, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: bar00:
+; LINUX-32-PIC-LABEL: bar00:
; LINUX-32-PIC: movl $src, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: bar00:
+; LINUX-64-PIC-LABEL: bar00:
; LINUX-64-PIC: movq src@GOTPCREL(%rip), %rax
; LINUX-64-PIC-NEXT: ret
@@ -4862,19 +4862,19 @@ entry:
define i8* @bxr00() nounwind {
entry:
ret i8* bitcast ([32 x i32]* @xsrc to i8*)
-; LINUX-64-STATIC: bxr00:
+; LINUX-64-STATIC-LABEL: bxr00:
; LINUX-64-STATIC: movl $xsrc, %eax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: bxr00:
+; LINUX-32-STATIC-LABEL: bxr00:
; LINUX-32-STATIC: movl $xsrc, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: bxr00:
+; LINUX-32-PIC-LABEL: bxr00:
; LINUX-32-PIC: movl $xsrc, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: bxr00:
+; LINUX-64-PIC-LABEL: bxr00:
; LINUX-64-PIC: movq xsrc@GOTPCREL(%rip), %rax
; LINUX-64-PIC-NEXT: ret
@@ -4909,19 +4909,19 @@ entry:
define i8* @bar01() nounwind {
entry:
ret i8* bitcast ([131072 x i32]* @dst to i8*)
-; LINUX-64-STATIC: bar01:
+; LINUX-64-STATIC-LABEL: bar01:
; LINUX-64-STATIC: movl $dst, %eax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: bar01:
+; LINUX-32-STATIC-LABEL: bar01:
; LINUX-32-STATIC: movl $dst, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: bar01:
+; LINUX-32-PIC-LABEL: bar01:
; LINUX-32-PIC: movl $dst, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: bar01:
+; LINUX-64-PIC-LABEL: bar01:
; LINUX-64-PIC: movq dst@GOTPCREL(%rip), %rax
; LINUX-64-PIC-NEXT: ret
@@ -4956,19 +4956,19 @@ entry:
define i8* @bxr01() nounwind {
entry:
ret i8* bitcast ([32 x i32]* @xdst to i8*)
-; LINUX-64-STATIC: bxr01:
+; LINUX-64-STATIC-LABEL: bxr01:
; LINUX-64-STATIC: movl $xdst, %eax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: bxr01:
+; LINUX-32-STATIC-LABEL: bxr01:
; LINUX-32-STATIC: movl $xdst, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: bxr01:
+; LINUX-32-PIC-LABEL: bxr01:
; LINUX-32-PIC: movl $xdst, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: bxr01:
+; LINUX-64-PIC-LABEL: bxr01:
; LINUX-64-PIC: movq xdst@GOTPCREL(%rip), %rax
; LINUX-64-PIC-NEXT: ret
@@ -5003,19 +5003,19 @@ entry:
define i8* @bar02() nounwind {
entry:
ret i8* bitcast (i32** @ptr to i8*)
-; LINUX-64-STATIC: bar02:
+; LINUX-64-STATIC-LABEL: bar02:
; LINUX-64-STATIC: movl $ptr, %eax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: bar02:
+; LINUX-32-STATIC-LABEL: bar02:
; LINUX-32-STATIC: movl $ptr, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: bar02:
+; LINUX-32-PIC-LABEL: bar02:
; LINUX-32-PIC: movl $ptr, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: bar02:
+; LINUX-64-PIC-LABEL: bar02:
; LINUX-64-PIC: movq ptr@GOTPCREL(%rip), %rax
; LINUX-64-PIC-NEXT: ret
@@ -5050,19 +5050,19 @@ entry:
define i8* @bar03() nounwind {
entry:
ret i8* bitcast ([131072 x i32]* @dsrc to i8*)
-; LINUX-64-STATIC: bar03:
+; LINUX-64-STATIC-LABEL: bar03:
; LINUX-64-STATIC: movl $dsrc, %eax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: bar03:
+; LINUX-32-STATIC-LABEL: bar03:
; LINUX-32-STATIC: movl $dsrc, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: bar03:
+; LINUX-32-PIC-LABEL: bar03:
; LINUX-32-PIC: movl $dsrc, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: bar03:
+; LINUX-64-PIC-LABEL: bar03:
; LINUX-64-PIC: movq dsrc@GOTPCREL(%rip), %rax
; LINUX-64-PIC-NEXT: ret
@@ -5097,19 +5097,19 @@ entry:
define i8* @bar04() nounwind {
entry:
ret i8* bitcast ([131072 x i32]* @ddst to i8*)
-; LINUX-64-STATIC: bar04:
+; LINUX-64-STATIC-LABEL: bar04:
; LINUX-64-STATIC: movl $ddst, %eax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: bar04:
+; LINUX-32-STATIC-LABEL: bar04:
; LINUX-32-STATIC: movl $ddst, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: bar04:
+; LINUX-32-PIC-LABEL: bar04:
; LINUX-32-PIC: movl $ddst, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: bar04:
+; LINUX-64-PIC-LABEL: bar04:
; LINUX-64-PIC: movq ddst@GOTPCREL(%rip), %rax
; LINUX-64-PIC-NEXT: ret
@@ -5144,19 +5144,19 @@ entry:
define i8* @bar05() nounwind {
entry:
ret i8* bitcast (i32** @dptr to i8*)
-; LINUX-64-STATIC: bar05:
+; LINUX-64-STATIC-LABEL: bar05:
; LINUX-64-STATIC: movl $dptr, %eax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: bar05:
+; LINUX-32-STATIC-LABEL: bar05:
; LINUX-32-STATIC: movl $dptr, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: bar05:
+; LINUX-32-PIC-LABEL: bar05:
; LINUX-32-PIC: movl $dptr, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: bar05:
+; LINUX-64-PIC-LABEL: bar05:
; LINUX-64-PIC: movq dptr@GOTPCREL(%rip), %rax
; LINUX-64-PIC-NEXT: ret
@@ -5191,19 +5191,19 @@ entry:
define i8* @bar06() nounwind {
entry:
ret i8* bitcast ([131072 x i32]* @lsrc to i8*)
-; LINUX-64-STATIC: bar06:
+; LINUX-64-STATIC-LABEL: bar06:
; LINUX-64-STATIC: movl $lsrc, %eax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: bar06:
+; LINUX-32-STATIC-LABEL: bar06:
; LINUX-32-STATIC: movl $lsrc, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: bar06:
+; LINUX-32-PIC-LABEL: bar06:
; LINUX-32-PIC: movl $lsrc, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: bar06:
+; LINUX-64-PIC-LABEL: bar06:
; LINUX-64-PIC: leaq lsrc(%rip), %rax
; LINUX-64-PIC-NEXT: ret
@@ -5238,19 +5238,19 @@ entry:
define i8* @bar07() nounwind {
entry:
ret i8* bitcast ([131072 x i32]* @ldst to i8*)
-; LINUX-64-STATIC: bar07:
+; LINUX-64-STATIC-LABEL: bar07:
; LINUX-64-STATIC: movl $ldst, %eax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: bar07:
+; LINUX-32-STATIC-LABEL: bar07:
; LINUX-32-STATIC: movl $ldst, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: bar07:
+; LINUX-32-PIC-LABEL: bar07:
; LINUX-32-PIC: movl $ldst, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: bar07:
+; LINUX-64-PIC-LABEL: bar07:
; LINUX-64-PIC: leaq ldst(%rip), %rax
; LINUX-64-PIC-NEXT: ret
@@ -5285,19 +5285,19 @@ entry:
define i8* @bar08() nounwind {
entry:
ret i8* bitcast (i32** @lptr to i8*)
-; LINUX-64-STATIC: bar08:
+; LINUX-64-STATIC-LABEL: bar08:
; LINUX-64-STATIC: movl $lptr, %eax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: bar08:
+; LINUX-32-STATIC-LABEL: bar08:
; LINUX-32-STATIC: movl $lptr, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: bar08:
+; LINUX-32-PIC-LABEL: bar08:
; LINUX-32-PIC: movl $lptr, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: bar08:
+; LINUX-64-PIC-LABEL: bar08:
; LINUX-64-PIC: leaq lptr(%rip), %rax
; LINUX-64-PIC-NEXT: ret
@@ -5332,19 +5332,19 @@ entry:
define i8* @har00() nounwind {
entry:
ret i8* bitcast ([131072 x i32]* @src to i8*)
-; LINUX-64-STATIC: har00:
+; LINUX-64-STATIC-LABEL: har00:
; LINUX-64-STATIC: movl $src, %eax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: har00:
+; LINUX-32-STATIC-LABEL: har00:
; LINUX-32-STATIC: movl $src, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: har00:
+; LINUX-32-PIC-LABEL: har00:
; LINUX-32-PIC: movl $src, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: har00:
+; LINUX-64-PIC-LABEL: har00:
; LINUX-64-PIC: movq src@GOTPCREL(%rip), %rax
; LINUX-64-PIC-NEXT: ret
@@ -5379,19 +5379,19 @@ entry:
define i8* @hxr00() nounwind {
entry:
ret i8* bitcast ([32 x i32]* @xsrc to i8*)
-; LINUX-64-STATIC: hxr00:
+; LINUX-64-STATIC-LABEL: hxr00:
; LINUX-64-STATIC: movl $xsrc, %eax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: hxr00:
+; LINUX-32-STATIC-LABEL: hxr00:
; LINUX-32-STATIC: movl $xsrc, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: hxr00:
+; LINUX-32-PIC-LABEL: hxr00:
; LINUX-32-PIC: movl $xsrc, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: hxr00:
+; LINUX-64-PIC-LABEL: hxr00:
; LINUX-64-PIC: movq xsrc@GOTPCREL(%rip), %rax
; LINUX-64-PIC-NEXT: ret
@@ -5426,19 +5426,19 @@ entry:
define i8* @har01() nounwind {
entry:
ret i8* bitcast ([131072 x i32]* @dst to i8*)
-; LINUX-64-STATIC: har01:
+; LINUX-64-STATIC-LABEL: har01:
; LINUX-64-STATIC: movl $dst, %eax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: har01:
+; LINUX-32-STATIC-LABEL: har01:
; LINUX-32-STATIC: movl $dst, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: har01:
+; LINUX-32-PIC-LABEL: har01:
; LINUX-32-PIC: movl $dst, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: har01:
+; LINUX-64-PIC-LABEL: har01:
; LINUX-64-PIC: movq dst@GOTPCREL(%rip), %rax
; LINUX-64-PIC-NEXT: ret
@@ -5473,19 +5473,19 @@ entry:
define i8* @hxr01() nounwind {
entry:
ret i8* bitcast ([32 x i32]* @xdst to i8*)
-; LINUX-64-STATIC: hxr01:
+; LINUX-64-STATIC-LABEL: hxr01:
; LINUX-64-STATIC: movl $xdst, %eax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: hxr01:
+; LINUX-32-STATIC-LABEL: hxr01:
; LINUX-32-STATIC: movl $xdst, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: hxr01:
+; LINUX-32-PIC-LABEL: hxr01:
; LINUX-32-PIC: movl $xdst, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: hxr01:
+; LINUX-64-PIC-LABEL: hxr01:
; LINUX-64-PIC: movq xdst@GOTPCREL(%rip), %rax
; LINUX-64-PIC-NEXT: ret
@@ -5522,19 +5522,19 @@ entry:
%0 = load i32** @ptr, align 8
%1 = bitcast i32* %0 to i8*
ret i8* %1
-; LINUX-64-STATIC: har02:
+; LINUX-64-STATIC-LABEL: har02:
; LINUX-64-STATIC: movq ptr(%rip), %rax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: har02:
+; LINUX-32-STATIC-LABEL: har02:
; LINUX-32-STATIC: movl ptr, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: har02:
+; LINUX-32-PIC-LABEL: har02:
; LINUX-32-PIC: movl ptr, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: har02:
+; LINUX-64-PIC-LABEL: har02:
; LINUX-64-PIC: movq ptr@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movq ([[RAX]]), %rax
; LINUX-64-PIC-NEXT: ret
@@ -5575,19 +5575,19 @@ entry:
define i8* @har03() nounwind {
entry:
ret i8* bitcast ([131072 x i32]* @dsrc to i8*)
-; LINUX-64-STATIC: har03:
+; LINUX-64-STATIC-LABEL: har03:
; LINUX-64-STATIC: movl $dsrc, %eax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: har03:
+; LINUX-32-STATIC-LABEL: har03:
; LINUX-32-STATIC: movl $dsrc, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: har03:
+; LINUX-32-PIC-LABEL: har03:
; LINUX-32-PIC: movl $dsrc, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: har03:
+; LINUX-64-PIC-LABEL: har03:
; LINUX-64-PIC: movq dsrc@GOTPCREL(%rip), %rax
; LINUX-64-PIC-NEXT: ret
@@ -5622,19 +5622,19 @@ entry:
define i8* @har04() nounwind {
entry:
ret i8* bitcast ([131072 x i32]* @ddst to i8*)
-; LINUX-64-STATIC: har04:
+; LINUX-64-STATIC-LABEL: har04:
; LINUX-64-STATIC: movl $ddst, %eax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: har04:
+; LINUX-32-STATIC-LABEL: har04:
; LINUX-32-STATIC: movl $ddst, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: har04:
+; LINUX-32-PIC-LABEL: har04:
; LINUX-32-PIC: movl $ddst, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: har04:
+; LINUX-64-PIC-LABEL: har04:
; LINUX-64-PIC: movq ddst@GOTPCREL(%rip), %rax
; LINUX-64-PIC-NEXT: ret
@@ -5671,19 +5671,19 @@ entry:
%0 = load i32** @dptr, align 8
%1 = bitcast i32* %0 to i8*
ret i8* %1
-; LINUX-64-STATIC: har05:
+; LINUX-64-STATIC-LABEL: har05:
; LINUX-64-STATIC: movq dptr(%rip), %rax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: har05:
+; LINUX-32-STATIC-LABEL: har05:
; LINUX-32-STATIC: movl dptr, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: har05:
+; LINUX-32-PIC-LABEL: har05:
; LINUX-32-PIC: movl dptr, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: har05:
+; LINUX-64-PIC-LABEL: har05:
; LINUX-64-PIC: movq dptr@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movq ([[RAX]]), %rax
; LINUX-64-PIC-NEXT: ret
@@ -5719,19 +5719,19 @@ entry:
define i8* @har06() nounwind {
entry:
ret i8* bitcast ([131072 x i32]* @lsrc to i8*)
-; LINUX-64-STATIC: har06:
+; LINUX-64-STATIC-LABEL: har06:
; LINUX-64-STATIC: movl $lsrc, %eax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: har06:
+; LINUX-32-STATIC-LABEL: har06:
; LINUX-32-STATIC: movl $lsrc, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: har06:
+; LINUX-32-PIC-LABEL: har06:
; LINUX-32-PIC: movl $lsrc, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: har06:
+; LINUX-64-PIC-LABEL: har06:
; LINUX-64-PIC: leaq lsrc(%rip), %rax
; LINUX-64-PIC-NEXT: ret
@@ -5766,19 +5766,19 @@ entry:
define i8* @har07() nounwind {
entry:
ret i8* bitcast ([131072 x i32]* @ldst to i8*)
-; LINUX-64-STATIC: har07:
+; LINUX-64-STATIC-LABEL: har07:
; LINUX-64-STATIC: movl $ldst, %eax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: har07:
+; LINUX-32-STATIC-LABEL: har07:
; LINUX-32-STATIC: movl $ldst, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: har07:
+; LINUX-32-PIC-LABEL: har07:
; LINUX-32-PIC: movl $ldst, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: har07:
+; LINUX-64-PIC-LABEL: har07:
; LINUX-64-PIC: leaq ldst(%rip), %rax
; LINUX-64-PIC-NEXT: ret
@@ -5815,19 +5815,19 @@ entry:
%0 = load i32** @lptr, align 8
%1 = bitcast i32* %0 to i8*
ret i8* %1
-; LINUX-64-STATIC: har08:
+; LINUX-64-STATIC-LABEL: har08:
; LINUX-64-STATIC: movq lptr(%rip), %rax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: har08:
+; LINUX-32-STATIC-LABEL: har08:
; LINUX-32-STATIC: movl lptr, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: har08:
+; LINUX-32-PIC-LABEL: har08:
; LINUX-32-PIC: movl lptr, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: har08:
+; LINUX-64-PIC-LABEL: har08:
; LINUX-64-PIC: movq lptr(%rip), %rax
; LINUX-64-PIC-NEXT: ret
@@ -5862,19 +5862,19 @@ entry:
define i8* @bat00() nounwind {
entry:
ret i8* bitcast (i32* getelementptr ([131072 x i32]* @src, i32 0, i64 16) to i8*)
-; LINUX-64-STATIC: bat00:
+; LINUX-64-STATIC-LABEL: bat00:
; LINUX-64-STATIC: movl $src+64, %eax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: bat00:
+; LINUX-32-STATIC-LABEL: bat00:
; LINUX-32-STATIC: movl $src+64, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: bat00:
+; LINUX-32-PIC-LABEL: bat00:
; LINUX-32-PIC: movl $src+64, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: bat00:
+; LINUX-64-PIC-LABEL: bat00:
; LINUX-64-PIC: movq src@GOTPCREL(%rip), %rax
; LINUX-64-PIC-NEXT: addq $64, %rax
; LINUX-64-PIC-NEXT: ret
@@ -5915,19 +5915,19 @@ entry:
define i8* @bxt00() nounwind {
entry:
ret i8* bitcast (i32* getelementptr ([32 x i32]* @xsrc, i32 0, i64 16) to i8*)
-; LINUX-64-STATIC: bxt00:
+; LINUX-64-STATIC-LABEL: bxt00:
; LINUX-64-STATIC: movl $xsrc+64, %eax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: bxt00:
+; LINUX-32-STATIC-LABEL: bxt00:
; LINUX-32-STATIC: movl $xsrc+64, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: bxt00:
+; LINUX-32-PIC-LABEL: bxt00:
; LINUX-32-PIC: movl $xsrc+64, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: bxt00:
+; LINUX-64-PIC-LABEL: bxt00:
; LINUX-64-PIC: movq xsrc@GOTPCREL(%rip), %rax
; LINUX-64-PIC-NEXT: addq $64, %rax
; LINUX-64-PIC-NEXT: ret
@@ -5968,19 +5968,19 @@ entry:
define i8* @bat01() nounwind {
entry:
ret i8* bitcast (i32* getelementptr ([131072 x i32]* @dst, i32 0, i64 16) to i8*)
-; LINUX-64-STATIC: bat01:
+; LINUX-64-STATIC-LABEL: bat01:
; LINUX-64-STATIC: movl $dst+64, %eax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: bat01:
+; LINUX-32-STATIC-LABEL: bat01:
; LINUX-32-STATIC: movl $dst+64, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: bat01:
+; LINUX-32-PIC-LABEL: bat01:
; LINUX-32-PIC: movl $dst+64, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: bat01:
+; LINUX-64-PIC-LABEL: bat01:
; LINUX-64-PIC: movq dst@GOTPCREL(%rip), %rax
; LINUX-64-PIC-NEXT: addq $64, %rax
; LINUX-64-PIC-NEXT: ret
@@ -6021,19 +6021,19 @@ entry:
define i8* @bxt01() nounwind {
entry:
ret i8* bitcast (i32* getelementptr ([32 x i32]* @xdst, i32 0, i64 16) to i8*)
-; LINUX-64-STATIC: bxt01:
+; LINUX-64-STATIC-LABEL: bxt01:
; LINUX-64-STATIC: movl $xdst+64, %eax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: bxt01:
+; LINUX-32-STATIC-LABEL: bxt01:
; LINUX-32-STATIC: movl $xdst+64, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: bxt01:
+; LINUX-32-PIC-LABEL: bxt01:
; LINUX-32-PIC: movl $xdst+64, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: bxt01:
+; LINUX-64-PIC-LABEL: bxt01:
; LINUX-64-PIC: movq xdst@GOTPCREL(%rip), %rax
; LINUX-64-PIC-NEXT: addq $64, %rax
; LINUX-64-PIC-NEXT: ret
@@ -6077,22 +6077,22 @@ entry:
%1 = getelementptr i32* %0, i64 16
%2 = bitcast i32* %1 to i8*
ret i8* %2
-; LINUX-64-STATIC: bat02:
+; LINUX-64-STATIC-LABEL: bat02:
; LINUX-64-STATIC: movq ptr(%rip), %rax
; LINUX-64-STATIC: addq $64, %rax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: bat02:
+; LINUX-32-STATIC-LABEL: bat02:
; LINUX-32-STATIC: movl ptr, %eax
; LINUX-32-STATIC-NEXT: addl $64, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: bat02:
+; LINUX-32-PIC-LABEL: bat02:
; LINUX-32-PIC: movl ptr, %eax
; LINUX-32-PIC-NEXT: addl $64, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: bat02:
+; LINUX-64-PIC-LABEL: bat02:
; LINUX-64-PIC: movq ptr@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movq ([[RAX]]), %rax
; LINUX-64-PIC-NEXT: addq $64, %rax
@@ -6140,19 +6140,19 @@ entry:
define i8* @bat03() nounwind {
entry:
ret i8* bitcast (i32* getelementptr ([131072 x i32]* @dsrc, i32 0, i64 16) to i8*)
-; LINUX-64-STATIC: bat03:
+; LINUX-64-STATIC-LABEL: bat03:
; LINUX-64-STATIC: movl $dsrc+64, %eax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: bat03:
+; LINUX-32-STATIC-LABEL: bat03:
; LINUX-32-STATIC: movl $dsrc+64, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: bat03:
+; LINUX-32-PIC-LABEL: bat03:
; LINUX-32-PIC: movl $dsrc+64, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: bat03:
+; LINUX-64-PIC-LABEL: bat03:
; LINUX-64-PIC: movq dsrc@GOTPCREL(%rip), %rax
; LINUX-64-PIC-NEXT: addq $64, %rax
; LINUX-64-PIC-NEXT: ret
@@ -6188,19 +6188,19 @@ entry:
define i8* @bat04() nounwind {
entry:
ret i8* bitcast (i32* getelementptr ([131072 x i32]* @ddst, i32 0, i64 16) to i8*)
-; LINUX-64-STATIC: bat04:
+; LINUX-64-STATIC-LABEL: bat04:
; LINUX-64-STATIC: movl $ddst+64, %eax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: bat04:
+; LINUX-32-STATIC-LABEL: bat04:
; LINUX-32-STATIC: movl $ddst+64, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: bat04:
+; LINUX-32-PIC-LABEL: bat04:
; LINUX-32-PIC: movl $ddst+64, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: bat04:
+; LINUX-64-PIC-LABEL: bat04:
; LINUX-64-PIC: movq ddst@GOTPCREL(%rip), %rax
; LINUX-64-PIC-NEXT: addq $64, %rax
; LINUX-64-PIC-NEXT: ret
@@ -6239,22 +6239,22 @@ entry:
%1 = getelementptr i32* %0, i64 16
%2 = bitcast i32* %1 to i8*
ret i8* %2
-; LINUX-64-STATIC: bat05:
+; LINUX-64-STATIC-LABEL: bat05:
; LINUX-64-STATIC: movq dptr(%rip), %rax
; LINUX-64-STATIC: addq $64, %rax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: bat05:
+; LINUX-32-STATIC-LABEL: bat05:
; LINUX-32-STATIC: movl dptr, %eax
; LINUX-32-STATIC-NEXT: addl $64, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: bat05:
+; LINUX-32-PIC-LABEL: bat05:
; LINUX-32-PIC: movl dptr, %eax
; LINUX-32-PIC-NEXT: addl $64, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: bat05:
+; LINUX-64-PIC-LABEL: bat05:
; LINUX-64-PIC: movq dptr@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movq ([[RAX]]), %rax
; LINUX-64-PIC-NEXT: addq $64, %rax
@@ -6297,19 +6297,19 @@ entry:
define i8* @bat06() nounwind {
entry:
ret i8* bitcast (i32* getelementptr ([131072 x i32]* @lsrc, i32 0, i64 16) to i8*)
-; LINUX-64-STATIC: bat06:
+; LINUX-64-STATIC-LABEL: bat06:
; LINUX-64-STATIC: movl $lsrc+64, %eax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: bat06:
+; LINUX-32-STATIC-LABEL: bat06:
; LINUX-32-STATIC: movl $lsrc+64, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: bat06:
+; LINUX-32-PIC-LABEL: bat06:
; LINUX-32-PIC: movl $lsrc+64, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: bat06:
+; LINUX-64-PIC-LABEL: bat06:
; LINUX-64-PIC: leaq lsrc+64(%rip), %rax
; LINUX-64-PIC-NEXT: ret
@@ -6344,19 +6344,19 @@ entry:
define i8* @bat07() nounwind {
entry:
ret i8* bitcast (i32* getelementptr ([131072 x i32]* @ldst, i32 0, i64 16) to i8*)
-; LINUX-64-STATIC: bat07:
+; LINUX-64-STATIC-LABEL: bat07:
; LINUX-64-STATIC: movl $ldst+64, %eax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: bat07:
+; LINUX-32-STATIC-LABEL: bat07:
; LINUX-32-STATIC: movl $ldst+64, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: bat07:
+; LINUX-32-PIC-LABEL: bat07:
; LINUX-32-PIC: movl $ldst+64, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: bat07:
+; LINUX-64-PIC-LABEL: bat07:
; LINUX-64-PIC: leaq ldst+64(%rip), %rax
; LINUX-64-PIC-NEXT: ret
@@ -6394,22 +6394,22 @@ entry:
%1 = getelementptr i32* %0, i64 16
%2 = bitcast i32* %1 to i8*
ret i8* %2
-; LINUX-64-STATIC: bat08:
+; LINUX-64-STATIC-LABEL: bat08:
; LINUX-64-STATIC: movq lptr(%rip), %rax
; LINUX-64-STATIC: addq $64, %rax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: bat08:
+; LINUX-32-STATIC-LABEL: bat08:
; LINUX-32-STATIC: movl lptr, %eax
; LINUX-32-STATIC-NEXT: addl $64, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: bat08:
+; LINUX-32-PIC-LABEL: bat08:
; LINUX-32-PIC: movl lptr, %eax
; LINUX-32-PIC-NEXT: addl $64, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: bat08:
+; LINUX-64-PIC-LABEL: bat08:
; LINUX-64-PIC: movq lptr(%rip), %rax
; LINUX-64-PIC-NEXT: addq $64, %rax
; LINUX-64-PIC-NEXT: ret
@@ -6451,19 +6451,19 @@ entry:
define i8* @bam00() nounwind {
entry:
ret i8* bitcast (i32* getelementptr ([131072 x i32]* @src, i32 0, i64 65536) to i8*)
-; LINUX-64-STATIC: bam00:
+; LINUX-64-STATIC-LABEL: bam00:
; LINUX-64-STATIC: movl $src+262144, %eax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: bam00:
+; LINUX-32-STATIC-LABEL: bam00:
; LINUX-32-STATIC: movl $src+262144, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: bam00:
+; LINUX-32-PIC-LABEL: bam00:
; LINUX-32-PIC: movl $src+262144, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: bam00:
+; LINUX-64-PIC-LABEL: bam00:
; LINUX-64-PIC: movl $262144, %eax
; LINUX-64-PIC-NEXT: addq src@GOTPCREL(%rip), %rax
; LINUX-64-PIC-NEXT: ret
@@ -6504,19 +6504,19 @@ entry:
define i8* @bam01() nounwind {
entry:
ret i8* bitcast (i32* getelementptr ([131072 x i32]* @dst, i32 0, i64 65536) to i8*)
-; LINUX-64-STATIC: bam01:
+; LINUX-64-STATIC-LABEL: bam01:
; LINUX-64-STATIC: movl $dst+262144, %eax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: bam01:
+; LINUX-32-STATIC-LABEL: bam01:
; LINUX-32-STATIC: movl $dst+262144, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: bam01:
+; LINUX-32-PIC-LABEL: bam01:
; LINUX-32-PIC: movl $dst+262144, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: bam01:
+; LINUX-64-PIC-LABEL: bam01:
; LINUX-64-PIC: movl $262144, %eax
; LINUX-64-PIC-NEXT: addq dst@GOTPCREL(%rip), %rax
; LINUX-64-PIC-NEXT: ret
@@ -6557,19 +6557,19 @@ entry:
define i8* @bxm01() nounwind {
entry:
ret i8* bitcast (i32* getelementptr ([32 x i32]* @xdst, i32 0, i64 65536) to i8*)
-; LINUX-64-STATIC: bxm01:
+; LINUX-64-STATIC-LABEL: bxm01:
; LINUX-64-STATIC: movl $xdst+262144, %eax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: bxm01:
+; LINUX-32-STATIC-LABEL: bxm01:
; LINUX-32-STATIC: movl $xdst+262144, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: bxm01:
+; LINUX-32-PIC-LABEL: bxm01:
; LINUX-32-PIC: movl $xdst+262144, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: bxm01:
+; LINUX-64-PIC-LABEL: bxm01:
; LINUX-64-PIC: movl $262144, %eax
; LINUX-64-PIC-NEXT: addq xdst@GOTPCREL(%rip), %rax
; LINUX-64-PIC-NEXT: ret
@@ -6613,24 +6613,24 @@ entry:
%1 = getelementptr i32* %0, i64 65536
%2 = bitcast i32* %1 to i8*
ret i8* %2
-; LINUX-64-STATIC: bam02:
+; LINUX-64-STATIC-LABEL: bam02:
; LINUX-64-STATIC: movl $262144, %eax
; LINUX-64-STATIC: addq ptr(%rip), %rax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: bam02:
+; LINUX-32-STATIC-LABEL: bam02:
; LINUX-32-STATIC: movl $262144, %eax
; LINUX-32-STATIC-NEXT: addl ptr, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: bam02:
+; LINUX-32-PIC-LABEL: bam02:
; LINUX-32-PIC: movl $262144, %eax
; LINUX-32-PIC-NEXT: addl ptr, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: bam02:
-; LINUX-64-PIC: movq ptr@GOTPCREL(%rip), [[RCX:%r.x]]
-; LINUX-64-PIC-NEXT: movl $262144, %eax
+; LINUX-64-PIC-LABEL: bam02:
+; LINUX-64-PIC: movl $262144, %eax
+; LINUX-64-PIC-NEXT: movq ptr@GOTPCREL(%rip), [[RCX:%r.x]]
; LINUX-64-PIC-NEXT: addq ([[RCX]]), %rax
; LINUX-64-PIC-NEXT: ret
@@ -6655,20 +6655,20 @@ entry:
; DARWIN-32-PIC-NEXT: ret
; DARWIN-64-STATIC: _bam02:
-; DARWIN-64-STATIC: movq _ptr@GOTPCREL(%rip), [[RCX:%r.x]]
-; DARWIN-64-STATIC-NEXT: movl $262144, %eax
+; DARWIN-64-STATIC: movl $262144, %eax
+; DARWIN-64-STATIC-NEXT: movq _ptr@GOTPCREL(%rip), [[RCX:%r.x]]
; DARWIN-64-STATIC-NEXT: addq ([[RCX]]), %rax
; DARWIN-64-STATIC-NEXT: ret
; DARWIN-64-DYNAMIC: _bam02:
-; DARWIN-64-DYNAMIC: movq _ptr@GOTPCREL(%rip), [[RCX:%r.x]]
-; DARWIN-64-DYNAMIC-NEXT: movl $262144, %eax
+; DARWIN-64-DYNAMIC: movl $262144, %eax
+; DARWIN-64-DYNAMIC-NEXT: movq _ptr@GOTPCREL(%rip), [[RCX:%r.x]]
; DARWIN-64-DYNAMIC-NEXT: addq ([[RCX]]), %rax
; DARWIN-64-DYNAMIC-NEXT: ret
; DARWIN-64-PIC: _bam02:
-; DARWIN-64-PIC: movq _ptr@GOTPCREL(%rip), [[RCX:%r.x]]
-; DARWIN-64-PIC-NEXT: movl $262144, %eax
+; DARWIN-64-PIC: movl $262144, %eax
+; DARWIN-64-PIC-NEXT: movq _ptr@GOTPCREL(%rip), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: addq ([[RCX]]), %rax
; DARWIN-64-PIC-NEXT: ret
}
@@ -6676,19 +6676,19 @@ entry:
define i8* @bam03() nounwind {
entry:
ret i8* bitcast (i32* getelementptr ([131072 x i32]* @dsrc, i32 0, i64 65536) to i8*)
-; LINUX-64-STATIC: bam03:
+; LINUX-64-STATIC-LABEL: bam03:
; LINUX-64-STATIC: movl $dsrc+262144, %eax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: bam03:
+; LINUX-32-STATIC-LABEL: bam03:
; LINUX-32-STATIC: movl $dsrc+262144, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: bam03:
+; LINUX-32-PIC-LABEL: bam03:
; LINUX-32-PIC: movl $dsrc+262144, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: bam03:
+; LINUX-64-PIC-LABEL: bam03:
; LINUX-64-PIC: movl $262144, %eax
; LINUX-64-PIC-NEXT: addq dsrc@GOTPCREL(%rip), %rax
; LINUX-64-PIC-NEXT: ret
@@ -6724,19 +6724,19 @@ entry:
define i8* @bam04() nounwind {
entry:
ret i8* bitcast (i32* getelementptr ([131072 x i32]* @ddst, i32 0, i64 65536) to i8*)
-; LINUX-64-STATIC: bam04:
+; LINUX-64-STATIC-LABEL: bam04:
; LINUX-64-STATIC: movl $ddst+262144, %eax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: bam04:
+; LINUX-32-STATIC-LABEL: bam04:
; LINUX-32-STATIC: movl $ddst+262144, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: bam04:
+; LINUX-32-PIC-LABEL: bam04:
; LINUX-32-PIC: movl $ddst+262144, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: bam04:
+; LINUX-64-PIC-LABEL: bam04:
; LINUX-64-PIC: movl $262144, %eax
; LINUX-64-PIC-NEXT: addq ddst@GOTPCREL(%rip), %rax
; LINUX-64-PIC-NEXT: ret
@@ -6775,24 +6775,24 @@ entry:
%1 = getelementptr i32* %0, i64 65536
%2 = bitcast i32* %1 to i8*
ret i8* %2
-; LINUX-64-STATIC: bam05:
+; LINUX-64-STATIC-LABEL: bam05:
; LINUX-64-STATIC: movl $262144, %eax
; LINUX-64-STATIC: addq dptr(%rip), %rax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: bam05:
+; LINUX-32-STATIC-LABEL: bam05:
; LINUX-32-STATIC: movl $262144, %eax
; LINUX-32-STATIC-NEXT: addl dptr, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: bam05:
+; LINUX-32-PIC-LABEL: bam05:
; LINUX-32-PIC: movl $262144, %eax
; LINUX-32-PIC-NEXT: addl dptr, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: bam05:
-; LINUX-64-PIC: movq dptr@GOTPCREL(%rip), [[RCX:%r.x]]
-; LINUX-64-PIC-NEXT: movl $262144, %eax
+; LINUX-64-PIC-LABEL: bam05:
+; LINUX-64-PIC: movl $262144, %eax
+; LINUX-64-PIC-NEXT: movq dptr@GOTPCREL(%rip), [[RCX:%r.x]]
; LINUX-64-PIC-NEXT: addq ([[RCX]]), %rax
; LINUX-64-PIC-NEXT: ret
@@ -6833,19 +6833,19 @@ entry:
define i8* @bam06() nounwind {
entry:
ret i8* bitcast (i32* getelementptr ([131072 x i32]* @lsrc, i32 0, i64 65536) to i8*)
-; LINUX-64-STATIC: bam06:
+; LINUX-64-STATIC-LABEL: bam06:
; LINUX-64-STATIC: movl $lsrc+262144, %eax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: bam06:
+; LINUX-32-STATIC-LABEL: bam06:
; LINUX-32-STATIC: movl $lsrc+262144, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: bam06:
+; LINUX-32-PIC-LABEL: bam06:
; LINUX-32-PIC: movl $lsrc+262144, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: bam06:
+; LINUX-64-PIC-LABEL: bam06:
; LINUX-64-PIC: leaq lsrc+262144(%rip), %rax
; LINUX-64-PIC-NEXT: ret
@@ -6880,19 +6880,19 @@ entry:
define i8* @bam07() nounwind {
entry:
ret i8* bitcast (i32* getelementptr ([131072 x i32]* @ldst, i32 0, i64 65536) to i8*)
-; LINUX-64-STATIC: bam07:
+; LINUX-64-STATIC-LABEL: bam07:
; LINUX-64-STATIC: movl $ldst+262144, %eax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: bam07:
+; LINUX-32-STATIC-LABEL: bam07:
; LINUX-32-STATIC: movl $ldst+262144, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: bam07:
+; LINUX-32-PIC-LABEL: bam07:
; LINUX-32-PIC: movl $ldst+262144, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: bam07:
+; LINUX-64-PIC-LABEL: bam07:
; LINUX-64-PIC: leaq ldst+262144(%rip), %rax
; LINUX-64-PIC-NEXT: ret
@@ -6930,22 +6930,22 @@ entry:
%1 = getelementptr i32* %0, i64 65536
%2 = bitcast i32* %1 to i8*
ret i8* %2
-; LINUX-64-STATIC: bam08:
+; LINUX-64-STATIC-LABEL: bam08:
; LINUX-64-STATIC: movl $262144, %eax
; LINUX-64-STATIC: addq lptr(%rip), %rax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: bam08:
+; LINUX-32-STATIC-LABEL: bam08:
; LINUX-32-STATIC: movl $262144, %eax
; LINUX-32-STATIC-NEXT: addl lptr, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: bam08:
+; LINUX-32-PIC-LABEL: bam08:
; LINUX-32-PIC: movl $262144, %eax
; LINUX-32-PIC-NEXT: addl lptr, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: bam08:
+; LINUX-64-PIC-LABEL: bam08:
; LINUX-64-PIC: movl $262144, %eax
; LINUX-64-PIC-NEXT: addq lptr(%rip), %rax
; LINUX-64-PIC-NEXT: ret
@@ -6990,21 +6990,21 @@ entry:
%1 = getelementptr [131072 x i32]* @src, i64 0, i64 %0
%2 = bitcast i32* %1 to i8*
ret i8* %2
-; LINUX-64-STATIC: cat00:
+; LINUX-64-STATIC-LABEL: cat00:
; LINUX-64-STATIC: leaq src+64(,%rdi,4), %rax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: cat00:
+; LINUX-32-STATIC-LABEL: cat00:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: leal src+64(,[[EAX]],4), %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: cat00:
+; LINUX-32-PIC-LABEL: cat00:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: leal src+64(,[[EAX]],4), %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: cat00:
+; LINUX-64-PIC-LABEL: cat00:
; LINUX-64-PIC: movq src@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: leaq 64([[RAX]],%rdi,4), %rax
; LINUX-64-PIC-NEXT: ret
@@ -7051,21 +7051,21 @@ entry:
%1 = getelementptr [32 x i32]* @xsrc, i64 0, i64 %0
%2 = bitcast i32* %1 to i8*
ret i8* %2
-; LINUX-64-STATIC: cxt00:
+; LINUX-64-STATIC-LABEL: cxt00:
; LINUX-64-STATIC: leaq xsrc+64(,%rdi,4), %rax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: cxt00:
+; LINUX-32-STATIC-LABEL: cxt00:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: leal xsrc+64(,[[EAX]],4), %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: cxt00:
+; LINUX-32-PIC-LABEL: cxt00:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: leal xsrc+64(,[[EAX]],4), %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: cxt00:
+; LINUX-64-PIC-LABEL: cxt00:
; LINUX-64-PIC: movq xsrc@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: leaq 64([[RAX]],%rdi,4), %rax
; LINUX-64-PIC-NEXT: ret
@@ -7112,21 +7112,21 @@ entry:
%1 = getelementptr [131072 x i32]* @dst, i64 0, i64 %0
%2 = bitcast i32* %1 to i8*
ret i8* %2
-; LINUX-64-STATIC: cat01:
+; LINUX-64-STATIC-LABEL: cat01:
; LINUX-64-STATIC: leaq dst+64(,%rdi,4), %rax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: cat01:
+; LINUX-32-STATIC-LABEL: cat01:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: leal dst+64(,[[EAX]],4), %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: cat01:
+; LINUX-32-PIC-LABEL: cat01:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: leal dst+64(,[[EAX]],4), %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: cat01:
+; LINUX-64-PIC-LABEL: cat01:
; LINUX-64-PIC: movq dst@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: leaq 64([[RAX]],%rdi,4), %rax
; LINUX-64-PIC-NEXT: ret
@@ -7173,21 +7173,21 @@ entry:
%1 = getelementptr [32 x i32]* @xdst, i64 0, i64 %0
%2 = bitcast i32* %1 to i8*
ret i8* %2
-; LINUX-64-STATIC: cxt01:
+; LINUX-64-STATIC-LABEL: cxt01:
; LINUX-64-STATIC: leaq xdst+64(,%rdi,4), %rax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: cxt01:
+; LINUX-32-STATIC-LABEL: cxt01:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: leal xdst+64(,[[EAX]],4), %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: cxt01:
+; LINUX-32-PIC-LABEL: cxt01:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: leal xdst+64(,[[EAX]],4), %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: cxt01:
+; LINUX-64-PIC-LABEL: cxt01:
; LINUX-64-PIC: movq xdst@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: leaq 64([[RAX]],%rdi,4), %rax
; LINUX-64-PIC-NEXT: ret
@@ -7235,24 +7235,24 @@ entry:
%2 = getelementptr i32* %0, i64 %1
%3 = bitcast i32* %2 to i8*
ret i8* %3
-; LINUX-64-STATIC: cat02:
+; LINUX-64-STATIC-LABEL: cat02:
; LINUX-64-STATIC: movq ptr(%rip), [[RAX:%r.x]]
; LINUX-64-STATIC: leaq 64([[RAX]],%rdi,4), %rax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: cat02:
+; LINUX-32-STATIC-LABEL: cat02:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl ptr, [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: leal 64([[ECX]],[[EAX]],4), %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: cat02:
+; LINUX-32-PIC-LABEL: cat02:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl ptr, [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: leal 64([[ECX]],[[EAX]],4), %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: cat02:
+; LINUX-64-PIC-LABEL: cat02:
; LINUX-64-PIC: movq ptr@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movq ([[RAX]]), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: leaq 64([[RAX]],%rdi,4), %rax
@@ -7306,21 +7306,21 @@ entry:
%1 = getelementptr [131072 x i32]* @dsrc, i64 0, i64 %0
%2 = bitcast i32* %1 to i8*
ret i8* %2
-; LINUX-64-STATIC: cat03:
+; LINUX-64-STATIC-LABEL: cat03:
; LINUX-64-STATIC: leaq dsrc+64(,%rdi,4), %rax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: cat03:
+; LINUX-32-STATIC-LABEL: cat03:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: leal dsrc+64(,[[EAX]],4), %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: cat03:
+; LINUX-32-PIC-LABEL: cat03:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: leal dsrc+64(,[[EAX]],4), %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: cat03:
+; LINUX-64-PIC-LABEL: cat03:
; LINUX-64-PIC: movq dsrc@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: leaq 64([[RAX]],%rdi,4), %rax
; LINUX-64-PIC-NEXT: ret
@@ -7365,21 +7365,21 @@ entry:
%1 = getelementptr [131072 x i32]* @ddst, i64 0, i64 %0
%2 = bitcast i32* %1 to i8*
ret i8* %2
-; LINUX-64-STATIC: cat04:
+; LINUX-64-STATIC-LABEL: cat04:
; LINUX-64-STATIC: leaq ddst+64(,%rdi,4), %rax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: cat04:
+; LINUX-32-STATIC-LABEL: cat04:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: leal ddst+64(,[[EAX]],4), %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: cat04:
+; LINUX-32-PIC-LABEL: cat04:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: leal ddst+64(,[[EAX]],4), %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: cat04:
+; LINUX-64-PIC-LABEL: cat04:
; LINUX-64-PIC: movq ddst@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: leaq 64([[RAX]],%rdi,4), %rax
; LINUX-64-PIC-NEXT: ret
@@ -7425,24 +7425,24 @@ entry:
%2 = getelementptr i32* %0, i64 %1
%3 = bitcast i32* %2 to i8*
ret i8* %3
-; LINUX-64-STATIC: cat05:
+; LINUX-64-STATIC-LABEL: cat05:
; LINUX-64-STATIC: movq dptr(%rip), [[RAX:%r.x]]
; LINUX-64-STATIC: leaq 64([[RAX]],%rdi,4), %rax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: cat05:
+; LINUX-32-STATIC-LABEL: cat05:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl dptr, [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: leal 64([[ECX]],[[EAX]],4), %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: cat05:
+; LINUX-32-PIC-LABEL: cat05:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl dptr, [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: leal 64([[ECX]],[[EAX]],4), %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: cat05:
+; LINUX-64-PIC-LABEL: cat05:
; LINUX-64-PIC: movq dptr@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movq ([[RAX]]), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: leaq 64([[RAX]],%rdi,4), %rax
@@ -7491,21 +7491,21 @@ entry:
%1 = getelementptr [131072 x i32]* @lsrc, i64 0, i64 %0
%2 = bitcast i32* %1 to i8*
ret i8* %2
-; LINUX-64-STATIC: cat06:
+; LINUX-64-STATIC-LABEL: cat06:
; LINUX-64-STATIC: leaq lsrc+64(,%rdi,4), %rax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: cat06:
+; LINUX-32-STATIC-LABEL: cat06:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: leal lsrc+64(,[[EAX]],4), %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: cat06:
+; LINUX-32-PIC-LABEL: cat06:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: leal lsrc+64(,[[EAX]],4), %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: cat06:
+; LINUX-64-PIC-LABEL: cat06:
; LINUX-64-PIC: leaq lsrc(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: leaq 64([[RAX]],%rdi,4), %rax
; LINUX-64-PIC-NEXT: ret
@@ -7550,21 +7550,21 @@ entry:
%1 = getelementptr [131072 x i32]* @ldst, i64 0, i64 %0
%2 = bitcast i32* %1 to i8*
ret i8* %2
-; LINUX-64-STATIC: cat07:
+; LINUX-64-STATIC-LABEL: cat07:
; LINUX-64-STATIC: leaq ldst+64(,%rdi,4), %rax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: cat07:
+; LINUX-32-STATIC-LABEL: cat07:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: leal ldst+64(,[[EAX]],4), %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: cat07:
+; LINUX-32-PIC-LABEL: cat07:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: leal ldst+64(,[[EAX]],4), %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: cat07:
+; LINUX-64-PIC-LABEL: cat07:
; LINUX-64-PIC: leaq ldst(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: leaq 64([[RAX]],%rdi,4), %rax
; LINUX-64-PIC-NEXT: ret
@@ -7610,24 +7610,24 @@ entry:
%2 = getelementptr i32* %0, i64 %1
%3 = bitcast i32* %2 to i8*
ret i8* %3
-; LINUX-64-STATIC: cat08:
+; LINUX-64-STATIC-LABEL: cat08:
; LINUX-64-STATIC: movq lptr(%rip), [[RAX:%r.x]]
; LINUX-64-STATIC: leaq 64([[RAX]],%rdi,4), %rax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: cat08:
+; LINUX-32-STATIC-LABEL: cat08:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl lptr, [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: leal 64([[ECX]],[[EAX]],4), %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: cat08:
+; LINUX-32-PIC-LABEL: cat08:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl lptr, [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: leal 64([[ECX]],[[EAX]],4), %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: cat08:
+; LINUX-64-PIC-LABEL: cat08:
; LINUX-64-PIC: movq lptr(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: leaq 64([[RAX]],%rdi,4), %rax
; LINUX-64-PIC-NEXT: ret
@@ -7675,21 +7675,21 @@ entry:
%1 = getelementptr [131072 x i32]* @src, i64 0, i64 %0
%2 = bitcast i32* %1 to i8*
ret i8* %2
-; LINUX-64-STATIC: cam00:
+; LINUX-64-STATIC-LABEL: cam00:
; LINUX-64-STATIC: leaq src+262144(,%rdi,4), %rax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: cam00:
+; LINUX-32-STATIC-LABEL: cam00:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: leal src+262144(,[[EAX]],4), %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: cam00:
+; LINUX-32-PIC-LABEL: cam00:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: leal src+262144(,[[EAX]],4), %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: cam00:
+; LINUX-64-PIC-LABEL: cam00:
; LINUX-64-PIC: movq src@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: leaq 262144([[RAX]],%rdi,4), %rax
; LINUX-64-PIC-NEXT: ret
@@ -7736,21 +7736,21 @@ entry:
%1 = getelementptr [32 x i32]* @xsrc, i64 0, i64 %0
%2 = bitcast i32* %1 to i8*
ret i8* %2
-; LINUX-64-STATIC: cxm00:
+; LINUX-64-STATIC-LABEL: cxm00:
; LINUX-64-STATIC: leaq xsrc+262144(,%rdi,4), %rax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: cxm00:
+; LINUX-32-STATIC-LABEL: cxm00:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: leal xsrc+262144(,[[EAX]],4), %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: cxm00:
+; LINUX-32-PIC-LABEL: cxm00:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: leal xsrc+262144(,[[EAX]],4), %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: cxm00:
+; LINUX-64-PIC-LABEL: cxm00:
; LINUX-64-PIC: movq xsrc@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: leaq 262144([[RAX]],%rdi,4), %rax
; LINUX-64-PIC-NEXT: ret
@@ -7797,21 +7797,21 @@ entry:
%1 = getelementptr [131072 x i32]* @dst, i64 0, i64 %0
%2 = bitcast i32* %1 to i8*
ret i8* %2
-; LINUX-64-STATIC: cam01:
+; LINUX-64-STATIC-LABEL: cam01:
; LINUX-64-STATIC: leaq dst+262144(,%rdi,4), %rax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: cam01:
+; LINUX-32-STATIC-LABEL: cam01:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: leal dst+262144(,[[EAX]],4), %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: cam01:
+; LINUX-32-PIC-LABEL: cam01:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: leal dst+262144(,[[EAX]],4), %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: cam01:
+; LINUX-64-PIC-LABEL: cam01:
; LINUX-64-PIC: movq dst@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: leaq 262144([[RAX]],%rdi,4), %rax
; LINUX-64-PIC-NEXT: ret
@@ -7858,21 +7858,21 @@ entry:
%1 = getelementptr [32 x i32]* @xdst, i64 0, i64 %0
%2 = bitcast i32* %1 to i8*
ret i8* %2
-; LINUX-64-STATIC: cxm01:
+; LINUX-64-STATIC-LABEL: cxm01:
; LINUX-64-STATIC: leaq xdst+262144(,%rdi,4), %rax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: cxm01:
+; LINUX-32-STATIC-LABEL: cxm01:
; LINUX-32-STATIC: movl 4(%esp), %eax
; LINUX-32-STATIC-NEXT: leal xdst+262144(,[[EAX]],4), %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: cxm01:
+; LINUX-32-PIC-LABEL: cxm01:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: leal xdst+262144(,[[EAX]],4), %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: cxm01:
+; LINUX-64-PIC-LABEL: cxm01:
; LINUX-64-PIC: movq xdst@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: leaq 262144([[RAX]],%rdi,4), %rax
; LINUX-64-PIC-NEXT: ret
@@ -7920,24 +7920,24 @@ entry:
%2 = getelementptr i32* %0, i64 %1
%3 = bitcast i32* %2 to i8*
ret i8* %3
-; LINUX-64-STATIC: cam02:
+; LINUX-64-STATIC-LABEL: cam02:
; LINUX-64-STATIC: movq ptr(%rip), [[RAX:%r.x]]
; LINUX-64-STATIC: leaq 262144([[RAX]],%rdi,4), %rax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: cam02:
+; LINUX-32-STATIC-LABEL: cam02:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl ptr, [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: leal 262144([[ECX]],[[EAX]],4), %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: cam02:
+; LINUX-32-PIC-LABEL: cam02:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl ptr, [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: leal 262144([[ECX]],[[EAX]],4), %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: cam02:
+; LINUX-64-PIC-LABEL: cam02:
; LINUX-64-PIC: movq ptr@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movq ([[RAX]]), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: leaq 262144([[RAX]],%rdi,4), %rax
@@ -7991,21 +7991,21 @@ entry:
%1 = getelementptr [131072 x i32]* @dsrc, i64 0, i64 %0
%2 = bitcast i32* %1 to i8*
ret i8* %2
-; LINUX-64-STATIC: cam03:
+; LINUX-64-STATIC-LABEL: cam03:
; LINUX-64-STATIC: leaq dsrc+262144(,%rdi,4), %rax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: cam03:
+; LINUX-32-STATIC-LABEL: cam03:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: leal dsrc+262144(,[[EAX]],4), %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: cam03:
+; LINUX-32-PIC-LABEL: cam03:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: leal dsrc+262144(,[[EAX]],4), %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: cam03:
+; LINUX-64-PIC-LABEL: cam03:
; LINUX-64-PIC: movq dsrc@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: leaq 262144([[RAX]],%rdi,4), %rax
; LINUX-64-PIC-NEXT: ret
@@ -8050,21 +8050,21 @@ entry:
%1 = getelementptr [131072 x i32]* @ddst, i64 0, i64 %0
%2 = bitcast i32* %1 to i8*
ret i8* %2
-; LINUX-64-STATIC: cam04:
+; LINUX-64-STATIC-LABEL: cam04:
; LINUX-64-STATIC: leaq ddst+262144(,%rdi,4), %rax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: cam04:
+; LINUX-32-STATIC-LABEL: cam04:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: leal ddst+262144(,[[EAX]],4), %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: cam04:
+; LINUX-32-PIC-LABEL: cam04:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: leal ddst+262144(,[[EAX]],4), %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: cam04:
+; LINUX-64-PIC-LABEL: cam04:
; LINUX-64-PIC: movq ddst@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: leaq 262144([[RAX]],%rdi,4), %rax
; LINUX-64-PIC-NEXT: ret
@@ -8110,24 +8110,24 @@ entry:
%2 = getelementptr i32* %0, i64 %1
%3 = bitcast i32* %2 to i8*
ret i8* %3
-; LINUX-64-STATIC: cam05:
+; LINUX-64-STATIC-LABEL: cam05:
; LINUX-64-STATIC: movq dptr(%rip), [[RAX:%r.x]]
; LINUX-64-STATIC: leaq 262144([[RAX]],%rdi,4), %rax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: cam05:
+; LINUX-32-STATIC-LABEL: cam05:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl dptr, [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: leal 262144([[ECX]],[[EAX]],4), %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: cam05:
+; LINUX-32-PIC-LABEL: cam05:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl dptr, [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: leal 262144([[ECX]],[[EAX]],4), %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: cam05:
+; LINUX-64-PIC-LABEL: cam05:
; LINUX-64-PIC: movq dptr@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: movq ([[RAX]]), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: leaq 262144([[RAX]],%rdi,4), %rax
@@ -8176,21 +8176,21 @@ entry:
%1 = getelementptr [131072 x i32]* @lsrc, i64 0, i64 %0
%2 = bitcast i32* %1 to i8*
ret i8* %2
-; LINUX-64-STATIC: cam06:
+; LINUX-64-STATIC-LABEL: cam06:
; LINUX-64-STATIC: leaq lsrc+262144(,%rdi,4), %rax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: cam06:
+; LINUX-32-STATIC-LABEL: cam06:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: leal lsrc+262144(,[[EAX]],4), %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: cam06:
+; LINUX-32-PIC-LABEL: cam06:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: leal lsrc+262144(,[[EAX]],4), %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: cam06:
+; LINUX-64-PIC-LABEL: cam06:
; LINUX-64-PIC: leaq lsrc(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: leaq 262144([[RAX]],%rdi,4), %rax
; LINUX-64-PIC-NEXT: ret
@@ -8235,21 +8235,21 @@ entry:
%1 = getelementptr [131072 x i32]* @ldst, i64 0, i64 %0
%2 = bitcast i32* %1 to i8*
ret i8* %2
-; LINUX-64-STATIC: cam07:
+; LINUX-64-STATIC-LABEL: cam07:
; LINUX-64-STATIC: leaq ldst+262144(,%rdi,4), %rax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: cam07:
+; LINUX-32-STATIC-LABEL: cam07:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: leal ldst+262144(,[[EAX]],4), %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: cam07:
+; LINUX-32-PIC-LABEL: cam07:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: leal ldst+262144(,[[EAX]],4), %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: cam07:
+; LINUX-64-PIC-LABEL: cam07:
; LINUX-64-PIC: leaq ldst(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: leaq 262144([[RAX]],%rdi,4), %rax
; LINUX-64-PIC-NEXT: ret
@@ -8295,24 +8295,24 @@ entry:
%2 = getelementptr i32* %0, i64 %1
%3 = bitcast i32* %2 to i8*
ret i8* %3
-; LINUX-64-STATIC: cam08:
+; LINUX-64-STATIC-LABEL: cam08:
; LINUX-64-STATIC: movq lptr(%rip), [[RAX:%r.x]]
; LINUX-64-STATIC: leaq 262144([[RAX]],%rdi,4), %rax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: cam08:
+; LINUX-32-STATIC-LABEL: cam08:
; LINUX-32-STATIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-STATIC-NEXT: movl lptr, [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: leal 262144([[ECX]],[[EAX]],4), %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: cam08:
+; LINUX-32-PIC-LABEL: cam08:
; LINUX-32-PIC: movl 4(%esp), [[EAX:%e.x]]
; LINUX-32-PIC-NEXT: movl lptr, [[ECX:%e.x]]
; LINUX-32-PIC-NEXT: leal 262144([[ECX]],[[EAX]],4), %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: cam08:
+; LINUX-64-PIC-LABEL: cam08:
; LINUX-64-PIC: movq lptr(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: leaq 262144([[RAX]],%rdi,4), %rax
; LINUX-64-PIC-NEXT: ret
@@ -8364,7 +8364,7 @@ entry:
call void @x() nounwind
call void @x() nounwind
ret void
-; LINUX-64-STATIC: lcallee:
+; LINUX-64-STATIC-LABEL: lcallee:
; LINUX-64-STATIC: callq x
; LINUX-64-STATIC: callq x
; LINUX-64-STATIC: callq x
@@ -8374,7 +8374,7 @@ entry:
; LINUX-64-STATIC: callq x
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: lcallee:
+; LINUX-32-STATIC-LABEL: lcallee:
; LINUX-32-STATIC: subl
; LINUX-32-STATIC-NEXT: calll x
; LINUX-32-STATIC-NEXT: calll x
@@ -8386,7 +8386,7 @@ entry:
; LINUX-32-STATIC-NEXT: addl
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: lcallee:
+; LINUX-32-PIC-LABEL: lcallee:
; LINUX-32-PIC: subl
; LINUX-32-PIC-NEXT: calll x
; LINUX-32-PIC-NEXT: calll x
@@ -8399,7 +8399,7 @@ entry:
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: lcallee:
+; LINUX-64-PIC-LABEL: lcallee:
; LINUX-64-PIC: pushq
; LINUX-64-PIC-NEXT: callq x@PLT
; LINUX-64-PIC-NEXT: callq x@PLT
@@ -8496,7 +8496,7 @@ entry:
call void @y() nounwind
call void @y() nounwind
ret void
-; LINUX-64-STATIC: dcallee:
+; LINUX-64-STATIC-LABEL: dcallee:
; LINUX-64-STATIC: callq y
; LINUX-64-STATIC: callq y
; LINUX-64-STATIC: callq y
@@ -8506,7 +8506,7 @@ entry:
; LINUX-64-STATIC: callq y
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: dcallee:
+; LINUX-32-STATIC-LABEL: dcallee:
; LINUX-32-STATIC: subl
; LINUX-32-STATIC-NEXT: calll y
; LINUX-32-STATIC-NEXT: calll y
@@ -8518,7 +8518,7 @@ entry:
; LINUX-32-STATIC-NEXT: addl
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: dcallee:
+; LINUX-32-PIC-LABEL: dcallee:
; LINUX-32-PIC: subl
; LINUX-32-PIC-NEXT: calll y
; LINUX-32-PIC-NEXT: calll y
@@ -8531,7 +8531,7 @@ entry:
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: dcallee:
+; LINUX-64-PIC-LABEL: dcallee:
; LINUX-64-PIC: pushq
; LINUX-64-PIC-NEXT: callq y@PLT
; LINUX-64-PIC-NEXT: callq y@PLT
@@ -8621,19 +8621,19 @@ declare void @y()
define void ()* @address() nounwind {
entry:
ret void ()* @callee
-; LINUX-64-STATIC: address:
+; LINUX-64-STATIC-LABEL: address:
; LINUX-64-STATIC: movl $callee, %eax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: address:
+; LINUX-32-STATIC-LABEL: address:
; LINUX-32-STATIC: movl $callee, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: address:
+; LINUX-32-PIC-LABEL: address:
; LINUX-32-PIC: movl $callee, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: address:
+; LINUX-64-PIC-LABEL: address:
; LINUX-64-PIC: movq callee@GOTPCREL(%rip), %rax
; LINUX-64-PIC-NEXT: ret
@@ -8670,19 +8670,19 @@ declare void @callee()
define void ()* @laddress() nounwind {
entry:
ret void ()* @lcallee
-; LINUX-64-STATIC: laddress:
+; LINUX-64-STATIC-LABEL: laddress:
; LINUX-64-STATIC: movl $lcallee, %eax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: laddress:
+; LINUX-32-STATIC-LABEL: laddress:
; LINUX-32-STATIC: movl $lcallee, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: laddress:
+; LINUX-32-PIC-LABEL: laddress:
; LINUX-32-PIC: movl $lcallee, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: laddress:
+; LINUX-64-PIC-LABEL: laddress:
; LINUX-64-PIC: movq lcallee@GOTPCREL(%rip), %rax
; LINUX-64-PIC-NEXT: ret
@@ -8717,19 +8717,19 @@ entry:
define void ()* @daddress() nounwind {
entry:
ret void ()* @dcallee
-; LINUX-64-STATIC: daddress:
+; LINUX-64-STATIC-LABEL: daddress:
; LINUX-64-STATIC: movl $dcallee, %eax
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: daddress:
+; LINUX-32-STATIC-LABEL: daddress:
; LINUX-32-STATIC: movl $dcallee, %eax
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: daddress:
+; LINUX-32-PIC-LABEL: daddress:
; LINUX-32-PIC: movl $dcallee, %eax
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: daddress:
+; LINUX-64-PIC-LABEL: daddress:
; LINUX-64-PIC: leaq dcallee(%rip), %rax
; LINUX-64-PIC-NEXT: ret
@@ -8766,19 +8766,19 @@ entry:
call void @callee() nounwind
call void @callee() nounwind
ret void
-; LINUX-64-STATIC: caller:
+; LINUX-64-STATIC-LABEL: caller:
; LINUX-64-STATIC: callq callee
; LINUX-64-STATIC: callq callee
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: caller:
+; LINUX-32-STATIC-LABEL: caller:
; LINUX-32-STATIC: subl
; LINUX-32-STATIC-NEXT: calll callee
; LINUX-32-STATIC-NEXT: calll callee
; LINUX-32-STATIC-NEXT: addl
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: caller:
+; LINUX-32-PIC-LABEL: caller:
; LINUX-32-PIC: subl
; LINUX-32-PIC-NEXT: calll callee
; LINUX-32-PIC-NEXT: calll callee
@@ -8786,7 +8786,7 @@ entry:
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: caller:
+; LINUX-64-PIC-LABEL: caller:
; LINUX-64-PIC: pushq
; LINUX-64-PIC-NEXT: callq callee@PLT
; LINUX-64-PIC-NEXT: callq callee@PLT
@@ -8841,19 +8841,19 @@ entry:
call void @dcallee() nounwind
call void @dcallee() nounwind
ret void
-; LINUX-64-STATIC: dcaller:
+; LINUX-64-STATIC-LABEL: dcaller:
; LINUX-64-STATIC: callq dcallee
; LINUX-64-STATIC: callq dcallee
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: dcaller:
+; LINUX-32-STATIC-LABEL: dcaller:
; LINUX-32-STATIC: subl
; LINUX-32-STATIC-NEXT: calll dcallee
; LINUX-32-STATIC-NEXT: calll dcallee
; LINUX-32-STATIC-NEXT: addl
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: dcaller:
+; LINUX-32-PIC-LABEL: dcaller:
; LINUX-32-PIC: subl
; LINUX-32-PIC-NEXT: calll dcallee
; LINUX-32-PIC-NEXT: calll dcallee
@@ -8861,7 +8861,7 @@ entry:
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: dcaller:
+; LINUX-64-PIC-LABEL: dcaller:
; LINUX-64-PIC: pushq
; LINUX-64-PIC-NEXT: callq dcallee
; LINUX-64-PIC-NEXT: callq dcallee
@@ -8916,19 +8916,19 @@ entry:
call void @lcallee() nounwind
call void @lcallee() nounwind
ret void
-; LINUX-64-STATIC: lcaller:
+; LINUX-64-STATIC-LABEL: lcaller:
; LINUX-64-STATIC: callq lcallee
; LINUX-64-STATIC: callq lcallee
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: lcaller:
+; LINUX-32-STATIC-LABEL: lcaller:
; LINUX-32-STATIC: subl
; LINUX-32-STATIC-NEXT: calll lcallee
; LINUX-32-STATIC-NEXT: calll lcallee
; LINUX-32-STATIC-NEXT: addl
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: lcaller:
+; LINUX-32-PIC-LABEL: lcaller:
; LINUX-32-PIC: subl
; LINUX-32-PIC-NEXT: calll lcallee
; LINUX-32-PIC-NEXT: calll lcallee
@@ -8936,7 +8936,7 @@ entry:
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: lcaller:
+; LINUX-64-PIC-LABEL: lcaller:
; LINUX-64-PIC: pushq
; LINUX-64-PIC-NEXT: callq lcallee@PLT
; LINUX-64-PIC-NEXT: callq lcallee@PLT
@@ -8990,24 +8990,24 @@ define void @tailcaller() nounwind {
entry:
call void @callee() nounwind
ret void
-; LINUX-64-STATIC: tailcaller:
+; LINUX-64-STATIC-LABEL: tailcaller:
; LINUX-64-STATIC: callq callee
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: tailcaller:
+; LINUX-32-STATIC-LABEL: tailcaller:
; LINUX-32-STATIC: subl
; LINUX-32-STATIC-NEXT: calll callee
; LINUX-32-STATIC-NEXT: addl
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: tailcaller:
+; LINUX-32-PIC-LABEL: tailcaller:
; LINUX-32-PIC: subl
; LINUX-32-PIC-NEXT: calll callee
; LINUX-32-PIC-NEXT: addl
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: tailcaller:
+; LINUX-64-PIC-LABEL: tailcaller:
; LINUX-64-PIC: pushq
; LINUX-64-PIC-NEXT: callq callee@PLT
; LINUX-64-PIC-NEXT: popq
@@ -9054,24 +9054,24 @@ define void @dtailcaller() nounwind {
entry:
call void @dcallee() nounwind
ret void
-; LINUX-64-STATIC: dtailcaller:
+; LINUX-64-STATIC-LABEL: dtailcaller:
; LINUX-64-STATIC: callq dcallee
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: dtailcaller:
+; LINUX-32-STATIC-LABEL: dtailcaller:
; LINUX-32-STATIC: subl
; LINUX-32-STATIC-NEXT: calll dcallee
; LINUX-32-STATIC-NEXT: addl
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: dtailcaller:
+; LINUX-32-PIC-LABEL: dtailcaller:
; LINUX-32-PIC: subl
; LINUX-32-PIC-NEXT: calll dcallee
; LINUX-32-PIC-NEXT: addl
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: dtailcaller:
+; LINUX-64-PIC-LABEL: dtailcaller:
; LINUX-64-PIC: pushq
; LINUX-64-PIC-NEXT: callq dcallee
; LINUX-64-PIC-NEXT: popq
@@ -9118,24 +9118,24 @@ define void @ltailcaller() nounwind {
entry:
call void @lcallee() nounwind
ret void
-; LINUX-64-STATIC: ltailcaller:
+; LINUX-64-STATIC-LABEL: ltailcaller:
; LINUX-64-STATIC: callq lcallee
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: ltailcaller:
+; LINUX-32-STATIC-LABEL: ltailcaller:
; LINUX-32-STATIC: subl
; LINUX-32-STATIC-NEXT: calll lcallee
; LINUX-32-STATIC-NEXT: addl
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: ltailcaller:
+; LINUX-32-PIC-LABEL: ltailcaller:
; LINUX-32-PIC: subl
; LINUX-32-PIC-NEXT: calll lcallee
; LINUX-32-PIC-NEXT: addl
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: ltailcaller:
+; LINUX-64-PIC-LABEL: ltailcaller:
; LINUX-64-PIC: pushq
; LINUX-64-PIC-NEXT: callq lcallee@PLT
; LINUX-64-PIC-NEXT: popq
@@ -9185,19 +9185,19 @@ entry:
%1 = load void ()** @ifunc, align 8
call void %1() nounwind
ret void
-; LINUX-64-STATIC: icaller:
+; LINUX-64-STATIC-LABEL: icaller:
; LINUX-64-STATIC: callq *ifunc
; LINUX-64-STATIC: callq *ifunc
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: icaller:
+; LINUX-32-STATIC-LABEL: icaller:
; LINUX-32-STATIC: subl
; LINUX-32-STATIC-NEXT: calll *ifunc
; LINUX-32-STATIC-NEXT: calll *ifunc
; LINUX-32-STATIC-NEXT: addl
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: icaller:
+; LINUX-32-PIC-LABEL: icaller:
; LINUX-32-PIC: subl
; LINUX-32-PIC-NEXT: calll *ifunc
; LINUX-32-PIC-NEXT: calll *ifunc
@@ -9205,7 +9205,7 @@ entry:
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: icaller:
+; LINUX-64-PIC-LABEL: icaller:
; LINUX-64-PIC: pushq [[RBX:%r.x]]
; LINUX-64-PIC-NEXT: movq ifunc@GOTPCREL(%rip), [[RBX:%r.x]]
; LINUX-64-PIC-NEXT: callq *([[RBX]])
@@ -9275,19 +9275,19 @@ entry:
%1 = load void ()** @difunc, align 8
call void %1() nounwind
ret void
-; LINUX-64-STATIC: dicaller:
+; LINUX-64-STATIC-LABEL: dicaller:
; LINUX-64-STATIC: callq *difunc
; LINUX-64-STATIC: callq *difunc
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: dicaller:
+; LINUX-32-STATIC-LABEL: dicaller:
; LINUX-32-STATIC: subl
; LINUX-32-STATIC-NEXT: calll *difunc
; LINUX-32-STATIC-NEXT: calll *difunc
; LINUX-32-STATIC-NEXT: addl
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: dicaller:
+; LINUX-32-PIC-LABEL: dicaller:
; LINUX-32-PIC: subl
; LINUX-32-PIC-NEXT: calll *difunc
; LINUX-32-PIC-NEXT: calll *difunc
@@ -9295,7 +9295,7 @@ entry:
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: dicaller:
+; LINUX-64-PIC-LABEL: dicaller:
; LINUX-64-PIC: pushq [[RBX:%r.x]]
; LINUX-64-PIC-NEXT: movq difunc@GOTPCREL(%rip), [[RBX:%r.x]]
; LINUX-64-PIC-NEXT: callq *([[RBX]])
@@ -9358,19 +9358,19 @@ entry:
%1 = load void ()** @lifunc, align 8
call void %1() nounwind
ret void
-; LINUX-64-STATIC: licaller:
+; LINUX-64-STATIC-LABEL: licaller:
; LINUX-64-STATIC: callq *lifunc
; LINUX-64-STATIC: callq *lifunc
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: licaller:
+; LINUX-32-STATIC-LABEL: licaller:
; LINUX-32-STATIC: subl
; LINUX-32-STATIC-NEXT: calll *lifunc
; LINUX-32-STATIC-NEXT: calll *lifunc
; LINUX-32-STATIC-NEXT: addl
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: licaller:
+; LINUX-32-PIC-LABEL: licaller:
; LINUX-32-PIC: subl
; LINUX-32-PIC-NEXT: calll *lifunc
; LINUX-32-PIC-NEXT: calll *lifunc
@@ -9378,7 +9378,7 @@ entry:
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: licaller:
+; LINUX-64-PIC-LABEL: licaller:
; LINUX-64-PIC: pushq
; LINUX-64-PIC-NEXT: callq *lifunc(%rip)
; LINUX-64-PIC-NEXT: callq *lifunc(%rip)
@@ -9440,19 +9440,19 @@ entry:
%1 = load void ()** @ifunc, align 8
call void %1() nounwind
ret void
-; LINUX-64-STATIC: itailcaller:
+; LINUX-64-STATIC-LABEL: itailcaller:
; LINUX-64-STATIC: callq *ifunc
; LINUX-64-STATIC: callq *ifunc
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: itailcaller:
+; LINUX-32-STATIC-LABEL: itailcaller:
; LINUX-32-STATIC: subl
; LINUX-32-STATIC-NEXT: calll *ifunc
; LINUX-32-STATIC-NEXT: calll *ifunc
; LINUX-32-STATIC-NEXT: addl
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: itailcaller:
+; LINUX-32-PIC-LABEL: itailcaller:
; LINUX-32-PIC: subl
; LINUX-32-PIC-NEXT: calll *ifunc
; LINUX-32-PIC-NEXT: calll *ifunc
@@ -9460,7 +9460,7 @@ entry:
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: itailcaller:
+; LINUX-64-PIC-LABEL: itailcaller:
; LINUX-64-PIC: pushq [[RBX:%r.x]]
; LINUX-64-PIC-NEXT: movq ifunc@GOTPCREL(%rip), [[RBX:%r.x]]
; LINUX-64-PIC-NEXT: callq *([[RBX]])
@@ -9528,24 +9528,24 @@ entry:
%0 = load void ()** @difunc, align 8
call void %0() nounwind
ret void
-; LINUX-64-STATIC: ditailcaller:
+; LINUX-64-STATIC-LABEL: ditailcaller:
; LINUX-64-STATIC: callq *difunc
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: ditailcaller:
+; LINUX-32-STATIC-LABEL: ditailcaller:
; LINUX-32-STATIC: subl
; LINUX-32-STATIC-NEXT: calll *difunc
; LINUX-32-STATIC-NEXT: addl
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: ditailcaller:
+; LINUX-32-PIC-LABEL: ditailcaller:
; LINUX-32-PIC: subl
; LINUX-32-PIC-NEXT: calll *difunc
; LINUX-32-PIC-NEXT: addl
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: ditailcaller:
+; LINUX-64-PIC-LABEL: ditailcaller:
; LINUX-64-PIC: pushq
; LINUX-64-PIC-NEXT: movq difunc@GOTPCREL(%rip), [[RAX:%r.x]]
; LINUX-64-PIC-NEXT: callq *([[RAX]])
@@ -9596,24 +9596,24 @@ entry:
%0 = load void ()** @lifunc, align 8
call void %0() nounwind
ret void
-; LINUX-64-STATIC: litailcaller:
+; LINUX-64-STATIC-LABEL: litailcaller:
; LINUX-64-STATIC: callq *lifunc
; LINUX-64-STATIC: ret
-; LINUX-32-STATIC: litailcaller:
+; LINUX-32-STATIC-LABEL: litailcaller:
; LINUX-32-STATIC: subl
; LINUX-32-STATIC-NEXT: calll *lifunc
; LINUX-32-STATIC-NEXT: addl
; LINUX-32-STATIC-NEXT: ret
-; LINUX-32-PIC: litailcaller:
+; LINUX-32-PIC-LABEL: litailcaller:
; LINUX-32-PIC: subl
; LINUX-32-PIC-NEXT: calll *lifunc
; LINUX-32-PIC-NEXT: addl
; LINUX-32-PIC-NEXT: ret
-; LINUX-64-PIC: litailcaller:
+; LINUX-64-PIC-LABEL: litailcaller:
; LINUX-64-PIC: pushq
; LINUX-64-PIC-NEXT: callq *lifunc(%rip)
; LINUX-64-PIC-NEXT: popq
diff --git a/test/CodeGen/X86/add-of-carry.ll b/test/CodeGen/X86/add-of-carry.ll
index 4e30f2b05a89f..1513fcba774bb 100644
--- a/test/CodeGen/X86/add-of-carry.ll
+++ b/test/CodeGen/X86/add-of-carry.ll
@@ -3,7 +3,7 @@
define i32 @test1(i32 %sum, i32 %x) nounwind readnone ssp {
entry:
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: cmpl %ecx, %eax
; CHECK-NOT: addl
; CHECK: adcl $0, %eax
@@ -15,7 +15,7 @@ entry:
}
; Instcombine transforms test1 into test2:
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK: movl
; CHECK-NEXT: addl
; CHECK-NEXT: adcl $0
@@ -37,7 +37,7 @@ entry:
%dec = sext i1 %cmp to i32
%dec.res = add nsw i32 %dec, %res
ret i32 %dec.res
-; CHECK: test3:
+; CHECK-LABEL: test3:
; CHECK: cmpl
; CHECK: sbbl
; CHECK: ret
diff --git a/test/CodeGen/X86/add.ll b/test/CodeGen/X86/add.ll
index 5fe08ed305f1a..62a62a460bd7c 100644
--- a/test/CodeGen/X86/add.ll
+++ b/test/CodeGen/X86/add.ll
@@ -9,7 +9,7 @@ define i32 @test1(i32 inreg %a) nounwind {
%b = add i32 %a, 128
ret i32 %b
; X32: subl $-128, %eax
-; X64: subl $-128,
+; X64: subl $-128,
}
define i64 @test2(i64 inreg %a) nounwind {
%b = add i64 %a, 2147483648
@@ -20,7 +20,7 @@ define i64 @test2(i64 inreg %a) nounwind {
define i64 @test3(i64 inreg %a) nounwind {
%b = add i64 %a, 128
ret i64 %b
-
+
; X32: addl $128, %eax
; X64: subq $-128,
}
@@ -38,12 +38,12 @@ normal:
overflow:
ret i1 false
-
-; X32: test4:
+
+; X32-LABEL: test4:
; X32: addl
; X32-NEXT: jo
-; X64: test4:
+; X64-LABEL: test4:
; X64: addl %e[[A1:si|dx]], %e[[A0:di|cx]]
; X64-NEXT: jo
}
@@ -62,11 +62,11 @@ normal:
carry:
ret i1 false
-; X32: test5:
+; X32-LABEL: test5:
; X32: addl
; X32-NEXT: jb
-; X64: test5:
+; X64-LABEL: test5:
; X64: addl %e[[A1]], %e[[A0]]
; X64-NEXT: jb
}
@@ -81,13 +81,13 @@ define i64 @test6(i64 %A, i32 %B) nounwind {
%tmp5 = add i64 %tmp3, %A ; <i64> [#uses=1]
ret i64 %tmp5
-; X32: test6:
-; X32: movl 12(%esp), %edx
+; X32-LABEL: test6:
+; X32: movl 4(%esp), %eax
+; X32-NEXT: movl 12(%esp), %edx
; X32-NEXT: addl 8(%esp), %edx
-; X32-NEXT: movl 4(%esp), %eax
; X32-NEXT: ret
-
-; X64: test6:
+
+; X64-LABEL: test6:
; X64: shlq $32, %r[[A1]]
; X64: leaq (%r[[A1]],%r[[A0]]), %rax
; X64: ret
@@ -98,7 +98,7 @@ define {i32, i1} @test7(i32 %v1, i32 %v2) nounwind {
ret {i32, i1} %t
}
-; X64: test7:
+; X64-LABEL: test7:
; X64: addl %e[[A1]], %e
; X64-NEXT: setb %dl
; X64: ret
@@ -117,7 +117,7 @@ entry:
ret {i64, i1} %final1
}
-; X64: test8:
+; X64-LABEL: test8:
; X64: addq
; X64-NEXT: setb
; X64: ret
@@ -127,7 +127,7 @@ define i32 @test9(i32 %x, i32 %y) nounwind readnone {
%sub = sext i1 %cmp to i32
%cond = add i32 %sub, %y
ret i32 %cond
-; X64: test9:
+; X64-LABEL: test9:
; X64: cmpl $10
; X64: sete
; X64: subl
@@ -140,11 +140,11 @@ entry:
%obit = extractvalue {i32, i1} %t, 1
ret i1 %obit
-; X32: test10:
+; X32-LABEL: test10:
; X32: incl
; X32-NEXT: seto
-; X64: test10:
+; X64-LABEL: test10:
; X64: incl
; X64-NEXT: seto
}
diff --git a/test/CodeGen/X86/aes_intrinsics.ll b/test/CodeGen/X86/aes_intrinsics.ll
new file mode 100644
index 0000000000000..fc1a2cc61289a
--- /dev/null
+++ b/test/CodeGen/X86/aes_intrinsics.ll
@@ -0,0 +1,48 @@
+; RUN: llc < %s -mtriple=i386-apple-darwin -mattr=+aes,-avx | FileCheck %s
+
+define <2 x i64> @test_x86_aesni_aesdec(<2 x i64> %a0, <2 x i64> %a1) {
+ ; CHECK: aesdec
+ %res = call <2 x i64> @llvm.x86.aesni.aesdec(<2 x i64> %a0, <2 x i64> %a1) ; <<2 x i64>> [#uses=1]
+ ret <2 x i64> %res
+}
+declare <2 x i64> @llvm.x86.aesni.aesdec(<2 x i64>, <2 x i64>) nounwind readnone
+
+
+define <2 x i64> @test_x86_aesni_aesdeclast(<2 x i64> %a0, <2 x i64> %a1) {
+ ; CHECK: aesdeclast
+ %res = call <2 x i64> @llvm.x86.aesni.aesdeclast(<2 x i64> %a0, <2 x i64> %a1) ; <<2 x i64>> [#uses=1]
+ ret <2 x i64> %res
+}
+declare <2 x i64> @llvm.x86.aesni.aesdeclast(<2 x i64>, <2 x i64>) nounwind readnone
+
+
+define <2 x i64> @test_x86_aesni_aesenc(<2 x i64> %a0, <2 x i64> %a1) {
+ ; CHECK: aesenc
+ %res = call <2 x i64> @llvm.x86.aesni.aesenc(<2 x i64> %a0, <2 x i64> %a1) ; <<2 x i64>> [#uses=1]
+ ret <2 x i64> %res
+}
+declare <2 x i64> @llvm.x86.aesni.aesenc(<2 x i64>, <2 x i64>) nounwind readnone
+
+
+define <2 x i64> @test_x86_aesni_aesenclast(<2 x i64> %a0, <2 x i64> %a1) {
+ ; CHECK: aesenclast
+ %res = call <2 x i64> @llvm.x86.aesni.aesenclast(<2 x i64> %a0, <2 x i64> %a1) ; <<2 x i64>> [#uses=1]
+ ret <2 x i64> %res
+}
+declare <2 x i64> @llvm.x86.aesni.aesenclast(<2 x i64>, <2 x i64>) nounwind readnone
+
+
+define <2 x i64> @test_x86_aesni_aesimc(<2 x i64> %a0) {
+ ; CHECK: aesimc
+ %res = call <2 x i64> @llvm.x86.aesni.aesimc(<2 x i64> %a0) ; <<2 x i64>> [#uses=1]
+ ret <2 x i64> %res
+}
+declare <2 x i64> @llvm.x86.aesni.aesimc(<2 x i64>) nounwind readnone
+
+
+define <2 x i64> @test_x86_aesni_aeskeygenassist(<2 x i64> %a0) {
+ ; CHECK: aeskeygenassist
+ %res = call <2 x i64> @llvm.x86.aesni.aeskeygenassist(<2 x i64> %a0, i8 7) ; <<2 x i64>> [#uses=1]
+ ret <2 x i64> %res
+}
+declare <2 x i64> @llvm.x86.aesni.aeskeygenassist(<2 x i64>, i8) nounwind readnone
diff --git a/test/CodeGen/X86/alias-error.ll b/test/CodeGen/X86/alias-error.ll
new file mode 100644
index 0000000000000..8f01dcff2bf9b
--- /dev/null
+++ b/test/CodeGen/X86/alias-error.ll
@@ -0,0 +1,5 @@
+; RUN: not llc -mtriple=i686-pc-linux-gnu %s -o /dev/null 2>&1 | FileCheck %s
+
+@a = external global i32
+@b = alias i32* @a
+; CHECK: b: Target doesn't support aliases to declarations
diff --git a/test/CodeGen/X86/aliases.ll b/test/CodeGen/X86/aliases.ll
index f92027998a408..d0a262d390da0 100644
--- a/test/CodeGen/X86/aliases.ll
+++ b/test/CodeGen/X86/aliases.ll
@@ -1,26 +1,38 @@
-; RUN: llc < %s -mtriple=i686-pc-linux-gnu -asm-verbose=false -o %t
-; RUN: grep globl %t | count 6
-; RUN: grep weak %t | count 1
-; RUN: grep hidden %t | count 1
-; RUN: grep protected %t | count 1
+; RUN: llc < %s -mtriple=i686-pc-linux-gnu -asm-verbose=false | FileCheck %s
-@bar = external global i32
+@bar = global i32 42
+
+; CHECK-DAG: .globl foo1
@foo1 = alias i32* @bar
+
+; CHECK-DAG: .globl foo2
@foo2 = alias i32* @bar
%FunTy = type i32()
-declare i32 @foo_f()
+define i32 @foo_f() {
+ ret i32 0
+}
+; CHECK-DAG: .weak bar_f
@bar_f = alias weak %FunTy* @foo_f
+@bar_l = alias linkonce_odr i32* @bar
+; CHECK-DAG: .weak bar_l
+
@bar_i = alias internal i32* @bar
+; CHECK-DAG: .globl A
@A = alias bitcast (i32* @bar to i64*)
+; CHECK-DAG: .globl bar_h
+; CHECK-DAG: .hidden bar_h
@bar_h = hidden alias i32* @bar
+; CHECK-DAG: .globl bar_p
+; CHECK-DAG: .protected bar_p
@bar_p = protected alias i32* @bar
+; CHECK-DAG: .globl test
define i32 @test() {
entry:
%tmp = load i32* @foo1
diff --git a/test/CodeGen/X86/alloca-align-rounding-32.ll b/test/CodeGen/X86/alloca-align-rounding-32.ll
index a45284e10cf49..2b5a205086e90 100644
--- a/test/CodeGen/X86/alloca-align-rounding-32.ll
+++ b/test/CodeGen/X86/alloca-align-rounding-32.ll
@@ -16,5 +16,5 @@ define void @foo2(i32 %h) {
ret void
; CHECK: foo2
; CHECK: andl $-32, %esp
-; CHECK: andl $-32, %eax
+; CHECK: andl $-32, %e{{..}}
}
diff --git a/test/CodeGen/X86/alloca-align-rounding.ll b/test/CodeGen/X86/alloca-align-rounding.ll
index 3d76fb0aa25bb..74b9470db752b 100644
--- a/test/CodeGen/X86/alloca-align-rounding.ll
+++ b/test/CodeGen/X86/alloca-align-rounding.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86-64 -mtriple=i686-pc-linux | FileCheck %s
+; RUN: llc < %s -march=x86-64 -mtriple=i686-pc-linux -enable-misched=false | FileCheck %s
declare void @bar(<2 x i64>* %n)
diff --git a/test/CodeGen/X86/and-su.ll b/test/CodeGen/X86/and-su.ll
index 38db88af12c24..70c24615a7e21 100644
--- a/test/CodeGen/X86/and-su.ll
+++ b/test/CodeGen/X86/and-su.ll
@@ -3,7 +3,7 @@
; Don't duplicate the load.
define fastcc i32 @foo(i32* %p) nounwind {
-; CHECK: foo:
+; CHECK-LABEL: foo:
; CHECK: andl $10, %eax
; CHECK: je
%t0 = load i32* %p
@@ -18,7 +18,7 @@ bb76:
define fastcc double @bar(i32 %hash, double %x, double %y) nounwind {
entry:
-; CHECK: bar:
+; CHECK-LABEL: bar:
%0 = and i32 %hash, 15
%1 = icmp ult i32 %0, 8
br i1 %1, label %bb11, label %bb10
diff --git a/test/CodeGen/X86/anyregcc-crash.ll b/test/CodeGen/X86/anyregcc-crash.ll
new file mode 100644
index 0000000000000..cf6f6edb31a80
--- /dev/null
+++ b/test/CodeGen/X86/anyregcc-crash.ll
@@ -0,0 +1,17 @@
+; RUN: not llc < %s -mtriple=x86_64-apple-darwin 2>&1 | FileCheck %s
+;
+; Check that misuse of anyregcc results in a compile time error.
+
+; CHECK: LLVM ERROR: ran out of registers during register allocation
+define i64 @anyreglimit(i64 %v1, i64 %v2, i64 %v3, i64 %v4, i64 %v5, i64 %v6,
+ i64 %v7, i64 %v8, i64 %v9, i64 %v10, i64 %v11, i64 %v12,
+ i64 %v13, i64 %v14, i64 %v15, i64 %v16) {
+entry:
+ %result = tail call anyregcc i64 (i32, i32, i8*, i32, ...)* @llvm.experimental.patchpoint.i64(i32 12, i32 15, i8* inttoptr (i64 0 to i8*), i32 16,
+ i64 %v1, i64 %v2, i64 %v3, i64 %v4, i64 %v5, i64 %v6,
+ i64 %v7, i64 %v8, i64 %v9, i64 %v10, i64 %v11, i64 %v12,
+ i64 %v13, i64 %v14, i64 %v15, i64 %v16)
+ ret i64 %result
+}
+
+declare i64 @llvm.experimental.patchpoint.i64(i32, i32, i8*, i32, ...)
diff --git a/test/CodeGen/X86/anyregcc.ll b/test/CodeGen/X86/anyregcc.ll
new file mode 100644
index 0000000000000..8109f879f217c
--- /dev/null
+++ b/test/CodeGen/X86/anyregcc.ll
@@ -0,0 +1,348 @@
+; RUN: llc < %s -mtriple=x86_64-apple-darwin | FileCheck %s
+
+; Stackmap Header: no constants - 6 callsites
+; CHECK-LABEL: .section __LLVM_STACKMAPS,__llvm_stackmaps
+; CHECK-NEXT: __LLVM_StackMaps:
+; Header
+; CHECK-NEXT: .long 0
+; Num Constants
+; CHECK-NEXT: .long 0
+; Num Callsites
+; CHECK-NEXT: .long 8
+
+; test
+; CHECK-NEXT: .long 0
+; CHECK-LABEL: .long L{{.*}}-_test
+; CHECK-NEXT: .short 0
+; 3 locations
+; CHECK-NEXT: .short 3
+; Loc 0: Register
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 4
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; Loc 1: Register
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 4
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; Loc 2: Constant 3
+; CHECK-NEXT: .byte 4
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short 0
+; CHECK-NEXT: .long 3
+define i64 @test() nounwind ssp uwtable {
+entry:
+ call anyregcc void (i32, i32, i8*, i32, ...)* @llvm.experimental.patchpoint.void(i32 0, i32 15, i8* null, i32 2, i32 1, i32 2, i64 3)
+ ret i64 0
+}
+
+; property access 1 - %obj is an anyreg call argument and should therefore be in a register
+; CHECK-NEXT: .long 1
+; CHECK-LABEL: .long L{{.*}}-_property_access1
+; CHECK-NEXT: .short 0
+; 2 locations
+; CHECK-NEXT: .short 2
+; Loc 0: Register <-- this is the return register
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; Loc 1: Register
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+define i64 @property_access1(i8* %obj) nounwind ssp uwtable {
+entry:
+ %f = inttoptr i64 12297829382473034410 to i8*
+ %ret = call anyregcc i64 (i32, i32, i8*, i32, ...)* @llvm.experimental.patchpoint.i64(i32 1, i32 15, i8* %f, i32 1, i8* %obj)
+ ret i64 %ret
+}
+
+; property access 2 - %obj is an anyreg call argument and should therefore be in a register
+; CHECK-NEXT: .long 2
+; CHECK-LABEL: .long L{{.*}}-_property_access2
+; CHECK-NEXT: .short 0
+; 2 locations
+; CHECK-NEXT: .short 2
+; Loc 0: Register <-- this is the return register
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; Loc 1: Register
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+define i64 @property_access2() nounwind ssp uwtable {
+entry:
+ %obj = alloca i64, align 8
+ %f = inttoptr i64 12297829382473034410 to i8*
+ %ret = call anyregcc i64 (i32, i32, i8*, i32, ...)* @llvm.experimental.patchpoint.i64(i32 2, i32 15, i8* %f, i32 1, i64* %obj)
+ ret i64 %ret
+}
+
+; property access 3 - %obj is a frame index
+; CHECK-NEXT: .long 3
+; CHECK-LABEL: .long L{{.*}}-_property_access3
+; CHECK-NEXT: .short 0
+; 2 locations
+; CHECK-NEXT: .short 2
+; Loc 0: Register <-- this is the return register
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; Loc 1: Register <-- this will be folded once folding for FI is implemented
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+define i64 @property_access3() nounwind ssp uwtable {
+entry:
+ %obj = alloca i64, align 8
+ %f = inttoptr i64 12297829382473034410 to i8*
+ %ret = call anyregcc i64 (i32, i32, i8*, i32, ...)* @llvm.experimental.patchpoint.i64(i32 3, i32 15, i8* %f, i32 0, i64* %obj)
+ ret i64 %ret
+}
+
+; anyreg_test1
+; CHECK-NEXT: .long 4
+; CHECK-LABEL: .long L{{.*}}-_anyreg_test1
+; CHECK-NEXT: .short 0
+; 14 locations
+; CHECK-NEXT: .short 14
+; Loc 0: Register <-- this is the return register
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; Loc 1: Register
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; Loc 2: Register
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; Loc 3: Register
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; Loc 4: Register
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; Loc 5: Register
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; Loc 6: Register
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; Loc 7: Register
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; Loc 8: Register
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; Loc 9: Register
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; Loc 10: Register
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; Loc 11: Register
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; Loc 12: Register
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; Loc 13: Register
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+define i64 @anyreg_test1(i8* %a1, i8* %a2, i8* %a3, i8* %a4, i8* %a5, i8* %a6, i8* %a7, i8* %a8, i8* %a9, i8* %a10, i8* %a11, i8* %a12, i8* %a13) nounwind ssp uwtable {
+entry:
+ %f = inttoptr i64 12297829382473034410 to i8*
+ %ret = call anyregcc i64 (i32, i32, i8*, i32, ...)* @llvm.experimental.patchpoint.i64(i32 4, i32 15, i8* %f, i32 13, i8* %a1, i8* %a2, i8* %a3, i8* %a4, i8* %a5, i8* %a6, i8* %a7, i8* %a8, i8* %a9, i8* %a10, i8* %a11, i8* %a12, i8* %a13)
+ ret i64 %ret
+}
+
+; anyreg_test2
+; CHECK-NEXT: .long 5
+; CHECK-LABEL: .long L{{.*}}-_anyreg_test2
+; CHECK-NEXT: .short 0
+; 14 locations
+; CHECK-NEXT: .short 14
+; Loc 0: Register <-- this is the return register
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; Loc 1: Register
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; Loc 2: Register
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; Loc 3: Register
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; Loc 4: Register
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; Loc 5: Register
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; Loc 6: Register
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; Loc 7: Register
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; Loc 8: Register
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; Loc 9: Register
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; Loc 10: Register
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; Loc 11: Register
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; Loc 12: Register
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; Loc 13: Register
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+define i64 @anyreg_test2(i8* %a1, i8* %a2, i8* %a3, i8* %a4, i8* %a5, i8* %a6, i8* %a7, i8* %a8, i8* %a9, i8* %a10, i8* %a11, i8* %a12, i8* %a13) nounwind ssp uwtable {
+entry:
+ %f = inttoptr i64 12297829382473034410 to i8*
+ %ret = call anyregcc i64 (i32, i32, i8*, i32, ...)* @llvm.experimental.patchpoint.i64(i32 5, i32 15, i8* %f, i32 8, i8* %a1, i8* %a2, i8* %a3, i8* %a4, i8* %a5, i8* %a6, i8* %a7, i8* %a8, i8* %a9, i8* %a10, i8* %a11, i8* %a12, i8* %a13)
+ ret i64 %ret
+}
+
+; Test spilling the return value of an anyregcc call.
+;
+; <rdar://problem/15432754> [JS] Assertion: "Folded a def to a non-store!"
+;
+; CHECK-LABEL: .long 12
+; CHECK-LABEL: .long L{{.*}}-_patchpoint_spilldef
+; CHECK-NEXT: .short 0
+; CHECK-NEXT: .short 3
+; Loc 0: Register (some register that will be spilled to the stack)
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; Loc 1: Register RDI
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short 5
+; CHECK-NEXT: .long 0
+; Loc 1: Register RSI
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short 4
+; CHECK-NEXT: .long 0
+define i64 @patchpoint_spilldef(i64 %p1, i64 %p2, i64 %p3, i64 %p4) {
+entry:
+ %result = tail call anyregcc i64 (i32, i32, i8*, i32, ...)* @llvm.experimental.patchpoint.i64(i32 12, i32 15, i8* inttoptr (i64 0 to i8*), i32 2, i64 %p1, i64 %p2)
+ tail call void asm sideeffect "nop", "~{ax},~{bx},~{cx},~{dx},~{bp},~{si},~{di},~{r8},~{r9},~{r10},~{r11},~{r12},~{r13},~{r14},~{r15}"() nounwind
+ ret i64 %result
+}
+
+; Test spilling the arguments of an anyregcc call.
+;
+; <rdar://problem/15487687> [JS] AnyRegCC argument ends up being spilled
+;
+; CHECK-LABEL: .long 13
+; CHECK-LABEL: .long L{{.*}}-_patchpoint_spillargs
+; CHECK-NEXT: .short 0
+; CHECK-NEXT: .short 5
+; Loc 0: Return a register
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; Loc 1: Arg0 in a Register
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; Loc 2: Arg1 in a Register
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; Loc 3: Arg2 spilled to RBP +
+; CHECK-NEXT: .byte 3
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short 7
+; CHECK-NEXT: .long {{[0-9]+}}
+; Loc 4: Arg3 spilled to RBP +
+; CHECK-NEXT: .byte 3
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short 7
+; CHECK-NEXT: .long {{[0-9]+}}
+define i64 @patchpoint_spillargs(i64 %p1, i64 %p2, i64 %p3, i64 %p4) {
+entry:
+ tail call void asm sideeffect "nop", "~{ax},~{bx},~{cx},~{dx},~{bp},~{si},~{di},~{r8},~{r9},~{r10},~{r11},~{r12},~{r13},~{r14},~{r15}"() nounwind
+ %result = tail call anyregcc i64 (i32, i32, i8*, i32, ...)* @llvm.experimental.patchpoint.i64(i32 13, i32 15, i8* inttoptr (i64 0 to i8*), i32 2, i64 %p1, i64 %p2, i64 %p3, i64 %p4)
+ ret i64 %result
+}
+
+declare void @llvm.experimental.patchpoint.void(i32, i32, i8*, i32, ...)
+declare i64 @llvm.experimental.patchpoint.i64(i32, i32, i8*, i32, ...)
diff --git a/test/CodeGen/X86/apm.ll b/test/CodeGen/X86/apm.ll
index aaedf18481b5d..4ba1e21b8a15d 100644
--- a/test/CodeGen/X86/apm.ll
+++ b/test/CodeGen/X86/apm.ll
@@ -2,11 +2,11 @@
; RUN: llc < %s -mtriple=x86_64-win32 -mattr=+sse3 | FileCheck %s -check-prefix=WIN64
; PR8573
-; CHECK: foo:
+; CHECK-LABEL: foo:
; CHECK: leaq (%rdi), %rax
; CHECK-NEXT: movl %esi, %ecx
; CHECK-NEXT: monitor
-; WIN64: foo:
+; WIN64-LABEL: foo:
; WIN64: leaq (%rcx), %rax
; WIN64-NEXT: movl %edx, %ecx
; WIN64-NEXT: movl %r8d, %edx
@@ -19,11 +19,11 @@ entry:
declare void @llvm.x86.sse3.monitor(i8*, i32, i32) nounwind
-; CHECK: bar:
+; CHECK-LABEL: bar:
; CHECK: movl %edi, %ecx
; CHECK-NEXT: movl %esi, %eax
; CHECK-NEXT: mwait
-; WIN64: bar:
+; WIN64-LABEL: bar:
; WIN64: movl %edx, %eax
; WIN64-NEXT: mwait
define void @bar(i32 %E, i32 %H) nounwind {
diff --git a/test/CodeGen/X86/asm-global-imm.ll b/test/CodeGen/X86/asm-global-imm.ll
index 6c569d624e060..ebf585a39a286 100644
--- a/test/CodeGen/X86/asm-global-imm.ll
+++ b/test/CodeGen/X86/asm-global-imm.ll
@@ -7,7 +7,7 @@ target triple = "i686-apple-darwin9.0.0d2"
@str = external global [12 x i8] ; <[12 x i8]*> [#uses=1]
define void @foo() {
-; CHECK: foo:
+; CHECK-LABEL: foo:
; CHECK-NOT: ret
; CHECK: test1 $_GV
; CHECK-NOT: ret
diff --git a/test/CodeGen/X86/asm-modifier-P.ll b/test/CodeGen/X86/asm-modifier-P.ll
index 6139da8c3685c..0aa55556d8f35 100644
--- a/test/CodeGen/X86/asm-modifier-P.ll
+++ b/test/CodeGen/X86/asm-modifier-P.ll
@@ -21,20 +21,20 @@ define void @test1() nounwind {
entry:
; P suffix removes (rip) in -static 64-bit mode.
-; CHECK-PIC-64: test1:
+; CHECK-PIC-64-LABEL: test1:
; CHECK-PIC-64: movq G@GOTPCREL(%rip), %rax
; CHECK-PIC-64: frob (%rax) x
; CHECK-PIC-64: frob (%rax) x
-; CHECK-STATIC-64: test1:
+; CHECK-STATIC-64-LABEL: test1:
; CHECK-STATIC-64: frob G(%rip) x
; CHECK-STATIC-64: frob G x
-; CHECK-PIC-32: test1:
+; CHECK-PIC-32-LABEL: test1:
; CHECK-PIC-32: frob G x
; CHECK-PIC-32: frob G x
-; CHECK-STATIC-32: test1:
+; CHECK-STATIC-32-LABEL: test1:
; CHECK-STATIC-32: frob G x
; CHECK-STATIC-32: frob G x
@@ -45,25 +45,25 @@ entry:
define void @test3() nounwind {
entry:
-; CHECK-STATIC-64: test3:
+; CHECK-STATIC-64-LABEL: test3:
; CHECK-STATIC-64: call bar
; CHECK-STATIC-64: call test3
; CHECK-STATIC-64: call $bar
; CHECK-STATIC-64: call $test3
-; CHECK-STATIC-32: test3:
+; CHECK-STATIC-32-LABEL: test3:
; CHECK-STATIC-32: call bar
; CHECK-STATIC-32: call test3
; CHECK-STATIC-32: call $bar
; CHECK-STATIC-32: call $test3
-; CHECK-PIC-64: test3:
+; CHECK-PIC-64-LABEL: test3:
; CHECK-PIC-64: call bar@PLT
; CHECK-PIC-64: call test3@PLT
; CHECK-PIC-64: call $bar
; CHECK-PIC-64: call $test3
-; CHECK-PIC-32: test3:
+; CHECK-PIC-32-LABEL: test3:
; CHECK-PIC-32: call bar@PLT
; CHECK-PIC-32: call test3@PLT
; CHECK-PIC-32: call $bar
diff --git a/test/CodeGen/X86/asm-modifier.ll b/test/CodeGen/X86/asm-modifier.ll
index 44f972ec7198c..47b185a157660 100644
--- a/test/CodeGen/X86/asm-modifier.ll
+++ b/test/CodeGen/X86/asm-modifier.ll
@@ -5,7 +5,7 @@ target triple = "i386-apple-darwin9.6"
define i32 @test1() nounwind {
entry:
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: movw %gs:6, %ax
%asmtmp.i = tail call i16 asm "movw\09%gs:${1:a}, ${0:w}", "=r,ir,~{dirflag},~{fpsr},~{flags}"(i32 6) nounwind ; <i16> [#uses=1]
%0 = zext i16 %asmtmp.i to i32 ; <i32> [#uses=1]
@@ -14,7 +14,7 @@ entry:
define zeroext i16 @test2(i32 %address) nounwind {
entry:
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK: movw %gs:(%eax), %ax
%asmtmp = tail call i16 asm "movw\09%gs:${1:a}, ${0:w}", "=r,ir,~{dirflag},~{fpsr},~{flags}"(i32 %address) nounwind ; <i16> [#uses=1]
ret i16 %asmtmp
@@ -25,7 +25,7 @@ entry:
define void @test3() nounwind {
entry:
-; CHECK: test3:
+; CHECK-LABEL: test3:
; CHECK: movl _n, %eax
call void asm sideeffect "movl ${0:a}, %eax", "ir,~{dirflag},~{fpsr},~{flags},~{eax}"(i32* @n) nounwind
ret void
@@ -33,7 +33,7 @@ entry:
define void @test4() nounwind {
entry:
-; CHECK: test4:
+; CHECK-LABEL: test4:
; CHECK: movl L_y$non_lazy_ptr, %ecx
; CHECK: movl (%ecx), %eax
call void asm sideeffect "movl ${0:a}, %eax", "ir,~{dirflag},~{fpsr},~{flags},~{eax}"(i32* @y) nounwind
diff --git a/test/CodeGen/X86/atom-bypass-slow-division-64.ll b/test/CodeGen/X86/atom-bypass-slow-division-64.ll
index a3bbea3c996b6..d1b52a4ec3bb2 100644
--- a/test/CodeGen/X86/atom-bypass-slow-division-64.ll
+++ b/test/CodeGen/X86/atom-bypass-slow-division-64.ll
@@ -3,9 +3,10 @@
; Additional tests for 64-bit divide bypass
define i64 @Test_get_quotient(i64 %a, i64 %b) nounwind {
-; CHECK: Test_get_quotient:
-; CHECK: orq %rsi, %rcx
-; CHECK-NEXT: testq $-65536, %rcx
+; CHECK-LABEL: Test_get_quotient:
+; CHECK: movq %rdi, %rax
+; CHECK: orq %rsi, %rax
+; CHECK-NEXT: testq $-65536, %rax
; CHECK-NEXT: je
; CHECK: idivq
; CHECK: ret
@@ -16,9 +17,10 @@ define i64 @Test_get_quotient(i64 %a, i64 %b) nounwind {
}
define i64 @Test_get_remainder(i64 %a, i64 %b) nounwind {
-; CHECK: Test_get_remainder:
-; CHECK: orq %rsi, %rcx
-; CHECK-NEXT: testq $-65536, %rcx
+; CHECK-LABEL: Test_get_remainder:
+; CHECK: movq %rdi, %rax
+; CHECK: orq %rsi, %rax
+; CHECK-NEXT: testq $-65536, %rax
; CHECK-NEXT: je
; CHECK: idivq
; CHECK: ret
@@ -29,9 +31,10 @@ define i64 @Test_get_remainder(i64 %a, i64 %b) nounwind {
}
define i64 @Test_get_quotient_and_remainder(i64 %a, i64 %b) nounwind {
-; CHECK: Test_get_quotient_and_remainder:
-; CHECK: orq %rsi, %rcx
-; CHECK-NEXT: testq $-65536, %rcx
+; CHECK-LABEL: Test_get_quotient_and_remainder:
+; CHECK: movq %rdi, %rax
+; CHECK: orq %rsi, %rax
+; CHECK-NEXT: testq $-65536, %rax
; CHECK-NEXT: je
; CHECK: idivq
; CHECK: divw
diff --git a/test/CodeGen/X86/atom-bypass-slow-division.ll b/test/CodeGen/X86/atom-bypass-slow-division.ll
index 4612940445cb5..79001e5de192e 100644
--- a/test/CodeGen/X86/atom-bypass-slow-division.ll
+++ b/test/CodeGen/X86/atom-bypass-slow-division.ll
@@ -1,7 +1,7 @@
; RUN: llc < %s -mcpu=atom -mtriple=i686-linux | FileCheck %s
define i32 @Test_get_quotient(i32 %a, i32 %b) nounwind {
-; CHECK: Test_get_quotient:
+; CHECK-LABEL: Test_get_quotient:
; CHECK: orl %ecx, %edx
; CHECK-NEXT: testl $-256, %edx
; CHECK-NEXT: je
@@ -14,7 +14,7 @@ define i32 @Test_get_quotient(i32 %a, i32 %b) nounwind {
}
define i32 @Test_get_remainder(i32 %a, i32 %b) nounwind {
-; CHECK: Test_get_remainder:
+; CHECK-LABEL: Test_get_remainder:
; CHECK: orl %ecx, %edx
; CHECK-NEXT: testl $-256, %edx
; CHECK-NEXT: je
@@ -27,7 +27,7 @@ define i32 @Test_get_remainder(i32 %a, i32 %b) nounwind {
}
define i32 @Test_get_quotient_and_remainder(i32 %a, i32 %b) nounwind {
-; CHECK: Test_get_quotient_and_remainder:
+; CHECK-LABEL: Test_get_quotient_and_remainder:
; CHECK: orl %ecx, %edx
; CHECK-NEXT: testl $-256, %edx
; CHECK-NEXT: je
@@ -44,7 +44,7 @@ define i32 @Test_get_quotient_and_remainder(i32 %a, i32 %b) nounwind {
}
define i32 @Test_use_div_and_idiv(i32 %a, i32 %b) nounwind {
-; CHECK: Test_use_div_and_idiv:
+; CHECK-LABEL: Test_use_div_and_idiv:
; CHECK: idivl
; CHECK: divb
; CHECK: divl
@@ -58,14 +58,14 @@ define i32 @Test_use_div_and_idiv(i32 %a, i32 %b) nounwind {
}
define i32 @Test_use_div_imm_imm() nounwind {
-; CHECK: Test_use_div_imm_imm:
+; CHECK-LABEL: Test_use_div_imm_imm:
; CHECK: movl $64
%resultdiv = sdiv i32 256, 4
ret i32 %resultdiv
}
define i32 @Test_use_div_reg_imm(i32 %a) nounwind {
-; CHECK: Test_use_div_reg_imm:
+; CHECK-LABEL: Test_use_div_reg_imm:
; CHECK-NOT: test
; CHECK-NOT: idiv
; CHECK-NOT: divb
@@ -74,7 +74,7 @@ define i32 @Test_use_div_reg_imm(i32 %a) nounwind {
}
define i32 @Test_use_rem_reg_imm(i32 %a) nounwind {
-; CHECK: Test_use_rem_reg_imm:
+; CHECK-LABEL: Test_use_rem_reg_imm:
; CHECK-NOT: test
; CHECK-NOT: idiv
; CHECK-NOT: divb
@@ -83,7 +83,7 @@ define i32 @Test_use_rem_reg_imm(i32 %a) nounwind {
}
define i32 @Test_use_divrem_reg_imm(i32 %a) nounwind {
-; CHECK: Test_use_divrem_reg_imm:
+; CHECK-LABEL: Test_use_divrem_reg_imm:
; CHECK-NOT: test
; CHECK-NOT: idiv
; CHECK-NOT: divb
@@ -94,7 +94,7 @@ define i32 @Test_use_divrem_reg_imm(i32 %a) nounwind {
}
define i32 @Test_use_div_imm_reg(i32 %a) nounwind {
-; CHECK: Test_use_div_imm_reg:
+; CHECK-LABEL: Test_use_div_imm_reg:
; CHECK: test
; CHECK: idiv
; CHECK: divb
@@ -103,7 +103,7 @@ define i32 @Test_use_div_imm_reg(i32 %a) nounwind {
}
define i32 @Test_use_rem_imm_reg(i32 %a) nounwind {
-; CHECK: Test_use_rem_imm_reg:
+; CHECK-LABEL: Test_use_rem_imm_reg:
; CHECK: test
; CHECK: idiv
; CHECK: divb
diff --git a/test/CodeGen/X86/atom-call-reg-indirect.ll b/test/CodeGen/X86/atom-call-reg-indirect.ll
index 632781130d06f..48f2d4c113468 100644
--- a/test/CodeGen/X86/atom-call-reg-indirect.ll
+++ b/test/CodeGen/X86/atom-call-reg-indirect.ll
@@ -2,13 +2,15 @@
; RUN: llc < %s -mcpu=core2 -mtriple=i686-linux | FileCheck -check-prefix=ATOM-NOT32 %s
; RUN: llc < %s -mcpu=atom -mtriple=x86_64-linux | FileCheck -check-prefix=ATOM64 %s
; RUN: llc < %s -mcpu=core2 -mtriple=x86_64-linux | FileCheck -check-prefix=ATOM-NOT64 %s
+; RUN: llc < %s -mcpu=slm -mtriple=i686-linux | FileCheck -check-prefix=SLM32 %s
+; RUN: llc < %s -mcpu=slm -mtriple=x86_64-linux | FileCheck -check-prefix=SLM64 %s
; fn_ptr.ll
%class.A = type { i32 (...)** }
define i32 @test1() #0 {
- ;ATOM: test1
+ ;ATOM-LABEL: test1:
entry:
%call = tail call %class.A* @_Z3facv()
%0 = bitcast %class.A* %call to void (%class.A*)***
@@ -20,6 +22,10 @@ entry:
;ATOM64: movq (%rcx), %rcx
;ATOM64: callq *%rcx
;ATOM-NOT64: callq *(%rcx)
+ ;SLM32: movl (%ecx), %ecx
+ ;SLM32: calll *%ecx
+ ;SLM64: movq (%rcx), %rcx
+ ;SLM64: callq *%rcx
tail call void %1(%class.A* %call)
ret i32 0
}
@@ -30,7 +36,7 @@ declare %class.A* @_Z3facv() #1
@p = external global void (i32)**
define i32 @test2() #0 {
- ;ATOM: test2
+ ;ATOM-LABEL: test2:
entry:
%0 = load void (i32)*** @p, align 8
%1 = load void (i32)** %0, align 8
@@ -40,6 +46,10 @@ entry:
;ATOM64: movq (%rax), %rax
;ATOM64: callq *%rax
;ATOM-NOT64: callq *(%rax)
+ ;SLM32: movl (%eax), %eax
+ ;SLM32: calll *%eax
+ ;SLM64: movq (%rax), %rax
+ ;SLM64: callq *%rax
tail call void %1(i32 2)
ret i32 0
}
diff --git a/test/CodeGen/X86/atom-lea-addw-bug.ll b/test/CodeGen/X86/atom-lea-addw-bug.ll
new file mode 100644
index 0000000000000..5cda2df432fc6
--- /dev/null
+++ b/test/CodeGen/X86/atom-lea-addw-bug.ll
@@ -0,0 +1,19 @@
+; RUN: llc < %s -mcpu=atom | FileCheck %s
+
+; ModuleID = 'bugpoint-reduced-simplified.bc'
+target triple = "x86_64-apple-darwin12.5.0"
+
+define i32 @DoLayout() {
+entry:
+ %tmp1 = load i16* undef, align 2
+ %tmp17 = load i16* null, align 2
+ %tmp19 = load i16* undef, align 2
+ %shl = shl i16 %tmp19, 1
+ %add55 = add i16 %tmp17, %tmp1
+ %add57 = add i16 %add55, %shl
+ %conv60 = zext i16 %add57 to i32
+ %add61 = add nsw i32 %conv60, 0
+ %conv63 = and i32 %add61, 65535
+ ret i32 %conv63
+; CHECK: addw
+}
diff --git a/test/CodeGen/X86/atom-lea-sp.ll b/test/CodeGen/X86/atom-lea-sp.ll
index 19482e13d8c82..1df1974dc4945 100644
--- a/test/CodeGen/X86/atom-lea-sp.ll
+++ b/test/CodeGen/X86/atom-lea-sp.ll
@@ -5,13 +5,13 @@ declare void @use_arr(i8*)
declare void @many_params(i32, i32, i32, i32, i32, i32)
define void @test1() nounwind {
-; ATOM: test1:
+; ATOM-LABEL: test1:
; ATOM: leal -1052(%esp), %esp
; ATOM-NOT: sub
; ATOM: call
; ATOM: leal 1052(%esp), %esp
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: subl
; CHECK: call
; CHECK-NOT: lea
@@ -22,23 +22,23 @@ define void @test1() nounwind {
}
define void @test2() nounwind {
-; ATOM: test2:
+; ATOM-LABEL: test2:
; ATOM: leal -28(%esp), %esp
; ATOM: call
; ATOM: leal 28(%esp), %esp
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK-NOT: lea
call void @many_params(i32 1, i32 2, i32 3, i32 4, i32 5, i32 6)
ret void
}
define void @test3() nounwind {
-; ATOM: test3:
+; ATOM-LABEL: test3:
; ATOM: leal -8(%esp), %esp
; ATOM: leal 8(%esp), %esp
-; CHECK: test3:
+; CHECK-LABEL: test3:
; CHECK-NOT: lea
%x = alloca i32, align 4
%y = alloca i32, align 4
diff --git a/test/CodeGen/X86/atom-sched.ll b/test/CodeGen/X86/atom-sched.ll
index 0d97e85358243..fd18472bff8a3 100644
--- a/test/CodeGen/X86/atom-sched.ll
+++ b/test/CodeGen/X86/atom-sched.ll
@@ -1,4 +1,5 @@
; RUN: llc <%s -O2 -mcpu=atom -march=x86 -relocation-model=static | FileCheck -check-prefix=atom %s
+; RUN: llc <%s -O2 -mcpu=slm -march=x86 -relocation-model=static | FileCheck -check-prefix=slm %s
; RUN: llc <%s -O2 -mcpu=core2 -march=x86 -relocation-model=static | FileCheck %s
;
@@ -13,6 +14,9 @@ define void @func() nounwind uwtable {
; atom: imull
; atom-NOT: movl
; atom: imull
+; slm: imull
+; slm-NOT: movl
+; slm: imull
; CHECK: imull
; CHECK: movl
; CHECK: imull
diff --git a/test/CodeGen/X86/atomic-dagsched.ll b/test/CodeGen/X86/atomic-dagsched.ll
index 05e630be153cb..aa057577a0426 100644
--- a/test/CodeGen/X86/atomic-dagsched.ll
+++ b/test/CodeGen/X86/atomic-dagsched.ll
@@ -34,8 +34,8 @@ dim_0_vector_pre_head.i: ; preds = %loop
vector_kernel_entry.i: ; preds = %vector_kernel_entry.i, %dim_0_vector_pre_head.i
%asr.iv9 = phi i8* [ %scevgep10, %vector_kernel_entry.i ], [ %asr.iv6, %dim_0_vector_pre_head.i ]
%asr.iv = phi i64 [ %asr.iv.next, %vector_kernel_entry.i ], [ %vector.size.i, %dim_0_vector_pre_head.i ]
- %8 = bitcast i8* %ptrtoarg4 to i32 addrspace(1)*
- %asr.iv911 = bitcast i8* %asr.iv9 to <8 x i32> addrspace(1)*
+ %8 = addrspacecast i8* %ptrtoarg4 to i32 addrspace(1)*
+ %asr.iv911 = addrspacecast i8* %asr.iv9 to <8 x i32> addrspace(1)*
%9 = load <8 x i32> addrspace(1)* %asr.iv911, align 4
%extract8vector_func.i = extractelement <8 x i32> %9, i32 0
%extract9vector_func.i = extractelement <8 x i32> %9, i32 1
@@ -73,8 +73,8 @@ dim_0_pre_head.i: ; preds = %scalarIf.i
scalar_kernel_entry.i: ; preds = %scalar_kernel_entry.i, %dim_0_pre_head.i
%asr.iv12 = phi i64 [ %asr.iv.next13, %scalar_kernel_entry.i ], [ %22, %dim_0_pre_head.i ]
- %23 = bitcast i8* %asr.iv6 to i32 addrspace(1)*
- %24 = bitcast i8* %ptrtoarg4 to i32 addrspace(1)*
+ %23 = addrspacecast i8* %asr.iv6 to i32 addrspace(1)*
+ %24 = addrspacecast i8* %ptrtoarg4 to i32 addrspace(1)*
%scevgep16 = getelementptr i32 addrspace(1)* %23, i64 %asr.iv12
%25 = load i32 addrspace(1)* %scevgep16, align 4
%26 = atomicrmw min i32 addrspace(1)* %24, i32 %25 seq_cst
diff --git a/test/CodeGen/X86/atomic-minmax-i6432.ll b/test/CodeGen/X86/atomic-minmax-i6432.ll
index 62f784f69608e..1cfbc49ab1c91 100644
--- a/test/CodeGen/X86/atomic-minmax-i6432.ll
+++ b/test/CodeGen/X86/atomic-minmax-i6432.ll
@@ -97,7 +97,7 @@ define void @atomic_maxmin_i6432() {
@id = internal global i64 0, align 8
define void @tf_bug(i8* %ptr) nounwind {
-; PIC: tf_bug:
+; PIC-LABEL: tf_bug:
; PIC: movl _id-L1$pb(
; PIC: movl (_id-L1$pb)+4(
%tmp1 = atomicrmw add i64* @id, i64 1 seq_cst
diff --git a/test/CodeGen/X86/atomic-or.ll b/test/CodeGen/X86/atomic-or.ll
index d759beb2caa88..1687e07d57e03 100644
--- a/test/CodeGen/X86/atomic-or.ll
+++ b/test/CodeGen/X86/atomic-or.ll
@@ -7,7 +7,7 @@ entry:
%p.addr = alloca i64*, align 8
store i64* %p, i64** %p.addr, align 8
%tmp = load i64** %p.addr, align 8
-; CHECK: t1:
+; CHECK-LABEL: t1:
; CHECK: movl $2147483648, %eax
; CHECK: lock
; CHECK-NEXT: orq %r{{.*}}, (%r{{.*}})
@@ -20,7 +20,7 @@ entry:
%p.addr = alloca i64*, align 8
store i64* %p, i64** %p.addr, align 8
%tmp = load i64** %p.addr, align 8
-; CHECK: t2:
+; CHECK-LABEL: t2:
; CHECK: lock
; CHECK-NEXT: orq $2147483644, (%r{{.*}})
%0 = atomicrmw or i64* %tmp, i64 2147483644 seq_cst
diff --git a/test/CodeGen/X86/atomic_add.ll b/test/CodeGen/X86/atomic_add.ll
index 6b3a6b224dbac..bdd25e6a2a562 100644
--- a/test/CodeGen/X86/atomic_add.ll
+++ b/test/CodeGen/X86/atomic_add.ll
@@ -4,7 +4,7 @@
define void @sub1(i32* nocapture %p, i32 %v) nounwind ssp {
entry:
-; CHECK: sub1:
+; CHECK-LABEL: sub1:
; CHECK: subl
%0 = atomicrmw sub i32* %p, i32 %v monotonic
ret void
@@ -12,7 +12,7 @@ entry:
define void @inc4(i64* nocapture %p) nounwind ssp {
entry:
-; CHECK: inc4:
+; CHECK-LABEL: inc4:
; CHECK: incq
%0 = atomicrmw add i64* %p, i64 1 monotonic
ret void
@@ -20,7 +20,7 @@ entry:
define void @add8(i64* nocapture %p) nounwind ssp {
entry:
-; CHECK: add8:
+; CHECK-LABEL: add8:
; CHECK: addq $2
%0 = atomicrmw add i64* %p, i64 2 monotonic
ret void
@@ -28,7 +28,7 @@ entry:
define void @add4(i64* nocapture %p, i32 %v) nounwind ssp {
entry:
-; CHECK: add4:
+; CHECK-LABEL: add4:
; CHECK: addq
%0 = sext i32 %v to i64 ; <i64> [#uses=1]
%1 = atomicrmw add i64* %p, i64 %0 monotonic
@@ -37,7 +37,7 @@ entry:
define void @inc3(i8* nocapture %p) nounwind ssp {
entry:
-; CHECK: inc3:
+; CHECK-LABEL: inc3:
; CHECK: incb
%0 = atomicrmw add i8* %p, i8 1 monotonic
ret void
@@ -45,7 +45,7 @@ entry:
define void @add7(i8* nocapture %p) nounwind ssp {
entry:
-; CHECK: add7:
+; CHECK-LABEL: add7:
; CHECK: addb $2
%0 = atomicrmw add i8* %p, i8 2 monotonic
ret void
@@ -53,7 +53,7 @@ entry:
define void @add3(i8* nocapture %p, i32 %v) nounwind ssp {
entry:
-; CHECK: add3:
+; CHECK-LABEL: add3:
; CHECK: addb
%0 = trunc i32 %v to i8 ; <i8> [#uses=1]
%1 = atomicrmw add i8* %p, i8 %0 monotonic
@@ -62,7 +62,7 @@ entry:
define void @inc2(i16* nocapture %p) nounwind ssp {
entry:
-; CHECK: inc2:
+; CHECK-LABEL: inc2:
; CHECK: incw
%0 = atomicrmw add i16* %p, i16 1 monotonic
ret void
@@ -70,7 +70,7 @@ entry:
define void @add6(i16* nocapture %p) nounwind ssp {
entry:
-; CHECK: add6:
+; CHECK-LABEL: add6:
; CHECK: addw $2
%0 = atomicrmw add i16* %p, i16 2 monotonic
ret void
@@ -78,7 +78,7 @@ entry:
define void @add2(i16* nocapture %p, i32 %v) nounwind ssp {
entry:
-; CHECK: add2:
+; CHECK-LABEL: add2:
; CHECK: addw
%0 = trunc i32 %v to i16 ; <i16> [#uses=1]
%1 = atomicrmw add i16* %p, i16 %0 monotonic
@@ -87,7 +87,7 @@ entry:
define void @inc1(i32* nocapture %p) nounwind ssp {
entry:
-; CHECK: inc1:
+; CHECK-LABEL: inc1:
; CHECK: incl
%0 = atomicrmw add i32* %p, i32 1 monotonic
ret void
@@ -95,7 +95,7 @@ entry:
define void @add5(i32* nocapture %p) nounwind ssp {
entry:
-; CHECK: add5:
+; CHECK-LABEL: add5:
; CHECK: addl $2
%0 = atomicrmw add i32* %p, i32 2 monotonic
ret void
@@ -103,7 +103,7 @@ entry:
define void @add1(i32* nocapture %p, i32 %v) nounwind ssp {
entry:
-; CHECK: add1:
+; CHECK-LABEL: add1:
; CHECK: addl
%0 = atomicrmw add i32* %p, i32 %v monotonic
ret void
@@ -111,7 +111,7 @@ entry:
define void @dec4(i64* nocapture %p) nounwind ssp {
entry:
-; CHECK: dec4:
+; CHECK-LABEL: dec4:
; CHECK: decq
%0 = atomicrmw sub i64* %p, i64 1 monotonic
ret void
@@ -119,7 +119,7 @@ entry:
define void @sub8(i64* nocapture %p) nounwind ssp {
entry:
-; CHECK: sub8:
+; CHECK-LABEL: sub8:
; CHECK: subq $2
%0 = atomicrmw sub i64* %p, i64 2 monotonic
ret void
@@ -127,7 +127,7 @@ entry:
define void @sub4(i64* nocapture %p, i32 %v) nounwind ssp {
entry:
-; CHECK: sub4:
+; CHECK-LABEL: sub4:
; CHECK: subq
%0 = sext i32 %v to i64 ; <i64> [#uses=1]
%1 = atomicrmw sub i64* %p, i64 %0 monotonic
@@ -136,7 +136,7 @@ entry:
define void @dec3(i8* nocapture %p) nounwind ssp {
entry:
-; CHECK: dec3:
+; CHECK-LABEL: dec3:
; CHECK: decb
%0 = atomicrmw sub i8* %p, i8 1 monotonic
ret void
@@ -144,7 +144,7 @@ entry:
define void @sub7(i8* nocapture %p) nounwind ssp {
entry:
-; CHECK: sub7:
+; CHECK-LABEL: sub7:
; CHECK: subb $2
%0 = atomicrmw sub i8* %p, i8 2 monotonic
ret void
@@ -152,7 +152,7 @@ entry:
define void @sub3(i8* nocapture %p, i32 %v) nounwind ssp {
entry:
-; CHECK: sub3:
+; CHECK-LABEL: sub3:
; CHECK: subb
%0 = trunc i32 %v to i8 ; <i8> [#uses=1]
%1 = atomicrmw sub i8* %p, i8 %0 monotonic
@@ -161,7 +161,7 @@ entry:
define void @dec2(i16* nocapture %p) nounwind ssp {
entry:
-; CHECK: dec2:
+; CHECK-LABEL: dec2:
; CHECK: decw
%0 = atomicrmw sub i16* %p, i16 1 monotonic
ret void
@@ -169,7 +169,7 @@ entry:
define void @sub6(i16* nocapture %p) nounwind ssp {
entry:
-; CHECK: sub6:
+; CHECK-LABEL: sub6:
; CHECK: subw $2
%0 = atomicrmw sub i16* %p, i16 2 monotonic
ret void
@@ -177,7 +177,7 @@ entry:
define void @sub2(i16* nocapture %p, i32 %v) nounwind ssp {
entry:
-; CHECK: sub2:
+; CHECK-LABEL: sub2:
; CHECK-NOT: negl
; CHECK: subw
%0 = trunc i32 %v to i16 ; <i16> [#uses=1]
@@ -187,7 +187,7 @@ entry:
define void @dec1(i32* nocapture %p) nounwind ssp {
entry:
-; CHECK: dec1:
+; CHECK-LABEL: dec1:
; CHECK: decl
%0 = atomicrmw sub i32* %p, i32 1 monotonic
ret void
@@ -195,7 +195,7 @@ entry:
define void @sub5(i32* nocapture %p) nounwind ssp {
entry:
-; CHECK: sub5:
+; CHECK-LABEL: sub5:
; CHECK: subl $2
%0 = atomicrmw sub i32* %p, i32 2 monotonic
ret void
diff --git a/test/CodeGen/X86/avx-arith.ll b/test/CodeGen/X86/avx-arith.ll
index 4aa337033df62..a9da1ec067ca3 100644
--- a/test/CodeGen/X86/avx-arith.ll
+++ b/test/CodeGen/X86/avx-arith.ll
@@ -240,15 +240,15 @@ define <16 x i16> @vpmullw(<16 x i16> %i, <16 x i16> %j) nounwind readnone {
; CHECK-NEXT: vpmuludq %xmm
; CHECK-NEXT: vpsllq $32, %xmm
; CHECK-NEXT: vpaddq %xmm
-; CHECK-NEXT: vpmuludq %xmm
; CHECK-NEXT: vpsrlq $32, %xmm
; CHECK-NEXT: vpmuludq %xmm
; CHECK-NEXT: vpsllq $32, %xmm
+; CHECK-NEXT: vpaddq %xmm
+; CHECK-NEXT: vpmuludq %xmm
; CHECK-NEXT: vpsrlq $32, %xmm
; CHECK-NEXT: vpmuludq %xmm
; CHECK-NEXT: vpsllq $32, %xmm
; CHECK-NEXT: vpaddq %xmm
-; CHECK-NEXT: vpaddq %xmm
; CHECK-NEXT: vpsrlq $32, %xmm
; CHECK-NEXT: vpmuludq %xmm
; CHECK-NEXT: vpsllq $32, %xmm
@@ -269,4 +269,3 @@ define <4 x float> @int_sqrt_ss() {
%x2 = call <4 x float> @llvm.x86.sse.sqrt.ss(<4 x float> %x1) nounwind
ret <4 x float> %x2
}
-
diff --git a/test/CodeGen/X86/avx-basic.ll b/test/CodeGen/X86/avx-basic.ll
index 64c4627c47c33..1fd9085838dfc 100644
--- a/test/CodeGen/X86/avx-basic.ll
+++ b/test/CodeGen/X86/avx-basic.ll
@@ -122,10 +122,10 @@ define <16 x i16> @build_vec_16x16(i16 %a) nounwind readonly {
ret <16 x i16> %res
}
-;;; Check that VMOVPQIto64rr generates the assembly string "vmovd". Previously
+;;; Check that VMOVPQIto64rr generates the assembly string "vmovq". Previously
;;; an incorrect mnemonic of "movd" was printed for this instruction.
; CHECK: VMOVPQIto64rr
-; CHECK: vmovd
+; CHECK: vmovq
define i64 @VMOVPQIto64rr(<2 x i64> %a) {
entry:
%vecext.i = extractelement <2 x i64> %a, i32 0
diff --git a/test/CodeGen/X86/avx-bitcast.ll b/test/CodeGen/X86/avx-bitcast.ll
index ecc71be7c0dc2..c9d828c1f6e2d 100644
--- a/test/CodeGen/X86/avx-bitcast.ll
+++ b/test/CodeGen/X86/avx-bitcast.ll
@@ -1,7 +1,7 @@
; RUN: llc < %s -O0 -mtriple=x86_64-apple-darwin -mcpu=corei7-avx -mattr=+avx | FileCheck %s
; CHECK: vmovsd (%
-; CHECK-NEXT: vmovd %xmm
+; CHECK-NEXT: vmovq %xmm
define i64 @bitcasti64tof64() {
%a = load double* undef
%b = bitcast double %a to i64
diff --git a/test/CodeGen/X86/avx-blend.ll b/test/CodeGen/X86/avx-blend.ll
index 188efe26d92ad..a98e0761ce313 100644
--- a/test/CodeGen/X86/avx-blend.ll
+++ b/test/CodeGen/X86/avx-blend.ll
@@ -2,7 +2,7 @@
; AVX128 tests:
-;CHECK: vsel_float
+;CHECK-LABEL: vsel_float:
;CHECK: vblendvps
;CHECK: ret
define <4 x float> @vsel_float(<4 x float> %v1, <4 x float> %v2) {
@@ -11,7 +11,7 @@ define <4 x float> @vsel_float(<4 x float> %v1, <4 x float> %v2) {
}
-;CHECK: vsel_i32
+;CHECK-LABEL: vsel_i32:
;CHECK: vblendvps
;CHECK: ret
define <4 x i32> @vsel_i32(<4 x i32> %v1, <4 x i32> %v2) {
@@ -20,7 +20,7 @@ define <4 x i32> @vsel_i32(<4 x i32> %v1, <4 x i32> %v2) {
}
-;CHECK: vsel_double
+;CHECK-LABEL: vsel_double:
;CHECK: vblendvpd
;CHECK: ret
define <2 x double> @vsel_double(<2 x double> %v1, <2 x double> %v2) {
@@ -29,7 +29,7 @@ define <2 x double> @vsel_double(<2 x double> %v1, <2 x double> %v2) {
}
-;CHECK: vsel_i64
+;CHECK-LABEL: vsel_i64:
;CHECK: vblendvpd
;CHECK: ret
define <2 x i64> @vsel_i64(<2 x i64> %v1, <2 x i64> %v2) {
@@ -38,7 +38,7 @@ define <2 x i64> @vsel_i64(<2 x i64> %v1, <2 x i64> %v2) {
}
-;CHECK: vsel_i8
+;CHECK-LABEL: vsel_i8:
;CHECK: vpblendvb
;CHECK: ret
define <16 x i8> @vsel_i8(<16 x i8> %v1, <16 x i8> %v2) {
@@ -50,7 +50,7 @@ define <16 x i8> @vsel_i8(<16 x i8> %v1, <16 x i8> %v2) {
; AVX256 tests:
-;CHECK: vsel_float
+;CHECK-LABEL: vsel_float8:
;CHECK: vblendvps
;CHECK: ret
define <8 x float> @vsel_float8(<8 x float> %v1, <8 x float> %v2) {
@@ -58,7 +58,7 @@ define <8 x float> @vsel_float8(<8 x float> %v1, <8 x float> %v2) {
ret <8 x float> %vsel
}
-;CHECK: vsel_i32
+;CHECK-LABEL: vsel_i328:
;CHECK: vblendvps
;CHECK: ret
define <8 x i32> @vsel_i328(<8 x i32> %v1, <8 x i32> %v2) {
@@ -66,7 +66,7 @@ define <8 x i32> @vsel_i328(<8 x i32> %v1, <8 x i32> %v2) {
ret <8 x i32> %vsel
}
-;CHECK: vsel_double
+;CHECK-LABEL: vsel_double8:
;CHECK: vblendvpd
;CHECK: ret
define <8 x double> @vsel_double8(<8 x double> %v1, <8 x double> %v2) {
@@ -74,7 +74,7 @@ define <8 x double> @vsel_double8(<8 x double> %v1, <8 x double> %v2) {
ret <8 x double> %vsel
}
-;CHECK: vsel_i64
+;CHECK-LABEL: vsel_i648:
;CHECK: vblendvpd
;CHECK: ret
define <8 x i64> @vsel_i648(<8 x i64> %v1, <8 x i64> %v2) {
@@ -83,8 +83,8 @@ define <8 x i64> @vsel_i648(<8 x i64> %v1, <8 x i64> %v2) {
}
;; TEST blend + compares
-; CHECK: A
-define <2 x double> @A(<2 x double> %x, <2 x double> %y) {
+; CHECK: testa
+define <2 x double> @testa(<2 x double> %x, <2 x double> %y) {
; CHECK: vcmplepd
; CHECK: vblendvpd
%max_is_x = fcmp oge <2 x double> %x, %y
@@ -92,8 +92,8 @@ define <2 x double> @A(<2 x double> %x, <2 x double> %y) {
ret <2 x double> %max
}
-; CHECK: B
-define <2 x double> @B(<2 x double> %x, <2 x double> %y) {
+; CHECK: testb
+define <2 x double> @testb(<2 x double> %x, <2 x double> %y) {
; CHECK: vcmpnlepd
; CHECK: vblendvpd
%min_is_x = fcmp ult <2 x double> %x, %y
diff --git a/test/CodeGen/X86/avx-brcond.ll b/test/CodeGen/X86/avx-brcond.ll
index d52ae52e0b989..4313a1594fb29 100644
--- a/test/CodeGen/X86/avx-brcond.ll
+++ b/test/CodeGen/X86/avx-brcond.ll
@@ -5,7 +5,7 @@ declare i32 @llvm.x86.avx.ptestc.256(<4 x i64> %p1, <4 x i64> %p2) nounwind
define <4 x float> @test1(<4 x i64> %a, <4 x float> %b) nounwind {
entry:
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: vptest
; CHECK-NEXT: jne
; CHECK: ret
@@ -29,7 +29,7 @@ return:
define <4 x float> @test3(<4 x i64> %a, <4 x float> %b) nounwind {
entry:
-; CHECK: test3:
+; CHECK-LABEL: test3:
; CHECK: vptest
; CHECK-NEXT: jne
; CHECK: ret
@@ -53,7 +53,7 @@ return:
define <4 x float> @test4(<4 x i64> %a, <4 x float> %b) nounwind {
entry:
-; CHECK: test4:
+; CHECK-LABEL: test4:
; CHECK: vptest
; CHECK-NEXT: jae
; CHECK: ret
@@ -77,7 +77,7 @@ return:
define <4 x float> @test6(<4 x i64> %a, <4 x float> %b) nounwind {
entry:
-; CHECK: test6:
+; CHECK-LABEL: test6:
; CHECK: vptest
; CHECK-NEXT: jae
; CHECK: ret
@@ -101,7 +101,7 @@ return:
define <4 x float> @test7(<4 x i64> %a, <4 x float> %b) nounwind {
entry:
-; CHECK: test7:
+; CHECK-LABEL: test7:
; CHECK: vptest
; CHECK-NEXT: jne
; CHECK: ret
@@ -125,7 +125,7 @@ return:
define <4 x float> @test8(<4 x i64> %a, <4 x float> %b) nounwind {
entry:
-; CHECK: test8:
+; CHECK-LABEL: test8:
; CHECK: vptest
; CHECK-NEXT: je
; CHECK: ret
diff --git a/test/CodeGen/X86/avx-fp2int.ll b/test/CodeGen/X86/avx-fp2int.ll
index a3aadde2bdd1c..8beaac6a780b6 100755
--- a/test/CodeGen/X86/avx-fp2int.ll
+++ b/test/CodeGen/X86/avx-fp2int.ll
@@ -2,10 +2,10 @@
;; Check that FP_TO_SINT and FP_TO_UINT generate convert with truncate
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: vcvttpd2dqy
; CHECK: ret
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK: vcvttpd2dqy
; CHECK: ret
diff --git a/test/CodeGen/X86/avx-intel-ocl.ll b/test/CodeGen/X86/avx-intel-ocl.ll
index 055072098a25e..7337815a39ace 100644
--- a/test/CodeGen/X86/avx-intel-ocl.ll
+++ b/test/CodeGen/X86/avx-intel-ocl.ll
@@ -32,7 +32,7 @@ declare i32 @func_int(i32, i32)
define <16 x float> @testf16_inp(<16 x float> %a, <16 x float> %b) nounwind {
%y = alloca <16 x float>, align 16
%x = fadd <16 x float> %a, %b
- %1 = call intel_ocl_bicc <16 x float> @func_float16_ptr(<16 x float> %x, <16 x float>* %y)
+ %1 = call intel_ocl_bicc <16 x float> @func_float16_ptr(<16 x float> %x, <16 x float>* %y)
%2 = load <16 x float>* %y, align 16
%3 = fadd <16 x float> %2, %1
ret <16 x float> %3
@@ -43,21 +43,21 @@ define <16 x float> @testf16_inp(<16 x float> %a, <16 x float> %b) nounwind {
; preserved ymm6-ymm15
; WIN64: testf16_regs
; WIN64: call
-; WIN64: vaddps {{%ymm[6-7]}}, %ymm0, %ymm0
-; WIN64: vaddps {{%ymm[6-7]}}, %ymm1, %ymm1
+; WIN64: vaddps {{%ymm[6-7]}}, {{%ymm[0-1]}}, {{%ymm[0-1]}}
+; WIN64: vaddps {{%ymm[6-7]}}, {{%ymm[0-1]}}, {{%ymm[0-1]}}
; WIN64: ret
; preserved ymm8-ymm15
; X64: testf16_regs
; X64: call
-; X64: vaddps {{%ymm[8-9]}}, %ymm0, %ymm0
-; X64: vaddps {{%ymm[8-9]}}, %ymm1, %ymm1
+; X64: vaddps {{%ymm[8-9]}}, {{%ymm[0-1]}}, {{%ymm[0-1]}}
+; X64: vaddps {{%ymm[8-9]}}, {{%ymm[0-1]}}, {{%ymm[0-1]}}
; X64: ret
define <16 x float> @testf16_regs(<16 x float> %a, <16 x float> %b) nounwind {
%y = alloca <16 x float>, align 16
%x = fadd <16 x float> %a, %b
- %1 = call intel_ocl_bicc <16 x float> @func_float16_ptr(<16 x float> %x, <16 x float>* %y)
+ %1 = call intel_ocl_bicc <16 x float> @func_float16_ptr(<16 x float> %x, <16 x float>* %y)
%2 = load <16 x float>* %y, align 16
%3 = fadd <16 x float> %1, %b
%4 = fadd <16 x float> %2, %3
@@ -166,4 +166,3 @@ entry:
%8 = shufflevector <8 x float> %3, <8 x float> %7, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11>
ret <8 x float> %8
}
-
diff --git a/test/CodeGen/X86/avx-minmax.ll b/test/CodeGen/X86/avx-minmax.ll
index eff92510348ad..c94962b74ed15 100644
--- a/test/CodeGen/X86/avx-minmax.ll
+++ b/test/CodeGen/X86/avx-minmax.ll
@@ -1,6 +1,6 @@
; RUN: llc < %s -march=x86-64 -mattr=+avx -asm-verbose=false -enable-unsafe-fp-math -enable-no-nans-fp-math | FileCheck -check-prefix=UNSAFE %s
-; UNSAFE: maxpd:
+; UNSAFE-LABEL: maxpd:
; UNSAFE: vmaxpd {{.+}}, %xmm
define <2 x double> @maxpd(<2 x double> %x, <2 x double> %y) {
%max_is_x = fcmp oge <2 x double> %x, %y
@@ -8,7 +8,7 @@ define <2 x double> @maxpd(<2 x double> %x, <2 x double> %y) {
ret <2 x double> %max
}
-; UNSAFE: minpd:
+; UNSAFE-LABEL: minpd:
; UNSAFE: vminpd {{.+}}, %xmm
define <2 x double> @minpd(<2 x double> %x, <2 x double> %y) {
%min_is_x = fcmp ole <2 x double> %x, %y
@@ -16,7 +16,7 @@ define <2 x double> @minpd(<2 x double> %x, <2 x double> %y) {
ret <2 x double> %min
}
-; UNSAFE: maxps:
+; UNSAFE-LABEL: maxps:
; UNSAFE: vmaxps {{.+}}, %xmm
define <4 x float> @maxps(<4 x float> %x, <4 x float> %y) {
%max_is_x = fcmp oge <4 x float> %x, %y
@@ -24,7 +24,7 @@ define <4 x float> @maxps(<4 x float> %x, <4 x float> %y) {
ret <4 x float> %max
}
-; UNSAFE: minps:
+; UNSAFE-LABEL: minps:
; UNSAFE: vminps {{.+}}, %xmm
define <4 x float> @minps(<4 x float> %x, <4 x float> %y) {
%min_is_x = fcmp ole <4 x float> %x, %y
@@ -32,7 +32,7 @@ define <4 x float> @minps(<4 x float> %x, <4 x float> %y) {
ret <4 x float> %min
}
-; UNSAFE: vmaxpd:
+; UNSAFE-LABEL: vmaxpd:
; UNSAFE: vmaxpd {{.+}}, %ymm
define <4 x double> @vmaxpd(<4 x double> %x, <4 x double> %y) {
%max_is_x = fcmp oge <4 x double> %x, %y
@@ -40,7 +40,7 @@ define <4 x double> @vmaxpd(<4 x double> %x, <4 x double> %y) {
ret <4 x double> %max
}
-; UNSAFE: vminpd:
+; UNSAFE-LABEL: vminpd:
; UNSAFE: vminpd {{.+}}, %ymm
define <4 x double> @vminpd(<4 x double> %x, <4 x double> %y) {
%min_is_x = fcmp ole <4 x double> %x, %y
@@ -48,7 +48,7 @@ define <4 x double> @vminpd(<4 x double> %x, <4 x double> %y) {
ret <4 x double> %min
}
-; UNSAFE: vmaxps:
+; UNSAFE-LABEL: vmaxps:
; UNSAFE: vmaxps {{.+}}, %ymm
define <8 x float> @vmaxps(<8 x float> %x, <8 x float> %y) {
%max_is_x = fcmp oge <8 x float> %x, %y
@@ -56,7 +56,7 @@ define <8 x float> @vmaxps(<8 x float> %x, <8 x float> %y) {
ret <8 x float> %max
}
-; UNSAFE: vminps:
+; UNSAFE-LABEL: vminps:
; UNSAFE: vminps {{.+}}, %ymm
define <8 x float> @vminps(<8 x float> %x, <8 x float> %y) {
%min_is_x = fcmp ole <8 x float> %x, %y
diff --git a/test/CodeGen/X86/avx-sext.ll b/test/CodeGen/X86/avx-sext.ll
index b9c700051005c..fb2287f52892e 100755
--- a/test/CodeGen/X86/avx-sext.ll
+++ b/test/CodeGen/X86/avx-sext.ll
@@ -154,6 +154,17 @@ define <4 x i64> @sext_4i1_to_4i64(<4 x i1> %mask) {
ret <4 x i64> %extmask
}
+; AVX-LABEL: sext_16i8_to_16i16
+; AVX: vpmovsxbw
+; AVX: vmovhlps
+; AVX: vpmovsxbw
+; AVX: ret
+define <16 x i16> @sext_16i8_to_16i16(<16 x i8> *%ptr) {
+ %X = load <16 x i8>* %ptr
+ %Y = sext <16 x i8> %X to <16 x i16>
+ ret <16 x i16> %Y
+}
+
; AVX: sext_4i8_to_4i64
; AVX: vpslld $24
; AVX: vpsrad $24
diff --git a/test/CodeGen/X86/avx-shift.ll b/test/CodeGen/X86/avx-shift.ll
index 01eb7361e2932..d79dfcc076b07 100644
--- a/test/CodeGen/X86/avx-shift.ll
+++ b/test/CodeGen/X86/avx-shift.ll
@@ -103,9 +103,10 @@ define <32 x i8> @vshift12(<32 x i8> %a) nounwind readnone {
;;; Support variable shifts
; CHECK: _vshift08
-; CHECK: vextractf128 $1
; CHECK: vpslld $23
+; CHECK: vextractf128 $1
; CHECK: vpslld $23
+; CHECK: ret
define <8 x i32> @vshift08(<8 x i32> %a) nounwind {
%bitop = shl <8 x i32> <i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>, %a
ret <8 x i32> %bitop
diff --git a/test/CodeGen/X86/avx-shuffle-x86_32.ll b/test/CodeGen/X86/avx-shuffle-x86_32.ll
index e203c4ed0298f..78b4888cfa16a 100755
--- a/test/CodeGen/X86/avx-shuffle-x86_32.ll
+++ b/test/CodeGen/X86/avx-shuffle-x86_32.ll
@@ -3,6 +3,6 @@
define <4 x i64> @test1(<4 x i64> %a) nounwind {
%b = shufflevector <4 x i64> %a, <4 x i64> undef, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
ret <4 x i64>%b
- ; CHECK: test1:
+ ; CHECK-LABEL: test1:
; CHECK-NOT: vinsertf128
}
diff --git a/test/CodeGen/X86/avx-shuffle.ll b/test/CodeGen/X86/avx-shuffle.ll
index 73faa1fe0d409..0956361c7e30a 100644
--- a/test/CodeGen/X86/avx-shuffle.ll
+++ b/test/CodeGen/X86/avx-shuffle.ll
@@ -4,14 +4,14 @@
define <4 x float> @test1(<4 x float> %a) nounwind {
%b = shufflevector <4 x float> zeroinitializer, <4 x float> %a, <4 x i32> <i32 2, i32 5, i32 undef, i32 undef>
ret <4 x float> %b
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: vshufps
; CHECK: vpshufd
}
; rdar://10538417
define <3 x i64> @test2(<2 x i64> %v) nounwind readnone {
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK: vinsertf128
%1 = shufflevector <2 x i64> %v, <2 x i64> %v, <3 x i32> <i32 0, i32 1, i32 undef>
%2 = shufflevector <3 x i64> zeroinitializer, <3 x i64> %1, <3 x i32> <i32 3, i32 4, i32 2>
@@ -22,7 +22,7 @@ define <3 x i64> @test2(<2 x i64> %v) nounwind readnone {
define <4 x i64> @test3(<4 x i64> %a, <4 x i64> %b) nounwind {
%c = shufflevector <4 x i64> %a, <4 x i64> %b, <4 x i32> <i32 4, i32 5, i32 2, i32 undef>
ret <4 x i64> %c
-; CHECK: test3:
+; CHECK-LABEL: test3:
; CHECK: vperm2f128
; CHECK: ret
}
@@ -30,7 +30,7 @@ define <4 x i64> @test3(<4 x i64> %a, <4 x i64> %b) nounwind {
define <8 x float> @test4(float %a) nounwind {
%b = insertelement <8 x float> zeroinitializer, float %a, i32 0
ret <8 x float> %b
-; CHECK: test4:
+; CHECK-LABEL: test4:
; CHECK: vinsertf128
}
@@ -81,7 +81,7 @@ entry:
define i32 @test9(<4 x i32> %a) nounwind {
; CHECK: test9
; CHECK: vpextrd
- %b = shufflevector <4 x i32> %a, <4 x i32> undef, <8 x i32> <i32 1, i32 1, i32 2, i32 2, i32 3, i32 3, i32 undef, i32 4>
+ %b = shufflevector <4 x i32> %a, <4 x i32> undef, <8 x i32> <i32 1, i32 1, i32 2, i32 2, i32 3, i32 3, i32 undef, i32 4>
%r = extractelement <8 x i32> %b, i32 2
; CHECK: ret
ret i32 %r
@@ -220,7 +220,7 @@ define <16 x i16> @narrow(<16 x i16> %a) nounwind alwaysinline {
ret <16 x i16> %t
}
-;CHECK: test17
+;CHECK-LABEL: test17:
;CHECK-NOT: vinsertf128
;CHECK: ret
define <8 x float> @test17(<4 x float> %y) {
@@ -251,8 +251,8 @@ define <8 x float> @test19(<8 x float> %A, <8 x float>%B) nounwind {
; CHECK: swap8doubles
; CHECK: vmovups {{[0-9]*}}(%rdi), %xmm{{[0-9]+}}
; CHECK: vmovups {{[0-9]*}}(%rdi), %xmm{{[0-9]+}}
-; CHECK: vmovups {{[0-9]*}}(%rdi), %xmm{{[0-9]+}}
-; CHECK: vmovups {{[0-9]*}}(%rdi), %xmm{{[0-9]+}}
+; CHECK: vinsertf128 $1, {{[0-9]*}}(%rdi), %ymm{{[0-9]+}}
+; CHECK: vinsertf128 $1, {{[0-9]*}}(%rdi), %ymm{{[0-9]+}}
; CHECK: vmovaps {{[0-9]*}}(%rsi), %ymm{{[0-9]+}}
; CHECK: vmovaps {{[0-9]*}}(%rsi), %ymm{{[0-9]+}}
; CHECK: vmovaps %xmm{{[0-9]+}}, {{[0-9]*}}(%rdi)
diff --git a/test/CodeGen/X86/avx-splat.ll b/test/CodeGen/X86/avx-splat.ll
index 5c01c2cc5b509..5d0781531f4d9 100644
--- a/test/CodeGen/X86/avx-splat.ll
+++ b/test/CodeGen/X86/avx-splat.ll
@@ -20,7 +20,7 @@ entry:
ret <16 x i16> %shuffle
}
-; CHECK: vmovd
+; CHECK: vmovq
; CHECK-NEXT: vmovlhps %xmm
; CHECK-NEXT: vinsertf128 $1
define <4 x i64> @funcC(i64 %q) nounwind uwtable readnone ssp {
diff --git a/test/CodeGen/X86/avx-trunc.ll b/test/CodeGen/X86/avx-trunc.ll
index d0077366444d6..58d0a356909bf 100755
--- a/test/CodeGen/X86/avx-trunc.ll
+++ b/test/CodeGen/X86/avx-trunc.ll
@@ -12,4 +12,9 @@ define <8 x i16> @trunc_32_16(<8 x i32> %A) nounwind uwtable readnone ssp{
%B = trunc <8 x i32> %A to <8 x i16>
ret <8 x i16>%B
}
-
+define <16 x i8> @trunc_16_8(<16 x i16> %A) nounwind uwtable readnone ssp{
+; CHECK-LABEL: trunc_16_8
+; CHECK: pshufb
+ %B = trunc <16 x i16> %A to <16 x i8>
+ ret <16 x i8> %B
+}
diff --git a/test/CodeGen/X86/avx-varargs-x86_64.ll b/test/CodeGen/X86/avx-varargs-x86_64.ll
index b0932bdfced94..f73174dd2bc63 100644
--- a/test/CodeGen/X86/avx-varargs-x86_64.ll
+++ b/test/CodeGen/X86/avx-varargs-x86_64.ll
@@ -5,7 +5,7 @@
@x = common global <8 x float> zeroinitializer, align 32
declare i32 @f(i32, ...)
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: vmovaps %ymm0, (%rsp)
define void @test1() nounwind uwtable ssp {
entry:
diff --git a/test/CodeGen/X86/avx-vextractf128.ll b/test/CodeGen/X86/avx-vextractf128.ll
index ad8365bb59c03..fa49f949b6897 100644
--- a/test/CodeGen/X86/avx-vextractf128.ll
+++ b/test/CodeGen/X86/avx-vextractf128.ll
@@ -114,7 +114,7 @@ define void @t9(i64* %p) {
store i64 0, i64* %s
ret void
-; CHECK: t9:
+; CHECK-LABEL: t9:
; CHECK: vxorps %xmm
; CHECK-NOT: vextractf
; CHECK: vmovups
diff --git a/test/CodeGen/X86/avx-vpermil.ll b/test/CodeGen/X86/avx-vpermil.ll
index 7f2f9d821dd5b..b7f8d72e58c95 100644
--- a/test/CodeGen/X86/avx-vpermil.ll
+++ b/test/CodeGen/X86/avx-vpermil.ll
@@ -46,7 +46,7 @@ entry:
}
; CHECK: palignr $8
-; CHECK: psrldq $8
+; CHECK: palignr $8
define <8 x float> @funcF(<8 x float> %a) nounwind uwtable readnone ssp {
entry:
%shuffle = shufflevector <8 x float> %a, <8 x float> zeroinitializer, <8 x i32> <i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9>
diff --git a/test/CodeGen/X86/avx-zext.ll b/test/CodeGen/X86/avx-zext.ll
index 582537ea906f7..75117463bc39f 100755
--- a/test/CodeGen/X86/avx-zext.ll
+++ b/test/CodeGen/X86/avx-zext.ll
@@ -1,7 +1,7 @@
; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=corei7-avx -mattr=+avx | FileCheck %s
define <8 x i32> @zext_8i16_to_8i32(<8 x i16> %A) nounwind uwtable readnone ssp {
-;CHECK: zext_8i16_to_8i32
+;CHECK-LABEL: zext_8i16_to_8i32:
;CHECK: vpunpckhwd
;CHECK: ret
@@ -10,7 +10,7 @@ define <8 x i32> @zext_8i16_to_8i32(<8 x i16> %A) nounwind uwtable readnone ssp
}
define <4 x i64> @zext_4i32_to_4i64(<4 x i32> %A) nounwind uwtable readnone ssp {
-;CHECK: zext_4i32_to_4i64
+;CHECK-LABEL: zext_4i32_to_4i64:
;CHECK: vpunpckhdq
;CHECK: ret
@@ -19,7 +19,7 @@ define <4 x i64> @zext_4i32_to_4i64(<4 x i32> %A) nounwind uwtable readnone ssp
}
define <8 x i32> @zext_8i8_to_8i32(<8 x i8> %z) {
-;CHECK: zext_8i8_to_8i32
+;CHECK-LABEL: zext_8i8_to_8i32:
;CHECK: vpunpckhwd
;CHECK: vpmovzxwd
;CHECK: vinsertf128
@@ -27,3 +27,15 @@ define <8 x i32> @zext_8i8_to_8i32(<8 x i8> %z) {
%t = zext <8 x i8> %z to <8 x i32>
ret <8 x i32> %t
}
+
+; PR17654
+define <16 x i16> @zext_16i8_to_16i16(<16 x i8> %z) {
+; CHECK-LABEL: zext_16i8_to_16i16:
+; CHECK: vpxor
+; CHECK: vpunpckhbw
+; CHECK: vpunpcklbw
+; CHECK: vinsertf128
+; CHECK: ret
+ %t = zext <16 x i8> %z to <16 x i16>
+ ret <16 x i16> %t
+}
diff --git a/test/CodeGen/X86/avx2-arith.ll b/test/CodeGen/X86/avx2-arith.ll
index 09f953835820a..72bdd9d04729a 100644
--- a/test/CodeGen/X86/avx2-arith.ll
+++ b/test/CodeGen/X86/avx2-arith.ll
@@ -1,65 +1,66 @@
; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=core-avx2 -mattr=+avx2 | FileCheck %s
; CHECK: vpaddq %ymm
-define <4 x i64> @vpaddq(<4 x i64> %i, <4 x i64> %j) nounwind readnone {
+define <4 x i64> @test_vpaddq(<4 x i64> %i, <4 x i64> %j) nounwind readnone {
%x = add <4 x i64> %i, %j
ret <4 x i64> %x
}
; CHECK: vpaddd %ymm
-define <8 x i32> @vpaddd(<8 x i32> %i, <8 x i32> %j) nounwind readnone {
+define <8 x i32> @test_vpaddd(<8 x i32> %i, <8 x i32> %j) nounwind readnone {
%x = add <8 x i32> %i, %j
ret <8 x i32> %x
}
; CHECK: vpaddw %ymm
-define <16 x i16> @vpaddw(<16 x i16> %i, <16 x i16> %j) nounwind readnone {
+define <16 x i16> @test_vpaddw(<16 x i16> %i, <16 x i16> %j) nounwind readnone {
%x = add <16 x i16> %i, %j
ret <16 x i16> %x
}
; CHECK: vpaddb %ymm
-define <32 x i8> @vpaddb(<32 x i8> %i, <32 x i8> %j) nounwind readnone {
+define <32 x i8> @test_vpaddb(<32 x i8> %i, <32 x i8> %j) nounwind readnone {
%x = add <32 x i8> %i, %j
ret <32 x i8> %x
}
; CHECK: vpsubq %ymm
-define <4 x i64> @vpsubq(<4 x i64> %i, <4 x i64> %j) nounwind readnone {
+define <4 x i64> @test_vpsubq(<4 x i64> %i, <4 x i64> %j) nounwind readnone {
%x = sub <4 x i64> %i, %j
ret <4 x i64> %x
}
; CHECK: vpsubd %ymm
-define <8 x i32> @vpsubd(<8 x i32> %i, <8 x i32> %j) nounwind readnone {
+define <8 x i32> @test_vpsubd(<8 x i32> %i, <8 x i32> %j) nounwind readnone {
%x = sub <8 x i32> %i, %j
ret <8 x i32> %x
}
; CHECK: vpsubw %ymm
-define <16 x i16> @vpsubw(<16 x i16> %i, <16 x i16> %j) nounwind readnone {
+define <16 x i16> @test_vpsubw(<16 x i16> %i, <16 x i16> %j) nounwind readnone {
%x = sub <16 x i16> %i, %j
ret <16 x i16> %x
}
; CHECK: vpsubb %ymm
-define <32 x i8> @vpsubb(<32 x i8> %i, <32 x i8> %j) nounwind readnone {
+define <32 x i8> @test_vpsubb(<32 x i8> %i, <32 x i8> %j) nounwind readnone {
%x = sub <32 x i8> %i, %j
ret <32 x i8> %x
}
; CHECK: vpmulld %ymm
-define <8 x i32> @vpmulld(<8 x i32> %i, <8 x i32> %j) nounwind readnone {
+define <8 x i32> @test_vpmulld(<8 x i32> %i, <8 x i32> %j) nounwind readnone {
%x = mul <8 x i32> %i, %j
ret <8 x i32> %x
}
; CHECK: vpmullw %ymm
-define <16 x i16> @vpmullw(<16 x i16> %i, <16 x i16> %j) nounwind readnone {
+define <16 x i16> @test_vpmullw(<16 x i16> %i, <16 x i16> %j) nounwind readnone {
%x = mul <16 x i16> %i, %j
ret <16 x i16> %x
}
+; CHECK: mul-v4i64
; CHECK: vpmuludq %ymm
; CHECK-NEXT: vpsrlq $32, %ymm
; CHECK-NEXT: vpmuludq %ymm
@@ -74,3 +75,94 @@ define <4 x i64> @mul-v4i64(<4 x i64> %i, <4 x i64> %j) nounwind readnone {
ret <4 x i64> %x
}
+; CHECK: mul_const1
+; CHECK: vpaddd
+; CHECK: ret
+define <8 x i32> @mul_const1(<8 x i32> %x) {
+ %y = mul <8 x i32> %x, <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2>
+ ret <8 x i32> %y
+}
+
+; CHECK: mul_const2
+; CHECK: vpsllq $2
+; CHECK: ret
+define <4 x i64> @mul_const2(<4 x i64> %x) {
+ %y = mul <4 x i64> %x, <i64 4, i64 4, i64 4, i64 4>
+ ret <4 x i64> %y
+}
+
+; CHECK: mul_const3
+; CHECK: vpsllw $3
+; CHECK: ret
+define <16 x i16> @mul_const3(<16 x i16> %x) {
+ %y = mul <16 x i16> %x, <i16 8, i16 8, i16 8, i16 8, i16 8, i16 8, i16 8, i16 8, i16 8, i16 8, i16 8, i16 8, i16 8, i16 8, i16 8, i16 8>
+ ret <16 x i16> %y
+}
+
+; CHECK: mul_const4
+; CHECK: vpxor
+; CHECK: vpsubq
+; CHECK: ret
+define <4 x i64> @mul_const4(<4 x i64> %x) {
+ %y = mul <4 x i64> %x, <i64 -1, i64 -1, i64 -1, i64 -1>
+ ret <4 x i64> %y
+}
+
+; CHECK: mul_const5
+; CHECK: vxorps
+; CHECK-NEXT: ret
+define <8 x i32> @mul_const5(<8 x i32> %x) {
+ %y = mul <8 x i32> %x, <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
+ ret <8 x i32> %y
+}
+
+; CHECK: mul_const6
+; CHECK: vpmulld
+; CHECK: ret
+define <8 x i32> @mul_const6(<8 x i32> %x) {
+ %y = mul <8 x i32> %x, <i32 0, i32 0, i32 0, i32 2, i32 0, i32 2, i32 0, i32 0>
+ ret <8 x i32> %y
+}
+
+; CHECK: mul_const7
+; CHECK: vpaddq
+; CHECK: vpaddq
+; CHECK: ret
+define <8 x i64> @mul_const7(<8 x i64> %x) {
+ %y = mul <8 x i64> %x, <i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2>
+ ret <8 x i64> %y
+}
+
+; CHECK: mul_const8
+; CHECK: vpsllw $3
+; CHECK: ret
+define <8 x i16> @mul_const8(<8 x i16> %x) {
+ %y = mul <8 x i16> %x, <i16 8, i16 8, i16 8, i16 8, i16 8, i16 8, i16 8, i16 8>
+ ret <8 x i16> %y
+}
+
+; CHECK: mul_const9
+; CHECK: vpmulld
+; CHECK: ret
+define <8 x i32> @mul_const9(<8 x i32> %x) {
+ %y = mul <8 x i32> %x, <i32 2, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
+ ret <8 x i32> %y
+}
+
+; CHECK: mul_const10
+; CHECK: vpmulld
+; CHECK: ret
+define <4 x i32> @mul_const10(<4 x i32> %x) {
+ ; %x * 0x01010101
+ %m = mul <4 x i32> %x, <i32 16843009, i32 16843009, i32 16843009, i32 16843009>
+ ret <4 x i32> %m
+}
+
+; CHECK: mul_const11
+; CHECK: vpmulld
+; CHECK: ret
+define <4 x i32> @mul_const11(<4 x i32> %x) {
+ ; %x * 0x80808080
+ %m = mul <4 x i32> %x, <i32 2155905152, i32 2155905152, i32 2155905152, i32 2155905152>
+ ret <4 x i32> %m
+}
diff --git a/test/CodeGen/X86/avx2-conversions.ll b/test/CodeGen/X86/avx2-conversions.ll
index 3ce08dcc73704..f49718e4c8b60 100755
--- a/test/CodeGen/X86/avx2-conversions.ll
+++ b/test/CodeGen/X86/avx2-conversions.ll
@@ -63,6 +63,34 @@ define <8 x i32> @zext_8i8_8i32(<8 x i8> %A) nounwind {
ret <8 x i32>%B
}
+; CHECK-LABEL: zext_16i8_16i16:
+; CHECK: vpmovzxbw
+; CHECK-NOT: vinsert
+; CHECK: ret
+define <16 x i16> @zext_16i8_16i16(<16 x i8> %z) {
+ %t = zext <16 x i8> %z to <16 x i16>
+ ret <16 x i16> %t
+}
+
+; CHECK-LABEL: sext_16i8_16i16:
+; CHECK: vpmovsxbw
+; CHECK-NOT: vinsert
+; CHECK: ret
+define <16 x i16> @sext_16i8_16i16(<16 x i8> %z) {
+ %t = sext <16 x i8> %z to <16 x i16>
+ ret <16 x i16> %t
+}
+
+; CHECK-LABEL: trunc_16i16_16i8:
+; CHECK: vpshufb
+; CHECK: vpshufb
+; CHECK: vpor
+; CHECK: ret
+define <16 x i8> @trunc_16i16_16i8(<16 x i16> %z) {
+ %t = trunc <16 x i16> %z to <16 x i8>
+ ret <16 x i8> %t
+}
+
; CHECK: load_sext_test1
; CHECK: vpmovsxdq (%r{{[^,]*}}), %ymm{{.*}}
; CHECK: ret
diff --git a/test/CodeGen/X86/avx2-gather.ll b/test/CodeGen/X86/avx2-gather.ll
new file mode 100644
index 0000000000000..ee50c457fe8c1
--- /dev/null
+++ b/test/CodeGen/X86/avx2-gather.ll
@@ -0,0 +1,18 @@
+; RUN: not llc < %s -mtriple=x86_64-apple-darwin -mcpu=corei7-avx
+; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=core-avx2 | FileCheck %s
+
+declare <4 x float> @llvm.x86.avx2.gather.d.ps(<4 x float>, i8*,
+ <4 x i32>, <4 x float>, i8) nounwind readonly
+
+define <4 x float> @test_x86_avx2_gather_d_ps(i8* %a1,
+ <4 x i32> %idx, <4 x float> %mask) {
+ %res = call <4 x float> @llvm.x86.avx2.gather.d.ps(<4 x float> undef,
+ i8* %a1, <4 x i32> %idx, <4 x float> %mask, i8 2) ;
+ ret <4 x float> %res
+}
+
+; CHECK: test_x86_avx2_gather_d_ps
+; CHECK: vgatherdps
+; CHECK-NOT: [[DST]]
+; CHECK: [[DST:%xmm[0-9]+]]{{$}}
+; CHECK: ret
diff --git a/test/CodeGen/X86/avx2-logic.ll b/test/CodeGen/X86/avx2-logic.ll
index a5bb1a8f8e44b..3d4fcec6078ee 100644
--- a/test/CodeGen/X86/avx2-logic.ll
+++ b/test/CodeGen/X86/avx2-logic.ll
@@ -55,7 +55,7 @@ define <32 x i8> @vpblendvb(<32 x i1> %cond, <32 x i8> %x, <32 x i8> %y) {
define <8 x i32> @signd(<8 x i32> %a, <8 x i32> %b) nounwind {
entry:
-; CHECK: signd:
+; CHECK-LABEL: signd:
; CHECK: psignd
; CHECK-NOT: sub
; CHECK: ret
@@ -70,7 +70,7 @@ entry:
define <8 x i32> @blendvb(<8 x i32> %b, <8 x i32> %a, <8 x i32> %c) nounwind {
entry:
-; CHECK: blendvb:
+; CHECK-LABEL: blendvb:
; CHECK: pblendvb
; CHECK: ret
%b.lobit = ashr <8 x i32> %b, <i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31>
diff --git a/test/CodeGen/X86/avx2-palignr.ll b/test/CodeGen/X86/avx2-palignr.ll
index 53b9da32ae8e8..83573dc7b2600 100644
--- a/test/CodeGen/X86/avx2-palignr.ll
+++ b/test/CodeGen/X86/avx2-palignr.ll
@@ -1,57 +1,57 @@
; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=core-avx2 -mattr=+avx2 | FileCheck %s
define <8 x i32> @test1(<8 x i32> %A, <8 x i32> %B) nounwind {
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: vpalignr $4
%C = shufflevector <8 x i32> %A, <8 x i32> %B, <8 x i32> <i32 1, i32 2, i32 3, i32 8, i32 5, i32 6, i32 7, i32 12>
ret <8 x i32> %C
}
define <8 x i32> @test2(<8 x i32> %A, <8 x i32> %B) nounwind {
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK: vpalignr $4
%C = shufflevector <8 x i32> %A, <8 x i32> %B, <8 x i32> <i32 1, i32 2, i32 3, i32 8, i32 5, i32 6, i32 undef, i32 12>
ret <8 x i32> %C
}
define <8 x i32> @test3(<8 x i32> %A, <8 x i32> %B) nounwind {
-; CHECK: test3:
+; CHECK-LABEL: test3:
; CHECK: vpalignr $4
%C = shufflevector <8 x i32> %A, <8 x i32> %B, <8 x i32> <i32 1, i32 undef, i32 3, i32 8, i32 5, i32 6, i32 7, i32 12>
ret <8 x i32> %C
}
;
define <8 x i32> @test4(<8 x i32> %A, <8 x i32> %B) nounwind {
-; CHECK: test4:
+; CHECK-LABEL: test4:
; CHECK: vpalignr $8
%C = shufflevector <8 x i32> %A, <8 x i32> %B, <8 x i32> <i32 10, i32 11, i32 undef, i32 1, i32 14, i32 15, i32 4, i32 5>
ret <8 x i32> %C
}
define <16 x i16> @test5(<16 x i16> %A, <16 x i16> %B) nounwind {
-; CHECK: test5:
+; CHECK-LABEL: test5:
; CHECK: vpalignr $6
%C = shufflevector <16 x i16> %A, <16 x i16> %B, <16 x i32> <i32 3, i32 4, i32 undef, i32 6, i32 7, i32 16, i32 17, i32 18, i32 11, i32 12, i32 13, i32 undef, i32 15, i32 24, i32 25, i32 26>
ret <16 x i16> %C
}
define <16 x i16> @test6(<16 x i16> %A, <16 x i16> %B) nounwind {
-; CHECK: test6:
+; CHECK-LABEL: test6:
; CHECK: vpalignr $6
%C = shufflevector <16 x i16> %A, <16 x i16> %B, <16 x i32> <i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 11, i32 12, i32 13, i32 undef, i32 15, i32 24, i32 25, i32 26>
ret <16 x i16> %C
}
define <16 x i16> @test7(<16 x i16> %A, <16 x i16> %B) nounwind {
-; CHECK: test7:
+; CHECK-LABEL: test7:
; CHECK: vpalignr $6
%C = shufflevector <16 x i16> %A, <16 x i16> %B, <16 x i32> <i32 3, i32 4, i32 5, i32 6, i32 7, i32 16, i32 17, i32 18, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <16 x i16> %C
}
define <32 x i8> @test8(<32 x i8> %A, <32 x i8> %B) nounwind {
-; CHECK: test8:
-; CHECK: palignr $5
+; CHECK-LABEL: test8:
+; CHECK: vpalignr $5
%C = shufflevector <32 x i8> %A, <32 x i8> %B, <32 x i32> <i32 5, i32 6, i32 7, i32 undef, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 32, i32 33, i32 34, i32 35, i32 36, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 48, i32 49, i32 50, i32 51, i32 52>
ret <32 x i8> %C
}
diff --git a/test/CodeGen/X86/avx2-phaddsub.ll b/test/CodeGen/X86/avx2-phaddsub.ll
index 4eac71d08b4f2..3f9c95cfd0709 100644
--- a/test/CodeGen/X86/avx2-phaddsub.ll
+++ b/test/CodeGen/X86/avx2-phaddsub.ll
@@ -1,6 +1,6 @@
; RUN: llc < %s -march=x86-64 -mattr=+avx2 | FileCheck %s
-; CHECK: phaddw1:
+; CHECK-LABEL: phaddw1:
; CHECK: vphaddw
define <16 x i16> @phaddw1(<16 x i16> %x, <16 x i16> %y) {
%a = shufflevector <16 x i16> %x, <16 x i16> %y, <16 x i32> <i32 0, i32 2, i32 4, i32 6, i32 16, i32 18, i32 20, i32 22, i32 8, i32 10, i32 12, i32 14, i32 24, i32 26, i32 28, i32 30>
@@ -9,7 +9,7 @@ define <16 x i16> @phaddw1(<16 x i16> %x, <16 x i16> %y) {
ret <16 x i16> %r
}
-; CHECK: phaddw2:
+; CHECK-LABEL: phaddw2:
; CHECK: vphaddw
define <16 x i16> @phaddw2(<16 x i16> %x, <16 x i16> %y) {
%a = shufflevector <16 x i16> %x, <16 x i16> %y, <16 x i32> <i32 1, i32 3, i32 5, i32 7, i32 17, i32 19, i32 21, i32 23, i32 9, i32 11, i32 13, i32 15, i32 25, i32 27, i32 29, i32 31>
@@ -18,7 +18,7 @@ define <16 x i16> @phaddw2(<16 x i16> %x, <16 x i16> %y) {
ret <16 x i16> %r
}
-; CHECK: phaddd1:
+; CHECK-LABEL: phaddd1:
; CHECK: vphaddd
define <8 x i32> @phaddd1(<8 x i32> %x, <8 x i32> %y) {
%a = shufflevector <8 x i32> %x, <8 x i32> %y, <8 x i32> <i32 0, i32 2, i32 8, i32 10, i32 4, i32 6, i32 12, i32 14>
@@ -27,7 +27,7 @@ define <8 x i32> @phaddd1(<8 x i32> %x, <8 x i32> %y) {
ret <8 x i32> %r
}
-; CHECK: phaddd2:
+; CHECK-LABEL: phaddd2:
; CHECK: vphaddd
define <8 x i32> @phaddd2(<8 x i32> %x, <8 x i32> %y) {
%a = shufflevector <8 x i32> %x, <8 x i32> %y, <8 x i32> <i32 1, i32 2, i32 9, i32 10, i32 5, i32 6, i32 13, i32 14>
@@ -36,7 +36,7 @@ define <8 x i32> @phaddd2(<8 x i32> %x, <8 x i32> %y) {
ret <8 x i32> %r
}
-; CHECK: phaddd3:
+; CHECK-LABEL: phaddd3:
; CHECK: vphaddd
define <8 x i32> @phaddd3(<8 x i32> %x) {
%a = shufflevector <8 x i32> %x, <8 x i32> undef, <8 x i32> <i32 undef, i32 2, i32 8, i32 10, i32 4, i32 6, i32 undef, i32 14>
@@ -45,7 +45,7 @@ define <8 x i32> @phaddd3(<8 x i32> %x) {
ret <8 x i32> %r
}
-; CHECK: phsubw1:
+; CHECK-LABEL: phsubw1:
; CHECK: vphsubw
define <16 x i16> @phsubw1(<16 x i16> %x, <16 x i16> %y) {
%a = shufflevector <16 x i16> %x, <16 x i16> %y, <16 x i32> <i32 0, i32 2, i32 4, i32 6, i32 16, i32 18, i32 20, i32 22, i32 8, i32 10, i32 12, i32 14, i32 24, i32 26, i32 28, i32 30>
@@ -54,7 +54,7 @@ define <16 x i16> @phsubw1(<16 x i16> %x, <16 x i16> %y) {
ret <16 x i16> %r
}
-; CHECK: phsubd1:
+; CHECK-LABEL: phsubd1:
; CHECK: vphsubd
define <8 x i32> @phsubd1(<8 x i32> %x, <8 x i32> %y) {
%a = shufflevector <8 x i32> %x, <8 x i32> %y, <8 x i32> <i32 0, i32 2, i32 8, i32 10, i32 4, i32 6, i32 12, i32 14>
@@ -63,7 +63,7 @@ define <8 x i32> @phsubd1(<8 x i32> %x, <8 x i32> %y) {
ret <8 x i32> %r
}
-; CHECK: phsubd2:
+; CHECK-LABEL: phsubd2:
; CHECK: vphsubd
define <8 x i32> @phsubd2(<8 x i32> %x, <8 x i32> %y) {
%a = shufflevector <8 x i32> %x, <8 x i32> %y, <8 x i32> <i32 0, i32 undef, i32 8, i32 undef, i32 4, i32 6, i32 12, i32 14>
diff --git a/test/CodeGen/X86/avx2-shift.ll b/test/CodeGen/X86/avx2-shift.ll
index 1f192a0d323c2..7fdbaaa39cbe6 100644
--- a/test/CodeGen/X86/avx2-shift.ll
+++ b/test/CodeGen/X86/avx2-shift.ll
@@ -212,7 +212,7 @@ define <4 x i64> @variable_srl3_load(<4 x i64> %x, <4 x i64>* %y) {
define <32 x i8> @shl9(<32 x i8> %A) nounwind {
%B = shl <32 x i8> %A, <i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3>
ret <32 x i8> %B
-; CHECK: shl9:
+; CHECK-LABEL: shl9:
; CHECK: vpsllw $3
; CHECK: vpand
; CHECK: ret
@@ -221,7 +221,7 @@ define <32 x i8> @shl9(<32 x i8> %A) nounwind {
define <32 x i8> @shr9(<32 x i8> %A) nounwind {
%B = lshr <32 x i8> %A, <i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3>
ret <32 x i8> %B
-; CHECK: shr9:
+; CHECK-LABEL: shr9:
; CHECK: vpsrlw $3
; CHECK: vpand
; CHECK: ret
@@ -230,7 +230,7 @@ define <32 x i8> @shr9(<32 x i8> %A) nounwind {
define <32 x i8> @sra_v32i8_7(<32 x i8> %A) nounwind {
%B = ashr <32 x i8> %A, <i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7>
ret <32 x i8> %B
-; CHECK: sra_v32i8_7:
+; CHECK-LABEL: sra_v32i8_7:
; CHECK: vpxor
; CHECK: vpcmpgtb
; CHECK: ret
@@ -239,7 +239,7 @@ define <32 x i8> @sra_v32i8_7(<32 x i8> %A) nounwind {
define <32 x i8> @sra_v32i8(<32 x i8> %A) nounwind {
%B = ashr <32 x i8> %A, <i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3>
ret <32 x i8> %B
-; CHECK: sra_v32i8:
+; CHECK-LABEL: sra_v32i8:
; CHECK: vpsrlw $3
; CHECK: vpand
; CHECK: vpxor
diff --git a/test/CodeGen/X86/avx2-shuffle.ll b/test/CodeGen/X86/avx2-shuffle.ll
index cf319cb7fe1d2..0e6dd297f8df0 100644
--- a/test/CodeGen/X86/avx2-shuffle.ll
+++ b/test/CodeGen/X86/avx2-shuffle.ll
@@ -54,10 +54,10 @@ define <8 x float> @blend_test3(<8 x float> %a, <8 x float> %b) nounwind alwaysi
; CHECK: blend_test4
; CHECK: vblendpd
-; CHECK: ret
-define <4 x i64> @blend_test4(<4 x i64> %a, <4 x i64> %b) nounwind alwaysinline {
- %t = shufflevector <4 x i64> %a, <4 x i64> %b, <4 x i32> <i32 0, i32 5, i32 6, i32 3>
- ret <4 x i64> %t
+; CHECK: ret
+define <4 x i64> @blend_test4(<4 x i64> %a, <4 x i64> %b) nounwind alwaysinline {
+ %t = shufflevector <4 x i64> %a, <4 x i64> %b, <4 x i32> <i32 0, i32 5, i32 6, i32 3>
+ ret <4 x i64> %t
}
; CHECK: vpshufhw $27, %ymm
diff --git a/test/CodeGen/X86/avx2-vbroadcast.ll b/test/CodeGen/X86/avx2-vbroadcast.ll
index b804233663d47..5610416d39a36 100644
--- a/test/CodeGen/X86/avx2-vbroadcast.ll
+++ b/test/CodeGen/X86/avx2-vbroadcast.ll
@@ -259,7 +259,7 @@ define <4 x double> @_inreg3(double %scalar) nounwind uwtable readnone ssp {
ret <4 x double> %wide
}
-;CHECK: _inreg8xfloat
+;CHECK-LABEL: _inreg8xfloat:
;CHECK: vbroadcastss
;CHECK: ret
define <8 x float> @_inreg8xfloat(<8 x float> %a) {
@@ -267,7 +267,7 @@ define <8 x float> @_inreg8xfloat(<8 x float> %a) {
ret <8 x float> %b
}
-;CHECK: _inreg4xfloat
+;CHECK-LABEL: _inreg4xfloat:
;CHECK: vbroadcastss
;CHECK: ret
define <4 x float> @_inreg4xfloat(<4 x float> %a) {
@@ -275,7 +275,7 @@ define <4 x float> @_inreg4xfloat(<4 x float> %a) {
ret <4 x float> %b
}
-;CHECK: _inreg16xi16
+;CHECK-LABEL: _inreg16xi16:
;CHECK: vpbroadcastw
;CHECK: ret
define <16 x i16> @_inreg16xi16(<16 x i16> %a) {
@@ -283,7 +283,7 @@ define <16 x i16> @_inreg16xi16(<16 x i16> %a) {
ret <16 x i16> %b
}
-;CHECK: _inreg8xi16
+;CHECK-LABEL: _inreg8xi16:
;CHECK: vpbroadcastw
;CHECK: ret
define <8 x i16> @_inreg8xi16(<8 x i16> %a) {
@@ -292,7 +292,7 @@ define <8 x i16> @_inreg8xi16(<8 x i16> %a) {
}
-;CHECK: _inreg4xi64
+;CHECK-LABEL: _inreg4xi64:
;CHECK: vpbroadcastq
;CHECK: ret
define <4 x i64> @_inreg4xi64(<4 x i64> %a) {
@@ -300,7 +300,7 @@ define <4 x i64> @_inreg4xi64(<4 x i64> %a) {
ret <4 x i64> %b
}
-;CHECK: _inreg2xi64
+;CHECK-LABEL: _inreg2xi64:
;CHECK: vpbroadcastq
;CHECK: ret
define <2 x i64> @_inreg2xi64(<2 x i64> %a) {
@@ -308,7 +308,7 @@ define <2 x i64> @_inreg2xi64(<2 x i64> %a) {
ret <2 x i64> %b
}
-;CHECK: _inreg4xdouble
+;CHECK-LABEL: _inreg4xdouble:
;CHECK: vbroadcastsd
;CHECK: ret
define <4 x double> @_inreg4xdouble(<4 x double> %a) {
@@ -316,7 +316,7 @@ define <4 x double> @_inreg4xdouble(<4 x double> %a) {
ret <4 x double> %b
}
-;CHECK: _inreg2xdouble
+;CHECK-LABEL: _inreg2xdouble:
;CHECK: vpbroadcastq
;CHECK: ret
define <2 x double> @_inreg2xdouble(<2 x double> %a) {
@@ -324,7 +324,7 @@ define <2 x double> @_inreg2xdouble(<2 x double> %a) {
ret <2 x double> %b
}
-;CHECK: _inreg8xi32
+;CHECK-LABEL: _inreg8xi32:
;CHECK: vpbroadcastd
;CHECK: ret
define <8 x i32> @_inreg8xi32(<8 x i32> %a) {
@@ -332,7 +332,7 @@ define <8 x i32> @_inreg8xi32(<8 x i32> %a) {
ret <8 x i32> %b
}
-;CHECK: _inreg4xi32
+;CHECK-LABEL: _inreg4xi32:
;CHECK: vpbroadcastd
;CHECK: ret
define <4 x i32> @_inreg4xi32(<4 x i32> %a) {
@@ -340,7 +340,7 @@ define <4 x i32> @_inreg4xi32(<4 x i32> %a) {
ret <4 x i32> %b
}
-;CHECK: _inreg32xi8
+;CHECK-LABEL: _inreg32xi8:
;CHECK: vpbroadcastb
;CHECK: ret
define <32 x i8> @_inreg32xi8(<32 x i8> %a) {
@@ -348,7 +348,7 @@ define <32 x i8> @_inreg32xi8(<32 x i8> %a) {
ret <32 x i8> %b
}
-;CHECK: _inreg16xi8
+;CHECK-LABEL: _inreg16xi8:
;CHECK: vpbroadcastb
;CHECK: ret
define <16 x i8> @_inreg16xi8(<16 x i8> %a) {
diff --git a/test/CodeGen/X86/avx2-vector-shifts.ll b/test/CodeGen/X86/avx2-vector-shifts.ll
new file mode 100644
index 0000000000000..5592e6c8a5f73
--- /dev/null
+++ b/test/CodeGen/X86/avx2-vector-shifts.ll
@@ -0,0 +1,247 @@
+; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu -mcpu=core-avx2 -mattr=+avx2 | FileCheck %s
+
+; AVX2 Logical Shift Left
+
+define <16 x i16> @test_sllw_1(<16 x i16> %InVec) {
+entry:
+ %shl = shl <16 x i16> %InVec, <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>
+ ret <16 x i16> %shl
+}
+
+; CHECK-LABEL: test_sllw_1:
+; CHECK: vpsllw $0, %ymm0, %ymm0
+; CHECK: ret
+
+define <16 x i16> @test_sllw_2(<16 x i16> %InVec) {
+entry:
+ %shl = shl <16 x i16> %InVec, <i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1>
+ ret <16 x i16> %shl
+}
+
+; CHECK-LABEL: test_sllw_2:
+; CHECK: vpaddw %ymm0, %ymm0, %ymm0
+; CHECK: ret
+
+define <16 x i16> @test_sllw_3(<16 x i16> %InVec) {
+entry:
+ %shl = shl <16 x i16> %InVec, <i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16>
+ ret <16 x i16> %shl
+}
+
+; CHECK-LABEL: test_sllw_3:
+; CHECK: vxorps %ymm0, %ymm0, %ymm0
+; CHECK: ret
+
+define <8 x i32> @test_slld_1(<8 x i32> %InVec) {
+entry:
+ %shl = shl <8 x i32> %InVec, <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
+ ret <8 x i32> %shl
+}
+
+; CHECK-LABEL: test_slld_1:
+; CHECK: vpslld $0, %ymm0, %ymm0
+; CHECK: ret
+
+define <8 x i32> @test_slld_2(<8 x i32> %InVec) {
+entry:
+ %shl = shl <8 x i32> %InVec, <i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>
+ ret <8 x i32> %shl
+}
+
+; CHECK-LABEL: test_slld_2:
+; CHECK: vpaddd %ymm0, %ymm0, %ymm0
+; CHECK: ret
+
+define <8 x i32> @test_slld_3(<8 x i32> %InVec) {
+entry:
+ %shl = shl <8 x i32> %InVec, <i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32>
+ ret <8 x i32> %shl
+}
+
+; CHECK-LABEL: test_slld_3:
+; CHECK: vxorps %ymm0, %ymm0, %ymm0
+; CHECK: ret
+
+define <4 x i64> @test_sllq_1(<4 x i64> %InVec) {
+entry:
+ %shl = shl <4 x i64> %InVec, <i64 0, i64 0, i64 0, i64 0>
+ ret <4 x i64> %shl
+}
+
+; CHECK-LABEL: test_sllq_1:
+; CHECK: vpsllq $0, %ymm0, %ymm0
+; CHECK: ret
+
+define <4 x i64> @test_sllq_2(<4 x i64> %InVec) {
+entry:
+ %shl = shl <4 x i64> %InVec, <i64 1, i64 1, i64 1, i64 1>
+ ret <4 x i64> %shl
+}
+
+; CHECK-LABEL: test_sllq_2:
+; CHECK: vpaddq %ymm0, %ymm0, %ymm0
+; CHECK: ret
+
+define <4 x i64> @test_sllq_3(<4 x i64> %InVec) {
+entry:
+ %shl = shl <4 x i64> %InVec, <i64 64, i64 64, i64 64, i64 64>
+ ret <4 x i64> %shl
+}
+
+; CHECK-LABEL: test_sllq_3:
+; CHECK: vxorps %ymm0, %ymm0, %ymm0
+; CHECK: ret
+
+; AVX2 Arithmetic Shift
+
+define <16 x i16> @test_sraw_1(<16 x i16> %InVec) {
+entry:
+ %shl = ashr <16 x i16> %InVec, <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>
+ ret <16 x i16> %shl
+}
+
+; CHECK-LABEL: test_sraw_1:
+; CHECK: vpsraw $0, %ymm0, %ymm0
+; CHECK: ret
+
+define <16 x i16> @test_sraw_2(<16 x i16> %InVec) {
+entry:
+ %shl = ashr <16 x i16> %InVec, <i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1>
+ ret <16 x i16> %shl
+}
+
+; CHECK-LABEL: test_sraw_2:
+; CHECK: vpsraw $1, %ymm0, %ymm0
+; CHECK: ret
+
+define <16 x i16> @test_sraw_3(<16 x i16> %InVec) {
+entry:
+ %shl = ashr <16 x i16> %InVec, <i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16>
+ ret <16 x i16> %shl
+}
+
+; CHECK-LABEL: test_sraw_3:
+; CHECK: vpsraw $15, %ymm0, %ymm0
+; CHECK: ret
+
+define <8 x i32> @test_srad_1(<8 x i32> %InVec) {
+entry:
+ %shl = ashr <8 x i32> %InVec, <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
+ ret <8 x i32> %shl
+}
+
+; CHECK-LABEL: test_srad_1:
+; CHECK: vpsrad $0, %ymm0, %ymm0
+; CHECK: ret
+
+define <8 x i32> @test_srad_2(<8 x i32> %InVec) {
+entry:
+ %shl = ashr <8 x i32> %InVec, <i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>
+ ret <8 x i32> %shl
+}
+
+; CHECK-LABEL: test_srad_2:
+; CHECK: vpsrad $1, %ymm0, %ymm0
+; CHECK: ret
+
+define <8 x i32> @test_srad_3(<8 x i32> %InVec) {
+entry:
+ %shl = ashr <8 x i32> %InVec, <i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32>
+ ret <8 x i32> %shl
+}
+
+; CHECK-LABEL: test_srad_3:
+; CHECK: vpsrad $31, %ymm0, %ymm0
+; CHECK: ret
+
+; SSE Logical Shift Right
+
+define <16 x i16> @test_srlw_1(<16 x i16> %InVec) {
+entry:
+ %shl = lshr <16 x i16> %InVec, <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>
+ ret <16 x i16> %shl
+}
+
+; CHECK-LABEL: test_srlw_1:
+; CHECK: vpsrlw $0, %ymm0, %ymm0
+; CHECK: ret
+
+define <16 x i16> @test_srlw_2(<16 x i16> %InVec) {
+entry:
+ %shl = lshr <16 x i16> %InVec, <i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1>
+ ret <16 x i16> %shl
+}
+
+; CHECK-LABEL: test_srlw_2:
+; CHECK: vpsrlw $1, %ymm0, %ymm0
+; CHECK: ret
+
+define <16 x i16> @test_srlw_3(<16 x i16> %InVec) {
+entry:
+ %shl = lshr <16 x i16> %InVec, <i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16>
+ ret <16 x i16> %shl
+}
+
+; CHECK-LABEL: test_srlw_3:
+; CHECK: vxorps %ymm0, %ymm0, %ymm0
+; CHECK: ret
+
+define <8 x i32> @test_srld_1(<8 x i32> %InVec) {
+entry:
+ %shl = lshr <8 x i32> %InVec, <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
+ ret <8 x i32> %shl
+}
+
+; CHECK-LABEL: test_srld_1:
+; CHECK: vpsrld $0, %ymm0, %ymm0
+; CHECK: ret
+
+define <8 x i32> @test_srld_2(<8 x i32> %InVec) {
+entry:
+ %shl = lshr <8 x i32> %InVec, <i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>
+ ret <8 x i32> %shl
+}
+
+; CHECK-LABEL: test_srld_2:
+; CHECK: vpsrld $1, %ymm0, %ymm0
+; CHECK: ret
+
+define <8 x i32> @test_srld_3(<8 x i32> %InVec) {
+entry:
+ %shl = lshr <8 x i32> %InVec, <i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32>
+ ret <8 x i32> %shl
+}
+
+; CHECK-LABEL: test_srld_3:
+; CHECK: vxorps %ymm0, %ymm0, %ymm0
+; CHECK: ret
+
+define <4 x i64> @test_srlq_1(<4 x i64> %InVec) {
+entry:
+ %shl = lshr <4 x i64> %InVec, <i64 0, i64 0, i64 0, i64 0>
+ ret <4 x i64> %shl
+}
+
+; CHECK-LABEL: test_srlq_1:
+; CHECK: vpsrlq $0, %ymm0, %ymm0
+; CHECK: ret
+
+define <4 x i64> @test_srlq_2(<4 x i64> %InVec) {
+entry:
+ %shl = lshr <4 x i64> %InVec, <i64 1, i64 1, i64 1, i64 1>
+ ret <4 x i64> %shl
+}
+
+; CHECK-LABEL: test_srlq_2:
+; CHECK: vpsrlq $1, %ymm0, %ymm0
+; CHECK: ret
+
+define <4 x i64> @test_srlq_3(<4 x i64> %InVec) {
+entry:
+ %shl = lshr <4 x i64> %InVec, <i64 64, i64 64, i64 64, i64 64>
+ ret <4 x i64> %shl
+}
+
+; CHECK-LABEL: test_srlq_3:
+; CHECK: vxorps %ymm0, %ymm0, %ymm0
+; CHECK: ret
diff --git a/test/CodeGen/X86/avx512-arith.ll b/test/CodeGen/X86/avx512-arith.ll
new file mode 100644
index 0000000000000..e27600ecd7341
--- /dev/null
+++ b/test/CodeGen/X86/avx512-arith.ll
@@ -0,0 +1,271 @@
+; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=knl | FileCheck %s
+
+; CHECK-LABEL: addpd512
+; CHECK: vaddpd
+; CHECK: ret
+define <8 x double> @addpd512(<8 x double> %y, <8 x double> %x) {
+entry:
+ %add.i = fadd <8 x double> %x, %y
+ ret <8 x double> %add.i
+}
+
+; CHECK-LABEL: addpd512fold
+; CHECK: vaddpd LCP{{.*}}(%rip)
+; CHECK: ret
+define <8 x double> @addpd512fold(<8 x double> %y) {
+entry:
+ %add.i = fadd <8 x double> %y, <double 4.500000e+00, double 3.400000e+00, double 2.300000e+00, double 1.200000e+00, double 4.500000e+00, double 3.800000e+00, double 2.300000e+00, double 1.200000e+00>
+ ret <8 x double> %add.i
+}
+
+; CHECK-LABEL: addps512
+; CHECK: vaddps
+; CHECK: ret
+define <16 x float> @addps512(<16 x float> %y, <16 x float> %x) {
+entry:
+ %add.i = fadd <16 x float> %x, %y
+ ret <16 x float> %add.i
+}
+
+; CHECK-LABEL: addps512fold
+; CHECK: vaddps LCP{{.*}}(%rip)
+; CHECK: ret
+define <16 x float> @addps512fold(<16 x float> %y) {
+entry:
+ %add.i = fadd <16 x float> %y, <float 4.500000e+00, float 0x400B333340000000, float 0x4002666660000000, float 0x3FF3333340000000, float 4.500000e+00, float 0x400B333340000000, float 0x4002666660000000, float 0x3FF3333340000000, float 4.500000e+00, float 0x400B333340000000, float 0x4002666660000000, float 4.500000e+00, float 4.500000e+00, float 0x400B333340000000, float 0x4002666660000000, float 0x3FF3333340000000>
+ ret <16 x float> %add.i
+}
+
+; CHECK-LABEL: subpd512
+; CHECK: vsubpd
+; CHECK: ret
+define <8 x double> @subpd512(<8 x double> %y, <8 x double> %x) {
+entry:
+ %sub.i = fsub <8 x double> %x, %y
+ ret <8 x double> %sub.i
+}
+
+; CHECK-LABEL: @subpd512fold
+; CHECK: vsubpd (%
+; CHECK: ret
+define <8 x double> @subpd512fold(<8 x double> %y, <8 x double>* %x) {
+entry:
+ %tmp2 = load <8 x double>* %x, align 8
+ %sub.i = fsub <8 x double> %y, %tmp2
+ ret <8 x double> %sub.i
+}
+
+; CHECK-LABEL: @subps512
+; CHECK: vsubps
+; CHECK: ret
+define <16 x float> @subps512(<16 x float> %y, <16 x float> %x) {
+entry:
+ %sub.i = fsub <16 x float> %x, %y
+ ret <16 x float> %sub.i
+}
+
+; CHECK-LABEL: subps512fold
+; CHECK: vsubps (%
+; CHECK: ret
+define <16 x float> @subps512fold(<16 x float> %y, <16 x float>* %x) {
+entry:
+ %tmp2 = load <16 x float>* %x, align 4
+ %sub.i = fsub <16 x float> %y, %tmp2
+ ret <16 x float> %sub.i
+}
+
+; CHECK-LABEL: imulq512
+; CHECK: vpmuludq
+; CHECK: vpmuludq
+; CHECK: ret
+define <8 x i64> @imulq512(<8 x i64> %y, <8 x i64> %x) {
+ %z = mul <8 x i64>%x, %y
+ ret <8 x i64>%z
+}
+
+; CHECK-LABEL: mulpd512
+; CHECK: vmulpd
+; CHECK: ret
+define <8 x double> @mulpd512(<8 x double> %y, <8 x double> %x) {
+entry:
+ %mul.i = fmul <8 x double> %x, %y
+ ret <8 x double> %mul.i
+}
+
+; CHECK-LABEL: mulpd512fold
+; CHECK: vmulpd LCP{{.*}}(%rip)
+; CHECK: ret
+define <8 x double> @mulpd512fold(<8 x double> %y) {
+entry:
+ %mul.i = fmul <8 x double> %y, <double 4.500000e+00, double 3.400000e+00, double 2.300000e+00, double 1.200000e+00, double 4.500000e+00, double 3.400000e+00, double 2.300000e+00, double 1.200000e+00>
+ ret <8 x double> %mul.i
+}
+
+; CHECK-LABEL: mulps512
+; CHECK: vmulps
+; CHECK: ret
+define <16 x float> @mulps512(<16 x float> %y, <16 x float> %x) {
+entry:
+ %mul.i = fmul <16 x float> %x, %y
+ ret <16 x float> %mul.i
+}
+
+; CHECK-LABEL: mulps512fold
+; CHECK: vmulps LCP{{.*}}(%rip)
+; CHECK: ret
+define <16 x float> @mulps512fold(<16 x float> %y) {
+entry:
+ %mul.i = fmul <16 x float> %y, <float 4.500000e+00, float 0x400B333340000000, float 0x4002666660000000, float 0x3FF3333340000000, float 4.500000e+00, float 0x400B333340000000, float 0x4002666660000000, float 0x3FF3333340000000, float 4.500000e+00, float 0x400B333340000000, float 0x4002666660000000, float 0x3FF3333340000000, float 4.500000e+00, float 0x400B333340000000, float 0x4002666660000000, float 0x3FF3333340000000>
+ ret <16 x float> %mul.i
+}
+
+; CHECK-LABEL: divpd512
+; CHECK: vdivpd
+; CHECK: ret
+define <8 x double> @divpd512(<8 x double> %y, <8 x double> %x) {
+entry:
+ %div.i = fdiv <8 x double> %x, %y
+ ret <8 x double> %div.i
+}
+
+; CHECK-LABEL: divpd512fold
+; CHECK: vdivpd LCP{{.*}}(%rip)
+; CHECK: ret
+define <8 x double> @divpd512fold(<8 x double> %y) {
+entry:
+ %div.i = fdiv <8 x double> %y, <double 4.500000e+00, double 3.400000e+00, double 2.300000e+00, double 1.200000e+00, double 4.500000e+00, double 3.400000e+00, double 2.300000e+00, double 1.200000e+00>
+ ret <8 x double> %div.i
+}
+
+; CHECK-LABEL: divps512
+; CHECK: vdivps
+; CHECK: ret
+define <16 x float> @divps512(<16 x float> %y, <16 x float> %x) {
+entry:
+ %div.i = fdiv <16 x float> %x, %y
+ ret <16 x float> %div.i
+}
+
+; CHECK-LABEL: divps512fold
+; CHECK: vdivps LCP{{.*}}(%rip)
+; CHECK: ret
+define <16 x float> @divps512fold(<16 x float> %y) {
+entry:
+ %div.i = fdiv <16 x float> %y, <float 4.500000e+00, float 0x400B333340000000, float 0x4002666660000000, float 0x3FF3333340000000, float 4.500000e+00, float 4.500000e+00, float 0x4002666660000000, float 0x3FF3333340000000, float 4.500000e+00, float 0x400B333340000000, float 0x4002666660000000, float 0x3FF3333340000000, float 4.500000e+00, float 4.500000e+00, float 0x4002666660000000, float 0x3FF3333340000000>
+ ret <16 x float> %div.i
+}
+
+; CHECK-LABEL: vpaddq_test
+; CHECK: vpaddq %zmm
+; CHECK: ret
+define <8 x i64> @vpaddq_test(<8 x i64> %i, <8 x i64> %j) nounwind readnone {
+ %x = add <8 x i64> %i, %j
+ ret <8 x i64> %x
+}
+
+; CHECK-LABEL: vpaddd_test
+; CHECK: vpaddd %zmm
+; CHECK: ret
+define <16 x i32> @vpaddd_test(<16 x i32> %i, <16 x i32> %j) nounwind readnone {
+ %x = add <16 x i32> %i, %j
+ ret <16 x i32> %x
+}
+
+; CHECK-LABEL: vpsubq_test
+; CHECK: vpsubq %zmm
+; CHECK: ret
+define <8 x i64> @vpsubq_test(<8 x i64> %i, <8 x i64> %j) nounwind readnone {
+ %x = sub <8 x i64> %i, %j
+ ret <8 x i64> %x
+}
+
+; CHECK-LABEL: vpsubd_test
+; CHECK: vpsubd
+; CHECK: ret
+define <16 x i32> @vpsubd_test(<16 x i32> %i, <16 x i32> %j) nounwind readnone {
+ %x = sub <16 x i32> %i, %j
+ ret <16 x i32> %x
+}
+
+; CHECK-LABEL: vpmulld_test
+; CHECK: vpmulld %zmm
+; CHECK: ret
+define <16 x i32> @vpmulld_test(<16 x i32> %i, <16 x i32> %j) {
+ %x = mul <16 x i32> %i, %j
+ ret <16 x i32> %x
+}
+
+; CHECK-LABEL: sqrtA
+; CHECK: vsqrtssz
+; CHECK: ret
+declare float @sqrtf(float) readnone
+define float @sqrtA(float %a) nounwind uwtable readnone ssp {
+entry:
+ %conv1 = tail call float @sqrtf(float %a) nounwind readnone
+ ret float %conv1
+}
+
+; CHECK-LABEL: sqrtB
+; CHECK: vsqrtsdz
+; CHECK: ret
+declare double @sqrt(double) readnone
+define double @sqrtB(double %a) nounwind uwtable readnone ssp {
+entry:
+ %call = tail call double @sqrt(double %a) nounwind readnone
+ ret double %call
+}
+
+; CHECK-LABEL: sqrtC
+; CHECK: vsqrtssz
+; CHECK: ret
+declare float @llvm.sqrt.f32(float)
+define float @sqrtC(float %a) nounwind {
+ %b = call float @llvm.sqrt.f32(float %a)
+ ret float %b
+}
+
+; CHECK-LABEL: fadd_broadcast
+; CHECK: LCP{{.*}}(%rip){1to16}, %zmm0, %zmm0
+; CHECK: ret
+define <16 x float> @fadd_broadcast(<16 x float> %a) nounwind {
+ %b = fadd <16 x float> %a, <float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000>
+ ret <16 x float> %b
+}
+
+; CHECK-LABEL: addq_broadcast
+; CHECK: vpaddq LCP{{.*}}(%rip){1to8}, %zmm0, %zmm0
+; CHECK: ret
+define <8 x i64> @addq_broadcast(<8 x i64> %a) nounwind {
+ %b = add <8 x i64> %a, <i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2>
+ ret <8 x i64> %b
+}
+
+; CHECK-LABEL: orq_broadcast
+; CHECK: vporq LCP{{.*}}(%rip){1to8}, %zmm0, %zmm0
+; CHECK: ret
+define <8 x i64> @orq_broadcast(<8 x i64> %a) nounwind {
+ %b = or <8 x i64> %a, <i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2>
+ ret <8 x i64> %b
+}
+
+; CHECK-LABEL: andd512fold
+; CHECK: vpandd (%
+; CHECK: ret
+define <16 x i32> @andd512fold(<16 x i32> %y, <16 x i32>* %x) {
+entry:
+ %a = load <16 x i32>* %x, align 4
+ %b = and <16 x i32> %y, %a
+ ret <16 x i32> %b
+}
+
+; CHECK-LABEL: andqbrst
+; CHECK: vpandq (%rdi){1to8}, %zmm
+; CHECK: ret
+define <8 x i64> @andqbrst(<8 x i64> %p1, i64* %ap) {
+entry:
+ %a = load i64* %ap, align 8
+ %b = insertelement <8 x i64> undef, i64 %a, i32 0
+ %c = shufflevector <8 x i64> %b, <8 x i64> undef, <8 x i32> zeroinitializer
+ %d = and <8 x i64> %p1, %c
+ ret <8 x i64>%d
+}
diff --git a/test/CodeGen/X86/avx512-build-vector.ll b/test/CodeGen/X86/avx512-build-vector.ll
new file mode 100644
index 0000000000000..bc4560b3f3fca
--- /dev/null
+++ b/test/CodeGen/X86/avx512-build-vector.ll
@@ -0,0 +1,18 @@
+; RUN: llc < %s -march=x86-64 -mtriple=x86_64-apple-darwin -mcpu=knl | FileCheck %s
+
+; CHECK-LABEL: test1
+; CHECK: vpxord
+; CHECK: ret
+define <16 x i32> @test1(i32* %x) {
+ %y = load i32* %x, align 4
+ %res = insertelement <16 x i32>zeroinitializer, i32 %y, i32 4
+ ret <16 x i32>%res
+}
+
+; CHECK-LABEL: test2
+; CHECK: vpaddd LCP{{.*}}(%rip){1to16}
+; CHECK: ret
+define <16 x i32> @test2(<16 x i32> %x) {
+ %res = add <16 x i32><i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1>, %x
+ ret <16 x i32>%res
+} \ No newline at end of file
diff --git a/test/CodeGen/X86/avx512-cmp.ll b/test/CodeGen/X86/avx512-cmp.ll
new file mode 100644
index 0000000000000..ba52745e6c196
--- /dev/null
+++ b/test/CodeGen/X86/avx512-cmp.ll
@@ -0,0 +1,27 @@
+; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=knl | FileCheck %s
+
+; CHECK: vucomisdz
+define double @test1(double %a, double %b) nounwind {
+ %tobool = fcmp une double %a, %b
+ br i1 %tobool, label %l1, label %l2
+
+l1:
+ %c = fsub double %a, %b
+ ret double %c
+l2:
+ %c1 = fadd double %a, %b
+ ret double %c1
+}
+
+; CHECK: vucomissz
+define float @test2(float %a, float %b) nounwind {
+ %tobool = fcmp olt float %a, %b
+ br i1 %tobool, label %l1, label %l2
+
+l1:
+ %c = fsub float %a, %b
+ ret float %c
+l2:
+ %c1 = fadd float %a, %b
+ ret float %c1
+}
diff --git a/test/CodeGen/X86/avx512-cvt.ll b/test/CodeGen/X86/avx512-cvt.ll
new file mode 100644
index 0000000000000..ed68ff7bcbdb0
--- /dev/null
+++ b/test/CodeGen/X86/avx512-cvt.ll
@@ -0,0 +1,217 @@
+; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=knl | FileCheck %s
+
+; CHECK-LABEL: sitof32
+; CHECK: vcvtdq2ps %zmm
+; CHECK: ret
+define <16 x float> @sitof32(<16 x i32> %a) nounwind {
+ %b = sitofp <16 x i32> %a to <16 x float>
+ ret <16 x float> %b
+}
+
+; CHECK-LABEL: fptosi00
+; CHECK: vcvttps2dq %zmm
+; CHECK: ret
+define <16 x i32> @fptosi00(<16 x float> %a) nounwind {
+ %b = fptosi <16 x float> %a to <16 x i32>
+ ret <16 x i32> %b
+}
+
+; CHECK-LABEL: fptoui00
+; CHECK: vcvttps2udq
+; CHECK: ret
+define <16 x i32> @fptoui00(<16 x float> %a) nounwind {
+ %b = fptoui <16 x float> %a to <16 x i32>
+ ret <16 x i32> %b
+}
+
+; CHECK-LABEL: fptoui01
+; CHECK: vcvttpd2udq
+; CHECK: ret
+define <8 x i32> @fptoui01(<8 x double> %a) nounwind {
+ %b = fptoui <8 x double> %a to <8 x i32>
+ ret <8 x i32> %b
+}
+
+; CHECK-LABEL: sitof64
+; CHECK: vcvtdq2pd %ymm
+; CHECK: ret
+define <8 x double> @sitof64(<8 x i32> %a) {
+ %b = sitofp <8 x i32> %a to <8 x double>
+ ret <8 x double> %b
+}
+
+; CHECK-LABEL: fptosi01
+; CHECK: vcvttpd2dq %zmm
+; CHECK: ret
+define <8 x i32> @fptosi01(<8 x double> %a) {
+ %b = fptosi <8 x double> %a to <8 x i32>
+ ret <8 x i32> %b
+}
+
+; CHECK-LABEL: fptrunc00
+; CHECK: vcvtpd2ps %zmm
+; CHECK-NEXT: vcvtpd2ps %zmm
+; CHECK-NEXT: vinsertf64x4 $1
+; CHECK: ret
+define <16 x float> @fptrunc00(<16 x double> %b) nounwind {
+ %a = fptrunc <16 x double> %b to <16 x float>
+ ret <16 x float> %a
+}
+
+; CHECK-LABEL: fpext00
+; CHECK: vcvtps2pd %ymm0, %zmm0
+; CHECK: ret
+define <8 x double> @fpext00(<8 x float> %b) nounwind {
+ %a = fpext <8 x float> %b to <8 x double>
+ ret <8 x double> %a
+}
+
+; CHECK-LABEL: funcA
+; CHECK: vcvtsi2sdqz (%
+; CHECK: ret
+define double @funcA(i64* nocapture %e) {
+entry:
+ %tmp1 = load i64* %e, align 8
+ %conv = sitofp i64 %tmp1 to double
+ ret double %conv
+}
+
+; CHECK-LABEL: funcB
+; CHECK: vcvtsi2sdlz (%
+; CHECK: ret
+define double @funcB(i32* %e) {
+entry:
+ %tmp1 = load i32* %e, align 4
+ %conv = sitofp i32 %tmp1 to double
+ ret double %conv
+}
+
+; CHECK-LABEL: funcC
+; CHECK: vcvtsi2sslz (%
+; CHECK: ret
+define float @funcC(i32* %e) {
+entry:
+ %tmp1 = load i32* %e, align 4
+ %conv = sitofp i32 %tmp1 to float
+ ret float %conv
+}
+
+; CHECK-LABEL: i64tof32
+; CHECK: vcvtsi2ssqz (%
+; CHECK: ret
+define float @i64tof32(i64* %e) {
+entry:
+ %tmp1 = load i64* %e, align 8
+ %conv = sitofp i64 %tmp1 to float
+ ret float %conv
+}
+
+; CHECK-LABEL: fpext
+; CHECK: vcvtss2sdz
+; CHECK: ret
+define void @fpext() {
+entry:
+ %f = alloca float, align 4
+ %d = alloca double, align 8
+ %tmp = load float* %f, align 4
+ %conv = fpext float %tmp to double
+ store double %conv, double* %d, align 8
+ ret void
+}
+
+; CHECK-LABEL: fpround_scalar
+; CHECK: vmovsdz
+; CHECK: vcvtsd2ssz
+; CHECK: vmovssz
+; CHECK: ret
+define void @fpround_scalar() nounwind uwtable {
+entry:
+ %f = alloca float, align 4
+ %d = alloca double, align 8
+ %tmp = load double* %d, align 8
+ %conv = fptrunc double %tmp to float
+ store float %conv, float* %f, align 4
+ ret void
+}
+
+; CHECK-LABEL: long_to_double
+; CHECK: vmovqz
+; CHECK: ret
+define double @long_to_double(i64 %x) {
+ %res = bitcast i64 %x to double
+ ret double %res
+}
+
+; CHECK-LABEL: double_to_long
+; CHECK: vmovqz
+; CHECK: ret
+define i64 @double_to_long(double %x) {
+ %res = bitcast double %x to i64
+ ret i64 %res
+}
+
+; CHECK-LABEL: int_to_float
+; CHECK: vmovdz
+; CHECK: ret
+define float @int_to_float(i32 %x) {
+ %res = bitcast i32 %x to float
+ ret float %res
+}
+
+; CHECK-LABEL: float_to_int
+; CHECK: vmovdz
+; CHECK: ret
+define i32 @float_to_int(float %x) {
+ %res = bitcast float %x to i32
+ ret i32 %res
+}
+
+; CHECK-LABEL: uitof64
+; CHECK: vcvtudq2pd
+; CHECK: vextracti64x4
+; CHECK: vcvtudq2pd
+; CHECK: ret
+define <16 x double> @uitof64(<16 x i32> %a) nounwind {
+ %b = uitofp <16 x i32> %a to <16 x double>
+ ret <16 x double> %b
+}
+
+; CHECK-LABEL: uitof32
+; CHECK: vcvtudq2ps
+; CHECK: ret
+define <16 x float> @uitof32(<16 x i32> %a) nounwind {
+ %b = uitofp <16 x i32> %a to <16 x float>
+ ret <16 x float> %b
+}
+
+; CHECK-LABEL: @fptosi02
+; CHECK vcvttss2siz
+; CHECK: ret
+define i32 @fptosi02(float %a) nounwind {
+ %b = fptosi float %a to i32
+ ret i32 %b
+}
+
+; CHECK-LABEL: @fptoui02
+; CHECK vcvttss2usiz
+; CHECK: ret
+define i32 @fptoui02(float %a) nounwind {
+ %b = fptoui float %a to i32
+ ret i32 %b
+}
+
+; CHECK-LABEL: @uitofp02
+; CHECK vcvtusi2ss
+; CHECK: ret
+define float @uitofp02(i32 %a) nounwind {
+ %b = uitofp i32 %a to float
+ ret float %b
+}
+
+; CHECK-LABEL: @uitofp03
+; CHECK vcvtusi2sd
+; CHECK: ret
+define double @uitofp03(i32 %a) nounwind {
+ %b = uitofp i32 %a to double
+ ret double %b
+}
diff --git a/test/CodeGen/X86/avx512-fma-intrinsics.ll b/test/CodeGen/X86/avx512-fma-intrinsics.ll
new file mode 100644
index 0000000000000..ce3d7590f396f
--- /dev/null
+++ b/test/CodeGen/X86/avx512-fma-intrinsics.ll
@@ -0,0 +1,97 @@
+; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=knl | FileCheck %s
+
+define <16 x float> @test_x86_vfmadd_ps_z(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2) {
+ ; CHECK-LABEL: test_x86_vfmadd_ps_z
+ ; CHECK: vfmadd213ps %zmm
+ %res = call <16 x float> @llvm.x86.fma.vfmadd.ps.512(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2) nounwind
+ ret <16 x float> %res
+}
+declare <16 x float> @llvm.x86.fma.vfmadd.ps.512(<16 x float>, <16 x float>, <16 x float>) nounwind readnone
+
+define <8 x double> @test_x86_vfmadd_pd_z(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2) {
+ ; CHECK-LABEL: test_x86_vfmadd_pd_z
+ ; CHECK: vfmadd213pd %zmm
+ %res = call <8 x double> @llvm.x86.fma.vfmadd.pd.512(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2) nounwind
+ ret <8 x double> %res
+}
+declare <8 x double> @llvm.x86.fma.vfmadd.pd.512(<8 x double>, <8 x double>, <8 x double>) nounwind readnone
+
+define <16 x float> @test_x86_vfmsubps_z(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2) {
+ ; CHECK-LABEL: test_x86_vfmsubps_z
+ ; CHECK: vfmsub213ps %zmm
+ %res = call <16 x float> @llvm.x86.fma.vfmsub.ps.512(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2) nounwind
+ ret <16 x float> %res
+}
+declare <16 x float> @llvm.x86.fma.vfmsub.ps.512(<16 x float>, <16 x float>, <16 x float>) nounwind readnone
+
+define <8 x double> @test_x86_vfmsubpd_z(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2) {
+ ; CHECK-LABEL: test_x86_vfmsubpd_z
+ ; CHECK: vfmsub213pd %zmm
+ %res = call <8 x double> @llvm.x86.fma.vfmsub.pd.512(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2) nounwind
+ ret <8 x double> %res
+}
+declare <8 x double> @llvm.x86.fma.vfmsub.pd.512(<8 x double>, <8 x double>, <8 x double>) nounwind readnone
+
+define <16 x float> @test_x86_vfnmadd_ps_z(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2) {
+ ; CHECK-LABEL: test_x86_vfnmadd_ps_z
+ ; CHECK: vfnmadd213ps %zmm
+ %res = call <16 x float> @llvm.x86.fma.vfnmadd.ps.512(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2) nounwind
+ ret <16 x float> %res
+}
+declare <16 x float> @llvm.x86.fma.vfnmadd.ps.512(<16 x float>, <16 x float>, <16 x float>) nounwind readnone
+
+define <8 x double> @test_x86_vfnmadd_pd_z(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2) {
+ ; CHECK-LABEL: test_x86_vfnmadd_pd_z
+ ; CHECK: vfnmadd213pd %zmm
+ %res = call <8 x double> @llvm.x86.fma.vfnmadd.pd.512(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2) nounwind
+ ret <8 x double> %res
+}
+declare <8 x double> @llvm.x86.fma.vfnmadd.pd.512(<8 x double>, <8 x double>, <8 x double>) nounwind readnone
+
+define <16 x float> @test_x86_vfnmsubps_z(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2) {
+ ; CHECK-LABEL: test_x86_vfnmsubps_z
+ ; CHECK: vfnmsub213ps %zmm
+ %res = call <16 x float> @llvm.x86.fma.vfnmsub.ps.512(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2) nounwind
+ ret <16 x float> %res
+}
+declare <16 x float> @llvm.x86.fma.vfnmsub.ps.512(<16 x float>, <16 x float>, <16 x float>) nounwind readnone
+
+define <8 x double> @test_x86_vfnmsubpd_z(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2) {
+ ; CHECK-LABEL: test_x86_vfnmsubpd_z
+ ; CHECK: vfnmsub213pd %zmm
+ %res = call <8 x double> @llvm.x86.fma.vfnmsub.pd.512(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2) nounwind
+ ret <8 x double> %res
+}
+declare <8 x double> @llvm.x86.fma.vfnmsub.pd.512(<8 x double>, <8 x double>, <8 x double>) nounwind readnone
+
+define <16 x float> @test_x86_vfmaddsubps_z(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2) {
+ ; CHECK-LABEL: test_x86_vfmaddsubps_z
+ ; CHECK: vfmaddsub213ps %zmm
+ %res = call <16 x float> @llvm.x86.fma.vfmaddsub.ps.512(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2) nounwind
+ ret <16 x float> %res
+}
+declare <16 x float> @llvm.x86.fma.vfmaddsub.ps.512(<16 x float>, <16 x float>, <16 x float>) nounwind readnone
+
+define <8 x double> @test_x86_vfmaddsubpd_z(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2) {
+ ; CHECK-LABEL: test_x86_vfmaddsubpd_z
+ ; CHECK: vfmaddsub213pd %zmm
+ %res = call <8 x double> @llvm.x86.fma.vfmaddsub.pd.512(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2) nounwind
+ ret <8 x double> %res
+}
+declare <8 x double> @llvm.x86.fma.vfmaddsub.pd.512(<8 x double>, <8 x double>, <8 x double>) nounwind readnone
+
+define <16 x float> @test_x86_vfmsubaddps_z(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2) {
+ ; CHECK-LABEL: test_x86_vfmsubaddps_z
+ ; CHECK: vfmsubadd213ps %zmm
+ %res = call <16 x float> @llvm.x86.fma.vfmsubadd.ps.512(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2) nounwind
+ ret <16 x float> %res
+}
+declare <16 x float> @llvm.x86.fma.vfmsubadd.ps.512(<16 x float>, <16 x float>, <16 x float>) nounwind readnone
+
+define <8 x double> @test_x86_vfmsubaddpd_z(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2) {
+ ; CHECK-LABEL: test_x86_vfmsubaddpd_z
+ ; CHECK: vfmsubadd213pd %zmm
+ %res = call <8 x double> @llvm.x86.fma.vfmsubadd.pd.512(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2) nounwind
+ ret <8 x double> %res
+}
+declare <8 x double> @llvm.x86.fma.vfmsubadd.pd.512(<8 x double>, <8 x double>, <8 x double>) nounwind readnone
diff --git a/test/CodeGen/X86/avx512-fma.ll b/test/CodeGen/X86/avx512-fma.ll
new file mode 100644
index 0000000000000..d6926e2571abd
--- /dev/null
+++ b/test/CodeGen/X86/avx512-fma.ll
@@ -0,0 +1,83 @@
+; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=knl -fp-contract=fast | FileCheck %s
+
+; CHECK-LABEL: test_x86_fmadd_ps_z
+; CHECK: vfmadd213ps %zmm2, %zmm1, %zmm0
+; CHECK: ret
+define <16 x float> @test_x86_fmadd_ps_z(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2) {
+ %x = fmul <16 x float> %a0, %a1
+ %res = fadd <16 x float> %x, %a2
+ ret <16 x float> %res
+}
+
+; CHECK-LABEL: test_x86_fmsub_ps_z
+; CHECK: vfmsub213ps %zmm2, %zmm1, %zmm0
+; CHECK: ret
+define <16 x float> @test_x86_fmsub_ps_z(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2) {
+ %x = fmul <16 x float> %a0, %a1
+ %res = fsub <16 x float> %x, %a2
+ ret <16 x float> %res
+}
+
+; CHECK-LABEL: test_x86_fnmadd_ps_z
+; CHECK: vfnmadd213ps %zmm2, %zmm1, %zmm0
+; CHECK: ret
+define <16 x float> @test_x86_fnmadd_ps_z(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2) {
+ %x = fmul <16 x float> %a0, %a1
+ %res = fsub <16 x float> %a2, %x
+ ret <16 x float> %res
+}
+
+; CHECK-LABEL: test_x86_fnmsub_ps_z
+; CHECK: vfnmsub213ps %zmm2, %zmm1, %zmm0
+; CHECK: ret
+define <16 x float> @test_x86_fnmsub_ps_z(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2) {
+ %x = fmul <16 x float> %a0, %a1
+ %y = fsub <16 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00,
+ float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00,
+ float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00,
+ float -0.000000e+00>, %x
+ %res = fsub <16 x float> %y, %a2
+ ret <16 x float> %res
+}
+
+; CHECK-LABEL: test_x86_fmadd_pd_z
+; CHECK: vfmadd213pd %zmm2, %zmm1, %zmm0
+; CHECK: ret
+define <8 x double> @test_x86_fmadd_pd_z(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2) {
+ %x = fmul <8 x double> %a0, %a1
+ %res = fadd <8 x double> %x, %a2
+ ret <8 x double> %res
+}
+
+; CHECK-LABEL: test_x86_fmsub_pd_z
+; CHECK: vfmsub213pd %zmm2, %zmm1, %zmm0
+; CHECK: ret
+define <8 x double> @test_x86_fmsub_pd_z(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2) {
+ %x = fmul <8 x double> %a0, %a1
+ %res = fsub <8 x double> %x, %a2
+ ret <8 x double> %res
+}
+
+define double @test_x86_fmsub_sd_z(double %a0, double %a1, double %a2) {
+ %x = fmul double %a0, %a1
+ %res = fsub double %x, %a2
+ ret double %res
+}
+
+;CHECK-LABEL: test132_br
+;CHECK: vfmadd132ps LCP{{.*}}(%rip){1to16}
+;CHECK: ret
+define <16 x float> @test132_br(<16 x float> %a1, <16 x float> %a2) nounwind {
+ %b1 = fmul <16 x float> %a1, <float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000>
+ %b2 = fadd <16 x float> %b1, %a2
+ ret <16 x float> %b2
+}
+
+;CHECK-LABEL: test213_br
+;CHECK: vfmadd213ps LCP{{.*}}(%rip){1to16}
+;CHECK: ret
+define <16 x float> @test213_br(<16 x float> %a1, <16 x float> %a2) nounwind {
+ %b1 = fmul <16 x float> %a1, %a2
+ %b2 = fadd <16 x float> %b1, <float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000>
+ ret <16 x float> %b2
+}
diff --git a/test/CodeGen/X86/avx512-gather-scatter-intrin.ll b/test/CodeGen/X86/avx512-gather-scatter-intrin.ll
new file mode 100644
index 0000000000000..0321e950ef81f
--- /dev/null
+++ b/test/CodeGen/X86/avx512-gather-scatter-intrin.ll
@@ -0,0 +1,225 @@
+; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=knl | FileCheck %s
+
+declare <16 x float> @llvm.x86.avx512.gather.dps.mask.512 (<16 x float>, i16, <16 x i32>, i8*, i32)
+declare void @llvm.x86.avx512.scatter.dps.mask.512 (i8*, i16, <16 x i32>, <16 x float>, i32)
+declare <8 x double> @llvm.x86.avx512.gather.dpd.mask.512 (<8 x double>, i8, <8 x i32>, i8*, i32)
+declare void @llvm.x86.avx512.scatter.dpd.mask.512 (i8*, i8, <8 x i32>, <8 x double>, i32)
+
+declare <8 x float> @llvm.x86.avx512.gather.qps.mask.512 (<8 x float>, i8, <8 x i64>, i8*, i32)
+declare void @llvm.x86.avx512.scatter.qps.mask.512 (i8*, i8, <8 x i64>, <8 x float>, i32)
+declare <8 x double> @llvm.x86.avx512.gather.qpd.mask.512 (<8 x double>, i8, <8 x i64>, i8*, i32)
+declare void @llvm.x86.avx512.scatter.qpd.mask.512 (i8*, i8, <8 x i64>, <8 x double>, i32)
+
+;CHECK-LABEL: gather_mask_dps
+;CHECK: kmovw
+;CHECK: vgatherdps
+;CHECK: vpadd
+;CHECK: vscatterdps
+;CHECK: ret
+define void @gather_mask_dps(<16 x i32> %ind, <16 x float> %src, i16 %mask, i8* %base, i8* %stbuf) {
+ %x = call <16 x float> @llvm.x86.avx512.gather.dps.mask.512 (<16 x float> %src, i16 %mask, <16 x i32>%ind, i8* %base, i32 4)
+ %ind2 = add <16 x i32> %ind, <i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3>
+ call void @llvm.x86.avx512.scatter.dps.mask.512 (i8* %stbuf, i16 %mask, <16 x i32>%ind2, <16 x float> %x, i32 4)
+ ret void
+}
+
+;CHECK-LABEL: gather_mask_dpd
+;CHECK: kmovw
+;CHECK: vgatherdpd
+;CHECK: vpadd
+;CHECK: vscatterdpd
+;CHECK: ret
+define void @gather_mask_dpd(<8 x i32> %ind, <8 x double> %src, i8 %mask, i8* %base, i8* %stbuf) {
+ %x = call <8 x double> @llvm.x86.avx512.gather.dpd.mask.512 (<8 x double> %src, i8 %mask, <8 x i32>%ind, i8* %base, i32 4)
+ %ind2 = add <8 x i32> %ind, <i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3>
+ call void @llvm.x86.avx512.scatter.dpd.mask.512 (i8* %stbuf, i8 %mask, <8 x i32>%ind2, <8 x double> %x, i32 4)
+ ret void
+}
+
+;CHECK-LABEL: gather_mask_qps
+;CHECK: kmovw
+;CHECK: vgatherqps
+;CHECK: vpadd
+;CHECK: vscatterqps
+;CHECK: ret
+define void @gather_mask_qps(<8 x i64> %ind, <8 x float> %src, i8 %mask, i8* %base, i8* %stbuf) {
+ %x = call <8 x float> @llvm.x86.avx512.gather.qps.mask.512 (<8 x float> %src, i8 %mask, <8 x i64>%ind, i8* %base, i32 4)
+ %ind2 = add <8 x i64> %ind, <i64 0, i64 1, i64 2, i64 3, i64 0, i64 1, i64 2, i64 3>
+ call void @llvm.x86.avx512.scatter.qps.mask.512 (i8* %stbuf, i8 %mask, <8 x i64>%ind2, <8 x float> %x, i32 4)
+ ret void
+}
+
+;CHECK-LABEL: gather_mask_qpd
+;CHECK: kmovw
+;CHECK: vgatherqpd
+;CHECK: vpadd
+;CHECK: vscatterqpd
+;CHECK: ret
+define void @gather_mask_qpd(<8 x i64> %ind, <8 x double> %src, i8 %mask, i8* %base, i8* %stbuf) {
+ %x = call <8 x double> @llvm.x86.avx512.gather.qpd.mask.512 (<8 x double> %src, i8 %mask, <8 x i64>%ind, i8* %base, i32 4)
+ %ind2 = add <8 x i64> %ind, <i64 0, i64 1, i64 2, i64 3, i64 0, i64 1, i64 2, i64 3>
+ call void @llvm.x86.avx512.scatter.qpd.mask.512 (i8* %stbuf, i8 %mask, <8 x i64>%ind2, <8 x double> %x, i32 4)
+ ret void
+}
+;;
+;; Integer Gather/Scatter
+;;
+declare <16 x i32> @llvm.x86.avx512.gather.dpi.mask.512 (<16 x i32>, i16, <16 x i32>, i8*, i32)
+declare void @llvm.x86.avx512.scatter.dpi.mask.512 (i8*, i16, <16 x i32>, <16 x i32>, i32)
+declare <8 x i64> @llvm.x86.avx512.gather.dpq.mask.512 (<8 x i64>, i8, <8 x i32>, i8*, i32)
+declare void @llvm.x86.avx512.scatter.dpq.mask.512 (i8*, i8, <8 x i32>, <8 x i64>, i32)
+
+declare <8 x i32> @llvm.x86.avx512.gather.qpi.mask.512 (<8 x i32>, i8, <8 x i64>, i8*, i32)
+declare void @llvm.x86.avx512.scatter.qpi.mask.512 (i8*, i8, <8 x i64>, <8 x i32>, i32)
+declare <8 x i64> @llvm.x86.avx512.gather.qpq.mask.512 (<8 x i64>, i8, <8 x i64>, i8*, i32)
+declare void @llvm.x86.avx512.scatter.qpq.mask.512 (i8*, i8, <8 x i64>, <8 x i64>, i32)
+
+;CHECK-LABEL: gather_mask_dd
+;CHECK: kmovw
+;CHECK: vpgatherdd
+;CHECK: vpadd
+;CHECK: vpscatterdd
+;CHECK: ret
+define void @gather_mask_dd(<16 x i32> %ind, <16 x i32> %src, i16 %mask, i8* %base, i8* %stbuf) {
+ %x = call <16 x i32> @llvm.x86.avx512.gather.dpi.mask.512 (<16 x i32> %src, i16 %mask, <16 x i32>%ind, i8* %base, i32 4)
+ %ind2 = add <16 x i32> %ind, <i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3>
+ call void @llvm.x86.avx512.scatter.dpi.mask.512 (i8* %stbuf, i16 %mask, <16 x i32>%ind2, <16 x i32> %x, i32 4)
+ ret void
+}
+
+;CHECK-LABEL: gather_mask_qd
+;CHECK: kmovw
+;CHECK: vpgatherqd
+;CHECK: vpadd
+;CHECK: vpscatterqd
+;CHECK: ret
+define void @gather_mask_qd(<8 x i64> %ind, <8 x i32> %src, i8 %mask, i8* %base, i8* %stbuf) {
+ %x = call <8 x i32> @llvm.x86.avx512.gather.qpi.mask.512 (<8 x i32> %src, i8 %mask, <8 x i64>%ind, i8* %base, i32 4)
+ %ind2 = add <8 x i64> %ind, <i64 0, i64 1, i64 2, i64 3, i64 0, i64 1, i64 2, i64 3>
+ call void @llvm.x86.avx512.scatter.qpi.mask.512 (i8* %stbuf, i8 %mask, <8 x i64>%ind2, <8 x i32> %x, i32 4)
+ ret void
+}
+
+;CHECK-LABEL: gather_mask_qq
+;CHECK: kmovw
+;CHECK: vpgatherqq
+;CHECK: vpadd
+;CHECK: vpscatterqq
+;CHECK: ret
+define void @gather_mask_qq(<8 x i64> %ind, <8 x i64> %src, i8 %mask, i8* %base, i8* %stbuf) {
+ %x = call <8 x i64> @llvm.x86.avx512.gather.qpq.mask.512 (<8 x i64> %src, i8 %mask, <8 x i64>%ind, i8* %base, i32 4)
+ %ind2 = add <8 x i64> %ind, <i64 0, i64 1, i64 2, i64 3, i64 0, i64 1, i64 2, i64 3>
+ call void @llvm.x86.avx512.scatter.qpq.mask.512 (i8* %stbuf, i8 %mask, <8 x i64>%ind2, <8 x i64> %x, i32 4)
+ ret void
+}
+
+;CHECK-LABEL: gather_mask_dq
+;CHECK: kmovw
+;CHECK: vpgatherdq
+;CHECK: vpadd
+;CHECK: vpscatterdq
+;CHECK: ret
+define void @gather_mask_dq(<8 x i32> %ind, <8 x i64> %src, i8 %mask, i8* %base, i8* %stbuf) {
+ %x = call <8 x i64> @llvm.x86.avx512.gather.dpq.mask.512 (<8 x i64> %src, i8 %mask, <8 x i32>%ind, i8* %base, i32 4)
+ %ind2 = add <8 x i32> %ind, <i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3>
+ call void @llvm.x86.avx512.scatter.dpq.mask.512 (i8* %stbuf, i8 %mask, <8 x i32>%ind2, <8 x i64> %x, i32 4)
+ ret void
+}
+
+;; FP Intinsics without masks
+
+declare <16 x float> @llvm.x86.avx512.gather.dps.512 (<16 x i32>, i8*, i32)
+declare void @llvm.x86.avx512.scatter.dps.512 (i8*, <16 x i32>, <16 x float>, i32)
+declare <8 x float> @llvm.x86.avx512.gather.qps.512 (<8 x i64>, i8*, i32)
+declare void @llvm.x86.avx512.scatter.qps.512 (i8*, <8 x i64>, <8 x float>, i32)
+declare <8 x double> @llvm.x86.avx512.gather.qpd.512 (<8 x i64>, i8*, i32)
+declare void @llvm.x86.avx512.scatter.qpd.512 (i8*, <8 x i64>, <8 x double>, i32)
+
+;CHECK-LABEL: gather_dps
+;CHECK: kxnorw
+;CHECK: vgatherdps
+;CHECK: vscatterdps
+;CHECK: ret
+define void @gather_dps(<16 x i32> %ind, i8* %base, i8* %stbuf) {
+ %x = call <16 x float> @llvm.x86.avx512.gather.dps.512 (<16 x i32>%ind, i8* %base, i32 4)
+ %ind2 = add <16 x i32> %ind, <i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3>
+ call void @llvm.x86.avx512.scatter.dps.512 (i8* %stbuf, <16 x i32>%ind2, <16 x float> %x, i32 4)
+ ret void
+}
+
+;CHECK-LABEL: gather_qps
+;CHECK: kxnorw
+;CHECK: vgatherqps
+;CHECK: vscatterqps
+;CHECK: ret
+define void @gather_qps(<8 x i64> %ind, i8* %base, i8* %stbuf) {
+ %x = call <8 x float> @llvm.x86.avx512.gather.qps.512 (<8 x i64>%ind, i8* %base, i32 4)
+ %ind2 = add <8 x i64> %ind, <i64 0, i64 1, i64 2, i64 3, i64 0, i64 1, i64 2, i64 3>
+ call void @llvm.x86.avx512.scatter.qps.512 (i8* %stbuf, <8 x i64>%ind2, <8 x float> %x, i32 4)
+ ret void
+}
+
+;CHECK-LABEL: gather_qpd
+;CHECK: kxnorw
+;CHECK: vgatherqpd
+;CHECK: vpadd
+;CHECK: vscatterqpd
+;CHECK: ret
+define void @gather_qpd(<8 x i64> %ind, i8* %base, i8* %stbuf) {
+ %x = call <8 x double> @llvm.x86.avx512.gather.qpd.512 (<8 x i64>%ind, i8* %base, i32 4)
+ %ind2 = add <8 x i64> %ind, <i64 0, i64 1, i64 2, i64 3, i64 0, i64 1, i64 2, i64 3>
+ call void @llvm.x86.avx512.scatter.qpd.512 (i8* %stbuf, <8 x i64>%ind2, <8 x double> %x, i32 4)
+ ret void
+}
+
+;; Integer Intinsics without masks
+
+declare <16 x i32> @llvm.x86.avx512.gather.dpi.512 (<16 x i32>, i8*, i32)
+declare void @llvm.x86.avx512.scatter.dpi.512 (i8*, <16 x i32>, <16 x i32>, i32)
+declare <8 x i64> @llvm.x86.avx512.gather.dpq.512 (<8 x i32>, i8*, i32)
+declare void @llvm.x86.avx512.scatter.dpq.512 (i8*, <8 x i32>, <8 x i64>, i32)
+
+declare <8 x i32> @llvm.x86.avx512.gather.qpi.512 (<8 x i64>, i8*, i32)
+declare void @llvm.x86.avx512.scatter.qpi.512 (i8*, <8 x i64>, <8 x i32>, i32)
+declare <8 x i64> @llvm.x86.avx512.gather.qpq.512 (<8 x i64>, i8*, i32)
+declare void @llvm.x86.avx512.scatter.qpq.512 (i8*, <8 x i64>, <8 x i64>, i32)
+
+;CHECK-LABEL: gather_dpi
+;CHECK: kxnorw
+;CHECK: vpgatherdd
+;CHECK: vpscatterdd
+;CHECK: ret
+define void @gather_dpi(<16 x i32> %ind, i8* %base, i8* %stbuf) {
+ %x = call <16 x i32> @llvm.x86.avx512.gather.dpi.512 (<16 x i32>%ind, i8* %base, i32 4)
+ %ind2 = add <16 x i32> %ind, <i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3>
+ call void @llvm.x86.avx512.scatter.dpi.512 (i8* %stbuf, <16 x i32>%ind2, <16 x i32> %x, i32 4)
+ ret void
+}
+
+;CHECK-LABEL: gather_qpq
+;CHECK: vpxord %zmm
+;CHECK: kxnorw
+;CHECK: vpgatherqq
+;CHECK: vpadd
+;CHECK: vpscatterqq
+;CHECK: ret
+define void @gather_qpq(<8 x i64> %ind, i8* %base, i8* %stbuf) {
+ %x = call <8 x i64> @llvm.x86.avx512.gather.qpq.512 (<8 x i64>%ind, i8* %base, i32 4)
+ %ind2 = add <8 x i64> %ind, <i64 0, i64 1, i64 2, i64 3, i64 0, i64 1, i64 2, i64 3>
+ call void @llvm.x86.avx512.scatter.qpq.512 (i8* %stbuf, <8 x i64>%ind2, <8 x i64> %x, i32 4)
+ ret void
+}
+
+;CHECK-LABEL: gather_qpi
+;CHECK: vpxor %ymm
+;CHECK: kxnorw
+;CHECK: vpgatherqd
+;CHECK: vpadd
+;CHECK: vpscatterqd
+;CHECK: ret
+define void @gather_qpi(<8 x i64> %ind, i8* %base, i8* %stbuf) {
+ %x = call <8 x i32> @llvm.x86.avx512.gather.qpi.512 (<8 x i64>%ind, i8* %base, i32 4)
+ %ind2 = add <8 x i64> %ind, <i64 0, i64 1, i64 2, i64 3, i64 0, i64 1, i64 2, i64 3>
+ call void @llvm.x86.avx512.scatter.qpi.512 (i8* %stbuf, <8 x i64>%ind2, <8 x i32> %x, i32 4)
+ ret void
+}
diff --git a/test/CodeGen/X86/avx512-insert-extract.ll b/test/CodeGen/X86/avx512-insert-extract.ll
new file mode 100644
index 0000000000000..3f067401ed3ff
--- /dev/null
+++ b/test/CodeGen/X86/avx512-insert-extract.ll
@@ -0,0 +1,125 @@
+; RUN: llc < %s -march=x86-64 -mtriple=x86_64-apple-darwin -mcpu=knl | FileCheck %s
+
+;CHECK-LABEL: test1:
+;CHECK: vinsertps
+;CHECK: vinsertf32x4
+;CHECK: ret
+define <16 x float> @test1(<16 x float> %x, float* %br, float %y) nounwind {
+ %rrr = load float* %br
+ %rrr2 = insertelement <16 x float> %x, float %rrr, i32 1
+ %rrr3 = insertelement <16 x float> %rrr2, float %y, i32 14
+ ret <16 x float> %rrr3
+}
+
+;CHECK-LABEL: test2:
+;CHECK: vinsertf32x4
+;CHECK: vextractf32x4
+;CHECK: vinsertf32x4
+;CHECK: ret
+define <8 x double> @test2(<8 x double> %x, double* %br, double %y) nounwind {
+ %rrr = load double* %br
+ %rrr2 = insertelement <8 x double> %x, double %rrr, i32 1
+ %rrr3 = insertelement <8 x double> %rrr2, double %y, i32 6
+ ret <8 x double> %rrr3
+}
+
+;CHECK-LABEL: test3:
+;CHECK: vextractf32x4
+;CHECK: vinsertf32x4
+;CHECK: ret
+define <16 x float> @test3(<16 x float> %x) nounwind {
+ %eee = extractelement <16 x float> %x, i32 4
+ %rrr2 = insertelement <16 x float> %x, float %eee, i32 1
+ ret <16 x float> %rrr2
+}
+
+;CHECK-LABEL: test4:
+;CHECK: vextracti32x4
+;CHECK: vinserti32x4
+;CHECK: ret
+define <8 x i64> @test4(<8 x i64> %x) nounwind {
+ %eee = extractelement <8 x i64> %x, i32 4
+ %rrr2 = insertelement <8 x i64> %x, i64 %eee, i32 1
+ ret <8 x i64> %rrr2
+}
+
+;CHECK-LABEL: test5:
+;CHECK: vextractpsz
+;CHECK: ret
+define i32 @test5(<4 x float> %x) nounwind {
+ %ef = extractelement <4 x float> %x, i32 3
+ %ei = bitcast float %ef to i32
+ ret i32 %ei
+}
+
+;CHECK-LABEL: test6:
+;CHECK: vextractpsz {{.*}}, (%rdi)
+;CHECK: ret
+define void @test6(<4 x float> %x, float* %out) nounwind {
+ %ef = extractelement <4 x float> %x, i32 3
+ store float %ef, float* %out, align 4
+ ret void
+}
+
+;CHECK-LABEL: test7
+;CHECK: vmovdz
+;CHECK: vpermps %zmm
+;CHECK: ret
+define float @test7(<16 x float> %x, i32 %ind) nounwind {
+ %e = extractelement <16 x float> %x, i32 %ind
+ ret float %e
+}
+
+;CHECK-LABEL: test8
+;CHECK: vmovqz
+;CHECK: vpermpd %zmm
+;CHECK: ret
+define double @test8(<8 x double> %x, i32 %ind) nounwind {
+ %e = extractelement <8 x double> %x, i32 %ind
+ ret double %e
+}
+
+;CHECK-LABEL: test9
+;CHECK: vmovd
+;CHECK: vpermps %ymm
+;CHECK: ret
+define float @test9(<8 x float> %x, i32 %ind) nounwind {
+ %e = extractelement <8 x float> %x, i32 %ind
+ ret float %e
+}
+
+;CHECK-LABEL: test10
+;CHECK: vmovdz
+;CHECK: vpermd %zmm
+;CHEKK: vmovdz %xmm0, %eax
+;CHECK: ret
+define i32 @test10(<16 x i32> %x, i32 %ind) nounwind {
+ %e = extractelement <16 x i32> %x, i32 %ind
+ ret i32 %e
+}
+
+;CHECK-LABEL: test11
+;CHECK: movl $260
+;CHECK: bextrl
+;CHECK: movl $268
+;CHECK: bextrl
+;CHECK: ret
+define <16 x i32> @test11(<16 x i32>%a, <16 x i32>%b) {
+ %cmp_res = icmp ult <16 x i32> %a, %b
+ %ia = extractelement <16 x i1> %cmp_res, i32 4
+ %ib = extractelement <16 x i1> %cmp_res, i32 12
+
+ br i1 %ia, label %A, label %B
+
+ A:
+ ret <16 x i32>%b
+ B:
+ %c = add <16 x i32>%b, %a
+ br i1 %ib, label %C, label %D
+ C:
+ %c1 = sub <16 x i32>%c, %a
+ ret <16 x i32>%c1
+ D:
+ %c2 = mul <16 x i32>%c, %a
+ ret <16 x i32>%c2
+}
diff --git a/test/CodeGen/X86/avx512-intrinsics.ll b/test/CodeGen/X86/avx512-intrinsics.ll
new file mode 100644
index 0000000000000..5bdabf2349909
--- /dev/null
+++ b/test/CodeGen/X86/avx512-intrinsics.ll
@@ -0,0 +1,374 @@
+; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=knl | FileCheck %s
+
+declare i32 @llvm.x86.avx512.kortestz(i16, i16) nounwind readnone
+; CHECK: test_kortestz
+; CHECK: kortestw
+; CHECK: sete
+define i32 @test_kortestz(i16 %a0, i16 %a1) {
+ %res = call i32 @llvm.x86.avx512.kortestz(i16 %a0, i16 %a1)
+ ret i32 %res
+}
+
+declare i32 @llvm.x86.avx512.kortestc(i16, i16) nounwind readnone
+; CHECK: test_kortestc
+; CHECK: kortestw
+; CHECK: sbbl
+define i32 @test_kortestc(i16 %a0, i16 %a1) {
+ %res = call i32 @llvm.x86.avx512.kortestc(i16 %a0, i16 %a1)
+ ret i32 %res
+}
+
+define <16 x float> @test_rcp_ps_512(<16 x float> %a0) {
+ ; CHECK: vrcp14ps
+ %res = call <16 x float> @llvm.x86.avx512.rcp14.ps.512(<16 x float> %a0) ; <<16 x float>> [#uses=1]
+ ret <16 x float> %res
+}
+declare <16 x float> @llvm.x86.avx512.rcp14.ps.512(<16 x float>) nounwind readnone
+
+define <8 x double> @test_rcp_pd_512(<8 x double> %a0) {
+ ; CHECK: vrcp14pd
+ %res = call <8 x double> @llvm.x86.avx512.rcp14.pd.512(<8 x double> %a0) ; <<8 x double>> [#uses=1]
+ ret <8 x double> %res
+}
+declare <8 x double> @llvm.x86.avx512.rcp14.pd.512(<8 x double>) nounwind readnone
+
+define <16 x float> @test_rcp28_ps_512(<16 x float> %a0) {
+ ; CHECK: vrcp28ps
+ %res = call <16 x float> @llvm.x86.avx512.rcp28.ps.512(<16 x float> %a0) ; <<16 x float>> [#uses=1]
+ ret <16 x float> %res
+}
+declare <16 x float> @llvm.x86.avx512.rcp28.ps.512(<16 x float>) nounwind readnone
+
+define <8 x double> @test_rcp28_pd_512(<8 x double> %a0) {
+ ; CHECK: vrcp28pd
+ %res = call <8 x double> @llvm.x86.avx512.rcp28.pd.512(<8 x double> %a0) ; <<8 x double>> [#uses=1]
+ ret <8 x double> %res
+}
+declare <8 x double> @llvm.x86.avx512.rcp28.pd.512(<8 x double>) nounwind readnone
+
+define <8 x double> @test_rndscale_pd_512(<8 x double> %a0) {
+ ; CHECK: vrndscale
+ %res = call <8 x double> @llvm.x86.avx512.rndscale.pd.512(<8 x double> %a0, i32 7) ; <<8 x double>> [#uses=1]
+ ret <8 x double> %res
+}
+declare <8 x double> @llvm.x86.avx512.rndscale.pd.512(<8 x double>, i32) nounwind readnone
+
+
+define <16 x float> @test_rndscale_ps_512(<16 x float> %a0) {
+ ; CHECK: vrndscale
+ %res = call <16 x float> @llvm.x86.avx512.rndscale.ps.512(<16 x float> %a0, i32 7) ; <<16 x float>> [#uses=1]
+ ret <16 x float> %res
+}
+declare <16 x float> @llvm.x86.avx512.rndscale.ps.512(<16 x float>, i32) nounwind readnone
+
+
+define <16 x float> @test_rsqrt_ps_512(<16 x float> %a0) {
+ ; CHECK: vrsqrt14ps
+ %res = call <16 x float> @llvm.x86.avx512.rsqrt14.ps.512(<16 x float> %a0) ; <<16 x float>> [#uses=1]
+ ret <16 x float> %res
+}
+declare <16 x float> @llvm.x86.avx512.rsqrt14.ps.512(<16 x float>) nounwind readnone
+
+define <16 x float> @test_rsqrt28_ps_512(<16 x float> %a0) {
+ ; CHECK: vrsqrt28ps
+ %res = call <16 x float> @llvm.x86.avx512.rsqrt28.ps.512(<16 x float> %a0) ; <<16 x float>> [#uses=1]
+ ret <16 x float> %res
+}
+declare <16 x float> @llvm.x86.avx512.rsqrt28.ps.512(<16 x float>) nounwind readnone
+
+define <4 x float> @test_rsqrt14_ss(<4 x float> %a0) {
+ ; CHECK: vrsqrt14ss
+ %res = call <4 x float> @llvm.x86.avx512.rsqrt14.ss(<4 x float> %a0) ; <<4 x float>> [#uses=1]
+ ret <4 x float> %res
+}
+declare <4 x float> @llvm.x86.avx512.rsqrt14.ss(<4 x float>) nounwind readnone
+
+define <4 x float> @test_rsqrt28_ss(<4 x float> %a0) {
+ ; CHECK: vrsqrt28ss
+ %res = call <4 x float> @llvm.x86.avx512.rsqrt28.ss(<4 x float> %a0) ; <<4 x float>> [#uses=1]
+ ret <4 x float> %res
+}
+declare <4 x float> @llvm.x86.avx512.rsqrt28.ss(<4 x float>) nounwind readnone
+
+define <4 x float> @test_rcp14_ss(<4 x float> %a0) {
+ ; CHECK: vrcp14ss
+ %res = call <4 x float> @llvm.x86.avx512.rcp14.ss(<4 x float> %a0) ; <<4 x float>> [#uses=1]
+ ret <4 x float> %res
+}
+declare <4 x float> @llvm.x86.avx512.rcp14.ss(<4 x float>) nounwind readnone
+
+define <4 x float> @test_rcp28_ss(<4 x float> %a0) {
+ ; CHECK: vrcp28ss
+ %res = call <4 x float> @llvm.x86.avx512.rcp28.ss(<4 x float> %a0) ; <<4 x float>> [#uses=1]
+ ret <4 x float> %res
+}
+declare <4 x float> @llvm.x86.avx512.rcp28.ss(<4 x float>) nounwind readnone
+
+define <8 x double> @test_sqrt_pd_512(<8 x double> %a0) {
+ ; CHECK: vsqrtpd
+ %res = call <8 x double> @llvm.x86.avx512.sqrt.pd.512(<8 x double> %a0) ; <<8 x double>> [#uses=1]
+ ret <8 x double> %res
+}
+declare <8 x double> @llvm.x86.avx512.sqrt.pd.512(<8 x double>) nounwind readnone
+
+define <16 x float> @test_sqrt_ps_512(<16 x float> %a0) {
+ ; CHECK: vsqrtps
+ %res = call <16 x float> @llvm.x86.avx512.sqrt.ps.512(<16 x float> %a0) ; <<16 x float>> [#uses=1]
+ ret <16 x float> %res
+}
+declare <16 x float> @llvm.x86.avx512.sqrt.ps.512(<16 x float>) nounwind readnone
+
+define <4 x float> @test_sqrt_ss(<4 x float> %a0, <4 x float> %a1) {
+ ; CHECK: vsqrtssz
+ %res = call <4 x float> @llvm.x86.avx512.sqrt.ss(<4 x float> %a0, <4 x float> %a1) ; <<4 x float>> [#uses=1]
+ ret <4 x float> %res
+}
+declare <4 x float> @llvm.x86.avx512.sqrt.ss(<4 x float>, <4 x float>) nounwind readnone
+
+define <2 x double> @test_sqrt_sd(<2 x double> %a0, <2 x double> %a1) {
+ ; CHECK: vsqrtsdz
+ %res = call <2 x double> @llvm.x86.avx512.sqrt.sd(<2 x double> %a0, <2 x double> %a1) ; <<2 x double>> [#uses=1]
+ ret <2 x double> %res
+}
+declare <2 x double> @llvm.x86.avx512.sqrt.sd(<2 x double>, <2 x double>) nounwind readnone
+
+define i64 @test_x86_sse2_cvtsd2si64(<2 x double> %a0) {
+ ; CHECK: vcvtsd2siz
+ %res = call i64 @llvm.x86.sse2.cvtsd2si64(<2 x double> %a0) ; <i64> [#uses=1]
+ ret i64 %res
+}
+declare i64 @llvm.x86.sse2.cvtsd2si64(<2 x double>) nounwind readnone
+
+define <2 x double> @test_x86_sse2_cvtsi642sd(<2 x double> %a0, i64 %a1) {
+ ; CHECK: vcvtsi2sdqz
+ %res = call <2 x double> @llvm.x86.sse2.cvtsi642sd(<2 x double> %a0, i64 %a1) ; <<2 x double>> [#uses=1]
+ ret <2 x double> %res
+}
+declare <2 x double> @llvm.x86.sse2.cvtsi642sd(<2 x double>, i64) nounwind readnone
+
+define <2 x double> @test_x86_avx512_cvtusi642sd(<2 x double> %a0, i64 %a1) {
+ ; CHECK: vcvtusi2sdqz
+ %res = call <2 x double> @llvm.x86.avx512.cvtusi642sd(<2 x double> %a0, i64 %a1) ; <<2 x double>> [#uses=1]
+ ret <2 x double> %res
+}
+declare <2 x double> @llvm.x86.avx512.cvtusi642sd(<2 x double>, i64) nounwind readnone
+
+define i64 @test_x86_sse2_cvttsd2si64(<2 x double> %a0) {
+ ; CHECK: vcvttsd2siz
+ %res = call i64 @llvm.x86.sse2.cvttsd2si64(<2 x double> %a0) ; <i64> [#uses=1]
+ ret i64 %res
+}
+declare i64 @llvm.x86.sse2.cvttsd2si64(<2 x double>) nounwind readnone
+
+
+define i64 @test_x86_sse_cvtss2si64(<4 x float> %a0) {
+ ; CHECK: vcvtss2siz
+ %res = call i64 @llvm.x86.sse.cvtss2si64(<4 x float> %a0) ; <i64> [#uses=1]
+ ret i64 %res
+}
+declare i64 @llvm.x86.sse.cvtss2si64(<4 x float>) nounwind readnone
+
+
+define <4 x float> @test_x86_sse_cvtsi642ss(<4 x float> %a0, i64 %a1) {
+ ; CHECK: vcvtsi2ssqz
+ %res = call <4 x float> @llvm.x86.sse.cvtsi642ss(<4 x float> %a0, i64 %a1) ; <<4 x float>> [#uses=1]
+ ret <4 x float> %res
+}
+declare <4 x float> @llvm.x86.sse.cvtsi642ss(<4 x float>, i64) nounwind readnone
+
+
+define i64 @test_x86_sse_cvttss2si64(<4 x float> %a0) {
+ ; CHECK: vcvttss2siz
+ %res = call i64 @llvm.x86.sse.cvttss2si64(<4 x float> %a0) ; <i64> [#uses=1]
+ ret i64 %res
+}
+declare i64 @llvm.x86.sse.cvttss2si64(<4 x float>) nounwind readnone
+
+define i64 @test_x86_avx512_cvtsd2usi64(<2 x double> %a0) {
+ ; CHECK: vcvtsd2usiz
+ %res = call i64 @llvm.x86.avx512.cvtsd2usi64(<2 x double> %a0) ; <i64> [#uses=1]
+ ret i64 %res
+}
+declare i64 @llvm.x86.avx512.cvtsd2usi64(<2 x double>) nounwind readnone
+
+define <16 x float> @test_x86_vcvtph2ps_512(<16 x i16> %a0) {
+ ; CHECK: vcvtph2ps
+ %res = call <16 x float> @llvm.x86.avx512.vcvtph2ps.512(<16 x i16> %a0)
+ ret <16 x float> %res
+}
+declare <16 x float> @llvm.x86.avx512.vcvtph2ps.512(<16 x i16>) nounwind readonly
+
+
+define <16 x i16> @test_x86_vcvtps2ph_256(<16 x float> %a0) {
+ ; CHECK: vcvtps2ph
+ %res = call <16 x i16> @llvm.x86.avx512.vcvtps2ph.512(<16 x float> %a0, i32 0)
+ ret <16 x i16> %res
+}
+declare <16 x i16> @llvm.x86.avx512.vcvtps2ph.512(<16 x float>, i32) nounwind readonly
+
+define <16 x float> @test_x86_vbroadcast_ss_512(i8* %a0) {
+ ; CHECK: vbroadcastss
+ %res = call <16 x float> @llvm.x86.avx512.vbroadcast.ss.512(i8* %a0) ; <<16 x float>> [#uses=1]
+ ret <16 x float> %res
+}
+declare <16 x float> @llvm.x86.avx512.vbroadcast.ss.512(i8*) nounwind readonly
+
+define <8 x double> @test_x86_vbroadcast_sd_512(i8* %a0) {
+ ; CHECK: vbroadcastsd
+ %res = call <8 x double> @llvm.x86.avx512.vbroadcast.sd.512(i8* %a0) ; <<8 x double>> [#uses=1]
+ ret <8 x double> %res
+}
+declare <8 x double> @llvm.x86.avx512.vbroadcast.sd.512(i8*) nounwind readonly
+
+define <16 x float> @test_x86_vbroadcast_ss_ps_512(<4 x float> %a0) {
+ ; CHECK: vbroadcastss
+ %res = call <16 x float> @llvm.x86.avx512.vbroadcast.ss.ps.512(<4 x float> %a0) ; <<16 x float>> [#uses=1]
+ ret <16 x float> %res
+}
+declare <16 x float> @llvm.x86.avx512.vbroadcast.ss.ps.512(<4 x float>) nounwind readonly
+
+define <8 x double> @test_x86_vbroadcast_sd_pd_512(<2 x double> %a0) {
+ ; CHECK: vbroadcastsd
+ %res = call <8 x double> @llvm.x86.avx512.vbroadcast.sd.pd.512(<2 x double> %a0) ; <<8 x double>> [#uses=1]
+ ret <8 x double> %res
+}
+declare <8 x double> @llvm.x86.avx512.vbroadcast.sd.pd.512(<2 x double>) nounwind readonly
+
+define <16 x i32> @test_x86_pbroadcastd_512(<4 x i32> %a0) {
+ ; CHECK: vpbroadcastd
+ %res = call <16 x i32> @llvm.x86.avx512.pbroadcastd.512(<4 x i32> %a0) ; <<16 x i32>> [#uses=1]
+ ret <16 x i32> %res
+}
+declare <16 x i32> @llvm.x86.avx512.pbroadcastd.512(<4 x i32>) nounwind readonly
+
+define <16 x i32> @test_x86_pbroadcastd_i32_512(i32 %a0) {
+ ; CHECK: vpbroadcastd
+ %res = call <16 x i32> @llvm.x86.avx512.pbroadcastd.i32.512(i32 %a0) ; <<16 x i32>> [#uses=1]
+ ret <16 x i32> %res
+}
+declare <16 x i32> @llvm.x86.avx512.pbroadcastd.i32.512(i32) nounwind readonly
+
+define <8 x i64> @test_x86_pbroadcastq_512(<2 x i64> %a0) {
+ ; CHECK: vpbroadcastq
+ %res = call <8 x i64> @llvm.x86.avx512.pbroadcastq.512(<2 x i64> %a0) ; <<8 x i64>> [#uses=1]
+ ret <8 x i64> %res
+}
+declare <8 x i64> @llvm.x86.avx512.pbroadcastq.512(<2 x i64>) nounwind readonly
+
+define <8 x i64> @test_x86_pbroadcastq_i64_512(i64 %a0) {
+ ; CHECK: vpbroadcastq
+ %res = call <8 x i64> @llvm.x86.avx512.pbroadcastq.i64.512(i64 %a0) ; <<8 x i64>> [#uses=1]
+ ret <8 x i64> %res
+}
+declare <8 x i64> @llvm.x86.avx512.pbroadcastq.i64.512(i64) nounwind readonly
+
+define <16 x i32> @test_x86_pmaxu_d(<16 x i32> %a0, <16 x i32> %a1) {
+ ; CHECK: vpmaxud
+ %res = call <16 x i32> @llvm.x86.avx512.pmaxu.d(<16 x i32> %a0, <16 x i32> %a1) ; <<16 x i32>> [#uses=1]
+ ret <16 x i32> %res
+}
+declare <16 x i32> @llvm.x86.avx512.pmaxu.d(<16 x i32>, <16 x i32>) nounwind readonly
+
+define <8 x i64> @test_x86_pmaxu_q(<8 x i64> %a0, <8 x i64> %a1) {
+ ; CHECK: vpmaxuq
+ %res = call <8 x i64> @llvm.x86.avx512.pmaxu.q(<8 x i64> %a0, <8 x i64> %a1) ; <<8 x i64>> [#uses=1]
+ ret <8 x i64> %res
+}
+declare <8 x i64> @llvm.x86.avx512.pmaxu.q(<8 x i64>, <8 x i64>) nounwind readonly
+
+define <16 x i32> @test_x86_pmaxs_d(<16 x i32> %a0, <16 x i32> %a1) {
+ ; CHECK: vpmaxsd
+ %res = call <16 x i32> @llvm.x86.avx512.pmaxs.d(<16 x i32> %a0, <16 x i32> %a1) ; <<16 x i32>> [#uses=1]
+ ret <16 x i32> %res
+}
+declare <16 x i32> @llvm.x86.avx512.pmaxs.d(<16 x i32>, <16 x i32>) nounwind readonly
+
+define <8 x i64> @test_x86_pmaxs_q(<8 x i64> %a0, <8 x i64> %a1) {
+ ; CHECK: vpmaxsq
+ %res = call <8 x i64> @llvm.x86.avx512.pmaxs.q(<8 x i64> %a0, <8 x i64> %a1) ; <<8 x i64>> [#uses=1]
+ ret <8 x i64> %res
+}
+declare <8 x i64> @llvm.x86.avx512.pmaxs.q(<8 x i64>, <8 x i64>) nounwind readonly
+
+define <16 x i32> @test_x86_pminu_d(<16 x i32> %a0, <16 x i32> %a1) {
+ ; CHECK: vpminud
+ %res = call <16 x i32> @llvm.x86.avx512.pminu.d(<16 x i32> %a0, <16 x i32> %a1) ; <<16 x i32>> [#uses=1]
+ ret <16 x i32> %res
+}
+declare <16 x i32> @llvm.x86.avx512.pminu.d(<16 x i32>, <16 x i32>) nounwind readonly
+
+define <8 x i64> @test_x86_pminu_q(<8 x i64> %a0, <8 x i64> %a1) {
+ ; CHECK: vpminuq
+ %res = call <8 x i64> @llvm.x86.avx512.pminu.q(<8 x i64> %a0, <8 x i64> %a1) ; <<8 x i64>> [#uses=1]
+ ret <8 x i64> %res
+}
+declare <8 x i64> @llvm.x86.avx512.pminu.q(<8 x i64>, <8 x i64>) nounwind readonly
+
+define <16 x i32> @test_x86_pmins_d(<16 x i32> %a0, <16 x i32> %a1) {
+ ; CHECK: vpminsd
+ %res = call <16 x i32> @llvm.x86.avx512.pmins.d(<16 x i32> %a0, <16 x i32> %a1) ; <<16 x i32>> [#uses=1]
+ ret <16 x i32> %res
+}
+declare <16 x i32> @llvm.x86.avx512.pmins.d(<16 x i32>, <16 x i32>) nounwind readonly
+
+define <8 x i64> @test_x86_pmins_q(<8 x i64> %a0, <8 x i64> %a1) {
+ ; CHECK: vpminsq
+ %res = call <8 x i64> @llvm.x86.avx512.pmins.q(<8 x i64> %a0, <8 x i64> %a1) ; <<8 x i64>> [#uses=1]
+ ret <8 x i64> %res
+}
+declare <8 x i64> @llvm.x86.avx512.pmins.q(<8 x i64>, <8 x i64>) nounwind readonly
+
+define <16 x i32> @test_conflict_d(<16 x i32> %a) {
+ ; CHECK: vpconflictd
+ %res = call <16 x i32> @llvm.x86.avx512.conflict.d.512(<16 x i32> %a)
+ ret <16 x i32> %res
+}
+declare <16 x i32> @llvm.x86.avx512.conflict.d.512(<16 x i32>) nounwind readonly
+
+define <16 x i32> @test_maskz_conflict_d(<16 x i32> %a, i16 %mask) {
+ ; CHECK: vpconflictd %zmm0, %zmm0 {%k1} {z}
+ %vmask = bitcast i16 %mask to <16 x i1>
+ %res = call <16 x i32> @llvm.x86.avx512.conflict.d.maskz.512(<16 x i1> %vmask, <16 x i32> %a)
+ ret <16 x i32> %res
+}
+declare <16 x i32> @llvm.x86.avx512.conflict.d.maskz.512(<16 x i1>,<16 x i32>) nounwind readonly
+
+define <8 x i64> @test_mask_conflict_q(<8 x i64> %a, <8 x i64> %b, i8 %mask) {
+ ; CHECK: vpconflictq {{.*}} {%k1}
+ %vmask = bitcast i8 %mask to <8 x i1>
+ %res = call <8 x i64> @llvm.x86.avx512.conflict.q.mask.512(<8 x i64> %b, <8 x i1> %vmask, <8 x i64> %a)
+ ret <8 x i64> %res
+}
+declare <8 x i64> @llvm.x86.avx512.conflict.q.mask.512(<8 x i64>, <8 x i1>,<8 x i64>) nounwind readonly
+
+define <16 x float> @test_x86_mskblend_ps_512(i16 %a0, <16 x float> %a1, <16 x float> %a2) {
+ ; CHECK: vblendmps
+ %m0 = bitcast i16 %a0 to <16 x i1>
+ %res = call <16 x float> @llvm.x86.avx512.mskblend.ps.512(<16 x i1> %m0, <16 x float> %a1, <16 x float> %a2) ; <<16 x float>> [#uses=1]
+ ret <16 x float> %res
+}
+declare <16 x float> @llvm.x86.avx512.mskblend.ps.512(<16 x i1> %a0, <16 x float> %a1, <16 x float> %a2) nounwind readonly
+
+define <8 x double> @test_x86_mskblend_pd_512(i8 %a0, <8 x double> %a1, <8 x double> %a2) {
+ ; CHECK: vblendmpd
+ %m0 = bitcast i8 %a0 to <8 x i1>
+ %res = call <8 x double> @llvm.x86.avx512.mskblend.pd.512(<8 x i1> %m0, <8 x double> %a1, <8 x double> %a2) ; <<8 x double>> [#uses=1]
+ ret <8 x double> %res
+}
+declare <8 x double> @llvm.x86.avx512.mskblend.pd.512(<8 x i1> %a0, <8 x double> %a1, <8 x double> %a2) nounwind readonly
+
+define <16 x i32> @test_x86_mskblend_d_512(i16 %a0, <16 x i32> %a1, <16 x i32> %a2) {
+ ; CHECK: vpblendmd
+ %m0 = bitcast i16 %a0 to <16 x i1>
+ %res = call <16 x i32> @llvm.x86.avx512.mskblend.d.512(<16 x i1> %m0, <16 x i32> %a1, <16 x i32> %a2) ; <<16 x i32>> [#uses=1]
+ ret <16 x i32> %res
+}
+declare <16 x i32> @llvm.x86.avx512.mskblend.d.512(<16 x i1> %a0, <16 x i32> %a1, <16 x i32> %a2) nounwind readonly
+
+define <8 x i64> @test_x86_mskblend_q_512(i8 %a0, <8 x i64> %a1, <8 x i64> %a2) {
+ ; CHECK: vpblendmq
+ %m0 = bitcast i8 %a0 to <8 x i1>
+ %res = call <8 x i64> @llvm.x86.avx512.mskblend.q.512(<8 x i1> %m0, <8 x i64> %a1, <8 x i64> %a2) ; <<8 x i64>> [#uses=1]
+ ret <8 x i64> %res
+}
+declare <8 x i64> @llvm.x86.avx512.mskblend.q.512(<8 x i1> %a0, <8 x i64> %a1, <8 x i64> %a2) nounwind readonly
diff --git a/test/CodeGen/X86/avx512-mask-op.ll b/test/CodeGen/X86/avx512-mask-op.ll
new file mode 100644
index 0000000000000..ef5cb56d72842
--- /dev/null
+++ b/test/CodeGen/X86/avx512-mask-op.ll
@@ -0,0 +1,57 @@
+; RUN: llc < %s -march=x86-64 -mcpu=knl | FileCheck %s
+
+define i16 @mask16(i16 %x) {
+ %m0 = bitcast i16 %x to <16 x i1>
+ %m1 = xor <16 x i1> %m0, <i1 -1, i1 -1, i1 -1, i1 -1, i1 -1, i1 -1, i1 -1, i1 -1, i1 -1, i1 -1, i1 -1, i1 -1, i1 -1, i1 -1, i1 -1, i1 -1>
+ %ret = bitcast <16 x i1> %m1 to i16
+ ret i16 %ret
+; CHECK: mask16
+; CHECK: knotw
+; CHECK: ret
+}
+
+define i8 @mask8(i8 %x) {
+ %m0 = bitcast i8 %x to <8 x i1>
+ %m1 = xor <8 x i1> %m0, <i1 -1, i1 -1, i1 -1, i1 -1, i1 -1, i1 -1, i1 -1, i1 -1>
+ %ret = bitcast <8 x i1> %m1 to i8
+ ret i8 %ret
+; CHECK: mask8
+; CHECK: knotw
+; CHECK: ret
+}
+
+define i16 @mand16(i16 %x, i16 %y) {
+ %ma = bitcast i16 %x to <16 x i1>
+ %mb = bitcast i16 %y to <16 x i1>
+ %mc = and <16 x i1> %ma, %mb
+ %md = xor <16 x i1> %ma, %mb
+ %me = or <16 x i1> %mc, %md
+ %ret = bitcast <16 x i1> %me to i16
+; CHECK: kandw
+; CHECK: kxorw
+; CHECK: korw
+ ret i16 %ret
+}
+
+; CHECK: unpckbw_test
+; CHECK: kunpckbw
+; CHECK:ret
+declare <16 x i1> @llvm.x86.kunpck.v16i1(<8 x i1>, <8 x i1>) nounwind readnone
+
+define i16 @unpckbw_test(i8 %x, i8 %y) {
+ %m0 = bitcast i8 %x to <8 x i1>
+ %m1 = bitcast i8 %y to <8 x i1>
+ %k = tail call <16 x i1> @llvm.x86.kunpck.v16i1(<8 x i1> %m0, <8 x i1> %m1)
+ %r = bitcast <16 x i1> %k to i16
+ ret i16 %r
+}
+
+; CHECK: shuf_test1
+; CHECK: kshiftrw $8
+; CHECK:ret
+define i8 @shuf_test1(i16 %v) nounwind {
+ %v1 = bitcast i16 %v to <16 x i1>
+ %mask = shufflevector <16 x i1> %v1, <16 x i1> undef, <8 x i32> <i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
+ %mask1 = bitcast <8 x i1> %mask to i8
+ ret i8 %mask1
+}
diff --git a/test/CodeGen/X86/avx512-mov.ll b/test/CodeGen/X86/avx512-mov.ll
new file mode 100644
index 0000000000000..91242b1cc1258
--- /dev/null
+++ b/test/CodeGen/X86/avx512-mov.ll
@@ -0,0 +1,155 @@
+; RUN: llc < %s -march=x86-64 -mtriple=x86_64-apple-darwin -mcpu=knl | FileCheck %s
+
+; CHECK-LABEL: @test1
+; CHECK: vmovdz %xmm0, %eax
+; CHECK: ret
+define i32 @test1(float %x) {
+ %res = bitcast float %x to i32
+ ret i32 %res
+}
+
+; CHECK-LABEL: @test2
+; CHECK: vmovdz %edi
+; CHECK: ret
+define <4 x i32> @test2(i32 %x) {
+ %res = insertelement <4 x i32>undef, i32 %x, i32 0
+ ret <4 x i32>%res
+}
+
+; CHECK-LABEL: @test3
+; CHECK: vmovqz %rdi
+; CHECK: ret
+define <2 x i64> @test3(i64 %x) {
+ %res = insertelement <2 x i64>undef, i64 %x, i32 0
+ ret <2 x i64>%res
+}
+
+; CHECK-LABEL: @test4
+; CHECK: vmovdz (%rdi)
+; CHECK: ret
+define <4 x i32> @test4(i32* %x) {
+ %y = load i32* %x
+ %res = insertelement <4 x i32>undef, i32 %y, i32 0
+ ret <4 x i32>%res
+}
+
+; CHECK-LABEL: @test5
+; CHECK: vmovssz %xmm0, (%rdi)
+; CHECK: ret
+define void @test5(float %x, float* %y) {
+ store float %x, float* %y, align 4
+ ret void
+}
+
+; CHECK-LABEL: @test6
+; CHECK: vmovsdz %xmm0, (%rdi)
+; CHECK: ret
+define void @test6(double %x, double* %y) {
+ store double %x, double* %y, align 8
+ ret void
+}
+
+; CHECK-LABEL: @test7
+; CHECK: vmovssz (%rdi), %xmm0
+; CHECK: ret
+define float @test7(i32* %x) {
+ %y = load i32* %x
+ %res = bitcast i32 %y to float
+ ret float %res
+}
+
+; CHECK-LABEL: @test8
+; CHECK: vmovdz %xmm0, %eax
+; CHECK: ret
+define i32 @test8(<4 x i32> %x) {
+ %res = extractelement <4 x i32> %x, i32 0
+ ret i32 %res
+}
+
+; CHECK-LABEL: @test9
+; CHECK: vmovqz %xmm0, %rax
+; CHECK: ret
+define i64 @test9(<2 x i64> %x) {
+ %res = extractelement <2 x i64> %x, i32 0
+ ret i64 %res
+}
+
+; CHECK-LABEL: @test10
+; CHECK: vmovdz (%rdi)
+; CHECK: ret
+define <4 x i32> @test10(i32* %x) {
+ %y = load i32* %x, align 4
+ %res = insertelement <4 x i32>zeroinitializer, i32 %y, i32 0
+ ret <4 x i32>%res
+}
+
+; CHECK-LABEL: @test11
+; CHECK: vmovssz (%rdi)
+; CHECK: ret
+define <4 x float> @test11(float* %x) {
+ %y = load float* %x, align 4
+ %res = insertelement <4 x float>zeroinitializer, float %y, i32 0
+ ret <4 x float>%res
+}
+
+; CHECK-LABEL: @test12
+; CHECK: vmovsdz (%rdi)
+; CHECK: ret
+define <2 x double> @test12(double* %x) {
+ %y = load double* %x, align 8
+ %res = insertelement <2 x double>zeroinitializer, double %y, i32 0
+ ret <2 x double>%res
+}
+
+; CHECK-LABEL: @test13
+; CHECK: vmovqz %rdi
+; CHECK: ret
+define <2 x i64> @test13(i64 %x) {
+ %res = insertelement <2 x i64>zeroinitializer, i64 %x, i32 0
+ ret <2 x i64>%res
+}
+
+; CHECK-LABEL: @test14
+; CHECK: vmovdz %edi
+; CHECK: ret
+define <4 x i32> @test14(i32 %x) {
+ %res = insertelement <4 x i32>zeroinitializer, i32 %x, i32 0
+ ret <4 x i32>%res
+}
+
+; CHECK-LABEL: @test15
+; CHECK: vmovdz (%rdi)
+; CHECK: ret
+define <4 x i32> @test15(i32* %x) {
+ %y = load i32* %x, align 4
+ %res = insertelement <4 x i32>zeroinitializer, i32 %y, i32 0
+ ret <4 x i32>%res
+}
+
+; CHECK-LABEL: test16
+; CHECK: vmovdqu32
+; CHECK: ret
+define <16 x i32> @test16(i8 * %addr) {
+ %vaddr = bitcast i8* %addr to <16 x i32>*
+ %res = load <16 x i32>* %vaddr, align 1
+ ret <16 x i32>%res
+}
+
+; CHECK-LABEL: test17
+; CHECK: vmovdqa32
+; CHECK: ret
+define <16 x i32> @test17(i8 * %addr) {
+ %vaddr = bitcast i8* %addr to <16 x i32>*
+ %res = load <16 x i32>* %vaddr, align 64
+ ret <16 x i32>%res
+}
+
+; CHECK-LABEL: test18
+; CHECK: vmovdqa64
+; CHECK: ret
+define void @test18(i8 * %addr, <8 x i64> %data) {
+ %vaddr = bitcast i8* %addr to <8 x i64>*
+ store <8 x i64>%data, <8 x i64>* %vaddr, align 64
+ ret void
+}
+
diff --git a/test/CodeGen/X86/avx512-select.ll b/test/CodeGen/X86/avx512-select.ll
new file mode 100644
index 0000000000000..d2d6681fb4223
--- /dev/null
+++ b/test/CodeGen/X86/avx512-select.ll
@@ -0,0 +1,22 @@
+; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=knl | FileCheck %s
+
+; CHECK-LABEL: select00
+; CHECK: vmovaps
+; CHECK-NEXT: LBB
+define <16 x i32> @select00(i32 %a, <16 x i32> %b) nounwind {
+ %cmpres = icmp eq i32 %a, 255
+ %selres = select i1 %cmpres, <16 x i32> zeroinitializer, <16 x i32> %b
+ %res = xor <16 x i32> %b, %selres
+ ret <16 x i32> %res
+}
+
+; CHECK-LABEL: select01
+; CHECK: vmovaps
+; CHECK-NEXT: LBB
+define <8 x i64> @select01(i32 %a, <8 x i64> %b) nounwind {
+ %cmpres = icmp eq i32 %a, 255
+ %selres = select i1 %cmpres, <8 x i64> zeroinitializer, <8 x i64> %b
+ %res = xor <8 x i64> %b, %selres
+ ret <8 x i64> %res
+}
+
diff --git a/test/CodeGen/X86/avx512-shift.ll b/test/CodeGen/X86/avx512-shift.ll
new file mode 100644
index 0000000000000..8cdcf8ad062f0
--- /dev/null
+++ b/test/CodeGen/X86/avx512-shift.ll
@@ -0,0 +1,108 @@
+;RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=knl | FileCheck %s
+
+;CHECK-LABEL: shift_16_i32
+;CHECK: vpsrld
+;CHECK: vpslld
+;CHECK: vpsrad
+;CHECK: ret
+define <16 x i32> @shift_16_i32(<16 x i32> %a) {
+ %b = lshr <16 x i32> %a, <i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>
+ %c = shl <16 x i32> %b, <i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12>
+ %d = ashr <16 x i32> %c, <i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12>
+ ret <16 x i32> %d;
+}
+
+;CHECK-LABEL: shift_8_i64
+;CHECK: vpsrlq
+;CHECK: vpsllq
+;CHECK: vpsraq
+;CHECK: ret
+define <8 x i64> @shift_8_i64(<8 x i64> %a) {
+ %b = lshr <8 x i64> %a, <i64 1, i64 1, i64 1, i64 1, i64 1, i64 1, i64 1, i64 1>
+ %c = shl <8 x i64> %b, <i64 12, i64 12, i64 12, i64 12, i64 12, i64 12, i64 12, i64 12>
+ %d = ashr <8 x i64> %c, <i64 12, i64 12, i64 12, i64 12, i64 12, i64 12, i64 12, i64 12>
+ ret <8 x i64> %d;
+}
+
+; CHECK-LABEL: variable_shl4
+; CHECK: vpsllvq %zmm
+; CHECK: ret
+define <8 x i64> @variable_shl4(<8 x i64> %x, <8 x i64> %y) {
+ %k = shl <8 x i64> %x, %y
+ ret <8 x i64> %k
+}
+
+; CHECK-LABEL: variable_shl5
+; CHECK: vpsllvd %zmm
+; CHECK: ret
+define <16 x i32> @variable_shl5(<16 x i32> %x, <16 x i32> %y) {
+ %k = shl <16 x i32> %x, %y
+ ret <16 x i32> %k
+}
+
+; CHECK-LABEL: variable_srl0
+; CHECK: vpsrlvd
+; CHECK: ret
+define <16 x i32> @variable_srl0(<16 x i32> %x, <16 x i32> %y) {
+ %k = lshr <16 x i32> %x, %y
+ ret <16 x i32> %k
+}
+
+; CHECK-LABEL: variable_srl2
+; CHECK: psrlvq
+; CHECK: ret
+define <8 x i64> @variable_srl2(<8 x i64> %x, <8 x i64> %y) {
+ %k = lshr <8 x i64> %x, %y
+ ret <8 x i64> %k
+}
+
+; CHECK-LABEL: variable_sra1
+; CHECK: vpsravd
+; CHECK: ret
+define <16 x i32> @variable_sra1(<16 x i32> %x, <16 x i32> %y) {
+ %k = ashr <16 x i32> %x, %y
+ ret <16 x i32> %k
+}
+
+; CHECK-LABEL: variable_sra2
+; CHECK: vpsravq %zmm
+; CHECK: ret
+define <8 x i64> @variable_sra2(<8 x i64> %x, <8 x i64> %y) {
+ %k = ashr <8 x i64> %x, %y
+ ret <8 x i64> %k
+}
+
+; CHECK-LABEL: variable_sra01_load
+; CHECK: vpsravd (%
+; CHECK: ret
+define <16 x i32> @variable_sra01_load(<16 x i32> %x, <16 x i32>* %y) {
+ %y1 = load <16 x i32>* %y
+ %k = ashr <16 x i32> %x, %y1
+ ret <16 x i32> %k
+}
+
+; CHECK-LABEL: variable_shl1_load
+; CHECK: vpsllvd (%
+; CHECK: ret
+define <16 x i32> @variable_shl1_load(<16 x i32> %x, <16 x i32>* %y) {
+ %y1 = load <16 x i32>* %y
+ %k = shl <16 x i32> %x, %y1
+ ret <16 x i32> %k
+}
+; CHECK: variable_srl0_load
+; CHECK: vpsrlvd (%
+; CHECK: ret
+define <16 x i32> @variable_srl0_load(<16 x i32> %x, <16 x i32>* %y) {
+ %y1 = load <16 x i32>* %y
+ %k = lshr <16 x i32> %x, %y1
+ ret <16 x i32> %k
+}
+
+; CHECK: variable_srl3_load
+; CHECK: vpsrlvq (%
+; CHECK: ret
+define <8 x i64> @variable_srl3_load(<8 x i64> %x, <8 x i64>* %y) {
+ %y1 = load <8 x i64>* %y
+ %k = lshr <8 x i64> %x, %y1
+ ret <8 x i64> %k
+}
diff --git a/test/CodeGen/X86/avx512-shuffle.ll b/test/CodeGen/X86/avx512-shuffle.ll
new file mode 100644
index 0000000000000..c9e0c2b992d91
--- /dev/null
+++ b/test/CodeGen/X86/avx512-shuffle.ll
@@ -0,0 +1,226 @@
+; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=knl | FileCheck %s
+; CHECK: LCP
+; CHECK: .long 2
+; CHECK: .long 5
+; CHECK: .long 0
+; CHECK: .long 0
+; CHECK: .long 7
+; CHECK: .long 0
+; CHECK: .long 10
+; CHECK: .long 1
+; CHECK: .long 0
+; CHECK: .long 5
+; CHECK: .long 0
+; CHECK: .long 4
+; CHECK: .long 7
+; CHECK: .long 0
+; CHECK: .long 10
+; CHECK: .long 1
+; CHECK-LABEL: test1:
+; CHECK: vpermps
+; CHECK: ret
+define <16 x float> @test1(<16 x float> %a) nounwind {
+ %c = shufflevector <16 x float> %a, <16 x float> undef, <16 x i32> <i32 2, i32 5, i32 undef, i32 undef, i32 7, i32 undef, i32 10, i32 1, i32 0, i32 5, i32 undef, i32 4, i32 7, i32 undef, i32 10, i32 1>
+ ret <16 x float> %c
+}
+
+; CHECK-LABEL: test2:
+; CHECK: vpermd
+; CHECK: ret
+define <16 x i32> @test2(<16 x i32> %a) nounwind {
+ %c = shufflevector <16 x i32> %a, <16 x i32> undef, <16 x i32> <i32 2, i32 5, i32 undef, i32 undef, i32 7, i32 undef, i32 10, i32 1, i32 0, i32 5, i32 undef, i32 4, i32 7, i32 undef, i32 10, i32 1>
+ ret <16 x i32> %c
+}
+
+; CHECK-LABEL: test3:
+; CHECK: vpermq
+; CHECK: ret
+define <8 x i64> @test3(<8 x i64> %a) nounwind {
+ %c = shufflevector <8 x i64> %a, <8 x i64> undef, <8 x i32> <i32 2, i32 5, i32 1, i32 undef, i32 7, i32 undef, i32 3, i32 1>
+ ret <8 x i64> %c
+}
+
+; CHECK-LABEL: test4:
+; CHECK: vpermpd
+; CHECK: ret
+define <8 x double> @test4(<8 x double> %a) nounwind {
+ %c = shufflevector <8 x double> %a, <8 x double> undef, <8 x i32> <i32 1, i32 3, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
+ ret <8 x double> %c
+}
+
+; CHECK-LABEL: test5:
+; CHECK: vpermi2pd
+; CHECK: ret
+define <8 x double> @test5(<8 x double> %a, <8 x double> %b) nounwind {
+ %c = shufflevector <8 x double> %a, <8 x double> %b, <8 x i32> <i32 2, i32 8, i32 0, i32 1, i32 6, i32 10, i32 4, i32 5>
+ ret <8 x double> %c
+}
+
+; CHECK-LABEL: test6:
+; CHECK: vpermq $30
+; CHECK: ret
+define <8 x i64> @test6(<8 x i64> %a) nounwind {
+ %c = shufflevector <8 x i64> %a, <8 x i64> undef, <8 x i32> <i32 2, i32 3, i32 1, i32 0, i32 6, i32 7, i32 5, i32 4>
+ ret <8 x i64> %c
+}
+
+; CHECK-LABEL: test7:
+; CHECK: vpermi2q
+; CHECK: ret
+define <8 x i64> @test7(<8 x i64> %a, <8 x i64> %b) nounwind {
+ %c = shufflevector <8 x i64> %a, <8 x i64> %b, <8 x i32> <i32 2, i32 8, i32 0, i32 1, i32 6, i32 10, i32 4, i32 5>
+ ret <8 x i64> %c
+}
+
+; CHECK-LABEL: test8:
+; CHECK: vpermi2d
+; CHECK: ret
+define <16 x i32> @test8(<16 x i32> %a, <16 x i32> %b) nounwind {
+ %c = shufflevector <16 x i32> %a, <16 x i32> %b, <16 x i32> <i32 15, i32 31, i32 14, i32 22, i32 13, i32 29, i32 4, i32 28, i32 11, i32 27, i32 10, i32 26, i32 9, i32 25, i32 8, i32 24>
+ ret <16 x i32> %c
+}
+
+; CHECK-LABEL: test9:
+; CHECK: vpermi2ps
+; CHECK: ret
+define <16 x float> @test9(<16 x float> %a, <16 x float> %b) nounwind {
+ %c = shufflevector <16 x float> %a, <16 x float> %b, <16 x i32> <i32 15, i32 31, i32 14, i32 22, i32 13, i32 29, i32 4, i32 28, i32 11, i32 27, i32 10, i32 26, i32 9, i32 25, i32 8, i32 24>
+ ret <16 x float> %c
+}
+
+; CHECK-LABEL: test10:
+; CHECK: vpermi2ps (
+; CHECK: ret
+define <16 x float> @test10(<16 x float> %a, <16 x float>* %b) nounwind {
+ %c = load <16 x float>* %b
+ %d = shufflevector <16 x float> %a, <16 x float> %c, <16 x i32> <i32 15, i32 31, i32 14, i32 22, i32 13, i32 29, i32 4, i32 28, i32 11, i32 27, i32 10, i32 26, i32 9, i32 25, i32 8, i32 24>
+ ret <16 x float> %d
+}
+
+; CHECK-LABEL: test11:
+; CHECK: vpermi2d (
+; CHECK: ret
+define <16 x i32> @test11(<16 x i32> %a, <16 x i32>* %b) nounwind {
+ %c = load <16 x i32>* %b
+ %d = shufflevector <16 x i32> %a, <16 x i32> %c, <16 x i32> <i32 15, i32 31, i32 14, i32 22, i32 13, i32 29, i32 4, i32 28, i32 11, i32 27, i32 10, i32 26, i32 9, i32 25, i32 8, i32 24>
+ ret <16 x i32> %d
+}
+
+; CHECK-LABEL: test12
+; CHECK: vmovlhpsz %xmm
+; CHECK: ret
+define <4 x i32> @test12(<4 x i32> %a, <4 x i32> %b) nounwind {
+ %c = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 1, i32 4, i32 5>
+ ret <4 x i32> %c
+}
+
+; CHECK-LABEL: test13
+; CHECK: vpermilps $-79, %zmm
+; CHECK: ret
+define <16 x float> @test13(<16 x float> %a) {
+ %b = shufflevector <16 x float> %a, <16 x float> undef, <16 x i32><i32 1, i32 0, i32 3, i32 2, i32 5, i32 4, i32 7, i32 6, i32 9, i32 8, i32 11, i32 10, i32 13, i32 12, i32 15, i32 14>
+ ret <16 x float> %b
+}
+
+; CHECK-LABEL: test14
+; CHECK: vpermilpd $-53, %zmm
+; CHECK: ret
+define <8 x double> @test14(<8 x double> %a) {
+ %b = shufflevector <8 x double> %a, <8 x double> undef, <8 x i32><i32 1, i32 1, i32 2, i32 3, i32 4, i32 4, i32 7, i32 7>
+ ret <8 x double> %b
+}
+
+; CHECK-LABEL: test15
+; CHECK: vpshufd $-79, %zmm
+; CHECK: ret
+define <16 x i32> @test15(<16 x i32> %a) {
+ %b = shufflevector <16 x i32> %a, <16 x i32> undef, <16 x i32><i32 1, i32 0, i32 3, i32 2, i32 5, i32 4, i32 7, i32 6, i32 9, i32 8, i32 11, i32 10, i32 13, i32 12, i32 15, i32 14>
+ ret <16 x i32> %b
+}
+; CHECK-LABEL: test16
+; CHECK: valignq $2, %zmm0, %zmm1
+; CHECK: ret
+define <8 x double> @test16(<8 x double> %a, <8 x double> %b) nounwind {
+ %c = shufflevector <8 x double> %a, <8 x double> %b, <8 x i32> <i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9>
+ ret <8 x double> %c
+}
+
+; CHECK-LABEL: test17
+; CHECK: vshufpd $19, %zmm1, %zmm0
+; CHECK: ret
+define <8 x double> @test17(<8 x double> %a, <8 x double> %b) nounwind {
+ %c = shufflevector <8 x double> %a, <8 x double> %b, <8 x i32> <i32 1, i32 9, i32 2, i32 10, i32 5, i32 undef, i32 undef, i32 undef>
+ ret <8 x double> %c
+}
+
+; CHECK-LABEL: test18
+; CHECK: vpunpckhdq %zmm
+; CHECK: ret
+define <16 x i32> @test18(<16 x i32> %a, <16 x i32> %c) {
+ %b = shufflevector <16 x i32> %a, <16 x i32> %c, <16 x i32><i32 2, i32 10, i32 3, i32 11, i32 6, i32 14, i32 7, i32 15, i32 18, i32 26, i32 19, i32 27, i32 22, i32 30, i32 23, i32 31>
+ ret <16 x i32> %b
+}
+
+; CHECK-LABEL: test19
+; CHECK: vpunpckldq %zmm
+; CHECK: ret
+define <16 x i32> @test19(<16 x i32> %a, <16 x i32> %c) {
+ %b = shufflevector <16 x i32> %a, <16 x i32> %c, <16 x i32><i32 0, i32 8, i32 1, i32 9, i32 4, i32 12, i32 5, i32 13, i32 16, i32 24, i32 17, i32 25, i32 20, i32 28, i32 21, i32 29>
+ ret <16 x i32> %b
+}
+
+; CHECK-LABEL: test20
+; CHECK: vpunpckhqdq %zmm
+; CHECK: ret
+define <8 x i64> @test20(<8 x i64> %a, <8 x i64> %c) {
+ %b = shufflevector <8 x i64> %a, <8 x i64> %c, <8 x i32><i32 1, i32 5, i32 3, i32 7, i32 9, i32 13, i32 11, i32 15>
+ ret <8 x i64> %b
+}
+
+; CHECK-LABEL: test21
+; CHECK: vunpcklps %zmm
+; CHECK: ret
+define <16 x float> @test21(<16 x float> %a, <16 x float> %c) {
+ %b = shufflevector <16 x float> %a, <16 x float> %c, <16 x i32><i32 0, i32 8, i32 1, i32 9, i32 4, i32 12, i32 5, i32 13, i32 16, i32 24, i32 17, i32 25, i32 20, i32 28, i32 21, i32 29>
+ ret <16 x float> %b
+}
+
+; CHECK-LABEL: test22
+; CHECK: vmovhlpsz %xmm
+; CHECK: ret
+define <4 x i32> @test22(<4 x i32> %a, <4 x i32> %b) nounwind {
+ %c = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 2, i32 3, i32 6, i32 7>
+ ret <4 x i32> %c
+}
+
+; CHECK-LABEL: @test23
+; CHECK: vshufps $-112, %zmm
+; CHECK: ret
+define <16 x float> @test23(<16 x float> %a, <16 x float> %c) {
+ %b = shufflevector <16 x float> %a, <16 x float> %c, <16 x i32><i32 0, i32 0, i32 17, i32 18, i32 4, i32 4, i32 21, i32 22, i32 8, i32 8, i32 25, i32 26, i32 12, i32 12, i32 29, i32 30>
+ ret <16 x float> %b
+}
+
+; CHECK-LABEL: @test24
+; CHECK: vpermi2d
+; CHECK: ret
+define <16 x i32> @test24(<16 x i32> %a, <16 x i32> %b) nounwind {
+ %c = shufflevector <16 x i32> %a, <16 x i32> %b, <16 x i32> <i32 0, i32 1, i32 2, i32 19, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
+ ret <16 x i32> %c
+}
+
+; CHECK-LABEL: @test25
+; CHECK: vshufps $52
+; CHECK: ret
+define <16 x i32> @test25(<16 x i32> %a, <16 x i32> %b) nounwind {
+ %c = shufflevector <16 x i32> %a, <16 x i32> %b, <16 x i32> <i32 0, i32 1, i32 19, i32 undef, i32 4, i32 5, i32 23, i32 undef, i32 8, i32 9, i32 27, i32 undef, i32 12, i32 13, i32 undef, i32 undef>
+ ret <16 x i32> %c
+}
+
+; CHECK-LABEL: @test26
+; CHECK: vmovshdup
+; CHECK: ret
+define <16 x i32> @test26(<16 x i32> %a) nounwind {
+ %c = shufflevector <16 x i32> %a, <16 x i32> undef, <16 x i32> <i32 1, i32 1, i32 3, i32 3, i32 5, i32 5, i32 7, i32 undef, i32 9, i32 9, i32 undef, i32 11, i32 13, i32 undef, i32 undef, i32 undef>
+ ret <16 x i32> %c
+} \ No newline at end of file
diff --git a/test/CodeGen/X86/avx512-trunc-ext.ll b/test/CodeGen/X86/avx512-trunc-ext.ll
new file mode 100644
index 0000000000000..31db68cc582be
--- /dev/null
+++ b/test/CodeGen/X86/avx512-trunc-ext.ll
@@ -0,0 +1,127 @@
+; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=knl | FileCheck %s
+
+; CHECK-LABEL: trunc_16x32_to_16x8
+; CHECK: vpmovdb
+; CHECK: ret
+define <16 x i8> @trunc_16x32_to_16x8(<16 x i32> %i) nounwind readnone {
+ %x = trunc <16 x i32> %i to <16 x i8>
+ ret <16 x i8> %x
+}
+
+; CHECK-LABEL: trunc_8x64_to_8x16
+; CHECK: vpmovqw
+; CHECK: ret
+define <8 x i16> @trunc_8x64_to_8x16(<8 x i64> %i) nounwind readnone {
+ %x = trunc <8 x i64> %i to <8 x i16>
+ ret <8 x i16> %x
+}
+
+
+; CHECK-LABEL: zext_16x8_to_16x32
+; CHECK; vpmovzxbd {{.*}}%zmm
+; CHECK: ret
+define <16 x i32> @zext_16x8_to_16x32(<16 x i8> %i) nounwind readnone {
+ %x = zext <16 x i8> %i to <16 x i32>
+ ret <16 x i32> %x
+}
+
+; CHECK-LABEL: sext_16x8_to_16x32
+; CHECK; vpmovsxbd {{.*}}%zmm
+; CHECK: ret
+define <16 x i32> @sext_16x8_to_16x32(<16 x i8> %i) nounwind readnone {
+ %x = sext <16 x i8> %i to <16 x i32>
+ ret <16 x i32> %x
+}
+
+
+; CHECK-LABEL: zext_16x16_to_16x32
+; CHECK; vpmovzxwd {{.*}}%zmm
+; CHECK: ret
+define <16 x i32> @zext_16x16_to_16x32(<16 x i16> %i) nounwind readnone {
+ %x = zext <16 x i16> %i to <16 x i32>
+ ret <16 x i32> %x
+}
+
+; CHECK-LABEL: zext_8x16_to_8x64
+; CHECK; vpmovzxwq
+; CHECK: ret
+define <8 x i64> @zext_8x16_to_8x64(<8 x i16> %i) nounwind readnone {
+ %x = zext <8 x i16> %i to <8 x i64>
+ ret <8 x i64> %x
+}
+
+;CHECK-LABEL: fptrunc_test
+;CHECK: vcvtpd2ps {{.*}}%zmm
+;CHECK: ret
+define <8 x float> @fptrunc_test(<8 x double> %a) nounwind readnone {
+ %b = fptrunc <8 x double> %a to <8 x float>
+ ret <8 x float> %b
+}
+
+;CHECK-LABEL: fpext_test
+;CHECK: vcvtps2pd {{.*}}%zmm
+;CHECK: ret
+define <8 x double> @fpext_test(<8 x float> %a) nounwind readnone {
+ %b = fpext <8 x float> %a to <8 x double>
+ ret <8 x double> %b
+}
+
+; CHECK-LABEL: zext_16i1_to_16xi32
+; CHECK: vpbroadcastd LCP{{.*}}(%rip), %zmm0 {%k1} {z}
+; CHECK: ret
+define <16 x i32> @zext_16i1_to_16xi32(i16 %b) {
+ %a = bitcast i16 %b to <16 x i1>
+ %c = zext <16 x i1> %a to <16 x i32>
+ ret <16 x i32> %c
+}
+
+; CHECK-LABEL: zext_8i1_to_8xi64
+; CHECK: vpbroadcastq LCP{{.*}}(%rip), %zmm0 {%k1} {z}
+; CHECK: ret
+define <8 x i64> @zext_8i1_to_8xi64(i8 %b) {
+ %a = bitcast i8 %b to <8 x i1>
+ %c = zext <8 x i1> %a to <8 x i64>
+ ret <8 x i64> %c
+}
+
+; CHECK-LABEL: trunc_16i8_to_16i1
+; CHECK: vpmovsxbd
+; CHECK: vpandd
+; CHECK: vptestmd
+; CHECK: ret
+define i16 @trunc_16i8_to_16i1(<16 x i8> %a) {
+ %mask_b = trunc <16 x i8>%a to <16 x i1>
+ %mask = bitcast <16 x i1> %mask_b to i16
+ ret i16 %mask
+}
+
+; CHECK-LABEL: trunc_16i32_to_16i1
+; CHECK: vpandd
+; CHECK: vptestmd
+; CHECK: ret
+define i16 @trunc_16i32_to_16i1(<16 x i32> %a) {
+ %mask_b = trunc <16 x i32>%a to <16 x i1>
+ %mask = bitcast <16 x i1> %mask_b to i16
+ ret i16 %mask
+}
+
+; CHECK-LABEL: trunc_8i16_to_8i1
+; CHECK: vpmovsxwq
+; CHECK: vpandq LCP{{.*}}(%rip){1to8}
+; CHECK: vptestmq
+; CHECK: ret
+define i8 @trunc_8i16_to_8i1(<8 x i16> %a) {
+ %mask_b = trunc <8 x i16>%a to <8 x i1>
+ %mask = bitcast <8 x i1> %mask_b to i8
+ ret i8 %mask
+}
+
+; CHECK: sext_8i1_8i32
+; CHECK: vpbroadcastq LCP{{.*}}(%rip), %zmm0 {%k1} {z}
+; CHECK: ret
+define <8 x i32> @sext_8i1_8i32(<8 x i32> %a1, <8 x i32> %a2) nounwind {
+ %x = icmp slt <8 x i32> %a1, %a2
+ %x1 = xor <8 x i1>%x, <i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true>
+ %y = sext <8 x i1> %x1 to <8 x i32>
+ ret <8 x i32> %y
+}
diff --git a/test/CodeGen/X86/avx512-vbroadcast.ll b/test/CodeGen/X86/avx512-vbroadcast.ll
new file mode 100644
index 0000000000000..6f89d6ce2342c
--- /dev/null
+++ b/test/CodeGen/X86/avx512-vbroadcast.ll
@@ -0,0 +1,53 @@
+; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=knl | FileCheck %s
+
+;CHECK-LABEL: _inreg16xi32:
+;CHECK: vpbroadcastd {{.*}}, %zmm
+;CHECK: ret
+define <16 x i32> @_inreg16xi32(i32 %a) {
+ %b = insertelement <16 x i32> undef, i32 %a, i32 0
+ %c = shufflevector <16 x i32> %b, <16 x i32> undef, <16 x i32> zeroinitializer
+ ret <16 x i32> %c
+}
+
+;CHECK-LABEL: _inreg8xi64:
+;CHECK: vpbroadcastq {{.*}}, %zmm
+;CHECK: ret
+define <8 x i64> @_inreg8xi64(i64 %a) {
+ %b = insertelement <8 x i64> undef, i64 %a, i32 0
+ %c = shufflevector <8 x i64> %b, <8 x i64> undef, <8 x i32> zeroinitializer
+ ret <8 x i64> %c
+}
+
+;CHECK-LABEL: _inreg16xfloat:
+;CHECK: vbroadcastssz {{.*}}, %zmm
+;CHECK: ret
+define <16 x float> @_inreg16xfloat(float %a) {
+ %b = insertelement <16 x float> undef, float %a, i32 0
+ %c = shufflevector <16 x float> %b, <16 x float> undef, <16 x i32> zeroinitializer
+ ret <16 x float> %c
+}
+
+;CHECK-LABEL: _inreg8xdouble:
+;CHECK: vbroadcastsdz {{.*}}, %zmm
+;CHECK: ret
+define <8 x double> @_inreg8xdouble(double %a) {
+ %b = insertelement <8 x double> undef, double %a, i32 0
+ %c = shufflevector <8 x double> %b, <8 x double> undef, <8 x i32> zeroinitializer
+ ret <8 x double> %c
+}
+
+;CHECK-LABEL: _xmm16xi32
+;CHECK: vpbroadcastd
+;CHECK: ret
+define <16 x i32> @_xmm16xi32(<16 x i32> %a) {
+ %b = shufflevector <16 x i32> %a, <16 x i32> undef, <16 x i32> zeroinitializer
+ ret <16 x i32> %b
+}
+
+;CHECK-LABEL: _xmm16xfloat
+;CHECK: vbroadcastssz
+;CHECK: ret
+define <16 x float> @_xmm16xfloat(<16 x float> %a) {
+ %b = shufflevector <16 x float> %a, <16 x float> undef, <16 x i32> zeroinitializer
+ ret <16 x float> %b
+}
diff --git a/test/CodeGen/X86/avx512-vec-cmp.ll b/test/CodeGen/X86/avx512-vec-cmp.ll
new file mode 100644
index 0000000000000..6ca5bcc3b862c
--- /dev/null
+++ b/test/CodeGen/X86/avx512-vec-cmp.ll
@@ -0,0 +1,113 @@
+; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=knl | FileCheck %s
+
+; CHECK-LABEL: test1
+; CHECK: vcmpleps
+; CHECK: vmovups
+; CHECK: ret
+define <16 x float> @test1(<16 x float> %x, <16 x float> %y) nounwind {
+ %mask = fcmp ole <16 x float> %x, %y
+ %max = select <16 x i1> %mask, <16 x float> %x, <16 x float> %y
+ ret <16 x float> %max
+}
+
+; CHECK-LABEL: test2
+; CHECK: vcmplepd
+; CHECK: vmovupd
+; CHECK: ret
+define <8 x double> @test2(<8 x double> %x, <8 x double> %y) nounwind {
+ %mask = fcmp ole <8 x double> %x, %y
+ %max = select <8 x i1> %mask, <8 x double> %x, <8 x double> %y
+ ret <8 x double> %max
+}
+
+; CHECK-LABEL: test3
+; CHECK: vpcmpeqd (%rdi)
+; CHECK: vmovdqu32
+; CHECK: ret
+define <16 x i32> @test3(<16 x i32> %x, <16 x i32> %x1, <16 x i32>* %yp) nounwind {
+ %y = load <16 x i32>* %yp, align 4
+ %mask = icmp eq <16 x i32> %x, %y
+ %max = select <16 x i1> %mask, <16 x i32> %x, <16 x i32> %x1
+ ret <16 x i32> %max
+}
+
+; CHECK-LABEL: @test4_unsigned
+; CHECK: vpcmpnltud
+; CHECK: vmovdqu32
+; CHECK: ret
+define <16 x i32> @test4_unsigned(<16 x i32> %x, <16 x i32> %y) nounwind {
+ %mask = icmp uge <16 x i32> %x, %y
+ %max = select <16 x i1> %mask, <16 x i32> %x, <16 x i32> %y
+ ret <16 x i32> %max
+}
+
+; CHECK-LABEL: test5
+; CHECK: vpcmpeqq {{.*}}%k1
+; CHECK: vmovdqu64 {{.*}}%k1
+; CHECK: ret
+define <8 x i64> @test5(<8 x i64> %x, <8 x i64> %y) nounwind {
+ %mask = icmp eq <8 x i64> %x, %y
+ %max = select <8 x i1> %mask, <8 x i64> %x, <8 x i64> %y
+ ret <8 x i64> %max
+}
+
+; CHECK-LABEL: test6_unsigned
+; CHECK: vpcmpnleuq {{.*}}%k1
+; CHECK: vmovdqu64 {{.*}}%k1
+; CHECK: ret
+define <8 x i64> @test6_unsigned(<8 x i64> %x, <8 x i64> %y) nounwind {
+ %mask = icmp ugt <8 x i64> %x, %y
+ %max = select <8 x i1> %mask, <8 x i64> %x, <8 x i64> %y
+ ret <8 x i64> %max
+}
+
+; CHECK-LABEL: test7
+; CHECK: xor
+; CHECK: vcmpltps
+; CHECK: vblendvps
+; CHECK: ret
+define <4 x float> @test7(<4 x float> %a, <4 x float> %b) {
+ %mask = fcmp olt <4 x float> %a, zeroinitializer
+ %c = select <4 x i1>%mask, <4 x float>%a, <4 x float>%b
+ ret <4 x float>%c
+}
+
+; CHECK-LABEL: test8
+; CHECK: xor
+; CHECK: vcmpltpd
+; CHECK: vblendvpd
+; CHECK: ret
+define <2 x double> @test8(<2 x double> %a, <2 x double> %b) {
+ %mask = fcmp olt <2 x double> %a, zeroinitializer
+ %c = select <2 x i1>%mask, <2 x double>%a, <2 x double>%b
+ ret <2 x double>%c
+}
+
+; CHECK-LABEL: test9
+; CHECK: vpcmpeqd
+; CHECK: vpblendmd
+; CHECK: ret
+define <8 x i32> @test9(<8 x i32> %x, <8 x i32> %y) nounwind {
+ %mask = icmp eq <8 x i32> %x, %y
+ %max = select <8 x i1> %mask, <8 x i32> %x, <8 x i32> %y
+ ret <8 x i32> %max
+}
+
+; CHECK-LABEL: test10
+; CHECK: vcmpeqps
+; CHECK: vblendmps
+; CHECK: ret
+define <8 x float> @test10(<8 x float> %x, <8 x float> %y) nounwind {
+ %mask = fcmp oeq <8 x float> %x, %y
+ %max = select <8 x i1> %mask, <8 x float> %x, <8 x float> %y
+ ret <8 x float> %max
+}
+
+; CHECK-LABEL: test11_unsigned
+; CHECK: vpmaxud
+; CHECK: ret
+define <8 x i32> @test11_unsigned(<8 x i32> %x, <8 x i32> %y) nounwind {
+ %mask = icmp ugt <8 x i32> %x, %y
+ %max = select <8 x i1> %mask, <8 x i32> %x, <8 x i32> %y
+ ret <8 x i32> %max
+}
diff --git a/test/CodeGen/X86/bc-extract.ll b/test/CodeGen/X86/bc-extract.ll
index ceabcb71a78b3..a1c0f5ae527c8 100644
--- a/test/CodeGen/X86/bc-extract.ll
+++ b/test/CodeGen/X86/bc-extract.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86-64 -mattr=+sse42 | FileCheck %s
+; RUN: llc < %s -march=x86-64 -mattr=+sse4.2 | FileCheck %s
define float @extractFloat1() nounwind {
diff --git a/test/CodeGen/X86/bigstructret2.ll b/test/CodeGen/X86/bigstructret2.ll
index 46e0fd2176465..6a79139d9bcf0 100644
--- a/test/CodeGen/X86/bigstructret2.ll
+++ b/test/CodeGen/X86/bigstructret2.ll
@@ -1,4 +1,12 @@
-; RUN: llc < %s -march=x86 -o %t
+; RUN: llc < %s -march=x86 -mtriple=i686-pc-linux-gnu | FileCheck %s
+
+; CHECK: .cfi_startproc
+; CHECK: .cfi_def_cfa_offset 8
+; CHECK: .cfi_def_cfa_offset 12
+; CHECK: .cfi_def_cfa_offset 32
+; CHECK: .cfi_offset %esi, -12
+; CHECK: .cfi_offset %edi, -8
+; CHECK: .cfi_endproc
%0 = type { i64, i64 }
diff --git a/test/CodeGen/X86/bitcast2.ll b/test/CodeGen/X86/bitcast2.ll
index 48922b5f5a132..12aa863a37a15 100644
--- a/test/CodeGen/X86/bitcast2.ll
+++ b/test/CodeGen/X86/bitcast2.ll
@@ -1,5 +1,5 @@
-; RUN: llc < %s -march=x86-64 | grep movd | count 2
-; RUN: llc < %s -march=x86-64 | not grep rsp
+; RUN: llc < %s -march=x86-64 -mattr=-avx | grep movd | count 2
+; RUN: llc < %s -march=x86-64 -mattr=-avx | not grep rsp
define i64 @test1(double %A) {
%B = bitcast double %A to i64
diff --git a/test/CodeGen/X86/blend-msb.ll b/test/CodeGen/X86/blend-msb.ll
index e565da74a082e..4f2060f7012b9 100644
--- a/test/CodeGen/X86/blend-msb.ll
+++ b/test/CodeGen/X86/blend-msb.ll
@@ -1,10 +1,10 @@
-; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=corei7 -mattr=+sse41 | FileCheck %s
+; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=corei7 -mattr=+sse4.1 | FileCheck %s
; In this test we check that sign-extend of the mask bit is performed by
; shifting the needed bit to the MSB, and not using shl+sra.
-;CHECK: vsel_float
+;CHECK-LABEL: vsel_float:
;CHECK: movl $-2147483648
;CHECK-NEXT: movd
;CHECK-NEXT: blendvps
@@ -14,7 +14,7 @@ define <4 x float> @vsel_float(<4 x float> %v1, <4 x float> %v2) {
ret <4 x float> %vsel
}
-;CHECK: vsel_4xi8
+;CHECK-LABEL: vsel_4xi8:
;CHECK: movl $-2147483648
;CHECK-NEXT: movd
;CHECK-NEXT: blendvps
@@ -28,7 +28,7 @@ define <4 x i8> @vsel_4xi8(<4 x i8> %v1, <4 x i8> %v2) {
; We do not have native support for v8i16 blends and we have to use the
; blendvb instruction or a sequence of NAND/OR/AND. Make sure that we do not r
; reduce the mask in this case.
-;CHECK: vsel_8xi16
+;CHECK-LABEL: vsel_8xi16:
;CHECK: psllw
;CHECK: psraw
;CHECK: pblendvb
diff --git a/test/CodeGen/X86/block-placement.ll b/test/CodeGen/X86/block-placement.ll
index 271fb4250517f..d3e05d6fbed2e 100644
--- a/test/CodeGen/X86/block-placement.ll
+++ b/test/CodeGen/X86/block-placement.ll
@@ -1,11 +1,11 @@
-; RUN: llc -mtriple=i686-linux < %s | FileCheck %s
+; RUN: llc -mtriple=i686-linux -pre-RA-sched=source < %s | FileCheck %s
declare void @error(i32 %i, i32 %a, i32 %b)
define i32 @test_ifchains(i32 %i, i32* %a, i32 %b) {
; Test a chain of ifs, where the block guarded by the if is error handling code
; that is not expected to run.
-; CHECK: test_ifchains:
+; CHECK-LABEL: test_ifchains:
; CHECK: %entry
; CHECK-NOT: .align
; CHECK: %else1
@@ -79,7 +79,7 @@ exit:
define i32 @test_loop_cold_blocks(i32 %i, i32* %a) {
; Check that we sink cold loop blocks after the hot loop body.
-; CHECK: test_loop_cold_blocks:
+; CHECK-LABEL: test_loop_cold_blocks:
; CHECK: %entry
; CHECK-NOT: .align
; CHECK: %unlikely1
@@ -128,7 +128,7 @@ exit:
define i32 @test_loop_early_exits(i32 %i, i32* %a) {
; Check that we sink early exit blocks out of loop bodies.
-; CHECK: test_loop_early_exits:
+; CHECK-LABEL: test_loop_early_exits:
; CHECK: %entry
; CHECK: %body1
; CHECK: %body2
@@ -180,7 +180,7 @@ exit:
define i32 @test_loop_rotate(i32 %i, i32* %a) {
; Check that we rotate conditional exits from the loop to the bottom of the
; loop, eliminating unconditional branches to the top.
-; CHECK: test_loop_rotate:
+; CHECK-LABEL: test_loop_rotate:
; CHECK: %entry
; CHECK: %body1
; CHECK: %body0
@@ -210,7 +210,7 @@ exit:
define i32 @test_no_loop_rotate(i32 %i, i32* %a) {
; Check that we don't try to rotate a loop which is already laid out with
; fallthrough opportunities into the top and out of the bottom.
-; CHECK: test_no_loop_rotate:
+; CHECK-LABEL: test_no_loop_rotate:
; CHECK: %entry
; CHECK: %body0
; CHECK: %body1
@@ -278,7 +278,7 @@ exit:
define i32 @test_loop_align(i32 %i, i32* %a) {
; Check that we provide basic loop body alignment with the block placement
; pass.
-; CHECK: test_loop_align:
+; CHECK-LABEL: test_loop_align:
; CHECK: %entry
; CHECK: .align [[ALIGN:[0-9]+]],
; CHECK-NEXT: %body
@@ -303,7 +303,7 @@ exit:
define i32 @test_nested_loop_align(i32 %i, i32* %a, i32* %b) {
; Check that we provide nested loop body alignment.
-; CHECK: test_nested_loop_align:
+; CHECK-LABEL: test_nested_loop_align:
; CHECK: %entry
; CHECK: .align [[ALIGN]],
; CHECK-NEXT: %loop.body.1
@@ -997,7 +997,7 @@ define void @benchmark_heapsort(i32 %n, double* nocapture %ra) {
; CHECK: %while.body
; CHECK: %land.lhs.true
; CHECK: %if.then19
-; CHECK: %if.then19
+; CHECK: %if.end20
; CHECK: %if.then8
; CHECK: ret
@@ -1089,3 +1089,35 @@ while.end:
store double %rra.0, double* %arrayidx34, align 8
br label %for.cond
}
+
+declare void @cold_function() cold
+
+define i32 @test_cold_calls(i32* %a) {
+; Test that edges to blocks post-dominated by cold calls are
+; marked as not expected to be taken. They should be laid out
+; at the bottom.
+; CHECK-LABEL: test_cold_calls:
+; CHECK: %entry
+; CHECK: %else
+; CHECK: %exit
+; CHECK: %then
+
+entry:
+ %gep1 = getelementptr i32* %a, i32 1
+ %val1 = load i32* %gep1
+ %cond1 = icmp ugt i32 %val1, 1
+ br i1 %cond1, label %then, label %else
+
+then:
+ call void @cold_function()
+ br label %exit
+
+else:
+ %gep2 = getelementptr i32* %a, i32 2
+ %val2 = load i32* %gep2
+ br label %exit
+
+exit:
+ %ret = phi i32 [ %val1, %then ], [ %val2, %else ]
+ ret i32 %ret
+}
diff --git a/test/CodeGen/X86/bmi.ll b/test/CodeGen/X86/bmi.ll
index b89e648c52d9e..242075a878bbf 100644
--- a/test/CodeGen/X86/bmi.ll
+++ b/test/CodeGen/X86/bmi.ll
@@ -8,21 +8,21 @@ declare i64 @llvm.cttz.i64(i64, i1) nounwind readnone
define i8 @t1(i8 %x) nounwind {
%tmp = tail call i8 @llvm.cttz.i8( i8 %x, i1 false )
ret i8 %tmp
-; CHECK: t1:
+; CHECK-LABEL: t1:
; CHECK: tzcntl
}
define i16 @t2(i16 %x) nounwind {
%tmp = tail call i16 @llvm.cttz.i16( i16 %x, i1 false )
ret i16 %tmp
-; CHECK: t2:
+; CHECK-LABEL: t2:
; CHECK: tzcntw
}
define i32 @t3(i32 %x) nounwind {
%tmp = tail call i32 @llvm.cttz.i32( i32 %x, i1 false )
ret i32 %tmp
-; CHECK: t3:
+; CHECK-LABEL: t3:
; CHECK: tzcntl
}
@@ -30,42 +30,42 @@ define i32 @tzcnt32_load(i32* %x) nounwind {
%x1 = load i32* %x
%tmp = tail call i32 @llvm.cttz.i32(i32 %x1, i1 false )
ret i32 %tmp
-; CHECK: tzcnt32_load:
+; CHECK-LABEL: tzcnt32_load:
; CHECK: tzcntl ({{.*}})
}
define i64 @t4(i64 %x) nounwind {
%tmp = tail call i64 @llvm.cttz.i64( i64 %x, i1 false )
ret i64 %tmp
-; CHECK: t4:
+; CHECK-LABEL: t4:
; CHECK: tzcntq
}
define i8 @t5(i8 %x) nounwind {
%tmp = tail call i8 @llvm.cttz.i8( i8 %x, i1 true )
ret i8 %tmp
-; CHECK: t5:
+; CHECK-LABEL: t5:
; CHECK: tzcntl
}
define i16 @t6(i16 %x) nounwind {
%tmp = tail call i16 @llvm.cttz.i16( i16 %x, i1 true )
ret i16 %tmp
-; CHECK: t6:
+; CHECK-LABEL: t6:
; CHECK: tzcntw
}
define i32 @t7(i32 %x) nounwind {
%tmp = tail call i32 @llvm.cttz.i32( i32 %x, i1 true )
ret i32 %tmp
-; CHECK: t7:
+; CHECK-LABEL: t7:
; CHECK: tzcntl
}
define i64 @t8(i64 %x) nounwind {
%tmp = tail call i64 @llvm.cttz.i64( i64 %x, i1 true )
ret i64 %tmp
-; CHECK: t8:
+; CHECK-LABEL: t8:
; CHECK: tzcntq
}
@@ -73,7 +73,7 @@ define i32 @andn32(i32 %x, i32 %y) nounwind readnone {
%tmp1 = xor i32 %x, -1
%tmp2 = and i32 %y, %tmp1
ret i32 %tmp2
-; CHECK: andn32:
+; CHECK-LABEL: andn32:
; CHECK: andnl
}
@@ -82,7 +82,7 @@ define i32 @andn32_load(i32 %x, i32* %y) nounwind readnone {
%tmp1 = xor i32 %x, -1
%tmp2 = and i32 %y1, %tmp1
ret i32 %tmp2
-; CHECK: andn32_load:
+; CHECK-LABEL: andn32_load:
; CHECK: andnl ({{.*}})
}
@@ -90,14 +90,14 @@ define i64 @andn64(i64 %x, i64 %y) nounwind readnone {
%tmp1 = xor i64 %x, -1
%tmp2 = and i64 %tmp1, %y
ret i64 %tmp2
-; CHECK: andn64:
+; CHECK-LABEL: andn64:
; CHECK: andnq
}
define i32 @bextr32(i32 %x, i32 %y) nounwind readnone {
%tmp = tail call i32 @llvm.x86.bmi.bextr.32(i32 %x, i32 %y)
ret i32 %tmp
-; CHECK: bextr32:
+; CHECK-LABEL: bextr32:
; CHECK: bextrl
}
@@ -105,25 +105,50 @@ define i32 @bextr32_load(i32* %x, i32 %y) nounwind readnone {
%x1 = load i32* %x
%tmp = tail call i32 @llvm.x86.bmi.bextr.32(i32 %x1, i32 %y)
ret i32 %tmp
-; CHECK: bextr32_load:
+; CHECK-LABEL: bextr32_load:
; CHECK: bextrl {{.*}}, ({{.*}}), {{.*}}
}
declare i32 @llvm.x86.bmi.bextr.32(i32, i32) nounwind readnone
+define i32 @bextr32b(i32 %x) nounwind uwtable readnone ssp {
+ %1 = lshr i32 %x, 4
+ %2 = and i32 %1, 4095
+ ret i32 %2
+; CHECK-LABEL: bextr32b:
+; CHECK: bextrl
+}
+
+define i32 @bextr32b_load(i32* %x) nounwind uwtable readnone ssp {
+ %1 = load i32* %x
+ %2 = lshr i32 %1, 4
+ %3 = and i32 %2, 4095
+ ret i32 %3
+; CHECK-LABEL: bextr32b_load:
+; CHECK: bextrl {{.*}}, ({{.*}}), {{.*}}
+}
+
define i64 @bextr64(i64 %x, i64 %y) nounwind readnone {
%tmp = tail call i64 @llvm.x86.bmi.bextr.64(i64 %x, i64 %y)
ret i64 %tmp
-; CHECK: bextr64:
+; CHECK-LABEL: bextr64:
; CHECK: bextrq
}
declare i64 @llvm.x86.bmi.bextr.64(i64, i64) nounwind readnone
+define i64 @bextr64b(i64 %x) nounwind uwtable readnone ssp {
+ %1 = lshr i64 %x, 4
+ %2 = and i64 %1, 4095
+ ret i64 %2
+; CHECK-LABEL: bextr64b:
+; CHECK: bextrq
+}
+
define i32 @bzhi32(i32 %x, i32 %y) nounwind readnone {
%tmp = tail call i32 @llvm.x86.bmi.bzhi.32(i32 %x, i32 %y)
ret i32 %tmp
-; CHECK: bzhi32:
+; CHECK-LABEL: bzhi32:
; CHECK: bzhil
}
@@ -131,7 +156,7 @@ define i32 @bzhi32_load(i32* %x, i32 %y) nounwind readnone {
%x1 = load i32* %x
%tmp = tail call i32 @llvm.x86.bmi.bzhi.32(i32 %x1, i32 %y)
ret i32 %tmp
-; CHECK: bzhi32_load:
+; CHECK-LABEL: bzhi32_load:
; CHECK: bzhil {{.*}}, ({{.*}}), {{.*}}
}
@@ -140,17 +165,62 @@ declare i32 @llvm.x86.bmi.bzhi.32(i32, i32) nounwind readnone
define i64 @bzhi64(i64 %x, i64 %y) nounwind readnone {
%tmp = tail call i64 @llvm.x86.bmi.bzhi.64(i64 %x, i64 %y)
ret i64 %tmp
-; CHECK: bzhi64:
+; CHECK-LABEL: bzhi64:
; CHECK: bzhiq
}
declare i64 @llvm.x86.bmi.bzhi.64(i64, i64) nounwind readnone
+define i32 @bzhi32b(i32 %x, i8 zeroext %index) #0 {
+entry:
+ %conv = zext i8 %index to i32
+ %shl = shl i32 1, %conv
+ %sub = add nsw i32 %shl, -1
+ %and = and i32 %sub, %x
+ ret i32 %and
+; CHECK-LABEL: bzhi32b:
+; CHECK: bzhil
+}
+
+define i32 @bzhi32b_load(i32* %w, i8 zeroext %index) #0 {
+entry:
+ %x = load i32* %w
+ %conv = zext i8 %index to i32
+ %shl = shl i32 1, %conv
+ %sub = add nsw i32 %shl, -1
+ %and = and i32 %sub, %x
+ ret i32 %and
+; CHECK-LABEL: bzhi32b_load:
+; CHECK: bzhil {{.*}}, ({{.*}}), {{.*}}
+}
+
+define i32 @bzhi32c(i32 %x, i8 zeroext %index) #0 {
+entry:
+ %conv = zext i8 %index to i32
+ %shl = shl i32 1, %conv
+ %sub = add nsw i32 %shl, -1
+ %and = and i32 %x, %sub
+ ret i32 %and
+; CHECK-LABEL: bzhi32c:
+; CHECK: bzhil
+}
+
+define i64 @bzhi64b(i64 %x, i8 zeroext %index) #0 {
+entry:
+ %conv = zext i8 %index to i64
+ %shl = shl i64 1, %conv
+ %sub = add nsw i64 %shl, -1
+ %and = and i64 %x, %sub
+ ret i64 %and
+; CHECK-LABEL: bzhi64b:
+; CHECK: bzhiq
+}
+
define i32 @blsi32(i32 %x) nounwind readnone {
%tmp = sub i32 0, %x
%tmp2 = and i32 %x, %tmp
ret i32 %tmp2
-; CHECK: blsi32:
+; CHECK-LABEL: blsi32:
; CHECK: blsil
}
@@ -159,7 +229,7 @@ define i32 @blsi32_load(i32* %x) nounwind readnone {
%tmp = sub i32 0, %x1
%tmp2 = and i32 %x1, %tmp
ret i32 %tmp2
-; CHECK: blsi32_load:
+; CHECK-LABEL: blsi32_load:
; CHECK: blsil ({{.*}})
}
@@ -167,7 +237,7 @@ define i64 @blsi64(i64 %x) nounwind readnone {
%tmp = sub i64 0, %x
%tmp2 = and i64 %tmp, %x
ret i64 %tmp2
-; CHECK: blsi64:
+; CHECK-LABEL: blsi64:
; CHECK: blsiq
}
@@ -175,7 +245,7 @@ define i32 @blsmsk32(i32 %x) nounwind readnone {
%tmp = sub i32 %x, 1
%tmp2 = xor i32 %x, %tmp
ret i32 %tmp2
-; CHECK: blsmsk32:
+; CHECK-LABEL: blsmsk32:
; CHECK: blsmskl
}
@@ -184,7 +254,7 @@ define i32 @blsmsk32_load(i32* %x) nounwind readnone {
%tmp = sub i32 %x1, 1
%tmp2 = xor i32 %x1, %tmp
ret i32 %tmp2
-; CHECK: blsmsk32_load:
+; CHECK-LABEL: blsmsk32_load:
; CHECK: blsmskl ({{.*}})
}
@@ -192,7 +262,7 @@ define i64 @blsmsk64(i64 %x) nounwind readnone {
%tmp = sub i64 %x, 1
%tmp2 = xor i64 %tmp, %x
ret i64 %tmp2
-; CHECK: blsmsk64:
+; CHECK-LABEL: blsmsk64:
; CHECK: blsmskq
}
@@ -200,7 +270,7 @@ define i32 @blsr32(i32 %x) nounwind readnone {
%tmp = sub i32 %x, 1
%tmp2 = and i32 %x, %tmp
ret i32 %tmp2
-; CHECK: blsr32:
+; CHECK-LABEL: blsr32:
; CHECK: blsrl
}
@@ -209,7 +279,7 @@ define i32 @blsr32_load(i32* %x) nounwind readnone {
%tmp = sub i32 %x1, 1
%tmp2 = and i32 %x1, %tmp
ret i32 %tmp2
-; CHECK: blsr32_load:
+; CHECK-LABEL: blsr32_load:
; CHECK: blsrl ({{.*}})
}
@@ -217,14 +287,14 @@ define i64 @blsr64(i64 %x) nounwind readnone {
%tmp = sub i64 %x, 1
%tmp2 = and i64 %tmp, %x
ret i64 %tmp2
-; CHECK: blsr64:
+; CHECK-LABEL: blsr64:
; CHECK: blsrq
}
define i32 @pdep32(i32 %x, i32 %y) nounwind readnone {
%tmp = tail call i32 @llvm.x86.bmi.pdep.32(i32 %x, i32 %y)
ret i32 %tmp
-; CHECK: pdep32:
+; CHECK-LABEL: pdep32:
; CHECK: pdepl
}
@@ -232,7 +302,7 @@ define i32 @pdep32_load(i32 %x, i32* %y) nounwind readnone {
%y1 = load i32* %y
%tmp = tail call i32 @llvm.x86.bmi.pdep.32(i32 %x, i32 %y1)
ret i32 %tmp
-; CHECK: pdep32_load:
+; CHECK-LABEL: pdep32_load:
; CHECK: pdepl ({{.*}})
}
@@ -241,7 +311,7 @@ declare i32 @llvm.x86.bmi.pdep.32(i32, i32) nounwind readnone
define i64 @pdep64(i64 %x, i64 %y) nounwind readnone {
%tmp = tail call i64 @llvm.x86.bmi.pdep.64(i64 %x, i64 %y)
ret i64 %tmp
-; CHECK: pdep64:
+; CHECK-LABEL: pdep64:
; CHECK: pdepq
}
@@ -250,7 +320,7 @@ declare i64 @llvm.x86.bmi.pdep.64(i64, i64) nounwind readnone
define i32 @pext32(i32 %x, i32 %y) nounwind readnone {
%tmp = tail call i32 @llvm.x86.bmi.pext.32(i32 %x, i32 %y)
ret i32 %tmp
-; CHECK: pext32:
+; CHECK-LABEL: pext32:
; CHECK: pextl
}
@@ -258,7 +328,7 @@ define i32 @pext32_load(i32 %x, i32* %y) nounwind readnone {
%y1 = load i32* %y
%tmp = tail call i32 @llvm.x86.bmi.pext.32(i32 %x, i32 %y1)
ret i32 %tmp
-; CHECK: pext32_load:
+; CHECK-LABEL: pext32_load:
; CHECK: pextl ({{.*}})
}
@@ -267,7 +337,7 @@ declare i32 @llvm.x86.bmi.pext.32(i32, i32) nounwind readnone
define i64 @pext64(i64 %x, i64 %y) nounwind readnone {
%tmp = tail call i64 @llvm.x86.bmi.pext.64(i64 %x, i64 %y)
ret i64 %tmp
-; CHECK: pext64:
+; CHECK-LABEL: pext64:
; CHECK: pextq
}
diff --git a/test/CodeGen/X86/bool-simplify.ll b/test/CodeGen/X86/bool-simplify.ll
index fa6f6e85e9b81..a0a1c3646624f 100644
--- a/test/CodeGen/X86/bool-simplify.ll
+++ b/test/CodeGen/X86/bool-simplify.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86-64 -mattr=+sse41,-avx,+rdrand,+rdseed | FileCheck %s
+; RUN: llc < %s -march=x86-64 -mattr=+sse4.1,-avx,+rdrnd,+rdseed | FileCheck %s
define i32 @foo(<2 x i64> %c, i32 %a, i32 %b) {
%t1 = call i32 @llvm.x86.sse41.ptestz(<2 x i64> %c, <2 x i64> %c)
diff --git a/test/CodeGen/X86/brcond.ll b/test/CodeGen/X86/brcond.ll
index bc4032b13cc08..3ebe1a1d23575 100644
--- a/test/CodeGen/X86/brcond.ll
+++ b/test/CodeGen/X86/brcond.ll
@@ -4,7 +4,7 @@
define i32 @test1(i32 %a, i32 %b) nounwind ssp {
entry:
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: xorb
; CHECK-NOT: andb
; CHECK-NOT: shrb
@@ -44,7 +44,7 @@ bb1: ; preds = %entry
return: ; preds = %entry
ret i32 192
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK: movl 4(%esp), %eax
; CHECK-NEXT: orl 8(%esp), %eax
; CHECK-NEXT: jne LBB1_2
@@ -63,7 +63,7 @@ bb1: ; preds = %entry
return: ; preds = %entry
ret i32 192
-; CHECK: test3:
+; CHECK-LABEL: test3:
; CHECK: movl 4(%esp), %eax
; CHECK-NEXT: orl 8(%esp), %eax
; CHECK-NEXT: je LBB2_2
@@ -113,7 +113,7 @@ declare i32 @llvm.x86.sse41.ptestc(<4 x float> %p1, <4 x float> %p2) nounwind
define <4 x float> @test5(<4 x float> %a, <4 x float> %b) nounwind {
entry:
-; CHECK: test5:
+; CHECK-LABEL: test5:
; CHECK: ptest
; CHECK-NEXT: jne
; CHECK: ret
@@ -137,7 +137,7 @@ return:
define <4 x float> @test7(<4 x float> %a, <4 x float> %b) nounwind {
entry:
-; CHECK: test7:
+; CHECK-LABEL: test7:
; CHECK: ptest
; CHECK-NEXT: jne
; CHECK: ret
@@ -161,7 +161,7 @@ return:
define <4 x float> @test8(<4 x float> %a, <4 x float> %b) nounwind {
entry:
-; CHECK: test8:
+; CHECK-LABEL: test8:
; CHECK: ptest
; CHECK-NEXT: jae
; CHECK: ret
@@ -185,7 +185,7 @@ return:
define <4 x float> @test10(<4 x float> %a, <4 x float> %b) nounwind {
entry:
-; CHECK: test10:
+; CHECK-LABEL: test10:
; CHECK: ptest
; CHECK-NEXT: jae
; CHECK: ret
@@ -209,7 +209,7 @@ return:
define <4 x float> @test11(<4 x float> %a, <4 x float> %b) nounwind {
entry:
-; CHECK: test11:
+; CHECK-LABEL: test11:
; CHECK: ptest
; CHECK-NEXT: jne
; CHECK: ret
@@ -233,7 +233,7 @@ return:
define <4 x float> @test12(<4 x float> %a, <4 x float> %b) nounwind {
entry:
-; CHECK: test12:
+; CHECK-LABEL: test12:
; CHECK: ptest
; CHECK-NEXT: je
; CHECK: ret
diff --git a/test/CodeGen/X86/break-anti-dependencies.ll b/test/CodeGen/X86/break-anti-dependencies.ll
index c94261467c9db..614d0adc72713 100644
--- a/test/CodeGen/X86/break-anti-dependencies.ll
+++ b/test/CodeGen/X86/break-anti-dependencies.ll
@@ -1,7 +1,7 @@
; Without list-burr scheduling we may not see the difference in codegen here.
; Use a subtarget that has post-RA scheduling enabled because the anti-dependency
; breaker requires liveness information to be kept.
-; RUN: llc < %s -march=x86-64 -mcpu=atom -post-RA-scheduler -pre-RA-sched=list-burr -break-anti-dependencies=none > %t
+; RUN: llc < %s -march=x86-64 -mcpu=atom -enable-misched=false -post-RA-scheduler -pre-RA-sched=list-burr -break-anti-dependencies=none > %t
; RUN: grep "%xmm0" %t | count 14
; RUN: not grep "%xmm1" %t
; RUN: llc < %s -march=x86-64 -mcpu=atom -post-RA-scheduler -break-anti-dependencies=critical > %t
diff --git a/test/CodeGen/X86/break-avx-dep.ll b/test/CodeGen/X86/break-avx-dep.ll
new file mode 100644
index 0000000000000..210bda136b57e
--- /dev/null
+++ b/test/CodeGen/X86/break-avx-dep.ll
@@ -0,0 +1,29 @@
+; RUN: llc < %s -march=x86-64 -mattr=+avx | FileCheck %s
+;
+; rdar:15221834 False AVX register dependencies cause 5x slowdown on
+; flops-6. Make sure the unused register read by vcvtsi2sdq is zeroed
+; to avoid cyclic dependence on a write to the same register in a
+; previous iteration.
+
+; CHECK-LABEL: t1:
+; CHECK-LABEL: %loop
+; CHECK: vxorps %[[REG:xmm.]], %{{xmm.}}, %{{xmm.}}
+; CHECK: vcvtsi2sdq %{{r[0-9a-x]+}}, %[[REG]], %{{xmm.}}
+define i64 @t1(i64* nocapture %x, double* nocapture %y) nounwind {
+entry:
+ %vx = load i64* %x
+ br label %loop
+loop:
+ %i = phi i64 [ 1, %entry ], [ %inc, %loop ]
+ %s1 = phi i64 [ %vx, %entry ], [ %s2, %loop ]
+ %fi = sitofp i64 %i to double
+ %vy = load double* %y
+ %fipy = fadd double %fi, %vy
+ %iipy = fptosi double %fipy to i64
+ %s2 = add i64 %s1, %iipy
+ %inc = add nsw i64 %i, 1
+ %exitcond = icmp eq i64 %inc, 156250000
+ br i1 %exitcond, label %ret, label %loop
+ret:
+ ret i64 %s2
+}
diff --git a/test/CodeGen/X86/break-sse-dep.ll b/test/CodeGen/X86/break-sse-dep.ll
index 4d801891da5cc..8124d6f522633 100644
--- a/test/CodeGen/X86/break-sse-dep.ll
+++ b/test/CodeGen/X86/break-sse-dep.ll
@@ -3,7 +3,7 @@
define double @t1(float* nocapture %x) nounwind readonly ssp {
entry:
-; CHECK: t1:
+; CHECK-LABEL: t1:
; CHECK: movss ([[A0:%rdi|%rcx]]), %xmm0
; CHECK: cvtss2sd %xmm0, %xmm0
@@ -14,7 +14,7 @@ entry:
define float @t2(double* nocapture %x) nounwind readonly ssp optsize {
entry:
-; CHECK: t2:
+; CHECK-LABEL: t2:
; CHECK: cvtsd2ss ([[A0]]), %xmm0
%0 = load double* %x, align 8
%1 = fptrunc double %0 to float
@@ -23,7 +23,7 @@ entry:
define float @squirtf(float* %x) nounwind {
entry:
-; CHECK: squirtf:
+; CHECK-LABEL: squirtf:
; CHECK: movss ([[A0]]), %xmm0
; CHECK: sqrtss %xmm0, %xmm0
%z = load float* %x
@@ -33,7 +33,7 @@ entry:
define double @squirt(double* %x) nounwind {
entry:
-; CHECK: squirt:
+; CHECK-LABEL: squirt:
; CHECK: sqrtsd ([[A0]]), %xmm0
%z = load double* %x
%t = call double @llvm.sqrt.f64(double %z)
@@ -42,7 +42,7 @@ entry:
define float @squirtf_size(float* %x) nounwind optsize {
entry:
-; CHECK: squirtf_size:
+; CHECK-LABEL: squirtf_size:
; CHECK: sqrtss ([[A0]]), %xmm0
%z = load float* %x
%t = call float @llvm.sqrt.f32(float %z)
@@ -51,7 +51,7 @@ entry:
define double @squirt_size(double* %x) nounwind optsize {
entry:
-; CHECK: squirt_size:
+; CHECK-LABEL: squirt_size:
; CHECK: sqrtsd ([[A0]]), %xmm0
%z = load double* %x
%t = call double @llvm.sqrt.f64(double %z)
diff --git a/test/CodeGen/X86/bswap-inline-asm.ll b/test/CodeGen/X86/bswap-inline-asm.ll
index d69bfa6e7eb71..f8f154c0688fe 100644
--- a/test/CodeGen/X86/bswap-inline-asm.ll
+++ b/test/CodeGen/X86/bswap-inline-asm.ll
@@ -3,84 +3,84 @@
; CHK-NOT: InlineAsm
-; CHECK: foo:
+; CHECK-LABEL: foo:
; CHECK: bswapq
define i64 @foo(i64 %x) nounwind {
%asmtmp = tail call i64 asm "bswap $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i64 %x) nounwind
ret i64 %asmtmp
}
-; CHECK: bar:
+; CHECK-LABEL: bar:
; CHECK: bswapq
define i64 @bar(i64 %x) nounwind {
%asmtmp = tail call i64 asm "bswapq ${0:q}", "=r,0,~{dirflag},~{fpsr},~{flags}"(i64 %x) nounwind
ret i64 %asmtmp
}
-; CHECK: pen:
+; CHECK-LABEL: pen:
; CHECK: bswapl
define i32 @pen(i32 %x) nounwind {
%asmtmp = tail call i32 asm "bswapl ${0:q}", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %x) nounwind
ret i32 %asmtmp
}
-; CHECK: s16:
+; CHECK-LABEL: s16:
; CHECK: rolw $8,
define zeroext i16 @s16(i16 zeroext %x) nounwind {
%asmtmp = tail call i16 asm "rorw $$8, ${0:w}", "=r,0,~{dirflag},~{fpsr},~{flags},~{cc}"(i16 %x) nounwind
ret i16 %asmtmp
}
-; CHECK: t16:
+; CHECK-LABEL: t16:
; CHECK: rolw $8,
define zeroext i16 @t16(i16 zeroext %x) nounwind {
%asmtmp = tail call i16 asm "rorw $$8, ${0:w}", "=r,0,~{cc},~{dirflag},~{fpsr},~{flags}"(i16 %x) nounwind
ret i16 %asmtmp
}
-; CHECK: u16:
+; CHECK-LABEL: u16:
; CHECK: rolw $8,
define zeroext i16 @u16(i16 zeroext %x) nounwind {
%asmtmp = tail call i16 asm "rolw $$8, ${0:w}", "=r,0,~{dirflag},~{fpsr},~{flags},~{cc}"(i16 %x) nounwind
ret i16 %asmtmp
}
-; CHECK: v16:
+; CHECK-LABEL: v16:
; CHECK: rolw $8,
define zeroext i16 @v16(i16 zeroext %x) nounwind {
%asmtmp = tail call i16 asm "rolw $$8, ${0:w}", "=r,0,~{cc},~{dirflag},~{fpsr},~{flags}"(i16 %x) nounwind
ret i16 %asmtmp
}
-; CHECK: s32:
+; CHECK-LABEL: s32:
; CHECK: bswapl
define i32 @s32(i32 %x) nounwind {
%asmtmp = tail call i32 asm "bswap $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %x) nounwind
ret i32 %asmtmp
}
-; CHECK: t32:
+; CHECK-LABEL: t32:
; CHECK: bswapl
define i32 @t32(i32 %x) nounwind {
%asmtmp = tail call i32 asm "bswap $0", "=r,0,~{dirflag},~{flags},~{fpsr}"(i32 %x) nounwind
ret i32 %asmtmp
}
-; CHECK: u32:
+; CHECK-LABEL: u32:
; CHECK: bswapl
define i32 @u32(i32 %x) nounwind {
%asmtmp = tail call i32 asm "rorw $$8, ${0:w};rorl $$16, $0;rorw $$8, ${0:w}", "=r,0,~{cc},~{dirflag},~{flags},~{fpsr}"(i32 %x) nounwind
ret i32 %asmtmp
}
-; CHECK: s64:
+; CHECK-LABEL: s64:
; CHECK: bswapq
define i64 @s64(i64 %x) nounwind {
%asmtmp = tail call i64 asm "bswap ${0:q}", "=r,0,~{dirflag},~{fpsr},~{flags}"(i64 %x) nounwind
ret i64 %asmtmp
}
-; CHECK: t64:
+; CHECK-LABEL: t64:
; CHECK: bswapq
define i64 @t64(i64 %x) nounwind {
%asmtmp = tail call i64 asm "bswap ${0:q}", "=r,0,~{fpsr},~{dirflag},~{flags}"(i64 %x) nounwind
diff --git a/test/CodeGen/X86/bswap.ll b/test/CodeGen/X86/bswap.ll
index d2d6f9099a1b8..e6a456c39ddd0 100644
--- a/test/CodeGen/X86/bswap.ll
+++ b/test/CodeGen/X86/bswap.ll
@@ -1,6 +1,7 @@
; bswap should be constant folded when it is passed a constant argument
; RUN: llc < %s -march=x86 -mcpu=i686 | FileCheck %s
+; RUN: llc < %s -march=x86-64 | FileCheck %s --check-prefix=CHECK64
declare i16 @llvm.bswap.i16(i16)
@@ -9,23 +10,32 @@ declare i32 @llvm.bswap.i32(i32)
declare i64 @llvm.bswap.i64(i64)
define i16 @W(i16 %A) {
-; CHECK: W:
+; CHECK-LABEL: W:
; CHECK: rolw $8, %ax
+
+; CHECK64-LABEL: W:
+; CHECK64: rolw $8, %
%Z = call i16 @llvm.bswap.i16( i16 %A ) ; <i16> [#uses=1]
ret i16 %Z
}
define i32 @X(i32 %A) {
-; CHECK: X:
+; CHECK-LABEL: X:
; CHECK: bswapl %eax
+
+; CHECK64-LABEL: X:
+; CHECK64: bswapl %
%Z = call i32 @llvm.bswap.i32( i32 %A ) ; <i32> [#uses=1]
ret i32 %Z
}
define i64 @Y(i64 %A) {
-; CHECK: Y:
+; CHECK-LABEL: Y:
; CHECK: bswapl %eax
; CHECK: bswapl %edx
+
+; CHECK64-LABEL: Y:
+; CHECK64: bswapq %
%Z = call i64 @llvm.bswap.i64( i64 %A ) ; <i64> [#uses=1]
ret i64 %Z
}
@@ -33,9 +43,13 @@ define i64 @Y(i64 %A) {
; rdar://9164521
define i32 @test1(i32 %a) nounwind readnone {
entry:
-; CHECK: test1
-; CHECK: bswapl %eax
-; CHECK: shrl $16, %eax
+; CHECK-LABEL: test1:
+; CHECK: bswapl [[REG:%.*]]
+; CHECK: shrl $16, [[REG]]
+
+; CHECK64-LABEL: test1:
+; CHECK64: bswapl [[REG:%.*]]
+; CHECK64: shrl $16, [[REG]]
%and = lshr i32 %a, 8
%shr3 = and i32 %and, 255
%and2 = shl i32 %a, 8
@@ -46,9 +60,13 @@ entry:
define i32 @test2(i32 %a) nounwind readnone {
entry:
-; CHECK: test2
-; CHECK: bswapl %eax
-; CHECK: sarl $16, %eax
+; CHECK-LABEL: test2:
+; CHECK: bswapl [[REG:%.*]]
+; CHECK: sarl $16, [[REG]]
+
+; CHECK64-LABEL: test2:
+; CHECK64: bswapl [[REG:%.*]]
+; CHECK64: sarl $16, [[REG]]
%and = lshr i32 %a, 8
%shr4 = and i32 %and, 255
%and2 = shl i32 %a, 8
@@ -57,3 +75,80 @@ entry:
%conv3 = ashr exact i32 %sext, 16
ret i32 %conv3
}
+
+@var8 = global i8 0
+@var16 = global i16 0
+
+; The "shl" below can move bits into the high parts of the value, so the
+; operation is not a "bswap, shr" pair.
+
+; rdar://problem/14814049
+define i64 @not_bswap() {
+; CHECK-LABEL: not_bswap:
+; CHECK-NOT: bswapl
+; CHECK: ret
+
+; CHECK64-LABEL: not_bswap:
+; CHECK64-NOT: bswapq
+; CHECK64: ret
+ %init = load i16* @var16
+ %big = zext i16 %init to i64
+
+ %hishifted = lshr i64 %big, 8
+ %loshifted = shl i64 %big, 8
+
+ %notswapped = or i64 %hishifted, %loshifted
+
+ ret i64 %notswapped
+}
+
+; This time, the lshr (and subsequent or) is completely useless. While it's
+; technically correct to convert this into a "bswap, shr", it's suboptimal. A
+; simple shl works better.
+
+define i64 @not_useful_bswap() {
+; CHECK-LABEL: not_useful_bswap:
+; CHECK-NOT: bswapl
+; CHECK: ret
+
+; CHECK64-LABEL: not_useful_bswap:
+; CHECK64-NOT: bswapq
+; CHECK64: ret
+
+ %init = load i8* @var8
+ %big = zext i8 %init to i64
+
+ %hishifted = lshr i64 %big, 8
+ %loshifted = shl i64 %big, 8
+
+ %notswapped = or i64 %hishifted, %loshifted
+
+ ret i64 %notswapped
+}
+
+; Finally, it *is* OK to just mask off the shl if we know that the value is zero
+; beyond 16 bits anyway. This is a legitimate bswap.
+
+define i64 @finally_useful_bswap() {
+; CHECK-LABEL: finally_useful_bswap:
+; CHECK: bswapl [[REG:%.*]]
+; CHECK: shrl $16, [[REG]]
+; CHECK: ret
+
+; CHECK64-LABEL: finally_useful_bswap:
+; CHECK64: bswapq [[REG:%.*]]
+; CHECK64: shrq $48, [[REG]]
+; CHECK64: ret
+
+ %init = load i16* @var16
+ %big = zext i16 %init to i64
+
+ %hishifted = lshr i64 %big, 8
+ %lomasked = and i64 %big, 255
+ %loshifted = shl i64 %lomasked, 8
+
+ %swapped = or i64 %hishifted, %loshifted
+
+ ret i64 %swapped
+}
+
diff --git a/test/CodeGen/X86/bt.ll b/test/CodeGen/X86/bt.ll
index e28923bb21d2b..f12a3543b072a 100644
--- a/test/CodeGen/X86/bt.ll
+++ b/test/CodeGen/X86/bt.ll
@@ -38,7 +38,7 @@ UnifiedReturnBlock: ; preds = %entry
define void @test2b(i32 %x, i32 %n) nounwind {
entry:
; CHECK: test2b
-; CHECK: btl %eax, %ecx
+; CHECK: btl %e{{..}}, %e{{..}}
; CHECK: jb
%tmp29 = lshr i32 %x, %n ; <i32> [#uses=1]
%tmp3 = and i32 1, %tmp29
@@ -56,7 +56,7 @@ UnifiedReturnBlock: ; preds = %entry
define void @atest2(i32 %x, i32 %n) nounwind {
entry:
; CHECK: atest2
-; CHECK: btl %eax, %ecx
+; CHECK: btl %e{{..}}, %e{{..}}
; CHECK: jb
%tmp29 = ashr i32 %x, %n ; <i32> [#uses=1]
%tmp3 = and i32 %tmp29, 1 ; <i32> [#uses=1]
@@ -74,7 +74,7 @@ UnifiedReturnBlock: ; preds = %entry
define void @atest2b(i32 %x, i32 %n) nounwind {
entry:
; CHECK: atest2b
-; CHECK: btl %eax, %ecx
+; CHECK: btl %e{{..}}, %e{{..}}
%tmp29 = ashr i32 %x, %n ; <i32> [#uses=1]
%tmp3 = and i32 1, %tmp29
%tmp4 = icmp eq i32 %tmp3, 0 ; <i1> [#uses=1]
@@ -91,7 +91,7 @@ UnifiedReturnBlock: ; preds = %entry
define void @test3(i32 %x, i32 %n) nounwind {
entry:
; CHECK: test3
-; CHECK: btl %eax, %ecx
+; CHECK: btl %e{{..}}, %e{{..}}
; CHECK: jb
%tmp29 = shl i32 1, %n ; <i32> [#uses=1]
%tmp3 = and i32 %tmp29, %x ; <i32> [#uses=1]
@@ -109,7 +109,7 @@ UnifiedReturnBlock: ; preds = %entry
define void @test3b(i32 %x, i32 %n) nounwind {
entry:
; CHECK: test3b
-; CHECK: btl %eax, %ecx
+; CHECK: btl %e{{..}}, %e{{..}}
; CHECK: jb
%tmp29 = shl i32 1, %n ; <i32> [#uses=1]
%tmp3 = and i32 %x, %tmp29
@@ -127,7 +127,7 @@ UnifiedReturnBlock: ; preds = %entry
define void @testne2(i32 %x, i32 %n) nounwind {
entry:
; CHECK: testne2
-; CHECK: btl %eax, %ecx
+; CHECK: btl %e{{..}}, %e{{..}}
; CHECK: jae
%tmp29 = lshr i32 %x, %n ; <i32> [#uses=1]
%tmp3 = and i32 %tmp29, 1 ; <i32> [#uses=1]
@@ -145,7 +145,7 @@ UnifiedReturnBlock: ; preds = %entry
define void @testne2b(i32 %x, i32 %n) nounwind {
entry:
; CHECK: testne2b
-; CHECK: btl %eax, %ecx
+; CHECK: btl %e{{..}}, %e{{..}}
; CHECK: jae
%tmp29 = lshr i32 %x, %n ; <i32> [#uses=1]
%tmp3 = and i32 1, %tmp29
@@ -163,7 +163,7 @@ UnifiedReturnBlock: ; preds = %entry
define void @atestne2(i32 %x, i32 %n) nounwind {
entry:
; CHECK: atestne2
-; CHECK: btl %eax, %ecx
+; CHECK: btl %e{{..}}, %e{{..}}
; CHECK: jae
%tmp29 = ashr i32 %x, %n ; <i32> [#uses=1]
%tmp3 = and i32 %tmp29, 1 ; <i32> [#uses=1]
@@ -181,7 +181,7 @@ UnifiedReturnBlock: ; preds = %entry
define void @atestne2b(i32 %x, i32 %n) nounwind {
entry:
; CHECK: atestne2b
-; CHECK: btl %eax, %ecx
+; CHECK: btl %e{{..}}, %e{{..}}
; CHECK: jae
%tmp29 = ashr i32 %x, %n ; <i32> [#uses=1]
%tmp3 = and i32 1, %tmp29
@@ -199,7 +199,7 @@ UnifiedReturnBlock: ; preds = %entry
define void @testne3(i32 %x, i32 %n) nounwind {
entry:
; CHECK: testne3
-; CHECK: btl %eax, %ecx
+; CHECK: btl %e{{..}}, %e{{..}}
; CHECK: jae
%tmp29 = shl i32 1, %n ; <i32> [#uses=1]
%tmp3 = and i32 %tmp29, %x ; <i32> [#uses=1]
@@ -217,7 +217,7 @@ UnifiedReturnBlock: ; preds = %entry
define void @testne3b(i32 %x, i32 %n) nounwind {
entry:
; CHECK: testne3b
-; CHECK: btl %eax, %ecx
+; CHECK: btl %e{{..}}, %e{{..}}
; CHECK: jae
%tmp29 = shl i32 1, %n ; <i32> [#uses=1]
%tmp3 = and i32 %x, %tmp29
@@ -235,7 +235,7 @@ UnifiedReturnBlock: ; preds = %entry
define void @query2(i32 %x, i32 %n) nounwind {
entry:
; CHECK: query2
-; CHECK: btl %eax, %ecx
+; CHECK: btl %e{{..}}, %e{{..}}
; CHECK: jae
%tmp29 = lshr i32 %x, %n ; <i32> [#uses=1]
%tmp3 = and i32 %tmp29, 1 ; <i32> [#uses=1]
@@ -253,7 +253,7 @@ UnifiedReturnBlock: ; preds = %entry
define void @query2b(i32 %x, i32 %n) nounwind {
entry:
; CHECK: query2b
-; CHECK: btl %eax, %ecx
+; CHECK: btl %e{{..}}, %e{{..}}
; CHECK: jae
%tmp29 = lshr i32 %x, %n ; <i32> [#uses=1]
%tmp3 = and i32 1, %tmp29
@@ -271,7 +271,7 @@ UnifiedReturnBlock: ; preds = %entry
define void @aquery2(i32 %x, i32 %n) nounwind {
entry:
; CHECK: aquery2
-; CHECK: btl %eax, %ecx
+; CHECK: btl %e{{..}}, %e{{..}}
; CHECK: jae
%tmp29 = ashr i32 %x, %n ; <i32> [#uses=1]
%tmp3 = and i32 %tmp29, 1 ; <i32> [#uses=1]
@@ -289,7 +289,7 @@ UnifiedReturnBlock: ; preds = %entry
define void @aquery2b(i32 %x, i32 %n) nounwind {
entry:
; CHECK: aquery2b
-; CHECK: btl %eax, %ecx
+; CHECK: btl %e{{..}}, %e{{..}}
; CHECK: jae
%tmp29 = ashr i32 %x, %n ; <i32> [#uses=1]
%tmp3 = and i32 1, %tmp29
@@ -307,7 +307,7 @@ UnifiedReturnBlock: ; preds = %entry
define void @query3(i32 %x, i32 %n) nounwind {
entry:
; CHECK: query3
-; CHECK: btl %eax, %ecx
+; CHECK: btl %e{{..}}, %e{{..}}
; CHECK: jae
%tmp29 = shl i32 1, %n ; <i32> [#uses=1]
%tmp3 = and i32 %tmp29, %x ; <i32> [#uses=1]
@@ -325,7 +325,7 @@ UnifiedReturnBlock: ; preds = %entry
define void @query3b(i32 %x, i32 %n) nounwind {
entry:
; CHECK: query3b
-; CHECK: btl %eax, %ecx
+; CHECK: btl %e{{..}}, %e{{..}}
; CHECK: jae
%tmp29 = shl i32 1, %n ; <i32> [#uses=1]
%tmp3 = and i32 %x, %tmp29
@@ -343,7 +343,7 @@ UnifiedReturnBlock: ; preds = %entry
define void @query3x(i32 %x, i32 %n) nounwind {
entry:
; CHECK: query3x
-; CHECK: btl %eax, %ecx
+; CHECK: btl %e{{..}}, %e{{..}}
; CHECK: jae
%tmp29 = shl i32 1, %n ; <i32> [#uses=1]
%tmp3 = and i32 %tmp29, %x ; <i32> [#uses=1]
@@ -361,7 +361,7 @@ UnifiedReturnBlock: ; preds = %entry
define void @query3bx(i32 %x, i32 %n) nounwind {
entry:
; CHECK: query3bx
-; CHECK: btl %eax, %ecx
+; CHECK: btl %e{{..}}, %e{{..}}
; CHECK: jae
%tmp29 = shl i32 1, %n ; <i32> [#uses=1]
%tmp3 = and i32 %x, %tmp29
@@ -379,7 +379,7 @@ UnifiedReturnBlock: ; preds = %entry
define void @queryne2(i32 %x, i32 %n) nounwind {
entry:
; CHECK: queryne2
-; CHECK: btl %eax, %ecx
+; CHECK: btl %e{{..}}, %e{{..}}
; CHECK: jb
%tmp29 = lshr i32 %x, %n ; <i32> [#uses=1]
%tmp3 = and i32 %tmp29, 1 ; <i32> [#uses=1]
@@ -397,7 +397,7 @@ UnifiedReturnBlock: ; preds = %entry
define void @queryne2b(i32 %x, i32 %n) nounwind {
entry:
; CHECK: queryne2b
-; CHECK: btl %eax, %ecx
+; CHECK: btl %e{{..}}, %e{{..}}
; CHECK: jb
%tmp29 = lshr i32 %x, %n ; <i32> [#uses=1]
%tmp3 = and i32 1, %tmp29
@@ -415,7 +415,7 @@ UnifiedReturnBlock: ; preds = %entry
define void @aqueryne2(i32 %x, i32 %n) nounwind {
entry:
; CHECK: aqueryne2
-; CHECK: btl %eax, %ecx
+; CHECK: btl %e{{..}}, %e{{..}}
; CHECK: jb
%tmp29 = ashr i32 %x, %n ; <i32> [#uses=1]
%tmp3 = and i32 %tmp29, 1 ; <i32> [#uses=1]
@@ -433,7 +433,7 @@ UnifiedReturnBlock: ; preds = %entry
define void @aqueryne2b(i32 %x, i32 %n) nounwind {
entry:
; CHECK: aqueryne2b
-; CHECK: btl %eax, %ecx
+; CHECK: btl %e{{..}}, %e{{..}}
; CHECK: jb
%tmp29 = ashr i32 %x, %n ; <i32> [#uses=1]
%tmp3 = and i32 1, %tmp29
@@ -451,7 +451,7 @@ UnifiedReturnBlock: ; preds = %entry
define void @queryne3(i32 %x, i32 %n) nounwind {
entry:
; CHECK: queryne3
-; CHECK: btl %eax, %ecx
+; CHECK: btl %e{{..}}, %e{{..}}
; CHECK: jb
%tmp29 = shl i32 1, %n ; <i32> [#uses=1]
%tmp3 = and i32 %tmp29, %x ; <i32> [#uses=1]
@@ -469,7 +469,7 @@ UnifiedReturnBlock: ; preds = %entry
define void @queryne3b(i32 %x, i32 %n) nounwind {
entry:
; CHECK: queryne3b
-; CHECK: btl %eax, %ecx
+; CHECK: btl %e{{..}}, %e{{..}}
; CHECK: jb
%tmp29 = shl i32 1, %n ; <i32> [#uses=1]
%tmp3 = and i32 %x, %tmp29
@@ -487,7 +487,7 @@ UnifiedReturnBlock: ; preds = %entry
define void @queryne3x(i32 %x, i32 %n) nounwind {
entry:
; CHECK: queryne3x
-; CHECK: btl %eax, %ecx
+; CHECK: btl %e{{..}}, %e{{..}}
; CHECK: jb
%tmp29 = shl i32 1, %n ; <i32> [#uses=1]
%tmp3 = and i32 %tmp29, %x ; <i32> [#uses=1]
@@ -505,7 +505,7 @@ UnifiedReturnBlock: ; preds = %entry
define void @queryne3bx(i32 %x, i32 %n) nounwind {
entry:
; CHECK: queryne3bx
-; CHECK: btl %eax, %ecx
+; CHECK: btl %e{{..}}, %e{{..}}
; CHECK: jb
%tmp29 = shl i32 1, %n ; <i32> [#uses=1]
%tmp3 = and i32 %x, %tmp29
diff --git a/test/CodeGen/X86/btq.ll b/test/CodeGen/X86/btq.ll
index 9c137a7239bb3..add65765e3890 100644
--- a/test/CodeGen/X86/btq.ll
+++ b/test/CodeGen/X86/btq.ll
@@ -7,7 +7,7 @@ define void @test1(i64 %foo) nounwind {
%tobool = icmp eq i64 %and, 0
br i1 %tobool, label %if.end, label %if.then
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: btq $32
if.then:
@@ -23,7 +23,7 @@ define void @test2(i64 %foo) nounwind {
%tobool = icmp eq i64 %and, 0
br i1 %tobool, label %if.end, label %if.then
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK: testl $-2147483648
if.then:
diff --git a/test/CodeGen/X86/byval7.ll b/test/CodeGen/X86/byval7.ll
index 98a26e47ab76c..42751d7dbc935 100644
--- a/test/CodeGen/X86/byval7.ll
+++ b/test/CodeGen/X86/byval7.ll
@@ -6,15 +6,15 @@
define i32 @main() nounwind {
entry:
-; CHECK: main:
-; CHECK: movl $1, (%esp)
+; CHECK-LABEL: main:
; CHECK: leal 16(%esp), %edi
; CHECK: leal 160(%esp), %esi
; CHECK: rep;movsl
+; CHECK: movl $1, (%esp)
%s = alloca %struct.S ; <%struct.S*> [#uses=2]
%tmp15 = getelementptr %struct.S* %s, i32 0, i32 0 ; <<2 x i64>*> [#uses=1]
store <2 x i64> < i64 8589934595, i64 1 >, <2 x i64>* %tmp15, align 16
- call void @t( i32 1, %struct.S* byval %s ) nounwind
+ call void @t( i32 1, %struct.S* byval %s ) nounwind
ret i32 0
}
diff --git a/test/CodeGen/X86/call-push.ll b/test/CodeGen/X86/call-push.ll
index e69f8c1ebf794..ccb98fefae2a2 100644
--- a/test/CodeGen/X86/call-push.ll
+++ b/test/CodeGen/X86/call-push.ll
@@ -4,7 +4,7 @@
%struct.range_t = type { float, float, i32, i32, i32, [0 x i8] }
define i32 @decode_byte(%struct.decode_t* %decode) nounwind {
-; CHECK: decode_byte:
+; CHECK-LABEL: decode_byte:
; CHECK: pushl
; CHECK: popl
; CHECK: jmp
diff --git a/test/CodeGen/X86/chain_order.ll b/test/CodeGen/X86/chain_order.ll
new file mode 100644
index 0000000000000..c88726e75a812
--- /dev/null
+++ b/test/CodeGen/X86/chain_order.ll
@@ -0,0 +1,37 @@
+; RUN: llc < %s -mcpu=corei7-avx -mtriple=x86_64-linux | FileCheck %s
+
+;CHECK-LABEL: cftx020:
+;CHECK: vmovsd (%rdi), %xmm{{.*}}
+;CHECK: vmovsd 16(%rdi), %xmm{{.*}}
+;CHECK: vmovsd 24(%rdi), %xmm{{.*}}
+;CHECK: vmovhpd 8(%rdi), %xmm{{.*}}
+;CHECK: vmovupd %xmm{{.*}}, (%rdi)
+;CHECK: vmovupd %xmm{{.*}}, 16(%rdi)
+;CHECK: ret
+
+; A test from pifft (after SLP-vectorization) that fails when we drop the chain on newly merged loads.
+define void @cftx020(double* nocapture %a) {
+entry:
+ %0 = load double* %a, align 8
+ %arrayidx1 = getelementptr inbounds double* %a, i64 2
+ %1 = load double* %arrayidx1, align 8
+ %arrayidx2 = getelementptr inbounds double* %a, i64 1
+ %2 = load double* %arrayidx2, align 8
+ %arrayidx3 = getelementptr inbounds double* %a, i64 3
+ %3 = load double* %arrayidx3, align 8
+ %4 = insertelement <2 x double> undef, double %0, i32 0
+ %5 = insertelement <2 x double> %4, double %3, i32 1
+ %6 = insertelement <2 x double> undef, double %1, i32 0
+ %7 = insertelement <2 x double> %6, double %2, i32 1
+ %8 = fadd <2 x double> %5, %7
+ %9 = bitcast double* %a to <2 x double>*
+ store <2 x double> %8, <2 x double>* %9, align 8
+ %10 = insertelement <2 x double> undef, double %0, i32 0
+ %11 = insertelement <2 x double> %10, double %2, i32 1
+ %12 = insertelement <2 x double> undef, double %1, i32 0
+ %13 = insertelement <2 x double> %12, double %3, i32 1
+ %14 = fsub <2 x double> %11, %13
+ %15 = bitcast double* %arrayidx1 to <2 x double>*
+ store <2 x double> %14, <2 x double>* %15, align 8
+ ret void
+}
diff --git a/test/CodeGen/X86/change-compare-stride-1.ll b/test/CodeGen/X86/change-compare-stride-1.ll
index 1c5c113a72324..b45b404c0f3c0 100644
--- a/test/CodeGen/X86/change-compare-stride-1.ll
+++ b/test/CodeGen/X86/change-compare-stride-1.ll
@@ -8,7 +8,7 @@
; XFAIL: *
define void @borf(i8* nocapture %in, i8* nocapture %out) nounwind {
-; CHECK: borf:
+; CHECK-LABEL: borf:
; CHECK-NOT: inc
; CHECK-NOT: leal 1(
; CHECK-NOT: leal -1(
diff --git a/test/CodeGen/X86/change-compare-stride-trickiness-0.ll b/test/CodeGen/X86/change-compare-stride-trickiness-0.ll
index 1f7f6ecafafb2..be9e709191673 100644
--- a/test/CodeGen/X86/change-compare-stride-trickiness-0.ll
+++ b/test/CodeGen/X86/change-compare-stride-trickiness-0.ll
@@ -5,7 +5,7 @@ target triple = "x86_64-apple-darwin9"
; The comparison happens before the relevant use, but it can still be rewritten
; to compare with zero.
-; CHECK: foo:
+; CHECK-LABEL: foo:
; CHECK: align
; CHECK: incl %eax
; CHECK-NEXT: decl %ecx
diff --git a/test/CodeGen/X86/change-compare-stride-trickiness-1.ll b/test/CodeGen/X86/change-compare-stride-trickiness-1.ll
index a3933e2e00a48..63733abc5f347 100644
--- a/test/CodeGen/X86/change-compare-stride-trickiness-1.ll
+++ b/test/CodeGen/X86/change-compare-stride-trickiness-1.ll
@@ -7,7 +7,7 @@
; could be made simpler.
define void @foo() nounwind {
-; CHECK: foo:
+; CHECK-LABEL: foo:
; CHECK-NOT: ret
; CHECK: cmpl $10
; CHECK: ret
diff --git a/test/CodeGen/X86/clz.ll b/test/CodeGen/X86/clz.ll
index 763079f3446f2..6a6f5256f44d7 100644
--- a/test/CodeGen/X86/clz.ll
+++ b/test/CodeGen/X86/clz.ll
@@ -12,7 +12,7 @@ declare i64 @llvm.ctlz.i64(i64, i1)
define i8 @cttz_i8(i8 %x) {
%tmp = call i8 @llvm.cttz.i8( i8 %x, i1 true )
ret i8 %tmp
-; CHECK: cttz_i8:
+; CHECK-LABEL: cttz_i8:
; CHECK: bsfl
; CHECK-NOT: cmov
; CHECK: ret
@@ -21,7 +21,7 @@ define i8 @cttz_i8(i8 %x) {
define i16 @cttz_i16(i16 %x) {
%tmp = call i16 @llvm.cttz.i16( i16 %x, i1 true )
ret i16 %tmp
-; CHECK: cttz_i16:
+; CHECK-LABEL: cttz_i16:
; CHECK: bsfw
; CHECK-NOT: cmov
; CHECK: ret
@@ -30,7 +30,7 @@ define i16 @cttz_i16(i16 %x) {
define i32 @cttz_i32(i32 %x) {
%tmp = call i32 @llvm.cttz.i32( i32 %x, i1 true )
ret i32 %tmp
-; CHECK: cttz_i32:
+; CHECK-LABEL: cttz_i32:
; CHECK: bsfl
; CHECK-NOT: cmov
; CHECK: ret
@@ -39,7 +39,7 @@ define i32 @cttz_i32(i32 %x) {
define i64 @cttz_i64(i64 %x) {
%tmp = call i64 @llvm.cttz.i64( i64 %x, i1 true )
ret i64 %tmp
-; CHECK: cttz_i64:
+; CHECK-LABEL: cttz_i64:
; CHECK: bsfq
; CHECK-NOT: cmov
; CHECK: ret
@@ -49,7 +49,7 @@ define i8 @ctlz_i8(i8 %x) {
entry:
%tmp2 = call i8 @llvm.ctlz.i8( i8 %x, i1 true )
ret i8 %tmp2
-; CHECK: ctlz_i8:
+; CHECK-LABEL: ctlz_i8:
; CHECK: bsrl
; CHECK-NOT: cmov
; CHECK: xorl $7,
@@ -60,7 +60,7 @@ define i16 @ctlz_i16(i16 %x) {
entry:
%tmp2 = call i16 @llvm.ctlz.i16( i16 %x, i1 true )
ret i16 %tmp2
-; CHECK: ctlz_i16:
+; CHECK-LABEL: ctlz_i16:
; CHECK: bsrw
; CHECK-NOT: cmov
; CHECK: xorl $15,
@@ -70,7 +70,7 @@ entry:
define i32 @ctlz_i32(i32 %x) {
%tmp = call i32 @llvm.ctlz.i32( i32 %x, i1 true )
ret i32 %tmp
-; CHECK: ctlz_i32:
+; CHECK-LABEL: ctlz_i32:
; CHECK: bsrl
; CHECK-NOT: cmov
; CHECK: xorl $31,
@@ -80,7 +80,7 @@ define i32 @ctlz_i32(i32 %x) {
define i64 @ctlz_i64(i64 %x) {
%tmp = call i64 @llvm.ctlz.i64( i64 %x, i1 true )
ret i64 %tmp
-; CHECK: ctlz_i64:
+; CHECK-LABEL: ctlz_i64:
; CHECK: bsrq
; CHECK-NOT: cmov
; CHECK: xorq $63,
@@ -90,7 +90,7 @@ define i64 @ctlz_i64(i64 %x) {
define i32 @ctlz_i32_cmov(i32 %n) {
entry:
; Generate a cmov to handle zero inputs when necessary.
-; CHECK: ctlz_i32_cmov:
+; CHECK-LABEL: ctlz_i32_cmov:
; CHECK: bsrl
; CHECK: cmov
; CHECK: xorl $31,
@@ -104,7 +104,7 @@ entry:
; Don't generate the cmovne when the source is known non-zero (and bsr would
; not set ZF).
; rdar://9490949
-; CHECK: ctlz_i32_fold_cmov:
+; CHECK-LABEL: ctlz_i32_fold_cmov:
; CHECK: bsrl
; CHECK-NOT: cmov
; CHECK: xorl $31,
@@ -118,7 +118,7 @@ define i32 @ctlz_bsr(i32 %n) {
entry:
; Don't generate any xors when a 'ctlz' intrinsic is actually used to compute
; the most significant bit, which is what 'bsr' does natively.
-; CHECK: ctlz_bsr:
+; CHECK-LABEL: ctlz_bsr:
; CHECK: bsrl
; CHECK-NOT: xorl
; CHECK: ret
@@ -131,7 +131,7 @@ define i32 @ctlz_bsr_cmov(i32 %n) {
entry:
; Same as ctlz_bsr, but ensure this happens even when there is a potential
; zero.
-; CHECK: ctlz_bsr_cmov:
+; CHECK-LABEL: ctlz_bsr_cmov:
; CHECK: bsrl
; CHECK-NOT: xorl
; CHECK: ret
diff --git a/test/CodeGen/X86/cmov-fp.ll b/test/CodeGen/X86/cmov-fp.ll
index ca91f9ea2c2b1..768af943eb490 100644
--- a/test/CodeGen/X86/cmov-fp.ll
+++ b/test/CodeGen/X86/cmov-fp.ll
@@ -9,16 +9,16 @@ define double @test1(i32 %a, i32 %b, double %x) nounwind {
%sel = select i1 %cmp, double 99.0, double %x
ret double %sel
-; SSE: test1:
+; SSE-LABEL: test1:
; SSE: movsd
-; NOSSE2: test1:
+; NOSSE2-LABEL: test1:
; NOSSE2: fcmovnbe
-; NOSSE1: test1:
+; NOSSE1-LABEL: test1:
; NOSSE1: fcmovnbe
-; NOCMOV: test1:
+; NOCMOV-LABEL: test1:
; NOCMOV: fstp
}
@@ -28,16 +28,16 @@ define double @test2(i32 %a, i32 %b, double %x) nounwind {
%sel = select i1 %cmp, double 99.0, double %x
ret double %sel
-; SSE: test2:
+; SSE-LABEL: test2:
; SSE: movsd
-; NOSSE2: test2:
+; NOSSE2-LABEL: test2:
; NOSSE2: fcmovnb
-; NOSSE1: test2:
+; NOSSE1-LABEL: test2:
; NOSSE1: fcmovnb
-; NOCMOV: test2:
+; NOCMOV-LABEL: test2:
; NOCMOV: fstp
}
@@ -46,16 +46,16 @@ define double @test3(i32 %a, i32 %b, double %x) nounwind {
%sel = select i1 %cmp, double 99.0, double %x
ret double %sel
-; SSE: test3:
+; SSE-LABEL: test3:
; SSE: movsd
-; NOSSE2: test3:
+; NOSSE2-LABEL: test3:
; NOSSE2: fcmovb
-; NOSSE1: test3:
+; NOSSE1-LABEL: test3:
; NOSSE1: fcmovb
-; NOCMOV: test3:
+; NOCMOV-LABEL: test3:
; NOCMOV: fstp
}
@@ -64,16 +64,16 @@ define double @test4(i32 %a, i32 %b, double %x) nounwind {
%sel = select i1 %cmp, double 99.0, double %x
ret double %sel
-; SSE: test4:
+; SSE-LABEL: test4:
; SSE: movsd
-; NOSSE2: test4:
+; NOSSE2-LABEL: test4:
; NOSSE2: fcmovbe
-; NOSSE1: test4:
+; NOSSE1-LABEL: test4:
; NOSSE1: fcmovbe
-; NOCMOV: test4:
+; NOCMOV-LABEL: test4:
; NOCMOV: fstp
}
@@ -82,16 +82,16 @@ define double @test5(i32 %a, i32 %b, double %x) nounwind {
%sel = select i1 %cmp, double 99.0, double %x
ret double %sel
-; SSE: test5:
+; SSE-LABEL: test5:
; SSE: movsd
-; NOSSE2: test5:
+; NOSSE2-LABEL: test5:
; NOSSE2: fstp
-; NOSSE1: test5:
+; NOSSE1-LABEL: test5:
; NOSSE1: fstp
-; NOCMOV: test5:
+; NOCMOV-LABEL: test5:
; NOCMOV: fstp
}
@@ -100,16 +100,16 @@ define double @test6(i32 %a, i32 %b, double %x) nounwind {
%sel = select i1 %cmp, double 99.0, double %x
ret double %sel
-; SSE: test6:
+; SSE-LABEL: test6:
; SSE: movsd
-; NOSSE2: test6:
+; NOSSE2-LABEL: test6:
; NOSSE2: fstp
-; NOSSE1: test6:
+; NOSSE1-LABEL: test6:
; NOSSE1: fstp
-; NOCMOV: test6:
+; NOCMOV-LABEL: test6:
; NOCMOV: fstp
}
@@ -118,16 +118,16 @@ define double @test7(i32 %a, i32 %b, double %x) nounwind {
%sel = select i1 %cmp, double 99.0, double %x
ret double %sel
-; SSE: test7:
+; SSE-LABEL: test7:
; SSE: movsd
-; NOSSE2: test7:
+; NOSSE2-LABEL: test7:
; NOSSE2: fstp
-; NOSSE1: test7:
+; NOSSE1-LABEL: test7:
; NOSSE1: fstp
-; NOCMOV: test7:
+; NOCMOV-LABEL: test7:
; NOCMOV: fstp
}
@@ -136,16 +136,16 @@ define double @test8(i32 %a, i32 %b, double %x) nounwind {
%sel = select i1 %cmp, double 99.0, double %x
ret double %sel
-; SSE: test8:
+; SSE-LABEL: test8:
; SSE: movsd
-; NOSSE2: test8:
+; NOSSE2-LABEL: test8:
; NOSSE2: fstp
-; NOSSE1: test8:
+; NOSSE1-LABEL: test8:
; NOSSE1: fstp
-; NOCMOV: test8:
+; NOCMOV-LABEL: test8:
; NOCMOV: fstp
}
@@ -154,16 +154,16 @@ define float @test9(i32 %a, i32 %b, float %x) nounwind {
%sel = select i1 %cmp, float 99.0, float %x
ret float %sel
-; SSE: test9:
+; SSE-LABEL: test9:
; SSE: movss
-; NOSSE2: test9:
+; NOSSE2-LABEL: test9:
; NOSSE2: movss
-; NOSSE1: test9:
+; NOSSE1-LABEL: test9:
; NOSSE1: fcmovnbe
-; NOCMOV: test9:
+; NOCMOV-LABEL: test9:
; NOCMOV: fstp
}
@@ -172,16 +172,16 @@ define float @test10(i32 %a, i32 %b, float %x) nounwind {
%sel = select i1 %cmp, float 99.0, float %x
ret float %sel
-; SSE: test10:
+; SSE-LABEL: test10:
; SSE: movss
-; NOSSE2: test10:
+; NOSSE2-LABEL: test10:
; NOSSE2: movss
-; NOSSE1: test10:
+; NOSSE1-LABEL: test10:
; NOSSE1: fcmovnb
-; NOCMOV: test10:
+; NOCMOV-LABEL: test10:
; NOCMOV: fstp
}
@@ -190,16 +190,16 @@ define float @test11(i32 %a, i32 %b, float %x) nounwind {
%sel = select i1 %cmp, float 99.0, float %x
ret float %sel
-; SSE: test11:
+; SSE-LABEL: test11:
; SSE: movss
-; NOSSE2: test11:
+; NOSSE2-LABEL: test11:
; NOSSE2: movss
-; NOSSE1: test11:
+; NOSSE1-LABEL: test11:
; NOSSE1: fcmovb
-; NOCMOV: test11:
+; NOCMOV-LABEL: test11:
; NOCMOV: fstp
}
@@ -208,16 +208,16 @@ define float @test12(i32 %a, i32 %b, float %x) nounwind {
%sel = select i1 %cmp, float 99.0, float %x
ret float %sel
-; SSE: test12:
+; SSE-LABEL: test12:
; SSE: movss
-; NOSSE2: test12:
+; NOSSE2-LABEL: test12:
; NOSSE2: movss
-; NOSSE1: test12:
+; NOSSE1-LABEL: test12:
; NOSSE1: fcmovbe
-; NOCMOV: test12:
+; NOCMOV-LABEL: test12:
; NOCMOV: fstp
}
@@ -226,16 +226,16 @@ define float @test13(i32 %a, i32 %b, float %x) nounwind {
%sel = select i1 %cmp, float 99.0, float %x
ret float %sel
-; SSE: test13:
+; SSE-LABEL: test13:
; SSE: movss
-; NOSSE2: test13:
+; NOSSE2-LABEL: test13:
; NOSSE2: movss
-; NOSSE1: test13:
+; NOSSE1-LABEL: test13:
; NOSSE1: fstp
-; NOCMOV: test13:
+; NOCMOV-LABEL: test13:
; NOCMOV: fstp
}
@@ -244,16 +244,16 @@ define float @test14(i32 %a, i32 %b, float %x) nounwind {
%sel = select i1 %cmp, float 99.0, float %x
ret float %sel
-; SSE: test14:
+; SSE-LABEL: test14:
; SSE: movss
-; NOSSE2: test14:
+; NOSSE2-LABEL: test14:
; NOSSE2: movss
-; NOSSE1: test14:
+; NOSSE1-LABEL: test14:
; NOSSE1: fstp
-; NOCMOV: test14:
+; NOCMOV-LABEL: test14:
; NOCMOV: fstp
}
@@ -262,16 +262,16 @@ define float @test15(i32 %a, i32 %b, float %x) nounwind {
%sel = select i1 %cmp, float 99.0, float %x
ret float %sel
-; SSE: test15:
+; SSE-LABEL: test15:
; SSE: movss
-; NOSSE2: test15:
+; NOSSE2-LABEL: test15:
; NOSSE2: movss
-; NOSSE1: test15:
+; NOSSE1-LABEL: test15:
; NOSSE1: fstp
-; NOCMOV: test15:
+; NOCMOV-LABEL: test15:
; NOCMOV: fstp
}
@@ -280,16 +280,16 @@ define float @test16(i32 %a, i32 %b, float %x) nounwind {
%sel = select i1 %cmp, float 99.0, float %x
ret float %sel
-; SSE: test16:
+; SSE-LABEL: test16:
; SSE: movss
-; NOSSE2: test16:
+; NOSSE2-LABEL: test16:
; NOSSE2: movss
-; NOSSE1: test16:
+; NOSSE1-LABEL: test16:
; NOSSE1: fstp
-; NOCMOV: test16:
+; NOCMOV-LABEL: test16:
; NOCMOV: fstp
}
@@ -298,16 +298,16 @@ define x86_fp80 @test17(i32 %a, i32 %b, x86_fp80 %x) nounwind {
%sel = select i1 %cmp, x86_fp80 0xK4005C600000000000000, x86_fp80 %x
ret x86_fp80 %sel
-; SSE: test17:
+; SSE-LABEL: test17:
; SSE: fcmovnbe
-; NOSSE2: test17:
+; NOSSE2-LABEL: test17:
; NOSSE2: fcmovnbe
-; NOSSE1: test17:
+; NOSSE1-LABEL: test17:
; NOSSE1: fcmovnbe
-; NOCMOV: test17:
+; NOCMOV-LABEL: test17:
; NOCMOV: fstp
}
@@ -316,16 +316,16 @@ define x86_fp80 @test18(i32 %a, i32 %b, x86_fp80 %x) nounwind {
%sel = select i1 %cmp, x86_fp80 0xK4005C600000000000000, x86_fp80 %x
ret x86_fp80 %sel
-; SSE: test18:
+; SSE-LABEL: test18:
; SSE: fcmovnb
-; NOSSE2: test18:
+; NOSSE2-LABEL: test18:
; NOSSE2: fcmovnb
-; NOSSE1: test18:
+; NOSSE1-LABEL: test18:
; NOSSE1: fcmovnb
-; NOCMOV: test18:
+; NOCMOV-LABEL: test18:
; NOCMOV: fstp
}
@@ -334,16 +334,16 @@ define x86_fp80 @test19(i32 %a, i32 %b, x86_fp80 %x) nounwind {
%sel = select i1 %cmp, x86_fp80 0xK4005C600000000000000, x86_fp80 %x
ret x86_fp80 %sel
-; SSE: test19:
+; SSE-LABEL: test19:
; SSE: fcmovb
-; NOSSE2: test19:
+; NOSSE2-LABEL: test19:
; NOSSE2: fcmovb
-; NOSSE1: test19:
+; NOSSE1-LABEL: test19:
; NOSSE1: fcmovb
-; NOCMOV: test19:
+; NOCMOV-LABEL: test19:
; NOCMOV: fstp
}
@@ -352,16 +352,16 @@ define x86_fp80 @test20(i32 %a, i32 %b, x86_fp80 %x) nounwind {
%sel = select i1 %cmp, x86_fp80 0xK4005C600000000000000, x86_fp80 %x
ret x86_fp80 %sel
-; SSE: test20:
+; SSE-LABEL: test20:
; SSE: fcmovbe
-; NOSSE2: test20:
+; NOSSE2-LABEL: test20:
; NOSSE2: fcmovbe
-; NOSSE1: test20:
+; NOSSE1-LABEL: test20:
; NOSSE1: fcmovbe
-; NOCMOV: test20:
+; NOCMOV-LABEL: test20:
; NOCMOV: fstp
}
@@ -371,19 +371,19 @@ define x86_fp80 @test21(i32 %a, i32 %b, x86_fp80 %x) nounwind {
ret x86_fp80 %sel
; We don't emit a branch for fp80, why?
-; SSE: test21:
+; SSE-LABEL: test21:
; SSE: testb
; SSE: fcmovne
-; NOSSE2: test21:
+; NOSSE2-LABEL: test21:
; NOSSE2: testb
; NOSSE2: fcmovne
-; NOSSE1: test21:
+; NOSSE1-LABEL: test21:
; NOSSE1: testb
; NOSSE1: fcmovne
-; NOCMOV: test21:
+; NOCMOV-LABEL: test21:
; NOCMOV: fstp
}
@@ -392,19 +392,19 @@ define x86_fp80 @test22(i32 %a, i32 %b, x86_fp80 %x) nounwind {
%sel = select i1 %cmp, x86_fp80 0xK4005C600000000000000, x86_fp80 %x
ret x86_fp80 %sel
-; SSE: test22:
+; SSE-LABEL: test22:
; SSE: testb
; SSE: fcmovne
-; NOSSE2: test22:
+; NOSSE2-LABEL: test22:
; NOSSE2: testb
; NOSSE2: fcmovne
-; NOSSE1: test22:
+; NOSSE1-LABEL: test22:
; NOSSE1: testb
; NOSSE1: fcmovne
-; NOCMOV: test22:
+; NOCMOV-LABEL: test22:
; NOCMOV: fstp
}
@@ -413,19 +413,19 @@ define x86_fp80 @test23(i32 %a, i32 %b, x86_fp80 %x) nounwind {
%sel = select i1 %cmp, x86_fp80 0xK4005C600000000000000, x86_fp80 %x
ret x86_fp80 %sel
-; SSE: test23:
+; SSE-LABEL: test23:
; SSE: testb
; SSE: fcmovne
-; NOSSE2: test23:
+; NOSSE2-LABEL: test23:
; NOSSE2: testb
; NOSSE2: fcmovne
-; NOSSE1: test23:
+; NOSSE1-LABEL: test23:
; NOSSE1: testb
; NOSSE1: fcmovne
-; NOCMOV: test23:
+; NOCMOV-LABEL: test23:
; NOCMOV: fstp
}
@@ -434,18 +434,18 @@ define x86_fp80 @test24(i32 %a, i32 %b, x86_fp80 %x) nounwind {
%sel = select i1 %cmp, x86_fp80 0xK4005C600000000000000, x86_fp80 %x
ret x86_fp80 %sel
-; SSE: test24:
+; SSE-LABEL: test24:
; SSE: testb
; SSE: fcmovne
-; NOSSE2: test24:
+; NOSSE2-LABEL: test24:
; NOSSE2: testb
; NOSSE2: fcmovne
-; NOSSE1: test24:
+; NOSSE1-LABEL: test24:
; NOSSE1: testb
; NOSSE1: fcmovne
-; NOCMOV: test24:
+; NOCMOV-LABEL: test24:
; NOCMOV: fstp
}
diff --git a/test/CodeGen/X86/cmov-into-branch.ll b/test/CodeGen/X86/cmov-into-branch.ll
index 780746ab1ae44..cad8dd307b34d 100644
--- a/test/CodeGen/X86/cmov-into-branch.ll
+++ b/test/CodeGen/X86/cmov-into-branch.ll
@@ -6,7 +6,7 @@ define i32 @test1(double %a, double* nocapture %b, i32 %x, i32 %y) {
%cmp = fcmp olt double %load, %a
%cond = select i1 %cmp, i32 %x, i32 %y
ret i32 %cond
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: ucomisd
; CHECK-NOT: cmov
; CHECK: j
@@ -18,7 +18,7 @@ define i32 @test2(double %a, double %b, i32 %x, i32 %y) {
%cmp = fcmp ogt double %a, %b
%cond = select i1 %cmp, i32 %x, i32 %y
ret i32 %cond
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK: ucomisd
; CHECK: cmov
}
@@ -29,7 +29,7 @@ define i32 @test3(i32 %a, i32* nocapture %b, i32 %x) {
%cmp = icmp ult i32 %load, %a
%cond = select i1 %cmp, i32 %a, i32 %x
ret i32 %cond
-; CHECK: test3:
+; CHECK-LABEL: test3:
; CHECK: cmpl
; CHECK-NOT: cmov
; CHECK: j
@@ -43,7 +43,7 @@ define i32 @test4(i32 %a, i32* nocapture %b, i32 %x, i32 %y) {
%cond = select i1 %cmp, i32 %x, i32 %y
%add = add i32 %cond, %load
ret i32 %add
-; CHECK: test4:
+; CHECK-LABEL: test4:
; CHECK: cmpl
; CHECK: cmov
}
@@ -56,7 +56,7 @@ define i32 @test5(i32 %a, i32* nocapture %b, i32 %x, i32 %y) {
%cond = select i1 %cmp1, i32 %a, i32 %y
%cond5 = select i1 %cmp, i32 %cond, i32 %x
ret i32 %cond5
-; CHECK: test5:
+; CHECK-LABEL: test5:
; CHECK: cmpl
; CHECK: cmov
; CHECK: cmov
diff --git a/test/CodeGen/X86/cmov.ll b/test/CodeGen/X86/cmov.ll
index ed25c82fddaca..215b86267a476 100644
--- a/test/CodeGen/X86/cmov.ll
+++ b/test/CodeGen/X86/cmov.ll
@@ -3,9 +3,9 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3
define i32 @test1(i32 %x, i32 %n, i32 %w, i32* %vp) nounwind readnone {
entry:
-; CHECK: test1:
-; CHECK: movl $12, %eax
-; CHECK-NEXT: btl
+; CHECK-LABEL: test1:
+; CHECK: btl
+; CHECK-NEXT: movl $12, %eax
; CHECK-NEXT: cmovael (%rcx), %eax
; CHECK-NEXT: ret
@@ -18,9 +18,9 @@ entry:
}
define i32 @test2(i32 %x, i32 %n, i32 %w, i32* %vp) nounwind readnone {
entry:
-; CHECK: test2:
-; CHECK: movl $12, %eax
-; CHECK-NEXT: btl
+; CHECK-LABEL: test2:
+; CHECK: btl
+; CHECK-NEXT: movl $12, %eax
; CHECK-NEXT: cmovbl (%rcx), %eax
; CHECK-NEXT: ret
@@ -40,7 +40,7 @@ entry:
declare void @bar(i64) nounwind
define void @test3(i64 %a, i64 %b, i1 %p) nounwind {
-; CHECK: test3:
+; CHECK-LABEL: test3:
; CHECK: cmovnel %edi, %esi
; CHECK-NEXT: movl %esi, %edi
@@ -87,12 +87,12 @@ bb.i.i.i: ; preds = %entry
%4 = load volatile i8* @g_100, align 1 ; <i8> [#uses=0]
br label %func_4.exit.i
-; CHECK: test4:
+; CHECK-LABEL: test4:
; CHECK: g_100
; CHECK: testb
; CHECK-NOT: xor
; CHECK: setne
-; CHECK-NEXT: testb
+; CHECK: testb
func_4.exit.i: ; preds = %bb.i.i.i, %entry
%.not.i = xor i1 %2, true ; <i1> [#uses=1]
@@ -119,7 +119,7 @@ declare i32 @printf(i8* nocapture, ...) nounwind
; rdar://6668608
define i32 @test5(i32* nocapture %P) nounwind readonly {
entry:
-; CHECK: test5:
+; CHECK-LABEL: test5:
; CHECK: setg %al
; CHECK: movzbl %al, %eax
; CHECK: orl $-2, %eax
@@ -133,7 +133,7 @@ entry:
define i32 @test6(i32* nocapture %P) nounwind readonly {
entry:
-; CHECK: test6:
+; CHECK-LABEL: test6:
; CHECK: setl %al
; CHECK: movzbl %al, %eax
; CHECK: leal 4(%rax,%rax,8), %eax
@@ -148,7 +148,7 @@ entry:
; Don't try to use a 16-bit conditional move to do an 8-bit select,
; because it isn't worth it. Just use a branch instead.
define i8 @test7(i1 inreg %c, i8 inreg %a, i8 inreg %b) nounwind {
-; CHECK: test7:
+; CHECK-LABEL: test7:
; CHECK: testb $1, %dil
; CHECK-NEXT: jne LBB
diff --git a/test/CodeGen/X86/cmp.ll b/test/CodeGen/X86/cmp.ll
index 1855fe2fb89e3..551d9bc6074ba 100644
--- a/test/CodeGen/X86/cmp.ll
+++ b/test/CodeGen/X86/cmp.ll
@@ -10,7 +10,7 @@ cond_true: ; preds = %0
ReturnBlock: ; preds = %0
ret i32 0
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: cmpl $0, (%rsi)
}
@@ -25,7 +25,7 @@ cond_true: ; preds = %0
ReturnBlock: ; preds = %0
ret i32 0
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK: movl (%rsi), %eax
; CHECK: shll $3, %eax
; CHECK: testl %eax, %eax
@@ -35,7 +35,7 @@ define i64 @test3(i64 %x) nounwind {
%t = icmp eq i64 %x, 0
%r = zext i1 %t to i64
ret i64 %r
-; CHECK: test3:
+; CHECK-LABEL: test3:
; CHECK: testq %rdi, %rdi
; CHECK: sete %al
; CHECK: movzbl %al, %eax
@@ -46,7 +46,7 @@ define i64 @test4(i64 %x) nounwind {
%t = icmp slt i64 %x, 1
%r = zext i1 %t to i64
ret i64 %r
-; CHECK: test4:
+; CHECK-LABEL: test4:
; CHECK: testq %rdi, %rdi
; CHECK: setle %al
; CHECK: movzbl %al, %eax
@@ -67,7 +67,7 @@ define i32 @test5(double %A) nounwind {
bb12:; preds = %entry
ret i32 32
-; CHECK: test5:
+; CHECK-LABEL: test5:
; CHECK: ucomisd LCPI4_0(%rip), %xmm0
; CHECK: ucomisd LCPI4_1(%rip), %xmm0
}
@@ -85,7 +85,7 @@ T:
F:
ret i32 0
-; CHECK: test6:
+; CHECK-LABEL: test6:
; CHECK: cmpq $0, -8(%rsp)
; CHECK: encoding: [0x48,0x83,0x7c,0x24,0xf8,0x00]
}
@@ -93,10 +93,9 @@ F:
; rdar://11866926
define i32 @test7(i64 %res) nounwind {
entry:
-; CHECK: test7:
+; CHECK-LABEL: test7:
; CHECK-NOT: movabsq
; CHECK: shrq $32, %rdi
-; CHECK: testq %rdi, %rdi
; CHECK: sete
%lnot = icmp ult i64 %res, 4294967296
%lnot.ext = zext i1 %lnot to i32
@@ -105,7 +104,7 @@ entry:
define i32 @test8(i64 %res) nounwind {
entry:
-; CHECK: test8:
+; CHECK-LABEL: test8:
; CHECK-NOT: movabsq
; CHECK: shrq $32, %rdi
; CHECK: cmpq $3, %rdi
@@ -116,10 +115,9 @@ entry:
define i32 @test9(i64 %res) nounwind {
entry:
-; CHECK: test9:
+; CHECK-LABEL: test9:
; CHECK-NOT: movabsq
; CHECK: shrq $33, %rdi
-; CHECK: testq %rdi, %rdi
; CHECK: sete
%lnot = icmp ult i64 %res, 8589934592
%lnot.ext = zext i1 %lnot to i32
@@ -128,10 +126,9 @@ entry:
define i32 @test10(i64 %res) nounwind {
entry:
-; CHECK: test10:
+; CHECK-LABEL: test10:
; CHECK-NOT: movabsq
; CHECK: shrq $32, %rdi
-; CHECK: testq %rdi, %rdi
; CHECK: setne
%lnot = icmp uge i64 %res, 4294967296
%lnot.ext = zext i1 %lnot to i32
@@ -141,7 +138,7 @@ entry:
; rdar://9758774
define i32 @test11(i64 %l) nounwind {
entry:
-; CHECK: test11:
+; CHECK-LABEL: test11:
; CHECK-NOT: movabsq
; CHECK-NOT: andq
; CHECK: shrq $47, %rdi
@@ -153,7 +150,7 @@ entry:
}
define i32 @test12() uwtable ssp {
-; CHECK: test12:
+; CHECK-LABEL: test12:
; CHECK: testb
%1 = call zeroext i1 @test12b()
br i1 %1, label %2, label %3
diff --git a/test/CodeGen/X86/coalesce-implicitdef.ll b/test/CodeGen/X86/coalesce-implicitdef.ll
index 19cd08cf3797c..9be045271d8d2 100644
--- a/test/CodeGen/X86/coalesce-implicitdef.ll
+++ b/test/CodeGen/X86/coalesce-implicitdef.ll
@@ -26,7 +26,7 @@ for.cond: ; preds = %for.inc34, %entry
br i1 %tobool, label %for.end36, label %for.body
for.body: ; preds = %for.cond
- store i32 0, i32* @c, align 4, !tbaa !0
+ store i32 0, i32* @c, align 4
br label %for.body2
for.body2: ; preds = %for.body, %for.inc
@@ -35,7 +35,7 @@ for.body2: ; preds = %for.body, %for.inc
br i1 %tobool3, label %if.then10, label %if.then
if.then: ; preds = %for.body2
- store i32 0, i32* %i, align 4, !tbaa !0
+ store i32 0, i32* %i, align 4
br label %for.body6
for.body6: ; preds = %if.then, %for.body6
@@ -43,7 +43,7 @@ for.body6: ; preds = %if.then, %for.body6
br i1 true, label %for.body6, label %for.inc
if.then10: ; preds = %for.body2
- store i32 1, i32* @b, align 4, !tbaa !0
+ store i32 1, i32* @b, align 4
ret void
for.inc: ; preds = %for.body6
@@ -66,30 +66,30 @@ while.end: ; preds = %while.cond
for.inc27.backedge: ; preds = %while.end, %if.then22
%inc28 = add nsw i32 %0, 1
- store i32 %inc28, i32* @b, align 4, !tbaa !0
+ store i32 %inc28, i32* @b, align 4
%tobool17 = icmp eq i32 %inc28, 0
br i1 %tobool17, label %for.inc27.if.end30.loopexit56_crit_edge, label %while.condthread-pre-split
if.then22: ; preds = %while.end
- %1 = load i16* %p2.1, align 2, !tbaa !3
+ %1 = load i16* %p2.1, align 2
%tobool23 = icmp eq i16 %1, 0
br i1 %tobool23, label %for.inc27.backedge, label %label.loopexit
label.loopexit: ; preds = %if.then22
- store i32 %inc20, i32* @a, align 4, !tbaa !0
+ store i32 %inc20, i32* @a, align 4
%inc2858 = add nsw i32 %0, 1
- store i32 %inc2858, i32* @b, align 4, !tbaa !0
+ store i32 %inc2858, i32* @b, align 4
%tobool1759 = icmp eq i32 %inc2858, 0
br i1 %tobool1759, label %if.end30, label %while.condthread-pre-split
for.inc27.if.end30.loopexit56_crit_edge: ; preds = %for.inc27.backedge
- store i32 %inc20, i32* @a, align 4, !tbaa !0
+ store i32 %inc20, i32* @a, align 4
br label %if.end30
if.end30: ; preds = %for.inc27.if.end30.loopexit56_crit_edge, %label.loopexit, %label.preheader, %for.inc
%i.0.load46 = phi i32 [ 0, %for.inc ], [ %i.0.load4669, %label.preheader ], [ %i.0.load4669, %label.loopexit ], [ %i.0.load4669, %for.inc27.if.end30.loopexit56_crit_edge ]
%pi.4 = phi i32* [ %i, %for.inc ], [ %pi.3.ph, %label.preheader ], [ %pi.3.ph, %label.loopexit ], [ %pi.3.ph, %for.inc27.if.end30.loopexit56_crit_edge ]
- %2 = load i32* %pi.4, align 4, !tbaa !0
+ %2 = load i32* %pi.4, align 4
%tobool31 = icmp eq i32 %2, 0
br i1 %tobool31, label %for.inc34, label %label.preheader
@@ -100,31 +100,26 @@ for.inc34: ; preds = %if.end30
for.end36: ; preds = %for.cond
store i32 1, i32* %i, align 4
- %3 = load i32* @c, align 4, !tbaa !0
+ %3 = load i32* @c, align 4
%tobool37 = icmp eq i32 %3, 0
br i1 %tobool37, label %label.preheader, label %land.rhs
land.rhs: ; preds = %for.end36
- store i32 0, i32* @a, align 4, !tbaa !0
+ store i32 0, i32* @a, align 4
br label %label.preheader
label.preheader: ; preds = %for.end36, %if.end30, %land.rhs
%i.0.load4669 = phi i32 [ 1, %land.rhs ], [ %i.0.load46, %if.end30 ], [ 1, %for.end36 ]
%pi.3.ph = phi i32* [ %pi.0, %land.rhs ], [ %pi.4, %if.end30 ], [ %pi.0, %for.end36 ]
- %4 = load i32* @b, align 4, !tbaa !0
+ %4 = load i32* @b, align 4
%inc285863 = add nsw i32 %4, 1
- store i32 %inc285863, i32* @b, align 4, !tbaa !0
+ store i32 %inc285863, i32* @b, align 4
%tobool175964 = icmp eq i32 %inc285863, 0
br i1 %tobool175964, label %if.end30, label %while.condthread-pre-split.lr.ph.lr.ph
while.condthread-pre-split.lr.ph.lr.ph: ; preds = %label.preheader
- %.pr50 = load i32* @d, align 4, !tbaa !0
+ %.pr50 = load i32* @d, align 4
%tobool19 = icmp eq i32 %.pr50, 0
- %a.promoted.pre = load i32* @a, align 4, !tbaa !0
+ %a.promoted.pre = load i32* @a, align 4
br label %while.condthread-pre-split
}
-
-!0 = metadata !{metadata !"int", metadata !1}
-!1 = metadata !{metadata !"omnipotent char", metadata !2}
-!2 = metadata !{metadata !"Simple C/C++ TBAA"}
-!3 = metadata !{metadata !"short", metadata !1}
diff --git a/test/CodeGen/X86/coalescer-commute1.ll b/test/CodeGen/X86/coalescer-commute1.ll
index d9e0778102cb4..cbcb89031b5b2 100644
--- a/test/CodeGen/X86/coalescer-commute1.ll
+++ b/test/CodeGen/X86/coalescer-commute1.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -mtriple=i686-apple-darwin -mattr=+sse2 | not grep movaps
+; RUN: llc < %s -mtriple=i686-apple-darwin -mcpu=corei7-avx -mattr=+sse2 | not grep movaps
; PR1877
@NNTOT = weak global i32 0 ; <i32*> [#uses=1]
diff --git a/test/CodeGen/X86/code_placement_align_all.ll b/test/CodeGen/X86/code_placement_align_all.ll
index 1e5e8f780b708..53df90620204e 100644
--- a/test/CodeGen/X86/code_placement_align_all.ll
+++ b/test/CodeGen/X86/code_placement_align_all.ll
@@ -1,6 +1,6 @@
; RUN: llc -mcpu=corei7 -mtriple=x86_64-linux -align-all-blocks=16 < %s | FileCheck %s
-;CHECK: foo
+;CHECK-LABEL: foo:
;CHECK: .align 65536, 0x90
;CHECK: .align 65536, 0x90
;CHECK: .align 65536, 0x90
diff --git a/test/CodeGen/X86/codegen-prepare.ll b/test/CodeGen/X86/codegen-prepare.ll
index e8ee070635310..316accfa41ac9 100644
--- a/test/CodeGen/X86/codegen-prepare.ll
+++ b/test/CodeGen/X86/codegen-prepare.ll
@@ -38,7 +38,7 @@ if.end: ; preds = %if.then, %if.else,
ret void
}
-; CHECK: foo:
+; CHECK-LABEL: foo:
; CHECK: movss 12([[THIS:%[a-zA-Z0-9]+]]), [[REGISTER:%[a-zA-Z0-9]+]]
; CHECK-NEXT: movss [[REGISTER]], 60([[THIS]])
diff --git a/test/CodeGen/X86/codemodel.ll b/test/CodeGen/X86/codemodel.ll
index b6ca1cedc22ee..3aebc13f8740e 100644
--- a/test/CodeGen/X86/codemodel.ll
+++ b/test/CodeGen/X86/codemodel.ll
@@ -7,9 +7,9 @@ target triple = "x86_64-unknown-linux-gnu"
define i32 @foo() nounwind readonly {
entry:
-; CHECK-SMALL: foo:
+; CHECK-SMALL-LABEL: foo:
; CHECK-SMALL: movl data(%rip), %eax
-; CHECK-KERNEL: foo:
+; CHECK-KERNEL-LABEL: foo:
; CHECK-KERNEL: movl data, %eax
%0 = load i32* getelementptr ([0 x i32]* @data, i64 0, i64 0), align 4 ; <i32> [#uses=1]
ret i32 %0
@@ -17,9 +17,9 @@ entry:
define i32 @foo2() nounwind readonly {
entry:
-; CHECK-SMALL: foo2:
+; CHECK-SMALL-LABEL: foo2:
; CHECK-SMALL: movl data+40(%rip), %eax
-; CHECK-KERNEL: foo2:
+; CHECK-KERNEL-LABEL: foo2:
; CHECK-KERNEL: movl data+40, %eax
%0 = load i32* getelementptr ([0 x i32]* @data, i32 0, i64 10), align 4 ; <i32> [#uses=1]
ret i32 %0
@@ -27,9 +27,9 @@ entry:
define i32 @foo3() nounwind readonly {
entry:
-; CHECK-SMALL: foo3:
+; CHECK-SMALL-LABEL: foo3:
; CHECK-SMALL: movl data-40(%rip), %eax
-; CHECK-KERNEL: foo3:
+; CHECK-KERNEL-LABEL: foo3:
; CHECK-KERNEL: movq $-40, %rax
%0 = load i32* getelementptr ([0 x i32]* @data, i32 0, i64 -10), align 4 ; <i32> [#uses=1]
ret i32 %0
@@ -38,10 +38,10 @@ entry:
define i32 @foo4() nounwind readonly {
entry:
; FIXME: We really can use movabsl here!
-; CHECK-SMALL: foo4:
+; CHECK-SMALL-LABEL: foo4:
; CHECK-SMALL: movl $16777216, %eax
; CHECK-SMALL: movl data(%rax), %eax
-; CHECK-KERNEL: foo4:
+; CHECK-KERNEL-LABEL: foo4:
; CHECK-KERNEL: movl data+16777216, %eax
%0 = load i32* getelementptr ([0 x i32]* @data, i32 0, i64 4194304), align 4 ; <i32> [#uses=1]
ret i32 %0
@@ -49,18 +49,18 @@ entry:
define i32 @foo1() nounwind readonly {
entry:
-; CHECK-SMALL: foo1:
+; CHECK-SMALL-LABEL: foo1:
; CHECK-SMALL: movl data+16777212(%rip), %eax
-; CHECK-KERNEL: foo1:
+; CHECK-KERNEL-LABEL: foo1:
; CHECK-KERNEL: movl data+16777212, %eax
%0 = load i32* getelementptr ([0 x i32]* @data, i32 0, i64 4194303), align 4 ; <i32> [#uses=1]
ret i32 %0
}
define i32 @foo5() nounwind readonly {
entry:
-; CHECK-SMALL: foo5:
+; CHECK-SMALL-LABEL: foo5:
; CHECK-SMALL: movl data-16777216(%rip), %eax
-; CHECK-KERNEL: foo5:
+; CHECK-KERNEL-LABEL: foo5:
; CHECK-KERNEL: movq $-16777216, %rax
%0 = load i32* getelementptr ([0 x i32]* @data, i32 0, i64 -4194304), align 4 ; <i32> [#uses=1]
ret i32 %0
diff --git a/test/CodeGen/X86/coff-feat00.ll b/test/CodeGen/X86/coff-feat00.ll
new file mode 100644
index 0000000000000..1dcd4276399a9
--- /dev/null
+++ b/test/CodeGen/X86/coff-feat00.ll
@@ -0,0 +1,7 @@
+; RUN: llc -O0 -mtriple=i386-pc-win32 -filetype=asm -o - %s | FileCheck %s
+
+define i32 @foo() {
+ ret i32 0
+}
+
+; CHECK: @feat.00 = 1
diff --git a/test/CodeGen/X86/commute-two-addr.ll b/test/CodeGen/X86/commute-two-addr.ll
index ef44a3d119b8a..656c385e2bc7d 100644
--- a/test/CodeGen/X86/commute-two-addr.ll
+++ b/test/CodeGen/X86/commute-two-addr.ll
@@ -2,8 +2,8 @@
; insertion of register-register copies.
; Make sure there are only 3 mov's for each testcase
-; RUN: llc < %s -mtriple=i686-pc-linux-gnu | FileCheck %s -check-prefix=LINUX
-; RUN: llc < %s -mtriple=x86_64-apple-darwin | FileCheck %s -check-prefix=DARWIN
+; RUN: llc < %s -mtriple=i686-pc-linux-gnu -mcpu=corei7 | FileCheck %s -check-prefix=LINUX
+; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=corei7 | FileCheck %s -check-prefix=DARWIN
@G = external global i32 ; <i32*> [#uses=2]
@@ -11,7 +11,7 @@
declare void @ext(i32)
define i32 @t1(i32 %X, i32 %Y) nounwind {
-; LINUX: t1:
+; LINUX-LABEL: t1:
; LINUX: movl 4(%esp), %eax
; LINUX: movl 8(%esp), %ecx
; LINUX: addl %eax, %ecx
@@ -22,7 +22,7 @@ define i32 @t1(i32 %X, i32 %Y) nounwind {
}
define i32 @t2(i32 %X, i32 %Y) nounwind {
-; LINUX: t2:
+; LINUX-LABEL: t2:
; LINUX: movl 4(%esp), %eax
; LINUX: movl 8(%esp), %ecx
; LINUX: xorl %eax, %ecx
@@ -37,11 +37,11 @@ define i32 @t2(i32 %X, i32 %Y) nounwind {
define %0 @t3(i32 %lb, i8 zeroext %has_lb, i8 zeroext %lb_inclusive, i32 %ub, i8 zeroext %has_ub, i8 zeroext %ub_inclusive) nounwind {
entry:
-; DARWIN: t3:
-; DARWIN: shll $16
+; DARWIN-LABEL: t3:
; DARWIN: shlq $32, %rcx
+; DARWIN-NEXT: orq %rcx, %rax
+; DARWIN-NEXT: shll $8
; DARWIN-NOT: leaq
-; DARWIN: orq %rcx, %rax
%tmp21 = zext i32 %lb to i64
%tmp23 = zext i32 %ub to i64
%tmp24 = shl i64 %tmp23, 32
diff --git a/test/CodeGen/X86/compact-unwind.ll b/test/CodeGen/X86/compact-unwind.ll
index 8c4fa27da560c..9d3a1257288c9 100644
--- a/test/CodeGen/X86/compact-unwind.ll
+++ b/test/CodeGen/X86/compact-unwind.ll
@@ -1,18 +1,29 @@
-; RUN: llc < %s -disable-cfi -disable-fp-elim -mtriple x86_64-apple-darwin11 | FileCheck %s
+; RUN: llc < %s -disable-fp-elim -mtriple x86_64-apple-darwin11 -mcpu corei7 | FileCheck -check-prefix=ASM %s
+; RUN: llc < %s -disable-fp-elim -mtriple x86_64-apple-darwin11 -mcpu corei7 -filetype=obj -o - \
+; RUN: | llvm-objdump -triple x86_64-apple-darwin11 -s - \
+; RUN: | FileCheck -check-prefix=CU %s
+; RUN: llc < %s -disable-fp-elim -mtriple x86_64-apple-darwin11 -mcpu corei7 \
+; RUN: | llvm-mc -triple x86_64-apple-darwin11 -filetype=obj -o - \
+; RUN: | llvm-objdump -triple x86_64-apple-darwin11 -s - \
+; RUN: | FileCheck -check-prefix=FROM-ASM %s
%ty = type { i8* }
@gv = external global i32
; This is aligning the stack with a push of a random register.
-; CHECK: pushq %rax
+; ASM: pushq %rax
; Even though we can't encode %rax into the compact unwind, We still want to be
; able to generate a compact unwind encoding in this particular case.
-;
-; CHECK: __LD,__compact_unwind
-; CHECK: _foo ## Range Start
-; CHECK: 16842753 ## Compact Unwind Encoding: 0x1010001
+
+; CU: Contents of section __compact_unwind:
+; CU-NEXT: 0020 00000000 00000000 1e000000 01000101
+; CU-NEXT: 0030 00000000 00000000 00000000 00000000
+
+; FROM-ASM: Contents of section __compact_unwind:
+; FROM-ASM-NEXT: 0020 00000000 00000000 1e000000 01000101
+; FROM-ASM-NEXT: 0030 00000000 00000000 00000000 00000000
define i8* @foo(i64 %size) {
%addr = alloca i64, align 8
diff --git a/test/CodeGen/X86/compare-inf.ll b/test/CodeGen/X86/compare-inf.ll
index 9aa44a30af575..5eb0135277d31 100644
--- a/test/CodeGen/X86/compare-inf.ll
+++ b/test/CodeGen/X86/compare-inf.ll
@@ -3,74 +3,124 @@
; Convert oeq and une to ole/oge/ule/uge when comparing with infinity
; and negative infinity, because those are more efficient on x86.
-; CHECK: oeq_inff:
+declare void @f() nounwind
+
+; CHECK-LABEL: oeq_inff:
; CHECK: ucomiss
; CHECK: jb
-define float @oeq_inff(float %x, float %y) nounwind readonly {
+define void @oeq_inff(float %x) nounwind {
%t0 = fcmp oeq float %x, 0x7FF0000000000000
- %t1 = select i1 %t0, float 1.0, float %y
- ret float %t1
+ br i1 %t0, label %true, label %false
+
+true:
+ call void @f() nounwind
+ br label %false
+
+false:
+ ret void
}
-; CHECK: oeq_inf:
+; CHECK-LABEL: oeq_inf:
; CHECK: ucomisd
; CHECK: jb
-define double @oeq_inf(double %x, double %y) nounwind readonly {
+define void @oeq_inf(double %x) nounwind {
%t0 = fcmp oeq double %x, 0x7FF0000000000000
- %t1 = select i1 %t0, double 1.0, double %y
- ret double %t1
+ br i1 %t0, label %true, label %false
+
+true:
+ call void @f() nounwind
+ br label %false
+
+false:
+ ret void
}
-; CHECK: une_inff:
+; CHECK-LABEL: une_inff:
; CHECK: ucomiss
; CHECK: jae
-define float @une_inff(float %x, float %y) nounwind readonly {
+define void @une_inff(float %x) nounwind {
%t0 = fcmp une float %x, 0x7FF0000000000000
- %t1 = select i1 %t0, float 1.0, float %y
- ret float %t1
+ br i1 %t0, label %true, label %false
+
+true:
+ call void @f() nounwind
+ br label %false
+
+false:
+ ret void
}
-; CHECK: une_inf:
+; CHECK-LABEL: une_inf:
; CHECK: ucomisd
; CHECK: jae
-define double @une_inf(double %x, double %y) nounwind readonly {
+define void @une_inf(double %x) nounwind {
%t0 = fcmp une double %x, 0x7FF0000000000000
- %t1 = select i1 %t0, double 1.0, double %y
- ret double %t1
+ br i1 %t0, label %true, label %false
+
+true:
+ call void @f() nounwind
+ br label %false
+
+false:
+ ret void
}
-; CHECK: oeq_neg_inff:
+; CHECK-LABEL: oeq_neg_inff:
; CHECK: ucomiss
; CHECK: jb
-define float @oeq_neg_inff(float %x, float %y) nounwind readonly {
+define void @oeq_neg_inff(float %x) nounwind {
%t0 = fcmp oeq float %x, 0xFFF0000000000000
- %t1 = select i1 %t0, float 1.0, float %y
- ret float %t1
+ br i1 %t0, label %true, label %false
+
+true:
+ call void @f() nounwind
+ br label %false
+
+false:
+ ret void
}
-; CHECK: oeq_neg_inf:
+; CHECK-LABEL: oeq_neg_inf:
; CHECK: ucomisd
; CHECK: jb
-define double @oeq_neg_inf(double %x, double %y) nounwind readonly {
+define void @oeq_neg_inf(double %x) nounwind {
%t0 = fcmp oeq double %x, 0xFFF0000000000000
- %t1 = select i1 %t0, double 1.0, double %y
- ret double %t1
+ br i1 %t0, label %true, label %false
+
+true:
+ call void @f() nounwind
+ br label %false
+
+false:
+ ret void
}
-; CHECK: une_neg_inff:
+; CHECK-LABEL: une_neg_inff:
; CHECK: ucomiss
; CHECK: jae
-define float @une_neg_inff(float %x, float %y) nounwind readonly {
+define void @une_neg_inff(float %x) nounwind {
%t0 = fcmp une float %x, 0xFFF0000000000000
- %t1 = select i1 %t0, float 1.0, float %y
- ret float %t1
+ br i1 %t0, label %true, label %false
+
+true:
+ call void @f() nounwind
+ br label %false
+
+false:
+ ret void
}
-; CHECK: une_neg_inf:
+; CHECK-LABEL: une_neg_inf:
; CHECK: ucomisd
; CHECK: jae
-define double @une_neg_inf(double %x, double %y) nounwind readonly {
+define void @une_neg_inf(double %x) nounwind {
%t0 = fcmp une double %x, 0xFFF0000000000000
- %t1 = select i1 %t0, double 1.0, double %y
- ret double %t1
+ br i1 %t0, label %true, label %false
+
+true:
+ call void @f() nounwind
+ br label %false
+
+false:
+ ret void
}
diff --git a/test/CodeGen/X86/compiler_used.ll b/test/CodeGen/X86/compiler_used.ll
index d38ce91310b19..af5c86c451a09 100644
--- a/test/CodeGen/X86/compiler_used.ll
+++ b/test/CodeGen/X86/compiler_used.ll
@@ -5,7 +5,7 @@
@Z = internal global i8 4
@llvm.used = appending global [1 x i8*] [ i8* @Z ], section "llvm.metadata"
-@llvm.compiler_used = appending global [2 x i8*] [ i8* @X, i8* bitcast (i32* @Y to i8*)], section "llvm.metadata"
+@llvm.compiler.used = appending global [2 x i8*] [ i8* @X, i8* bitcast (i32* @Y to i8*)], section "llvm.metadata"
; CHECK-NOT: .no_dead_strip
; CHECK: .no_dead_strip _Z
diff --git a/test/CodeGen/X86/conditional-indecrement.ll b/test/CodeGen/X86/conditional-indecrement.ll
index a3a0c39905aa4..c3e71180bb183 100644
--- a/test/CodeGen/X86/conditional-indecrement.ll
+++ b/test/CodeGen/X86/conditional-indecrement.ll
@@ -5,7 +5,7 @@ define i32 @test1(i32 %a, i32 %b) nounwind readnone {
%inc = zext i1 %not.cmp to i32
%retval.0 = add i32 %inc, %b
ret i32 %retval.0
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: cmpl $1
; CHECK: sbbl $-1
; CHECK: ret
@@ -16,7 +16,7 @@ define i32 @test2(i32 %a, i32 %b) nounwind readnone {
%inc = zext i1 %cmp to i32
%retval.0 = add i32 %inc, %b
ret i32 %retval.0
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK: cmpl $1
; CHECK: adcl $0
; CHECK: ret
@@ -27,7 +27,7 @@ define i32 @test3(i32 %a, i32 %b) nounwind readnone {
%inc = zext i1 %cmp to i32
%retval.0 = add i32 %inc, %b
ret i32 %retval.0
-; CHECK: test3:
+; CHECK-LABEL: test3:
; CHECK: cmpl $1
; CHECK: adcl $0
; CHECK: ret
@@ -38,7 +38,7 @@ define i32 @test4(i32 %a, i32 %b) nounwind readnone {
%inc = zext i1 %not.cmp to i32
%retval.0 = add i32 %inc, %b
ret i32 %retval.0
-; CHECK: test4:
+; CHECK-LABEL: test4:
; CHECK: cmpl $1
; CHECK: sbbl $-1
; CHECK: ret
@@ -49,7 +49,7 @@ define i32 @test5(i32 %a, i32 %b) nounwind readnone {
%inc = zext i1 %not.cmp to i32
%retval.0 = sub i32 %b, %inc
ret i32 %retval.0
-; CHECK: test5:
+; CHECK-LABEL: test5:
; CHECK: cmpl $1
; CHECK: adcl $-1
; CHECK: ret
@@ -60,7 +60,7 @@ define i32 @test6(i32 %a, i32 %b) nounwind readnone {
%inc = zext i1 %cmp to i32
%retval.0 = sub i32 %b, %inc
ret i32 %retval.0
-; CHECK: test6:
+; CHECK-LABEL: test6:
; CHECK: cmpl $1
; CHECK: sbbl $0
; CHECK: ret
@@ -71,7 +71,7 @@ define i32 @test7(i32 %a, i32 %b) nounwind readnone {
%inc = zext i1 %cmp to i32
%retval.0 = sub i32 %b, %inc
ret i32 %retval.0
-; CHECK: test7:
+; CHECK-LABEL: test7:
; CHECK: cmpl $1
; CHECK: sbbl $0
; CHECK: ret
@@ -82,7 +82,7 @@ define i32 @test8(i32 %a, i32 %b) nounwind readnone {
%inc = zext i1 %not.cmp to i32
%retval.0 = sub i32 %b, %inc
ret i32 %retval.0
-; CHECK: test8:
+; CHECK-LABEL: test8:
; CHECK: cmpl $1
; CHECK: adcl $-1
; CHECK: ret
diff --git a/test/CodeGen/X86/crash-nosse.ll b/test/CodeGen/X86/crash-nosse.ll
index 1cec25b3347b8..b1e01f94c9e6a 100644
--- a/test/CodeGen/X86/crash-nosse.ll
+++ b/test/CodeGen/X86/crash-nosse.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -mattr=-sse2,-sse41 -verify-machineinstrs
+; RUN: llc < %s -mcpu=corei7 -mattr=-sse2,-sse4.1 -verify-machineinstrs
target triple = "x86_64-unknown-linux-gnu"
; PR10503
diff --git a/test/CodeGen/X86/crash.ll b/test/CodeGen/X86/crash.ll
index 852b642de68d8..051150e227aaa 100644
--- a/test/CodeGen/X86/crash.ll
+++ b/test/CodeGen/X86/crash.ll
@@ -1,5 +1,6 @@
-; RUN: llc -march=x86 < %s -verify-machineinstrs
-; RUN: llc -march=x86-64 < %s -verify-machineinstrs
+; REQUIRES: asserts
+; RUN: llc -march=x86 < %s -verify-machineinstrs -precompute-phys-liveness
+; RUN: llc -march=x86-64 < %s -verify-machineinstrs -precompute-phys-liveness
; PR6497
@@ -107,8 +108,8 @@ do.body92: ; preds = %if.then66
ret void
}
-!0 = metadata !{i32 633550}
-!1 = metadata !{i32 634261}
+!0 = metadata !{i32 633550}
+!1 = metadata !{i32 634261}
; Crash during XOR optimization.
@@ -203,7 +204,7 @@ entry:
; <rdar://problem/9187792>
define fastcc void @func_61() nounwind sspreq {
entry:
- %t1 = tail call i64 @llvm.objectsize.i64(i8* undef, i1 false)
+ %t1 = tail call i64 @llvm.objectsize.i64.p0i8(i8* undef, i1 false)
%t2 = icmp eq i64 %t1, -1
br i1 %t2, label %bb2, label %bb1
@@ -214,7 +215,7 @@ bb2:
ret void
}
-declare i64 @llvm.objectsize.i64(i8*, i1) nounwind readnone
+declare i64 @llvm.objectsize.i64.p0i8(i8*, i1) nounwind readnone
; PR10277
; This test has dead code elimination caused by remat during spilling.
diff --git a/test/CodeGen/X86/critical-edge-split-2.ll b/test/CodeGen/X86/critical-edge-split-2.ll
index 70301cd9bcc4b..44205d6829ddb 100644
--- a/test/CodeGen/X86/critical-edge-split-2.ll
+++ b/test/CodeGen/X86/critical-edge-split-2.ll
@@ -22,7 +22,7 @@ cond.end.i: ; preds = %entry
ret i16 %call1
}
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: testb %dil, %dil
; CHECK: jne LBB0_2
; CHECK: divl
diff --git a/test/CodeGen/X86/ctpop-combine.ll b/test/CodeGen/X86/ctpop-combine.ll
index 0a3dfca228c12..786f7f9b1cc83 100644
--- a/test/CodeGen/X86/ctpop-combine.ll
+++ b/test/CodeGen/X86/ctpop-combine.ll
@@ -8,7 +8,7 @@ define i32 @test1(i64 %x) nounwind readnone {
%cmp = icmp ugt i32 %cast, 1
%conv = zext i1 %cmp to i32
ret i32 %conv
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: leaq -1([[A0:%rdi|%rcx]])
; CHECK-NEXT: testq
; CHECK-NEXT: setne
@@ -21,7 +21,7 @@ define i32 @test2(i64 %x) nounwind readnone {
%cmp = icmp ult i64 %count, 2
%conv = zext i1 %cmp to i32
ret i32 %conv
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK: leaq -1([[A0]])
; CHECK-NEXT: testq
; CHECK-NEXT: sete
@@ -34,7 +34,7 @@ define i32 @test3(i64 %x) nounwind readnone {
%cmp = icmp ult i6 %cast, 2
%conv = zext i1 %cmp to i32
ret i32 %conv
-; CHECK: test3:
+; CHECK-LABEL: test3:
; CHECK: cmpb $2
; CHECK: ret
}
diff --git a/test/CodeGen/X86/dag-rauw-cse.ll b/test/CodeGen/X86/dag-rauw-cse.ll
index eca8c8641a200..12a2e626687be 100644
--- a/test/CodeGen/X86/dag-rauw-cse.ll
+++ b/test/CodeGen/X86/dag-rauw-cse.ll
@@ -2,7 +2,7 @@
; PR3018
define i32 @test(i32 %A) nounwind {
-; CHECK: test:
+; CHECK-LABEL: test:
; CHECK-NOT: ret
; CHECK: orl $1
; CHECK: ret
diff --git a/test/CodeGen/X86/dagcombine-buildvector.ll b/test/CodeGen/X86/dagcombine-buildvector.ll
index dae91d5ccdd6e..cf631c353fce2 100644
--- a/test/CodeGen/X86/dagcombine-buildvector.ll
+++ b/test/CodeGen/X86/dagcombine-buildvector.ll
@@ -3,7 +3,7 @@
; Shows a dag combine bug that will generate an illegal build vector
; with v2i64 build_vector i32, i32.
-; CHECK: test:
+; CHECK-LABEL: test:
; CHECK: unpcklpd
; CHECK: movapd
define void @test(<2 x double>* %dst, <4 x double> %src) nounwind {
@@ -13,7 +13,7 @@ entry:
ret void
}
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK: movdqa
define void @test2(<4 x i16>* %src, <4 x i32>* %dest) nounwind {
entry:
diff --git a/test/CodeGen/X86/dagcombine-shifts.ll b/test/CodeGen/X86/dagcombine-shifts.ll
new file mode 100644
index 0000000000000..905cf052c39c5
--- /dev/null
+++ b/test/CodeGen/X86/dagcombine-shifts.ll
@@ -0,0 +1,209 @@
+; RUN: llc < %s -mtriple=x86_64-linux-gnu | FileCheck %s
+
+; fold (shl (zext (lshr (A, X))), X) -> (zext (shl (lshr (A, X)), X))
+
+; Canolicalize the sequence shl/zext/lshr performing the zeroextend
+; as the last instruction of the sequence.
+; This will help DAGCombiner to identify and then fold the sequence
+; of shifts into a single AND.
+; This transformation is profitable if the shift amounts are the same
+; and if there is only one use of the zext.
+
+define i16 @fun1(i8 zeroext %v) {
+entry:
+ %shr = lshr i8 %v, 4
+ %ext = zext i8 %shr to i16
+ %shl = shl i16 %ext, 4
+ ret i16 %shl
+}
+
+; CHECK-LABEL: @fun1
+; CHECK: and
+; CHECK-NOT: shr
+; CHECK-NOT: shl
+; CHECK: ret
+
+define i32 @fun2(i8 zeroext %v) {
+entry:
+ %shr = lshr i8 %v, 4
+ %ext = zext i8 %shr to i32
+ %shl = shl i32 %ext, 4
+ ret i32 %shl
+}
+
+; CHECK-LABEL: @fun2
+; CHECK: and
+; CHECK-NOT: shr
+; CHECK-NOT: shl
+; CHECK: ret
+
+define i32 @fun3(i16 zeroext %v) {
+entry:
+ %shr = lshr i16 %v, 4
+ %ext = zext i16 %shr to i32
+ %shl = shl i32 %ext, 4
+ ret i32 %shl
+}
+
+; CHECK-LABEL: @fun3
+; CHECK: and
+; CHECK-NOT: shr
+; CHECK-NOT: shl
+; CHECK: ret
+
+define i64 @fun4(i8 zeroext %v) {
+entry:
+ %shr = lshr i8 %v, 4
+ %ext = zext i8 %shr to i64
+ %shl = shl i64 %ext, 4
+ ret i64 %shl
+}
+
+; CHECK-LABEL: @fun4
+; CHECK: and
+; CHECK-NOT: shr
+; CHECK-NOT: shl
+; CHECK: ret
+
+define i64 @fun5(i16 zeroext %v) {
+entry:
+ %shr = lshr i16 %v, 4
+ %ext = zext i16 %shr to i64
+ %shl = shl i64 %ext, 4
+ ret i64 %shl
+}
+
+; CHECK-LABEL: @fun5
+; CHECK: and
+; CHECK-NOT: shr
+; CHECK-NOT: shl
+; CHECK: ret
+
+define i64 @fun6(i32 zeroext %v) {
+entry:
+ %shr = lshr i32 %v, 4
+ %ext = zext i32 %shr to i64
+ %shl = shl i64 %ext, 4
+ ret i64 %shl
+}
+
+; CHECK-LABEL: @fun6
+; CHECK: and
+; CHECK-NOT: shr
+; CHECK-NOT: shl
+; CHECK: ret
+
+; Don't fold the pattern if we use arithmetic shifts.
+
+define i64 @fun7(i8 zeroext %v) {
+entry:
+ %shr = ashr i8 %v, 4
+ %ext = zext i8 %shr to i64
+ %shl = shl i64 %ext, 4
+ ret i64 %shl
+}
+
+; CHECK-LABEL: @fun7
+; CHECK: sar
+; CHECK: shl
+; CHECK: ret
+
+define i64 @fun8(i16 zeroext %v) {
+entry:
+ %shr = ashr i16 %v, 4
+ %ext = zext i16 %shr to i64
+ %shl = shl i64 %ext, 4
+ ret i64 %shl
+}
+
+; CHECK-LABEL: @fun8
+; CHECK: sar
+; CHECK: shl
+; CHECK: ret
+
+define i64 @fun9(i32 zeroext %v) {
+entry:
+ %shr = ashr i32 %v, 4
+ %ext = zext i32 %shr to i64
+ %shl = shl i64 %ext, 4
+ ret i64 %shl
+}
+
+; CHECK-LABEL: @fun9
+; CHECK: sar
+; CHECK: shl
+; CHECK: ret
+
+; Don't fold the pattern if there is more than one use of the
+; operand in input to the shift left.
+
+define i64 @fun10(i8 zeroext %v) {
+entry:
+ %shr = lshr i8 %v, 4
+ %ext = zext i8 %shr to i64
+ %shl = shl i64 %ext, 4
+ %add = add i64 %shl, %ext
+ ret i64 %add
+}
+
+; CHECK-LABEL: @fun10
+; CHECK: shr
+; CHECK: shl
+; CHECK: ret
+
+define i64 @fun11(i16 zeroext %v) {
+entry:
+ %shr = lshr i16 %v, 4
+ %ext = zext i16 %shr to i64
+ %shl = shl i64 %ext, 4
+ %add = add i64 %shl, %ext
+ ret i64 %add
+}
+
+; CHECK-LABEL: @fun11
+; CHECK: shr
+; CHECK: shl
+; CHECK: ret
+
+define i64 @fun12(i32 zeroext %v) {
+entry:
+ %shr = lshr i32 %v, 4
+ %ext = zext i32 %shr to i64
+ %shl = shl i64 %ext, 4
+ %add = add i64 %shl, %ext
+ ret i64 %add
+}
+
+; CHECK-LABEL: @fun12
+; CHECK: shr
+; CHECK: shl
+; CHECK: ret
+
+; PR17380
+; Make sure that the combined dags are legal if we run the DAGCombiner after
+; Legalization took place. The add instruction is redundant and increases by
+; one the number of uses of the zext. This prevents the transformation from
+; firing before dags are legalized and optimized.
+; Once the add is removed, the number of uses becomes one and therefore the
+; dags are canonicalized. After Legalization, we need to make sure that the
+; valuetype for the shift count is legal.
+; Verify also that we correctly fold the shl-shr sequence into an
+; AND with bitmask.
+
+define void @g(i32 %a) {
+ %b = lshr i32 %a, 2
+ %c = zext i32 %b to i64
+ %d = add i64 %c, 1
+ %e = shl i64 %c, 2
+ tail call void @f(i64 %e)
+ ret void
+}
+
+; CHECK-LABEL: @g
+; CHECK-NOT: shr
+; CHECK-NOT: shl
+; CHECK: and
+; CHECK-NEXT: jmp
+
+declare void @f(i64)
+
diff --git a/test/CodeGen/X86/dagcombine_unsafe_math.ll b/test/CodeGen/X86/dagcombine-unsafe-math.ll
index 592cf1bec2e5e..f06d9f1dc4b95 100644
--- a/test/CodeGen/X86/dagcombine_unsafe_math.ll
+++ b/test/CodeGen/X86/dagcombine-unsafe-math.ll
@@ -43,7 +43,7 @@ define float @test4(float %x, float %y) {
; rdar://13445387
; "x + x + x => 3.0 * x" should be disabled after legalization because
-; Instruction-Selection dosen't know how to handle "3.0"
+; Instruction-Selection doesn't know how to handle "3.0"
;
define float @test5() {
%mul.i.i151 = fmul <4 x float> zeroinitializer, zeroinitializer
diff --git a/test/CodeGen/X86/dbg-at-specficiation.ll b/test/CodeGen/X86/dbg-at-specficiation.ll
deleted file mode 100644
index 48b8202bd5fa1..0000000000000
--- a/test/CodeGen/X86/dbg-at-specficiation.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; RUN: llc < %s | FileCheck %s
-; Radar 10147769
-; Do not unnecessarily use AT_specification DIE.
-; CHECK-NOT: AT_specification
-
-@a = common global [10 x i32] zeroinitializer, align 16
-
-!llvm.dbg.cu = !{!0}
-
-!0 = metadata !{i32 720913, i32 0, i32 12, metadata !"x.c", metadata !"/private/tmp", metadata !"clang version 3.0 (trunk 140253)", i1 true, i1 false, metadata !"", i32 0, metadata !1, metadata !1, metadata !1, metadata !3} ; [ DW_TAG_compile_unit ]
-!1 = metadata !{metadata !2}
-!2 = metadata !{i32 0}
-!3 = metadata !{metadata !4}
-!4 = metadata !{metadata !5}
-!5 = metadata !{i32 720948, i32 0, null, metadata !"a", metadata !"a", metadata !"", metadata !6, i32 1, metadata !7, i32 0, i32 1, [10 x i32]* @a} ; [ DW_TAG_variable ]
-!6 = metadata !{i32 720937, metadata !"x.c", metadata !"/private/tmp", null} ; [ DW_TAG_file_type ]
-!7 = metadata !{i32 720897, null, metadata !"", null, i32 0, i64 320, i64 32, i32 0, i32 0, metadata !8, metadata !9, i32 0, i32 0} ; [ DW_TAG_array_type ]
-!8 = metadata !{i32 720932, null, metadata !"int", null, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
-!9 = metadata !{metadata !10}
-!10 = metadata !{i32 720929, i64 0, i64 10} ; [ DW_TAG_subrange_type ]
diff --git a/test/CodeGen/X86/dbg-byval-parameter.ll b/test/CodeGen/X86/dbg-byval-parameter.ll
deleted file mode 100644
index 719a526cc892e..0000000000000
--- a/test/CodeGen/X86/dbg-byval-parameter.ll
+++ /dev/null
@@ -1,49 +0,0 @@
-; RUN: llc -march=x86 -asm-verbose < %s | grep DW_TAG_formal_parameter
-
-
-%struct.Pt = type { double, double }
-%struct.Rect = type { %struct.Pt, %struct.Pt }
-
-define double @foo(%struct.Rect* byval %my_r0) nounwind ssp {
-entry:
- %retval = alloca double ; <double*> [#uses=2]
- %0 = alloca double ; <double*> [#uses=2]
- %"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0]
- call void @llvm.dbg.declare(metadata !{%struct.Rect* %my_r0}, metadata !0), !dbg !15
- %1 = getelementptr inbounds %struct.Rect* %my_r0, i32 0, i32 0, !dbg !16 ; <%struct.Pt*> [#uses=1]
- %2 = getelementptr inbounds %struct.Pt* %1, i32 0, i32 0, !dbg !16 ; <double*> [#uses=1]
- %3 = load double* %2, align 8, !dbg !16 ; <double> [#uses=1]
- store double %3, double* %0, align 8, !dbg !16
- %4 = load double* %0, align 8, !dbg !16 ; <double> [#uses=1]
- store double %4, double* %retval, align 8, !dbg !16
- br label %return, !dbg !16
-
-return: ; preds = %entry
- %retval1 = load double* %retval, !dbg !16 ; <double> [#uses=1]
- ret double %retval1, !dbg !16
-}
-
-declare void @llvm.dbg.declare(metadata, metadata) nounwind readnone
-
-!llvm.dbg.cu = !{!3}
-
-!0 = metadata !{i32 786689, metadata !1, metadata !"my_r0", metadata !2, i32 11, metadata !7, i32 0, null} ; [ DW_TAG_arg_variable ]
-!1 = metadata !{i32 786478, metadata !2, metadata !"foo", metadata !"foo", metadata !"foo", metadata !2, i32 11, metadata !4, i1 false, i1 true, i32 0, i32 0, null, i32 0, i1 false, double (%struct.Rect*)* @foo, null, null, null, i32 0} ; [ DW_TAG_subprogram ]
-!2 = metadata !{i32 786473, metadata !19} ; [ DW_TAG_file_type ]
-!3 = metadata !{i32 786449, i32 1, metadata !2, metadata !"4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", i1 false, metadata !"", i32 0, null, null, metadata !18, null, null, metadata !""} ; [ DW_TAG_compile_unit ]
-!4 = metadata !{i32 786453, metadata !19, metadata !2, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !5, i32 0, null} ; [ DW_TAG_subroutine_type ]
-!5 = metadata !{metadata !6, metadata !7}
-!6 = metadata !{i32 786468, metadata !19, metadata !2, metadata !"double", i32 0, i64 64, i64 64, i64 0, i32 0, i32 4} ; [ DW_TAG_base_type ]
-!7 = metadata !{i32 786451, metadata !19, metadata !2, metadata !"Rect", i32 6, i64 256, i64 64, i64 0, i32 0, null, metadata !8, i32 0, null} ; [ DW_TAG_structure_type ]
-!8 = metadata !{metadata !9, metadata !14}
-!9 = metadata !{i32 786445, metadata !19, metadata !7, metadata !"P1", i32 7, i64 128, i64 64, i64 0, i32 0, metadata !10} ; [ DW_TAG_member ]
-!10 = metadata !{i32 786451, metadata !19, metadata !2, metadata !"Pt", i32 1, i64 128, i64 64, i64 0, i32 0, null, metadata !11, i32 0, null} ; [ DW_TAG_structure_type ]
-!11 = metadata !{metadata !12, metadata !13}
-!12 = metadata !{i32 786445, metadata !19, metadata !10, metadata !"x", i32 2, i64 64, i64 64, i64 0, i32 0, metadata !6} ; [ DW_TAG_member ]
-!13 = metadata !{i32 786445, metadata !19, metadata !10, metadata !"y", i32 3, i64 64, i64 64, i64 64, i32 0, metadata !6} ; [ DW_TAG_member ]
-!14 = metadata !{i32 786445, metadata !19, metadata !7, metadata !"P2", i32 8, i64 128, i64 64, i64 128, i32 0, metadata !10} ; [ DW_TAG_member ]
-!15 = metadata !{i32 11, i32 0, metadata !1, null}
-!16 = metadata !{i32 12, i32 0, metadata !17, null}
-!17 = metadata !{i32 786443, metadata !2, metadata !1, i32 11, i32 0} ; [ DW_TAG_lexical_block ]
-!18 = metadata !{metadata !1}
-!19 = metadata !{metadata !"b2.c", metadata !"/tmp/"}
diff --git a/test/CodeGen/X86/dbg-const-int.ll b/test/CodeGen/X86/dbg-const-int.ll
deleted file mode 100644
index f72729c5fee1a..0000000000000
--- a/test/CodeGen/X86/dbg-const-int.ll
+++ /dev/null
@@ -1,30 +0,0 @@
-; RUN: llc < %s - | FileCheck %s
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
-target triple = "x86_64-apple-macosx10.6.7"
-; Radar 9511391
-
-;CHECK: .byte 4 ## DW_AT_const_value
-define i32 @foo() nounwind uwtable readnone optsize ssp {
-entry:
- tail call void @llvm.dbg.value(metadata !8, i64 0, metadata !6), !dbg !9
- ret i32 42, !dbg !10
-}
-
-declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
-
-!llvm.dbg.cu = !{!0}
-
-!0 = metadata !{i32 786449, i32 12, metadata !2, metadata !"clang version 3.0 (trunk 132191)", i1 true, metadata !"", i32 0, null, null, metadata !11, null, null, null} ; [ DW_TAG_compile_unit ]
-!1 = metadata !{i32 786478, metadata !2, metadata !"foo", metadata !"foo", metadata !"", metadata !2, i32 1, metadata !3, i1 false, i1 true, i32 0, i32 0, i32 0, i32 0, i1 true, i32 ()* @foo, null, null, metadata !12, i32 0} ; [ DW_TAG_subprogram ]
-!2 = metadata !{i32 786473, metadata !13} ; [ DW_TAG_file_type ]
-!3 = metadata !{i32 786453, metadata !2, metadata !"", metadata !2, i32 0, i64 0, i64 0, i32 0, i32 0, i32 0, metadata !4, i32 0, i32 0} ; [ DW_TAG_subroutine_type ]
-!4 = metadata !{metadata !5}
-!5 = metadata !{i32 786468, metadata !0, metadata !"int", null, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
-!6 = metadata !{i32 786688, metadata !7, metadata !"i", metadata !2, i32 2, metadata !5, i32 0, null} ; [ DW_TAG_auto_variable ]
-!7 = metadata !{i32 786443, metadata !2, metadata !1, i32 1, i32 11, i32 0} ; [ DW_TAG_lexical_block ]
-!8 = metadata !{i32 42}
-!9 = metadata !{i32 2, i32 12, metadata !7, null}
-!10 = metadata !{i32 3, i32 2, metadata !7, null}
-!11 = metadata !{metadata !1}
-!12 = metadata !{metadata !6}
-!13 = metadata !{metadata !"a.c", metadata !"/private/tmp"}
diff --git a/test/CodeGen/X86/dbg-const.ll b/test/CodeGen/X86/dbg-const.ll
deleted file mode 100644
index 5c2e62bc91689..0000000000000
--- a/test/CodeGen/X86/dbg-const.ll
+++ /dev/null
@@ -1,36 +0,0 @@
-; RUN: llc < %s - | FileCheck %s
-target triple = "x86_64-apple-darwin10.0.0"
-
-;CHECK: ## DW_OP_constu
-;CHECK-NEXT: .byte 42
-define i32 @foobar() nounwind readonly noinline ssp {
-entry:
- %call = tail call i32 @bar(), !dbg !11
- tail call void @llvm.dbg.value(metadata !8, i64 0, metadata !6), !dbg !9
- %call2 = tail call i32 @bar(), !dbg !11
- tail call void @llvm.dbg.value(metadata !{i32 %call}, i64 0, metadata !6), !dbg !11
- %add = add nsw i32 %call2, %call, !dbg !12
- ret i32 %add, !dbg !10
-}
-
-declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
-declare i32 @bar() nounwind readnone
-
-!llvm.dbg.cu = !{!2}
-
-!0 = metadata !{i32 786478, metadata !1, metadata !"foobar", metadata !"foobar", metadata !"foobar", metadata !1, i32 12, metadata !3, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 true, i32 ()* @foobar, null, null, metadata !14, i32 0} ; [ DW_TAG_subprogram ]
-!1 = metadata !{i32 786473, metadata !15} ; [ DW_TAG_file_type ]
-!2 = metadata !{i32 786449, i32 12, metadata !1, metadata !"clang version 2.9 (trunk 114183)", i1 true, metadata !"", i32 0, null, null, metadata !13, null, null, metadata !""} ; [ DW_TAG_compile_unit ]
-!3 = metadata !{i32 786453, metadata !1, metadata !"", metadata !1, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !4, i32 0, null}
-!4 = metadata !{metadata !5}
-!5 = metadata !{i32 786468, metadata !1, metadata !"int", metadata !1, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5}
-!6 = metadata !{i32 786688, metadata !7, metadata !"j", metadata !1, i32 15, metadata !5, i32 0, null}
-!7 = metadata !{i32 786443, metadata !1, metadata !0, i32 12, i32 52, i32 0} ; [ DW_TAG_lexical_block ]
-!8 = metadata !{i32 42}
-!9 = metadata !{i32 15, i32 12, metadata !7, null}
-!10 = metadata !{i32 23, i32 3, metadata !7, null}
-!11 = metadata !{i32 17, i32 3, metadata !7, null}
-!12 = metadata !{i32 18, i32 3, metadata !7, null}
-!13 = metadata !{metadata !0}
-!14 = metadata !{metadata !6}
-!15 = metadata !{metadata !"mu.c", metadata !"/private/tmp"}
diff --git a/test/CodeGen/X86/dbg-declare-arg.ll b/test/CodeGen/X86/dbg-declare-arg.ll
deleted file mode 100644
index f7e0c91cdff25..0000000000000
--- a/test/CodeGen/X86/dbg-declare-arg.ll
+++ /dev/null
@@ -1,125 +0,0 @@
-; RUN: llc -O0 -fast-isel=false < %s | FileCheck %s
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
-target triple = "x86_64-apple-macosx10.6.7"
-;Radar 9321650
-
-;CHECK: ##DEBUG_VALUE: my_a
-
-%class.A = type { i32, i32, i32, i32 }
-
-define void @_Z3fooi(%class.A* sret %agg.result, i32 %i) ssp {
-entry:
- %i.addr = alloca i32, align 4
- %j = alloca i32, align 4
- %nrvo = alloca i1
- %cleanup.dest.slot = alloca i32
- store i32 %i, i32* %i.addr, align 4
- call void @llvm.dbg.declare(metadata !{i32* %i.addr}, metadata !26), !dbg !27
- call void @llvm.dbg.declare(metadata !{i32* %j}, metadata !28), !dbg !30
- store i32 0, i32* %j, align 4, !dbg !31
- %tmp = load i32* %i.addr, align 4, !dbg !32
- %cmp = icmp eq i32 %tmp, 42, !dbg !32
- br i1 %cmp, label %if.then, label %if.end, !dbg !32
-
-if.then: ; preds = %entry
- %tmp1 = load i32* %i.addr, align 4, !dbg !33
- %add = add nsw i32 %tmp1, 1, !dbg !33
- store i32 %add, i32* %j, align 4, !dbg !33
- br label %if.end, !dbg !35
-
-if.end: ; preds = %if.then, %entry
- store i1 false, i1* %nrvo, !dbg !36
- call void @llvm.dbg.declare(metadata !{%class.A* %agg.result}, metadata !37), !dbg !39
- %tmp2 = load i32* %j, align 4, !dbg !40
- %x = getelementptr inbounds %class.A* %agg.result, i32 0, i32 0, !dbg !40
- store i32 %tmp2, i32* %x, align 4, !dbg !40
- store i1 true, i1* %nrvo, !dbg !41
- store i32 1, i32* %cleanup.dest.slot
- %nrvo.val = load i1* %nrvo, !dbg !42
- br i1 %nrvo.val, label %nrvo.skipdtor, label %nrvo.unused, !dbg !42
-
-nrvo.unused: ; preds = %if.end
- call void @_ZN1AD1Ev(%class.A* %agg.result), !dbg !42
- br label %nrvo.skipdtor, !dbg !42
-
-nrvo.skipdtor: ; preds = %nrvo.unused, %if.end
- ret void, !dbg !42
-}
-
-declare void @llvm.dbg.declare(metadata, metadata) nounwind readnone
-
-define linkonce_odr void @_ZN1AD1Ev(%class.A* %this) unnamed_addr ssp align 2 {
-entry:
- %this.addr = alloca %class.A*, align 8
- store %class.A* %this, %class.A** %this.addr, align 8
- call void @llvm.dbg.declare(metadata !{%class.A** %this.addr}, metadata !43), !dbg !44
- %this1 = load %class.A** %this.addr
- call void @_ZN1AD2Ev(%class.A* %this1)
- ret void, !dbg !45
-}
-
-define linkonce_odr void @_ZN1AD2Ev(%class.A* %this) unnamed_addr nounwind ssp align 2 {
-entry:
- %this.addr = alloca %class.A*, align 8
- store %class.A* %this, %class.A** %this.addr, align 8
- call void @llvm.dbg.declare(metadata !{%class.A** %this.addr}, metadata !46), !dbg !47
- %this1 = load %class.A** %this.addr
- %x = getelementptr inbounds %class.A* %this1, i32 0, i32 0, !dbg !48
- store i32 1, i32* %x, align 4, !dbg !48
- ret void, !dbg !48
-}
-
-!llvm.dbg.cu = !{!2}
-
-!0 = metadata !{i32 786478, metadata !"", i32 0, metadata !1, metadata !"~A", metadata !"~A", metadata !3, i32 2, metadata !11, i1 false, i1 false, i32 0, i32 0, null, i32 256, i1 false, null, null} ; [ DW_TAG_subprogram ]
-!1 = metadata !{i32 589826, metadata !2, metadata !"A", metadata !3, i32 2, i64 128, i64 32, i32 0, i32 0, null, metadata !4, i32 0, null, null} ; [ DW_TAG_class_type ]
-!2 = metadata !{i32 786449, i32 4, metadata !3, metadata !"clang version 3.0 (trunk 130127)", i1 false, metadata !"", i32 0, null, null, metadata !50, null, null} ; [ DW_TAG_compile_unit ]
-!3 = metadata !{i32 786473, metadata !51} ; [ DW_TAG_file_type ]
-!4 = metadata !{metadata !5, metadata !7, metadata !8, metadata !9, metadata !0, metadata !10, metadata !14}
-!5 = metadata !{i32 786445, metadata !3, metadata !"x", metadata !3, i32 2, i64 32, i64 32, i64 0, i32 0, metadata !6} ; [ DW_TAG_member ]
-!6 = metadata !{i32 786468, metadata !2, metadata !"int", null, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
-!7 = metadata !{i32 786445, metadata !3, metadata !"y", metadata !3, i32 2, i64 32, i64 32, i64 32, i32 0, metadata !6} ; [ DW_TAG_member ]
-!8 = metadata !{i32 786445, metadata !3, metadata !"z", metadata !3, i32 2, i64 32, i64 32, i64 64, i32 0, metadata !6} ; [ DW_TAG_member ]
-!9 = metadata !{i32 786445, metadata !3, metadata !"o", metadata !3, i32 2, i64 32, i64 32, i64 96, i32 0, metadata !6} ; [ DW_TAG_member ]
-!10 = metadata !{i32 786478, metadata !"", i32 0, metadata !1, metadata !"A", metadata !"A", metadata !3, i32 2, metadata !11, i1 false, i1 false, i32 0, i32 0, null, i32 320, i1 false, null, null} ; [ DW_TAG_subprogram ]
-!11 = metadata !{i32 786453, metadata !3, metadata !"", metadata !3, i32 0, i64 0, i64 0, i32 0, i32 0, i32 0, metadata !12, i32 0, i32 0} ; [ DW_TAG_subroutine_type ]
-!12 = metadata !{null, metadata !13}
-!13 = metadata !{i32 786447, metadata !2, metadata !"", i32 0, i32 0, i64 64, i64 64, i64 0, i32 64, metadata !1} ; [ DW_TAG_pointer_type ]
-!14 = metadata !{i32 786478, metadata !"", i32 0, metadata !1, metadata !"A", metadata !"A", metadata !3, i32 2, metadata !15, i1 false, i1 false, i32 0, i32 0, null, i32 320, i1 false, null, null} ; [ DW_TAG_subprogram ]
-!15 = metadata !{i32 786453, metadata !3, metadata !"", metadata !3, i32 0, i64 0, i64 0, i32 0, i32 0, i32 0, metadata !16, i32 0, i32 0} ; [ DW_TAG_subroutine_type ]
-!16 = metadata !{null, metadata !13, metadata !17}
-!17 = metadata !{i32 589840, metadata !2, null, null, i32 0, i64 0, i64 0, i64 0, i32 0, metadata !18} ; [ DW_TAG_reference_type ]
-!18 = metadata !{i32 786470, metadata !2, metadata !"", null, i32 0, i64 0, i64 0, i64 0, i32 0, metadata !1} ; [ DW_TAG_const_type ]
-!19 = metadata !{i32 786478, metadata !"_Z3fooi", i32 0, metadata !3, metadata !"foo", metadata !"foo", metadata !3, i32 4, metadata !20, i1 false, i1 true, i32 0, i32 0, i32 0, i32 256, i1 false, void (%class.A*, i32)* @_Z3fooi, null, null} ; [ DW_TAG_subprogram ]
-!20 = metadata !{i32 786453, metadata !3, metadata !"", metadata !3, i32 0, i64 0, i64 0, i32 0, i32 0, i32 0, metadata !21, i32 0, i32 0} ; [ DW_TAG_subroutine_type ]
-!21 = metadata !{metadata !1}
-!22 = metadata !{i32 786478, metadata !"_ZN1AD1Ev", i32 0, metadata !3, metadata !"~A", metadata !"~A", metadata !3, i32 2, metadata !23, i1 false, i1 true, i32 0, i32 0, i32 0, i32 256, i1 false, void (%class.A*)* @_ZN1AD1Ev, null, null} ; [ DW_TAG_subprogram ]
-!23 = metadata !{i32 786453, metadata !3, metadata !"", metadata !3, i32 0, i64 0, i64 0, i32 0, i32 0, i32 0, metadata !24, i32 0, i32 0} ; [ DW_TAG_subroutine_type ]
-!24 = metadata !{null}
-!25 = metadata !{i32 786478, metadata !"_ZN1AD2Ev", i32 0, metadata !3, metadata !"~A", metadata !"~A", metadata !3, i32 2, metadata !23, i1 false, i1 true, i32 0, i32 0, i32 0, i32 256, i1 false, void (%class.A*)* @_ZN1AD2Ev, null, null} ; [ DW_TAG_subprogram ]
-!26 = metadata !{i32 786689, metadata !19, metadata !"i", metadata !3, i32 16777220, metadata !6, i32 0, null} ; [ DW_TAG_arg_variable ]
-!27 = metadata !{i32 4, i32 11, metadata !19, null}
-!28 = metadata !{i32 786688, metadata !29, metadata !"j", metadata !3, i32 5, metadata !6, i32 0, null} ; [ DW_TAG_auto_variable ]
-!29 = metadata !{i32 786443, metadata !19, i32 4, i32 14, metadata !3, i32 0} ; [ DW_TAG_lexical_block ]
-!30 = metadata !{i32 5, i32 7, metadata !29, null}
-!31 = metadata !{i32 5, i32 12, metadata !29, null}
-!32 = metadata !{i32 6, i32 3, metadata !29, null}
-!33 = metadata !{i32 7, i32 5, metadata !34, null}
-!34 = metadata !{i32 786443, metadata !29, i32 6, i32 16, metadata !3, i32 1} ; [ DW_TAG_lexical_block ]
-!35 = metadata !{i32 8, i32 3, metadata !34, null}
-!36 = metadata !{i32 9, i32 9, metadata !29, null}
-!37 = metadata !{i32 786688, metadata !29, metadata !"my_a", metadata !3, i32 9, metadata !38, i32 0, null} ; [ DW_TAG_auto_variable ]
-!38 = metadata !{i32 589840, metadata !2, null, null, i32 0, i64 0, i64 0, i64 0, i32 0, metadata !1} ; [ DW_TAG_reference_type ]
-!39 = metadata !{i32 9, i32 5, metadata !29, null}
-!40 = metadata !{i32 10, i32 3, metadata !29, null}
-!41 = metadata !{i32 11, i32 3, metadata !29, null}
-!42 = metadata !{i32 12, i32 1, metadata !29, null}
-!43 = metadata !{i32 786689, metadata !22, metadata !"this", metadata !3, i32 16777218, metadata !13, i32 64, null} ; [ DW_TAG_arg_variable ]
-!44 = metadata !{i32 2, i32 47, metadata !22, null}
-!45 = metadata !{i32 2, i32 61, metadata !22, null}
-!46 = metadata !{i32 786689, metadata !25, metadata !"this", metadata !3, i32 16777218, metadata !13, i32 64, null} ; [ DW_TAG_arg_variable ]
-!47 = metadata !{i32 2, i32 47, metadata !25, null}
-!48 = metadata !{i32 2, i32 54, metadata !49, null}
-!49 = metadata !{i32 786443, metadata !25, i32 2, i32 52, metadata !3, i32 2} ; [ DW_TAG_lexical_block ]
-!50 = metadata !{metadata !0, metadata !10, metadata !14, metadata !19, metadata !22, metadata !25}
-!51 = metadata !{metadata !"a.cc", metadata !"/private/tmp"}
diff --git a/test/CodeGen/X86/dbg-declare.ll b/test/CodeGen/X86/dbg-declare.ll
deleted file mode 100644
index 6ac397ac42e19..0000000000000
--- a/test/CodeGen/X86/dbg-declare.ll
+++ /dev/null
@@ -1,55 +0,0 @@
-; RUN: llc < %s -O0 -mtriple x86_64-apple-darwin
-; <rdar://problem/11134152>
-
-define i32 @foo(i32* %x) nounwind uwtable ssp {
-entry:
- %x.addr = alloca i32*, align 8
- %saved_stack = alloca i8*
- %cleanup.dest.slot = alloca i32
- store i32* %x, i32** %x.addr, align 8
- call void @llvm.dbg.declare(metadata !{i32** %x.addr}, metadata !14), !dbg !15
- %0 = load i32** %x.addr, align 8, !dbg !16
- %1 = load i32* %0, align 4, !dbg !16
- %2 = zext i32 %1 to i64, !dbg !16
- %3 = call i8* @llvm.stacksave(), !dbg !16
- store i8* %3, i8** %saved_stack, !dbg !16
- %vla = alloca i8, i64 %2, align 16, !dbg !16
- call void @llvm.dbg.declare(metadata !{i8* %vla}, metadata !18), !dbg !23
- store i32 1, i32* %cleanup.dest.slot
- %4 = load i8** %saved_stack, !dbg !24
- call void @llvm.stackrestore(i8* %4), !dbg !24
- ret i32 0, !dbg !25
-}
-
-declare void @llvm.dbg.declare(metadata, metadata) nounwind readnone
-
-declare i8* @llvm.stacksave() nounwind
-
-declare void @llvm.stackrestore(i8*) nounwind
-
-!llvm.dbg.cu = !{!0}
-
-!0 = metadata !{i32 786449, i32 12, metadata !6, metadata !"clang version 3.1 (trunk 153698)", i1 false, metadata !"", i32 0, metadata !1, metadata !1, metadata !3, metadata !1, metadata !""} ; [ DW_TAG_compile_unit ]
-!1 = metadata !{i32 0}
-!3 = metadata !{metadata !5}
-!5 = metadata !{i32 786478, metadata !6, metadata !"foo", metadata !"foo", metadata !"", metadata !6, i32 6, metadata !7, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 false, i32 (i32*)* @foo, null, null, metadata !12} ; [ DW_TAG_subprogram ]
-!6 = metadata !{i32 786473, metadata !"20020104-2.c", metadata !"/Volumes/Sandbox/llvm", null} ; [ DW_TAG_file_type ]
-!7 = metadata !{i32 786453, i32 0, metadata !"", i32 0, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !8, i32 0, i32 0} ; [ DW_TAG_subroutine_type ]
-!8 = metadata !{metadata !9, metadata !10}
-!9 = metadata !{i32 786468, null, metadata !"int", null, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
-!10 = metadata !{i32 786447, null, metadata !"", null, i32 0, i64 64, i64 64, i64 0, i32 0, metadata !11} ; [ DW_TAG_pointer_type ]
-!11 = metadata !{i32 786470, null, metadata !"", null, i32 0, i64 0, i64 0, i64 0, i32 0, metadata !9} ; [ DW_TAG_const_type ]
-!12 = metadata !{metadata !13}
-!13 = metadata !{i32 786468} ; [ DW_TAG_base_type ]
-!14 = metadata !{i32 786689, metadata !5, metadata !"x", metadata !6, i32 16777221, metadata !10, i32 0, i32 0} ; [ DW_TAG_arg_variable ]
-!15 = metadata !{i32 5, i32 21, metadata !5, null}
-!16 = metadata !{i32 7, i32 13, metadata !17, null}
-!17 = metadata !{i32 786443, metadata !5, i32 6, i32 1, metadata !6, i32 0} ; [ DW_TAG_lexical_block ]
-!18 = metadata !{i32 786688, metadata !17, metadata !"a", metadata !6, i32 7, metadata !19, i32 0, i32 0} ; [ DW_TAG_auto_variable ]
-!19 = metadata !{i32 786433, null, metadata !"", null, i32 0, i64 0, i64 8, i32 0, i32 0, metadata !20, metadata !21, i32 0, i32 0} ; [ DW_TAG_array_type ]
-!20 = metadata !{i32 786468, null, metadata !"char", null, i32 0, i64 8, i64 8, i64 0, i32 0, i32 6} ; [ DW_TAG_base_type ]
-!21 = metadata !{metadata !22}
-!22 = metadata !{i32 786465, i64 0, i64 -1} ; [ DW_TAG_subrange_type ]
-!23 = metadata !{i32 7, i32 8, metadata !17, null}
-!24 = metadata !{i32 9, i32 1, metadata !17, null}
-!25 = metadata !{i32 8, i32 3, metadata !17, null}
diff --git a/test/CodeGen/X86/dbg-file-name.ll b/test/CodeGen/X86/dbg-file-name.ll
deleted file mode 100644
index 1bd3d77522a3e..0000000000000
--- a/test/CodeGen/X86/dbg-file-name.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; RUN: llc -enable-dwarf-directory -mtriple x86_64-apple-darwin10.0.0 < %s | FileCheck %s
-
-; Radar 8884898
-; CHECK: file 1 "simple.c"
-
-declare i32 @printf(i8*, ...) nounwind
-
-define i32 @main() nounwind {
- ret i32 0
-}
-
-!llvm.dbg.cu = !{!2}
-
-!1 = metadata !{i32 786473, metadata !10} ; [ DW_TAG_file_type ]
-!2 = metadata !{i32 786449, metadata !10, i32 1, metadata !"LLVM build 00", i1 true, i1 false, metadata !"", i32 0, null, null, metadata !9, null} ; [ DW_TAG_compile_unit ]
-!5 = metadata !{i32 786468, metadata !1, metadata !"int", metadata !1, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
-!6 = metadata !{i32 786478, i32 0, metadata !1, metadata !"main", metadata !"main", metadata !"main", metadata !1, i32 9, metadata !7, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 false, i32 ()* @main, null, null, null, i32 0} ; [ DW_TAG_subprogram ]
-!7 = metadata !{i32 786453, metadata !1, metadata !"", metadata !1, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !8, i32 0, null} ; [ DW_TAG_subroutine_type ]
-!8 = metadata !{metadata !5}
-!9 = metadata !{metadata !6}
-!10 = metadata !{metadata !"simple.c", metadata !"/Users/manav/one/two"}
diff --git a/test/CodeGen/X86/dbg-i128-const.ll b/test/CodeGen/X86/dbg-i128-const.ll
deleted file mode 100644
index cc612b2ca53e5..0000000000000
--- a/test/CodeGen/X86/dbg-i128-const.ll
+++ /dev/null
@@ -1,31 +0,0 @@
-; RUN: llc -mtriple=x86_64-linux < %s | FileCheck %s
-
-; CHECK: DW_AT_const_value
-; CHECK-NEXT: 42
-
-define i128 @__foo(i128 %a, i128 %b) nounwind {
-entry:
- tail call void @llvm.dbg.value(metadata !0, i64 0, metadata !1), !dbg !11
- %add = add i128 %a, %b, !dbg !11
- ret i128 %add, !dbg !11
-}
-
-declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
-
-!llvm.dbg.cu = !{!5}
-
-!0 = metadata !{i128 42 }
-!1 = metadata !{i32 786688, metadata !2, metadata !"MAX", metadata !4, i32 29, metadata !8, i32 0, null} ; [ DW_TAG_auto_variable ]
-!2 = metadata !{i32 786443, metadata !4, metadata !3, i32 26, i32 0, i32 0} ; [ DW_TAG_lexical_block ]
-!3 = metadata !{i32 786478, metadata !4, metadata !"__foo", metadata !"__foo", metadata !"__foo", metadata !4, i32 26, metadata !6, i1 false, i1 true, i32 0, i32 0, null, i1 false, i128 (i128, i128)* @__foo, null, null, null, i32 26} ; [ DW_TAG_subprogram ]
-!4 = metadata !{i32 786473, metadata !13} ; [ DW_TAG_file_type ]
-!5 = metadata !{i32 786449, i32 1, metadata !4, metadata !"clang", i1 true, metadata !"", i32 0, null, null, metadata !12, null, null, metadata !""} ; [ DW_TAG_compile_unit ]
-!6 = metadata !{i32 786453, metadata !13, metadata !4, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !7, i32 0, null} ; [ DW_TAG_subroutine_type ]
-!7 = metadata !{metadata !8, metadata !8, metadata !8}
-!8 = metadata !{i32 786454, metadata !14, metadata !4, metadata !"ti_int", i32 78, i64 0, i64 0, i64 0, i32 0, metadata !10} ; [ DW_TAG_typedef ]
-!9 = metadata !{i32 786473, metadata !14} ; [ DW_TAG_file_type ]
-!10 = metadata !{i32 786468, metadata !13, metadata !4, metadata !"", i32 0, i64 128, i64 128, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
-!11 = metadata !{i32 29, i32 0, metadata !2, null}
-!12 = metadata !{metadata !3}
-!13 = metadata !{metadata !"foo.c", metadata !"/tmp"}
-!14 = metadata !{metadata !"myint.h", metadata !"/tmp"}
diff --git a/test/CodeGen/X86/dbg-large-unsigned-const.ll b/test/CodeGen/X86/dbg-large-unsigned-const.ll
deleted file mode 100644
index c381cd754cfe3..0000000000000
--- a/test/CodeGen/X86/dbg-large-unsigned-const.ll
+++ /dev/null
@@ -1,58 +0,0 @@
-; RUN: llc -filetype=obj %s -o /dev/null
-; Hanle large unsigned constant values.
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128-n8:16:32"
-target triple = "i386-apple-macosx10.7.0"
-
-define zeroext i1 @_Z3iseRKxS0_(i64* nocapture %LHS, i64* nocapture %RHS) nounwind readonly optsize ssp {
-entry:
- tail call void @llvm.dbg.value(metadata !{i64* %LHS}, i64 0, metadata !7), !dbg !13
- tail call void @llvm.dbg.value(metadata !{i64* %RHS}, i64 0, metadata !11), !dbg !14
- %tmp1 = load i64* %LHS, align 4, !dbg !15
- %tmp3 = load i64* %RHS, align 4, !dbg !15
- %cmp = icmp eq i64 %tmp1, %tmp3, !dbg !15
- ret i1 %cmp, !dbg !15
-}
-
-define zeroext i1 @_Z2fnx(i64 %a) nounwind readnone optsize ssp {
-entry:
- tail call void @llvm.dbg.value(metadata !{i64 %a}, i64 0, metadata !12), !dbg !20
- tail call void @llvm.dbg.value(metadata !{i64 %a}, i64 0, metadata !12), !dbg !20
- tail call void @llvm.dbg.value(metadata !{i64 %a}, i64 0, metadata !21), !dbg !24
- tail call void @llvm.dbg.value(metadata !25, i64 0, metadata !26), !dbg !27
- %cmp.i = icmp eq i64 %a, 9223372036854775807, !dbg !28
- ret i1 %cmp.i, !dbg !22
-}
-
-declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
-
-!llvm.dbg.cu = !{!0}
-!29 = metadata !{metadata !1, metadata !6}
-!30 = metadata !{metadata !7, metadata !11}
-!31 = metadata !{metadata !12}
-
-!0 = metadata !{i32 786449, i32 4, metadata !2, metadata !"clang version 3.0 (trunk 135593)", i1 true, metadata !"", i32 0, null, null, metadata !29, null, metadata !""} ; [ DW_TAG_compile_unit ]
-!1 = metadata !{i32 786478, metadata !"_Z3iseRKxS0_", i32 0, metadata !2, metadata !"ise", metadata !"ise", metadata !2, i32 2, metadata !3, i1 false, i1 true, i32 0, i32 0, i32 0, i32 256, i1 true, i1 (i64*, i64*)* @_Z3iseRKxS0_, null, null, metadata !30, i32 2} ; [ DW_TAG_subprogram ]
-!2 = metadata !{i32 786473, metadata !"lli.cc", metadata !"/private/tmp", metadata !0} ; [ DW_TAG_file_type ]
-!3 = metadata !{i32 786453, metadata !2, metadata !"", metadata !2, i32 0, i64 0, i64 0, i32 0, i32 0, i32 0, metadata !4, i32 0, i32 0} ; [ DW_TAG_subroutine_type ]
-!4 = metadata !{metadata !5}
-!5 = metadata !{i32 786468, metadata !0, metadata !"bool", null, i32 0, i64 8, i64 8, i64 0, i32 0, i32 2} ; [ DW_TAG_base_type ]
-!6 = metadata !{i32 786478, metadata !"_Z2fnx", i32 0, metadata !2, metadata !"fn", metadata !"fn", metadata !2, i32 6, metadata !3, i1 false, i1 true, i32 0, i32 0, i32 0, i32 256, i1 true, i1 (i64)* @_Z2fnx, null, null, metadata !31, i32 6} ; [ DW_TAG_subprogram ]
-!7 = metadata !{i32 786689, metadata !1, metadata !"LHS", metadata !2, i32 16777218, metadata !8, i32 0, i32 0} ; [ DW_TAG_arg_variable ]
-!8 = metadata !{i32 786448, metadata !0, null, null, i32 0, i64 32, i64 32, i64 0, i32 0, metadata !9} ; [ DW_TAG_reference_type ]
-!9 = metadata !{i32 786470, metadata !0, metadata !"", null, i32 0, i64 0, i64 0, i64 0, i32 0, metadata !10} ; [ DW_TAG_const_type ]
-!10 = metadata !{i32 786468, metadata !0, metadata !"long long int", null, i32 0, i64 64, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
-!11 = metadata !{i32 786689, metadata !1, metadata !"RHS", metadata !2, i32 33554434, metadata !8, i32 0, i32 0} ; [ DW_TAG_arg_variable ]
-!12 = metadata !{i32 786689, metadata !6, metadata !"a", metadata !2, i32 16777222, metadata !10, i32 0, i32 0} ; [ DW_TAG_arg_variable ]
-!13 = metadata !{i32 2, i32 27, metadata !1, null}
-!14 = metadata !{i32 2, i32 49, metadata !1, null}
-!15 = metadata !{i32 3, i32 3, metadata !16, null}
-!16 = metadata !{i32 786443, metadata !2, metadata !1, i32 2, i32 54, i32 0} ; [ DW_TAG_lexical_block ]
-!20 = metadata !{i32 6, i32 19, metadata !6, null}
-!21 = metadata !{i32 786689, metadata !1, metadata !"LHS", metadata !2, i32 16777218, metadata !8, i32 0, metadata !22} ; [ DW_TAG_arg_variable ]
-!22 = metadata !{i32 7, i32 10, metadata !23, null}
-!23 = metadata !{i32 786443, metadata !2, metadata !6, i32 6, i32 22, i32 1} ; [ DW_TAG_lexical_block ]
-!24 = metadata !{i32 2, i32 27, metadata !1, metadata !22}
-!25 = metadata !{i64 9223372036854775807}
-!26 = metadata !{i32 786689, metadata !1, metadata !"RHS", metadata !2, i32 33554434, metadata !8, i32 0, metadata !22} ; [ DW_TAG_arg_variable ]
-!27 = metadata !{i32 2, i32 49, metadata !1, metadata !22}
-!28 = metadata !{i32 3, i32 3, metadata !16, metadata !22}
diff --git a/test/CodeGen/X86/dbg-merge-loc-entry.ll b/test/CodeGen/X86/dbg-merge-loc-entry.ll
deleted file mode 100644
index 30d03054a1048..0000000000000
--- a/test/CodeGen/X86/dbg-merge-loc-entry.ll
+++ /dev/null
@@ -1,78 +0,0 @@
-; RUN: llc < %s | FileCheck %s
-; RUN: llc < %s -regalloc=basic | FileCheck %s
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
-target triple = "x86_64-apple-darwin8"
-
-;CHECK: Ldebug_loc0:
-;CHECK-NEXT: .quad Lfunc_begin0
-;CHECK-NEXT: .quad L
-;CHECK-NEXT: Lset{{.*}} = Ltmp{{.*}}-Ltmp{{.*}} ## Loc expr size
-;CHECK-NEXT: .short Lset
-;CHECK-NEXT: Ltmp
-;CHECK-NEXT: .byte 85 ## DW_OP_reg5
-;CHECK-NEXT: Ltmp
-;CHECK-NEXT: .quad 0
-;CHECK-NEXT: .quad 0
-
-%0 = type { i64, i1 }
-
-@__clz_tab = external constant [256 x i8]
-
-define hidden i128 @__divti3(i128 %u, i128 %v) nounwind readnone {
-entry:
- tail call void @llvm.dbg.value(metadata !{i128 %u}, i64 0, metadata !14), !dbg !15
- tail call void @llvm.dbg.value(metadata !16, i64 0, metadata !17), !dbg !21
- br i1 undef, label %bb2, label %bb4, !dbg !22
-
-bb2: ; preds = %entry
- br label %bb4, !dbg !23
-
-bb4: ; preds = %bb2, %entry
- br i1 undef, label %__udivmodti4.exit, label %bb82.i, !dbg !24
-
-bb82.i: ; preds = %bb4
- unreachable
-
-__udivmodti4.exit: ; preds = %bb4
- ret i128 undef, !dbg !27
-}
-
-declare void @llvm.dbg.declare(metadata, metadata) nounwind readnone
-
-declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
-
-declare %0 @llvm.uadd.with.overflow.i64(i64, i64) nounwind readnone
-
-!llvm.dbg.cu = !{!2}
-
-!0 = metadata !{i32 786478, metadata !1, metadata !"__udivmodti4", metadata !"__udivmodti4", metadata !"", metadata !1, i32 879, metadata !3, i1 true, i1 true, i32 0, i32 0, null, i32 256, i1 true, null, null, null, null, i32 879} ; [ DW_TAG_subprogram ]
-!1 = metadata !{i32 786473, metadata !29} ; [ DW_TAG_file_type ]
-!2 = metadata !{i32 786449, i32 1, metadata !1, metadata !"4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", i1 true, metadata !"", i32 0, null, null, metadata !28, null, null, metadata !""} ; [ DW_TAG_compile_unit ]
-!3 = metadata !{i32 786453, metadata !29, metadata !1, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !4, i32 0, null} ; [ DW_TAG_subroutine_type ]
-!4 = metadata !{metadata !5, metadata !5, metadata !5, metadata !8}
-!5 = metadata !{i32 786454, metadata !30, metadata !6, metadata !"UTItype", i32 166, i64 0, i64 0, i64 0, i32 0, metadata !7} ; [ DW_TAG_typedef ]
-!6 = metadata !{i32 786473, metadata !30} ; [ DW_TAG_file_type ]
-!7 = metadata !{i32 786468, metadata !29, metadata !1, metadata !"", i32 0, i64 128, i64 128, i64 0, i32 0, i32 7} ; [ DW_TAG_base_type ]
-!8 = metadata !{i32 786447, metadata !29, metadata !1, metadata !"", i32 0, i64 64, i64 64, i64 0, i32 0, metadata !5} ; [ DW_TAG_pointer_type ]
-!9 = metadata !{i32 786478, metadata !1, metadata !"__divti3", metadata !"__divti3", metadata !"__divti3", metadata !1, i32 1094, metadata !10, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 true, i128 (i128, i128)* @__divti3, null, null, null, i32 1094} ; [ DW_TAG_subprogram ]
-!10 = metadata !{i32 786453, metadata !29, metadata !1, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !11, i32 0, null} ; [ DW_TAG_subroutine_type ]
-!11 = metadata !{metadata !12, metadata !12, metadata !12}
-!12 = metadata !{i32 786454, metadata !30, metadata !6, metadata !"TItype", i32 160, i64 0, i64 0, i64 0, i32 0, metadata !13} ; [ DW_TAG_typedef ]
-!13 = metadata !{i32 786468, metadata !29, metadata !1, metadata !"", i32 0, i64 128, i64 128, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
-!14 = metadata !{i32 786689, metadata !9, metadata !"u", metadata !1, i32 1093, metadata !12, i32 0, null} ; [ DW_TAG_arg_variable ]
-!15 = metadata !{i32 1093, i32 0, metadata !9, null}
-!16 = metadata !{i64 0}
-!17 = metadata !{i32 786688, metadata !18, metadata !"c", metadata !1, i32 1095, metadata !19, i32 0, null} ; [ DW_TAG_auto_variable ]
-!18 = metadata !{i32 786443, metadata !1, metadata !9, i32 1094, i32 0, i32 13} ; [ DW_TAG_lexical_block ]
-!19 = metadata !{i32 786454, metadata !30, metadata !6, metadata !"word_type", i32 424, i64 0, i64 0, i64 0, i32 0, metadata !20} ; [ DW_TAG_typedef ]
-!20 = metadata !{i32 786468, metadata !29, metadata !1, metadata !"long int", i32 0, i64 64, i64 64, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
-!21 = metadata !{i32 1095, i32 0, metadata !18, null}
-!22 = metadata !{i32 1103, i32 0, metadata !18, null}
-!23 = metadata !{i32 1104, i32 0, metadata !18, null}
-!24 = metadata !{i32 1003, i32 0, metadata !25, metadata !26}
-!25 = metadata !{i32 786443, metadata !1, metadata !0, i32 879, i32 0, i32 0} ; [ DW_TAG_lexical_block ]
-!26 = metadata !{i32 1107, i32 0, metadata !18, null}
-!27 = metadata !{i32 1111, i32 0, metadata !18, null}
-!28 = metadata !{metadata !0, metadata !9}
-!29 = metadata !{metadata !"foobar.c", metadata !"/tmp"}
-!30 = metadata !{metadata !"foobar.h", metadata !"/tmp"}
diff --git a/test/CodeGen/X86/dbg-prolog-end.ll b/test/CodeGen/X86/dbg-prolog-end.ll
deleted file mode 100644
index d1774cc7bcafe..0000000000000
--- a/test/CodeGen/X86/dbg-prolog-end.ll
+++ /dev/null
@@ -1,55 +0,0 @@
-; RUN: llc -O0 < %s | FileCheck %s
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
-target triple = "x86_64-apple-macosx10.6.7"
-
-;CHECK: .loc 1 2 11 prologue_end
-define i32 @foo(i32 %i) nounwind ssp {
-entry:
- %i.addr = alloca i32, align 4
- %j = alloca i32, align 4
- store i32 %i, i32* %i.addr, align 4
- call void @llvm.dbg.declare(metadata !{i32* %i.addr}, metadata !7), !dbg !8
- call void @llvm.dbg.declare(metadata !{i32* %j}, metadata !9), !dbg !11
- store i32 2, i32* %j, align 4, !dbg !12
- %tmp = load i32* %j, align 4, !dbg !13
- %inc = add nsw i32 %tmp, 1, !dbg !13
- store i32 %inc, i32* %j, align 4, !dbg !13
- %tmp1 = load i32* %j, align 4, !dbg !14
- %tmp2 = load i32* %i.addr, align 4, !dbg !14
- %add = add nsw i32 %tmp1, %tmp2, !dbg !14
- store i32 %add, i32* %j, align 4, !dbg !14
- %tmp3 = load i32* %j, align 4, !dbg !15
- ret i32 %tmp3, !dbg !15
-}
-
-declare void @llvm.dbg.declare(metadata, metadata) nounwind readnone
-
-define i32 @main() nounwind ssp {
-entry:
- %retval = alloca i32, align 4
- store i32 0, i32* %retval
- %call = call i32 @foo(i32 21), !dbg !16
- ret i32 %call, !dbg !16
-}
-
-!llvm.dbg.cu = !{!0}
-!18 = metadata !{metadata !1, metadata !6}
-
-!0 = metadata !{i32 786449, i32 12, metadata !2, metadata !"clang version 3.0 (trunk 131100)", i1 false, metadata !"", i32 0, null, null, metadata !18, null, null, metadata !""} ; [ DW_TAG_compile_unit ]
-!1 = metadata !{i32 786478, metadata !2, metadata !"foo", metadata !"foo", metadata !"", metadata !2, i32 1, metadata !3, i1 false, i1 true, i32 0, i32 0, i32 0, i32 256, i1 false, i32 (i32)* @foo, null, null, null, i32 1} ; [ DW_TAG_subprogram ]
-!2 = metadata !{i32 786473, metadata !"/tmp/a.c", metadata !"/private/tmp", metadata !0} ; [ DW_TAG_file_type ]
-!3 = metadata !{i32 786453, metadata !2, metadata !"", metadata !2, i32 0, i64 0, i64 0, i32 0, i32 0, i32 0, metadata !4, i32 0, i32 0} ; [ DW_TAG_subroutine_type ]
-!4 = metadata !{metadata !5}
-!5 = metadata !{i32 786468, metadata !0, metadata !"int", null, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
-!6 = metadata !{i32 786478, metadata !2, metadata !"main", metadata !"main", metadata !"", metadata !2, i32 7, metadata !3, i1 false, i1 true, i32 0, i32 0, i32 0, i32 0, i1 false, i32 ()* @main, null, null, null, i32 7} ; [ DW_TAG_subprogram ]
-!7 = metadata !{i32 786689, metadata !1, metadata !"i", metadata !2, i32 16777217, metadata !5, i32 0, null} ; [ DW_TAG_arg_variable ]
-!8 = metadata !{i32 1, i32 13, metadata !1, null}
-!9 = metadata !{i32 786688, metadata !10, metadata !"j", metadata !2, i32 2, metadata !5, i32 0, null} ; [ DW_TAG_auto_variable ]
-!10 = metadata !{i32 786443, metadata !2, metadata !1, i32 1, i32 16, i32 0} ; [ DW_TAG_lexical_block ]
-!11 = metadata !{i32 2, i32 6, metadata !10, null}
-!12 = metadata !{i32 2, i32 11, metadata !10, null}
-!13 = metadata !{i32 3, i32 2, metadata !10, null}
-!14 = metadata !{i32 4, i32 2, metadata !10, null}
-!15 = metadata !{i32 5, i32 2, metadata !10, null}
-!16 = metadata !{i32 8, i32 2, metadata !17, null}
-!17 = metadata !{i32 786443, metadata !2, metadata !6, i32 7, i32 12, i32 1} ; [ DW_TAG_lexical_block ]
diff --git a/test/CodeGen/X86/dbg-subrange.ll b/test/CodeGen/X86/dbg-subrange.ll
deleted file mode 100644
index b08d68a6643d3..0000000000000
--- a/test/CodeGen/X86/dbg-subrange.ll
+++ /dev/null
@@ -1,34 +0,0 @@
-; RUN: llc -O0 < %s | FileCheck %s
-; Radar 10464995
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
-target triple = "x86_64-apple-macosx10.7.2"
-
-@s = common global [4294967296 x i8] zeroinitializer, align 16
-;CHECK: .long 4294967295
-
-define void @bar() nounwind uwtable ssp {
-entry:
- store i8 97, i8* getelementptr inbounds ([4294967296 x i8]* @s, i32 0, i64 0), align 1, !dbg !18
- ret void, !dbg !20
-}
-
-!llvm.dbg.cu = !{!0}
-
-!0 = metadata !{i32 786449, i32 12, metadata !6, metadata !"clang version 3.1 (trunk 144833)", i1 false, metadata !"", i32 0, metadata !1, metadata !1, metadata !3, metadata !11, metadata !11, metadata !""} ; [ DW_TAG_compile_unit ]
-!1 = metadata !{i32 0}
-!3 = metadata !{metadata !5}
-!5 = metadata !{i32 720942, metadata !6, metadata !"bar", metadata !"bar", metadata !"", metadata !6, i32 4, metadata !7, i1 false, i1 true, i32 0, i32 0, i32 0, i32 256, i1 false, void ()* @bar, null, null, metadata !9} ; [ DW_TAG_subprogram ]
-!6 = metadata !{i32 720937, metadata !"small.c", metadata !"/private/tmp", null} ; [ DW_TAG_file_type ]
-!7 = metadata !{i32 720917, i32 0, metadata !"", i32 0, i32 0, i64 0, i64 0, i32 0, i32 0, i32 0, metadata !8, i32 0, i32 0} ; [ DW_TAG_subroutine_type ]
-!8 = metadata !{null}
-!9 = metadata !{metadata !10}
-!10 = metadata !{i32 720932} ; [ DW_TAG_base_type ]
-!11 = metadata !{metadata !13}
-!13 = metadata !{i32 720948, i32 0, null, metadata !"s", metadata !"s", metadata !"", metadata !6, i32 2, metadata !14, i32 0, i32 1, [4294967296 x i8]* @s, null} ; [ DW_TAG_variable ]
-!14 = metadata !{i32 720897, null, metadata !"", null, i32 0, i64 34359738368, i64 8, i32 0, i32 0, metadata !15, metadata !16, i32 0, i32 0} ; [ DW_TAG_array_type ]
-!15 = metadata !{i32 720932, null, metadata !"char", null, i32 0, i64 8, i64 8, i64 0, i32 0, i32 6} ; [ DW_TAG_base_type ]
-!16 = metadata !{metadata !17}
-!17 = metadata !{i32 720929, i64 0, i64 4294967296} ; [ DW_TAG_subrange_type ]
-!18 = metadata !{i32 5, i32 3, metadata !19, null}
-!19 = metadata !{i32 786443, metadata !5, i32 4, i32 1, metadata !6, i32 0} ; [ DW_TAG_lexical_block ]
-!20 = metadata !{i32 6, i32 1, metadata !19, null}
diff --git a/test/CodeGen/X86/dbg-value-dag-combine.ll b/test/CodeGen/X86/dbg-value-dag-combine.ll
deleted file mode 100644
index c63235e7ad65d..0000000000000
--- a/test/CodeGen/X86/dbg-value-dag-combine.ll
+++ /dev/null
@@ -1,47 +0,0 @@
-; RUN: llc < %s | FileCheck %s
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
-target triple = "x86_64-apple-darwin10.0.0"
-; PR 9817
-
-
-declare <4 x i32> @__amdil_get_global_id_int()
-declare void @llvm.dbg.value(metadata , i64 , metadata )
-define void @__OpenCL_test_kernel(i32 addrspace(1)* %ip) nounwind {
-entry:
- call void @llvm.dbg.value(metadata !{i32 addrspace(1)* %ip}, i64 0, metadata
-!7), !dbg !8
- %0 = call <4 x i32> @__amdil_get_global_id_int() nounwind
- %1 = extractelement <4 x i32> %0, i32 0
- call void @llvm.dbg.value(metadata !{i32 %1}, i64 0, metadata !9), !dbg !11
- call void @llvm.dbg.value(metadata !12, i64 0, metadata !13), !dbg !14
- %tmp2 = load i32 addrspace(1)* %ip, align 4, !dbg !15
- %tmp3 = add i32 0, %tmp2, !dbg !15
-; CHECK: ##DEBUG_VALUE: idx <- EAX+0
- call void @llvm.dbg.value(metadata !{i32 %tmp3}, i64 0, metadata !13), !dbg
-!15
- %arrayidx = getelementptr i32 addrspace(1)* %ip, i32 %1, !dbg !16
- store i32 %tmp3, i32 addrspace(1)* %arrayidx, align 4, !dbg !16
- ret void, !dbg !17
-}
-!llvm.dbg.cu = !{!2}
-
-!0 = metadata !{i32 786478, metadata !1, metadata !"__OpenCL_test_kernel", metadata !"__OpenCL_test_kernel", metadata !"__OpenCL_test_kernel", metadata !1, i32 2, metadata !3, i1 false, i1 true, i32 0, i32 0, i32 0, i32 0, i1 false, null} ; [ DW_TAG_subprogram ]
-!1 = metadata !{i32 786473, metadata !19} ; [ DW_TAG_file_type ]
-!2 = metadata !{i32 786449, i32 1, metadata !1, metadata !"clc", i1 false, metadata !"", i32 0, null, null, metadata !18, null, null, null} ; [ DW_TAG_compile_unit ]
-!3 = metadata !{i32 786453, metadata !1, metadata !"", metadata !1, i32 0, i64 0, i64 0, i32 0, i32 0, i32 0, metadata !4, i32 0, i32 0} ; [ DW_TAG_subroutine_type ]
-!4 = metadata !{null, metadata !5}
-!5 = metadata !{i32 786447, metadata !2, metadata !"", null, i32 0, i64 32, i64 32, i64 0, i32 0, metadata !6} ; [ DW_TAG_pointer_type ]
-!6 = metadata !{i32 786468, metadata !2, metadata !"unsigned int", null, i32 0, i64 32, i64 32, i64 0, i32 0, i32 7} ; [ DW_TAG_base_type ]
-!7 = metadata !{i32 786689, metadata !0, metadata !"ip", metadata !1, i32 1, metadata !5, i32 0, null} ; [ DW_TAG_arg_variable ]
-!8 = metadata !{i32 1, i32 42, metadata !0, null}
-!9 = metadata !{i32 786688, metadata !10, metadata !"gid", metadata !1, i32 3, metadata !6, i32 0, null} ; [ DW_TAG_auto_variable ]
-!10 = metadata !{i32 786443, metadata !0, i32 2, i32 1, metadata !1, i32 0} ; [ DW_TAG_lexical_block ]
-!11 = metadata !{i32 3, i32 41, metadata !10, null}
-!12 = metadata !{i32 0}
-!13 = metadata !{i32 786688, metadata !10, metadata !"idx", metadata !1, i32 4, metadata !6, i32 0, null} ; [ DW_TAG_auto_variable ]
-!14 = metadata !{i32 4, i32 20, metadata !10, null}
-!15 = metadata !{i32 5, i32 15, metadata !10, null}
-!16 = metadata !{i32 6, i32 18, metadata !10, null}
-!17 = metadata !{i32 7, i32 1, metadata !0, null}
-!18 = metadata !{metadata !0}
-!19 = metadata !{metadata !"OCL6368.tmp.cl", metadata !"E:\5CUsers\5Cmvillmow.AMD\5CAppData\5CLocal\5CTemp"}
diff --git a/test/CodeGen/X86/dbg-value-isel.ll b/test/CodeGen/X86/dbg-value-isel.ll
deleted file mode 100644
index acc360e90cd23..0000000000000
--- a/test/CodeGen/X86/dbg-value-isel.ll
+++ /dev/null
@@ -1,103 +0,0 @@
-; RUN: llc < %s | FileCheck %s
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
-target triple = "x86_64-apple-darwin10.0.0"
-; PR 9879
-
-; CHECK: ##DEBUG_VALUE: tid <-
-%0 = type { i8*, i8*, i8*, i8*, i32 }
-
-@sgv = internal addrspace(2) constant [1 x i8] zeroinitializer
-@fgv = internal addrspace(2) constant [1 x i8] zeroinitializer
-@lvgv = internal constant [0 x i8*] zeroinitializer
-@llvm.global.annotations = appending global [1 x %0] [%0 { i8* bitcast (void (i32 addrspace(1)*)* @__OpenCL_nbt02_kernel to i8*), i8* bitcast ([1 x i8] addrspace(2)* @sgv to i8*), i8* bitcast ([1 x i8] addrspace(2)* @fgv to i8*), i8* bitcast ([0 x i8*]* @lvgv to i8*), i32 0 }], section "llvm.metadata"
-
-define void @__OpenCL_nbt02_kernel(i32 addrspace(1)* %ip) nounwind {
-entry:
- call void @llvm.dbg.value(metadata !{i32 addrspace(1)* %ip}, i64 0, metadata !8), !dbg !9
- %0 = call <4 x i32> @__amdil_get_local_id_int() nounwind
- %1 = extractelement <4 x i32> %0, i32 0
- br label %2
-
-; <label>:2 ; preds = %entry
- %3 = phi i32 [ %1, %entry ]
- br label %4
-
-; <label>:4 ; preds = %2
- %5 = phi i32 [ %3, %2 ]
- br label %get_local_id.exit
-
-get_local_id.exit: ; preds = %4
- %6 = phi i32 [ %5, %4 ]
- call void @llvm.dbg.value(metadata !{i32 %6}, i64 0, metadata !10), !dbg !12
- %7 = call <4 x i32> @__amdil_get_global_id_int() nounwind, !dbg !12
- %8 = extractelement <4 x i32> %7, i32 0, !dbg !12
- br label %9
-
-; <label>:9 ; preds = %get_local_id.exit
- %10 = phi i32 [ %8, %get_local_id.exit ]
- br label %11
-
-; <label>:11 ; preds = %9
- %12 = phi i32 [ %10, %9 ]
- br label %get_global_id.exit
-
-get_global_id.exit: ; preds = %11
- %13 = phi i32 [ %12, %11 ]
- call void @llvm.dbg.value(metadata !{i32 %13}, i64 0, metadata !13), !dbg !14
- %14 = call <4 x i32> @__amdil_get_local_size_int() nounwind
- %15 = extractelement <4 x i32> %14, i32 0
- br label %16
-
-; <label>:16 ; preds = %get_global_id.exit
- %17 = phi i32 [ %15, %get_global_id.exit ]
- br label %18
-
-; <label>:18 ; preds = %16
- %19 = phi i32 [ %17, %16 ]
- br label %get_local_size.exit
-
-get_local_size.exit: ; preds = %18
- %20 = phi i32 [ %19, %18 ]
- call void @llvm.dbg.value(metadata !{i32 %20}, i64 0, metadata !15), !dbg !16
- %tmp5 = add i32 %6, %13, !dbg !17
- %tmp7 = add i32 %tmp5, %20, !dbg !17
- store i32 %tmp7, i32 addrspace(1)* %ip, align 4, !dbg !17
- br label %return, !dbg !17
-
-return: ; preds = %get_local_size.exit
- ret void, !dbg !18
-}
-
-declare void @llvm.dbg.declare(metadata, metadata) nounwind readnone
-
-declare <4 x i32> @__amdil_get_local_size_int() nounwind
-
-declare <4 x i32> @__amdil_get_local_id_int() nounwind
-
-declare <4 x i32> @__amdil_get_global_id_int() nounwind
-
-declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
-
-!llvm.dbg.cu = !{!2}
-
-!0 = metadata !{i32 786478, metadata !1, metadata !"__OpenCL_nbt02_kernel", metadata !"__OpenCL_nbt02_kernel", metadata !"__OpenCL_nbt02_kernel", metadata !1, i32 2, metadata !3, i1 false, i1 true, i32 0, i32 0, i32 0, i32 0, i1 false, null} ; [ DW_TAG_subprogram ]
-!1 = metadata !{i32 786473, metadata !20} ; [ DW_TAG_file_type ]
-!2 = metadata !{i32 786449, metadata !20, i32 1, metadata !"clc", i1 false, metadata !"", i32 0, null, null, metadata !19, null, null, null} ; [ DW_TAG_compile_unit ]
-!3 = metadata !{i32 786453, metadata !20, metadata !1, metadata !"", i32 0, i64 0, i64 0, i32 0, i32 0, i32 0, metadata !4, i32 0, i32 0} ; [ DW_TAG_subroutine_type ]
-!4 = metadata !{null, metadata !5}
-!5 = metadata !{i32 786447, null, metadata !2, metadata !"", i32 0, i64 32, i64 32, i64 0, i32 0, metadata !6} ; [ DW_TAG_pointer_type ]
-!6 = metadata !{i32 589846, metadata !20, metadata !2, metadata !"uint", i32 0, i64 0, i64 0, i64 0, i32 0, metadata !7} ; [ DW_TAG_typedef ]
-!7 = metadata !{i32 786468, null, metadata !2, metadata !"unsigned int", i32 0, i64 32, i64 32, i64 0, i32 0, i32 7} ; [ DW_TAG_base_type ]
-!8 = metadata !{i32 786689, metadata !0, metadata !"ip", metadata !1, i32 1, metadata !5, i32 0, null} ; [ DW_TAG_arg_variable ]
-!9 = metadata !{i32 1, i32 32, metadata !0, null}
-!10 = metadata !{i32 786688, metadata !11, metadata !"tid", metadata !1, i32 3, metadata !6, i32 0, null} ; [ DW_TAG_auto_variable ]
-!11 = metadata !{i32 786443, metadata !0, i32 2, i32 1, metadata !1, i32 1} ; [ DW_TAG_lexical_block ]
-!12 = metadata !{i32 5, i32 24, metadata !11, null}
-!13 = metadata !{i32 786688, metadata !11, metadata !"gid", metadata !1, i32 3, metadata !6, i32 0, null} ; [ DW_TAG_auto_variable ]
-!14 = metadata !{i32 6, i32 25, metadata !11, null}
-!15 = metadata !{i32 786688, metadata !11, metadata !"lsz", metadata !1, i32 3, metadata !6, i32 0, null} ; [ DW_TAG_auto_variable ]
-!16 = metadata !{i32 7, i32 26, metadata !11, null}
-!17 = metadata !{i32 9, i32 24, metadata !11, null}
-!18 = metadata !{i32 10, i32 1, metadata !0, null}
-!19 = metadata !{metadata !0}
-!20 = metadata !{metadata !"OCLlLwTXZ.cl", metadata !"/tmp"}
diff --git a/test/CodeGen/X86/dbg-value-location.ll b/test/CodeGen/X86/dbg-value-location.ll
deleted file mode 100644
index a6c3e13621c90..0000000000000
--- a/test/CodeGen/X86/dbg-value-location.ll
+++ /dev/null
@@ -1,74 +0,0 @@
-; RUN: llc < %s | FileCheck %s
-; RUN: llc < %s -regalloc=basic | FileCheck %s
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
-target triple = "x86_64-apple-darwin10.0.0"
-;Radar 8950491
-
-;CHECK: .long Lset5
-;CHECK-NEXT: ## DW_AT_decl_file
-;CHECK-NEXT: ## DW_AT_decl_line
-;CHECK-NEXT: ## DW_AT_type
-;CHECK-NEXT: ## DW_AT_location
-
-@dfm = external global i32, align 4
-
-declare void @llvm.dbg.declare(metadata, metadata) nounwind readnone
-
-define i32 @foo(i32 %dev, i64 %cmd, i8* %data, i32 %data2) nounwind optsize ssp {
-entry:
- call void @llvm.dbg.value(metadata !{i32 %dev}, i64 0, metadata !12), !dbg !13
- %tmp.i = load i32* @dfm, align 4, !dbg !14
- %cmp.i = icmp eq i32 %tmp.i, 0, !dbg !14
- br i1 %cmp.i, label %if.else, label %if.end.i, !dbg !14
-
-if.end.i: ; preds = %entry
- switch i64 %cmd, label %if.then [
- i64 2147772420, label %bb.i
- i64 536897538, label %bb116.i
- ], !dbg !22
-
-bb.i: ; preds = %if.end.i
- unreachable
-
-bb116.i: ; preds = %if.end.i
- unreachable
-
-if.then: ; preds = %if.end.i
- ret i32 undef, !dbg !23
-
-if.else: ; preds = %entry
- ret i32 0
-}
-
-declare hidden fastcc i32 @bar(i32, i32* nocapture) nounwind optsize ssp
-declare hidden fastcc i32 @bar2(i32) nounwind optsize ssp
-declare hidden fastcc i32 @bar3(i32) nounwind optsize ssp
-declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
-
-!llvm.dbg.cu = !{!2}
-
-!0 = metadata !{i32 786478, metadata !1, metadata !1, metadata !"foo", metadata !"foo", metadata !"", i32 19510, metadata !3, i1 false, i1 true, i32 0, i32 0, i32 0, i32 256, i1 true, i32 (i32, i64, i8*, i32)* @foo, null, null, null, i32 19510} ; [ DW_TAG_subprogram ]
-!1 = metadata !{i32 786473, metadata !26} ; [ DW_TAG_file_type ]
-!2 = metadata !{i32 786449, metadata !27, i32 12, metadata !"clang version 2.9 (trunk 124753)", i1 true, metadata !"", i32 0, null, null, metadata !24, null, null, null} ; [ DW_TAG_compile_unit ]
-!3 = metadata !{i32 786453, metadata !1, metadata !"", metadata !1, i32 0, i64 0, i64 0, i32 0, i32 0, i32 0, metadata !4, i32 0, i32 0} ; [ DW_TAG_subroutine_type ]
-!4 = metadata !{metadata !5}
-!5 = metadata !{i32 786468, metadata !2, metadata !"int", null, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
-!6 = metadata !{i32 786478, metadata !1, metadata !1, metadata !"bar3", metadata !"bar3", metadata !"", i32 14827, metadata !3, i1 true, i1 true, i32 0, i32 0, i32 0, i32 256, i1 true, i32 (i32)* @bar3} ; [ DW_TAG_subprogram ]
-!7 = metadata !{i32 786478, metadata !1, metadata !1, metadata !"bar2", metadata !"bar2", metadata !"", i32 15397, metadata !3, i1 true, i1 true, i32 0, i32 0, i32 0, i32 256, i1 true, i32 (i32)* @bar2} ; [ DW_TAG_subprogram ]
-!8 = metadata !{i32 786478, metadata !1, metadata !1, metadata !"bar", metadata !"bar", metadata !"", i32 12382, metadata !9, i1 true, i1 true, i32 0, i32 0, i32 0, i32 256, i1 true, i32 (i32, i32*)* @bar} ; [ DW_TAG_subprogram ]
-!9 = metadata !{i32 786453, metadata !1, metadata !"", metadata !1, i32 0, i64 0, i64 0, i32 0, i32 0, i32 0, metadata !10, i32 0, i32 0} ; [ DW_TAG_subroutine_type ]
-!10 = metadata !{metadata !11}
-!11 = metadata !{i32 786468, metadata !2, metadata !"unsigned char", null, i32 0, i64 8, i64 8, i64 0, i32 0, i32 8} ; [ DW_TAG_base_type ]
-!12 = metadata !{i32 786689, metadata !0, metadata !"var", metadata !1, i32 19509, metadata !5, i32 0, null} ; [ DW_TAG_arg_variable ]
-!13 = metadata !{i32 19509, i32 20, metadata !0, null}
-!14 = metadata !{i32 18091, i32 2, metadata !15, metadata !17}
-!15 = metadata !{i32 786443, metadata !1, metadata !16, i32 18086, i32 1, i32 748} ; [ DW_TAG_lexical_block ]
-!16 = metadata !{i32 786478, metadata !1, metadata !1, metadata !"foo_bar", metadata !"foo_bar", metadata !"", i32 18086, metadata !3, i1 true, i1 true, i32 0, i32 0, i32 0, i32 256, i1 true, null} ; [ DW_TAG_subprogram ]
-!17 = metadata !{i32 19514, i32 2, metadata !18, null}
-!18 = metadata !{i32 786443, metadata !1, metadata !0, i32 19510, i32 1, i32 99} ; [ DW_TAG_lexical_block ]
-!22 = metadata !{i32 18094, i32 2, metadata !15, metadata !17}
-!23 = metadata !{i32 19524, i32 1, metadata !18, null}
-!24 = metadata !{metadata !0, metadata !6, metadata !7, metadata !8}
-!25 = metadata !{i32 786473, metadata !27} ; [ DW_TAG_file_type ]
-!26 = metadata !{metadata !"/tmp/f.c", metadata !"/tmp"}
-!27 = metadata !{metadata !"f.i", metadata !"/tmp"}
diff --git a/test/CodeGen/X86/dbg-value-range.ll b/test/CodeGen/X86/dbg-value-range.ll
deleted file mode 100644
index b068bbbe784a8..0000000000000
--- a/test/CodeGen/X86/dbg-value-range.ll
+++ /dev/null
@@ -1,60 +0,0 @@
-; RUN: llc -mtriple=x86_64-apple-darwin10 < %s | FileCheck %s
-
-%struct.a = type { i32 }
-
-define i32 @bar(%struct.a* nocapture %b) nounwind ssp {
-entry:
- tail call void @llvm.dbg.value(metadata !{%struct.a* %b}, i64 0, metadata !6), !dbg !13
- %tmp1 = getelementptr inbounds %struct.a* %b, i64 0, i32 0, !dbg !14
- %tmp2 = load i32* %tmp1, align 4, !dbg !14
- tail call void @llvm.dbg.value(metadata !{i32 %tmp2}, i64 0, metadata !11), !dbg !14
- %call = tail call i32 (...)* @foo(i32 %tmp2) nounwind , !dbg !18
- %add = add nsw i32 %tmp2, 1, !dbg !19
- ret i32 %add, !dbg !19
-}
-
-declare i32 @foo(...)
-
-declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
-
-!llvm.dbg.cu = !{!2}
-
-!0 = metadata !{i32 786478, metadata !1, metadata !"bar", metadata !"bar", metadata !"", metadata !1, i32 5, metadata !3, i1 false, i1 true, i32 0, i32 0, i32 0, i32 256, i1 true, i32 (%struct.a*)* @bar, null, null, metadata !21, i32 0} ; [ DW_TAG_subprogram ]
-!1 = metadata !{i32 786473, metadata !22} ; [ DW_TAG_file_type ]
-!2 = metadata !{i32 786449, metadata !22, i32 12, metadata !"clang version 2.9 (trunk 122997)", i1 true, metadata !"", i32 0, null, null, metadata !20, null, null, null} ; [ DW_TAG_compile_unit ]
-!3 = metadata !{i32 786453, metadata !1, metadata !"", metadata !1, i32 0, i64 0, i64 0, i32 0, i32 0, i32 0, metadata !4, i32 0, i32 0} ; [ DW_TAG_subroutine_type ]
-!4 = metadata !{metadata !5}
-!5 = metadata !{i32 786468, metadata !2, metadata !"int", null, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
-!6 = metadata !{i32 786689, metadata !0, metadata !"b", metadata !1, i32 5, metadata !7, i32 0, null} ; [ DW_TAG_arg_variable ]
-!7 = metadata !{i32 786447, metadata !2, metadata !"", null, i32 0, i64 64, i64 64, i64 0, i32 0, metadata !8} ; [ DW_TAG_pointer_type ]
-!8 = metadata !{i32 786451, metadata !2, metadata !"a", metadata !1, i32 1, i64 32, i64 32, i32 0, i32 0, i32 0, metadata !9, i32 0, i32 0} ; [ DW_TAG_structure_type ]
-!9 = metadata !{metadata !10}
-!10 = metadata !{i32 786445, metadata !1, metadata !"c", metadata !1, i32 2, i64 32, i64 32, i64 0, i32 0, metadata !5} ; [ DW_TAG_member ]
-!11 = metadata !{i32 786688, metadata !12, metadata !"x", metadata !1, i32 6, metadata !5, i32 0, null} ; [ DW_TAG_auto_variable ]
-!12 = metadata !{i32 786443, metadata !22, metadata !0, i32 5, i32 22, i32 0} ; [ DW_TAG_lexical_block ]
-!13 = metadata !{i32 5, i32 19, metadata !0, null}
-!14 = metadata !{i32 6, i32 14, metadata !12, null}
-!18 = metadata !{i32 7, i32 2, metadata !12, null}
-!19 = metadata !{i32 8, i32 2, metadata !12, null}
-!20 = metadata !{metadata !0}
-!21 = metadata !{metadata !6, metadata !11}
-!22 = metadata !{metadata !"bar.c", metadata !"/private/tmp"}
-
-; Check that variable bar:b value range is appropriately trucated in debug info.
-; The variable is in %rdi which is clobbered by 'movl %ebx, %edi'
-; Here Ltmp7 is the end of the location range.
-
-;CHECK: .loc 1 7 2
-;CHECK: movl
-;CHECK-NEXT: [[CLOBBER:Ltmp[0-9]*]]
-
-;CHECK:Ldebug_loc0:
-;CHECK-NEXT: .quad
-;CHECK-NEXT: .quad [[CLOBBER]]
-;CHECK-NEXT: Lset{{.*}} = Ltmp{{.*}}-Ltmp{{.*}}
-;CHECK-NEXT: .short Lset
-;CHECK-NEXT: Ltmp
-;CHECK-NEXT: .byte 85
-;CHECK-NEXT: Ltmp
-;CHECK-NEXT: .quad 0
-;CHECK-NEXT: .quad 0
diff --git a/test/CodeGen/X86/divide-by-constant.ll b/test/CodeGen/X86/divide-by-constant.ll
index 9669d97cb7fa2..98ae1d51db210 100644
--- a/test/CodeGen/X86/divide-by-constant.ll
+++ b/test/CodeGen/X86/divide-by-constant.ll
@@ -6,7 +6,7 @@ define zeroext i16 @test1(i16 zeroext %x) nounwind {
entry:
%div = udiv i16 %x, 33
ret i16 %div
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: imull $63551, %eax, %eax
; CHECK-NEXT: shrl $21, %eax
; CHECK-NEXT: ret
@@ -17,7 +17,7 @@ entry:
%div = udiv i16 %c, 3
ret i16 %div
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK: imull $43691, %eax, %eax
; CHECK-NEXT: shrl $17, %eax
; CHECK-NEXT: ret
@@ -28,7 +28,7 @@ entry:
%div = udiv i8 %c, 3
ret i8 %div
-; CHECK: test3:
+; CHECK-LABEL: test3:
; CHECK: movzbl 8(%esp), %eax
; CHECK-NEXT: imull $171, %eax, %eax
; CHECK-NEXT: shrl $9, %eax
@@ -39,14 +39,14 @@ define signext i16 @test4(i16 signext %x) nounwind {
entry:
%div = sdiv i16 %x, 33 ; <i32> [#uses=1]
ret i16 %div
-; CHECK: test4:
+; CHECK-LABEL: test4:
; CHECK: imull $1986, %eax, %
}
define i32 @test5(i32 %A) nounwind {
%tmp1 = udiv i32 %A, 1577682821 ; <i32> [#uses=1]
ret i32 %tmp1
-; CHECK: test5:
+; CHECK-LABEL: test5:
; CHECK: movl $365384439, %eax
; CHECK: mull 4(%esp)
}
@@ -55,7 +55,7 @@ define signext i16 @test6(i16 signext %x) nounwind {
entry:
%div = sdiv i16 %x, 10
ret i16 %div
-; CHECK: test6:
+; CHECK-LABEL: test6:
; CHECK: imull $26215, %eax, %ecx
; CHECK: sarl $18, %ecx
; CHECK: shrl $15, %eax
@@ -64,7 +64,7 @@ entry:
define i32 @test7(i32 %x) nounwind {
%div = udiv i32 %x, 28
ret i32 %div
-; CHECK: test7:
+; CHECK-LABEL: test7:
; CHECK: shrl $2
; CHECK: movl $613566757
; CHECK: mull
@@ -76,7 +76,7 @@ define i32 @test7(i32 %x) nounwind {
define i8 @test8(i8 %x) nounwind {
%div = udiv i8 %x, 78
ret i8 %div
-; CHECK: test8:
+; CHECK-LABEL: test8:
; CHECK: shrb %
; CHECK: imull $211
; CHECK: shrl $13
@@ -86,7 +86,7 @@ define i8 @test8(i8 %x) nounwind {
define i8 @test9(i8 %x) nounwind {
%div = udiv i8 %x, 116
ret i8 %div
-; CHECK: test9:
+; CHECK-LABEL: test9:
; CHECK: shrb $2
; CHECK: imull $71
; CHECK: shrl $11
diff --git a/test/CodeGen/X86/dwarf-comp-dir.ll b/test/CodeGen/X86/dwarf-comp-dir.ll
index 3bc2957963ebd..3b4a8689060df 100644
--- a/test/CodeGen/X86/dwarf-comp-dir.ll
+++ b/test/CodeGen/X86/dwarf-comp-dir.ll
@@ -5,9 +5,9 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3
target triple = "x86_64-unknown-linux-gnu"
!llvm.dbg.cu = !{!0}
+!llvm.module.flags = !{!5}
-!0 = metadata !{i32 720913, metadata !4, i32 12, metadata !"clang version 3.1 (trunk 143523)", i1 true, i1 true, metadata !"", i32 0, metadata !1, metadata !1, metadata !1, metadata !1} ; [ DW_TAG_compile_unit ]
-!1 = metadata !{metadata !2}
+!0 = metadata !{i32 720913, metadata !4, i32 12, metadata !"clang version 3.1 (trunk 143523)", i1 true, metadata !"", i32 0, metadata !2, metadata !2, metadata !2, metadata !2, null, metadata !""} ; [ DW_TAG_compile_unit ]
!2 = metadata !{i32 0}
!3 = metadata !{i32 786473, metadata !4} ; [ DW_TAG_file_type ]
!4 = metadata !{metadata !"empty.c", metadata !"/home/nlewycky"}
@@ -16,3 +16,4 @@ target triple = "x86_64-unknown-linux-gnu"
; Dir Mod Time File Len File Name
; ---- ---------- ---------- ---------------------------
; CHECK: file_names[ 1] 0 0x00000000 0x00000000 empty.c
+!5 = metadata !{i32 1, metadata !"Debug Info Version", i32 1}
diff --git a/test/CodeGen/X86/dyn_alloca_aligned.ll b/test/CodeGen/X86/dyn_alloca_aligned.ll
new file mode 100644
index 0000000000000..993f4d2af75df
--- /dev/null
+++ b/test/CodeGen/X86/dyn_alloca_aligned.ll
@@ -0,0 +1,9 @@
+; RUN: llc -mtriple=x86_64-linux < %s | FileCheck %s
+define i32 @A(i32 %Size) {
+; CHECK: subq %rcx, %rax
+; CHECK: andq $-128, %rax
+; CHECK: movq %rax, %rsp
+ %A = alloca i8, i32 %Size, align 128
+ %A_addr = ptrtoint i8* %A to i32
+ ret i32 %A_addr
+}
diff --git a/test/CodeGen/X86/emit-big-cst.ll b/test/CodeGen/X86/emit-big-cst.ll
new file mode 100644
index 0000000000000..96c15d4a3658f
--- /dev/null
+++ b/test/CodeGen/X86/emit-big-cst.ll
@@ -0,0 +1,17 @@
+; RUN: llc -mtriple=x86_64-unknown-unknown < %s | FileCheck %s
+; Check assembly printing of odd constants.
+
+; CHECK: bigCst:
+; CHECK-NEXT: .quad 12713950999227904
+; CHECK-NEXT: .quad 26220
+; CHECK-NEXT: .size bigCst, 16
+
+@bigCst = internal constant i82 483673642326615442599424
+
+define void @accessBig(i64* %storage) {
+ %addr = bitcast i64* %storage to i82*
+ %bigLoadedCst = load volatile i82* @bigCst
+ %tmp = add i82 %bigLoadedCst, 1
+ store i82 %tmp, i82* %addr
+ ret void
+}
diff --git a/test/CodeGen/X86/extended-fma-contraction.ll b/test/CodeGen/X86/extended-fma-contraction.ll
new file mode 100644
index 0000000000000..858eabcb7dc6c
--- /dev/null
+++ b/test/CodeGen/X86/extended-fma-contraction.ll
@@ -0,0 +1,22 @@
+; RUN: llc -march=x86 -mcpu=bdver2 -mattr=-fma -mtriple=x86_64-apple-darwin < %s | FileCheck %s
+; RUN: llc -march=x86 -mcpu=bdver2 -mattr=-fma,-fma4 -mtriple=x86_64-apple-darwin < %s | FileCheck %s --check-prefix=CHECK-NOFMA
+
+; CHECK-LABEL: fmafunc
+define <3 x float> @fmafunc(<3 x float> %a, <3 x float> %b, <3 x float> %c) {
+
+; CHECK-NOT: vmulps
+; CHECK-NOT: vaddps
+; CHECK: vfmaddps
+; CHECK-NOT: vmulps
+; CHECK-NOT: vaddps
+
+; CHECK-NOFMA-NOT: calll
+; CHECK-NOFMA: vmulps
+; CHECK-NOFMA: vaddps
+; CHECK-NOFMA-NOT: calll
+
+ %ret = tail call <3 x float> @llvm.fmuladd.v3f32(<3 x float> %a, <3 x float> %b, <3 x float> %c)
+ ret <3 x float> %ret
+}
+
+declare <3 x float> @llvm.fmuladd.v3f32(<3 x float>, <3 x float>, <3 x float>) nounwind readnone
diff --git a/test/CodeGen/X86/extractelement-load.ll b/test/CodeGen/X86/extractelement-load.ll
index 06d739ceed9ee..cadc0fb723f96 100644
--- a/test/CodeGen/X86/extractelement-load.ll
+++ b/test/CodeGen/X86/extractelement-load.ll
@@ -2,7 +2,7 @@
; RUN: llc < %s -march=x86-64 -mattr=+sse2 -mcpu=core2 | FileCheck %s
define i32 @t(<2 x i64>* %val) nounwind {
-; CHECK: t:
+; CHECK-LABEL: t:
; CHECK-NOT: movd
; CHECK: movl 8(
; CHECK-NEXT: ret
@@ -15,7 +15,7 @@ define i32 @t(<2 x i64>* %val) nounwind {
; Case where extractelement of load ends up as undef.
; (Making sure this doesn't crash.)
define i32 @t2(<8 x i32>* %xp) {
-; CHECK: t2:
+; CHECK-LABEL: t2:
; CHECK: ret
%x = load <8 x i32>* %xp
%Shuff68 = shufflevector <8 x i32> %x, <8 x i32> undef, <8 x i32> <i32
diff --git a/test/CodeGen/X86/fabs.ll b/test/CodeGen/X86/fabs.ll
index af1867fc51ccc..e330ee79430e0 100644
--- a/test/CodeGen/X86/fabs.ll
+++ b/test/CodeGen/X86/fabs.ll
@@ -7,9 +7,9 @@ declare float @fabsf(float)
declare x86_fp80 @fabsl(x86_fp80)
-; CHECK: test1:
-; UNSAFE: test1:
-; NOOPT: test1:
+; CHECK-LABEL: test1:
+; UNSAFE-LABEL: test1:
+; NOOPT-LABEL: test1:
define float @test1(float %X) {
%Y = call float @fabsf(float %X) readnone
ret float %Y
@@ -21,9 +21,9 @@ define float @test1(float %X) {
; UNSAFE-NOT: fabs
; NOOPT-NOT: fabsf
-; CHECK: test2:
-; UNSAFE: test2:
-; NOOPT: test2:
+; CHECK-LABEL: test2:
+; UNSAFE-LABEL: test2:
+; NOOPT-LABEL: test2:
define double @test2(double %X) {
%Y = fcmp oge double %X, -0.0
%Z = fsub double -0.0, %X
@@ -38,9 +38,9 @@ define double @test2(double %X) {
; UNSAFE-NOT: fabs
-; CHECK: test3:
-; UNSAFE: test3:
-; NOOPT: test3:
+; CHECK-LABEL: test3:
+; UNSAFE-LABEL: test3:
+; NOOPT-LABEL: test3:
define x86_fp80 @test3(x86_fp80 %X) {
%Y = call x86_fp80 @fabsl(x86_fp80 %X) readnone
ret x86_fp80 %Y
diff --git a/test/CodeGen/X86/fast-cc-merge-stack-adj.ll b/test/CodeGen/X86/fast-cc-merge-stack-adj.ll
index 5121ed13228df..d9cfaa4c26569 100644
--- a/test/CodeGen/X86/fast-cc-merge-stack-adj.ll
+++ b/test/CodeGen/X86/fast-cc-merge-stack-adj.ll
@@ -1,5 +1,5 @@
; RUN: llc < %s -mcpu=generic -march=x86 -x86-asm-syntax=intel | FileCheck %s
-; CHECK: add ESP, 8
+; CHECK: add esp, 8
target triple = "i686-pc-linux-gnu"
diff --git a/test/CodeGen/X86/fast-cc-pass-in-regs.ll b/test/CodeGen/X86/fast-cc-pass-in-regs.ll
index b60b68bd388da..ac898e69dfe1f 100644
--- a/test/CodeGen/X86/fast-cc-pass-in-regs.ll
+++ b/test/CodeGen/X86/fast-cc-pass-in-regs.ll
@@ -5,25 +5,25 @@ declare x86_fastcallcc i64 @callee(i64 inreg)
define i64 @caller() {
%X = call x86_fastcallcc i64 @callee( i64 4294967299 ) ; <i64> [#uses=1]
-; CHECK: mov{{.*}}EDX, 1
+; CHECK: mov{{.*}}edx, 1
ret i64 %X
}
define x86_fastcallcc i64 @caller2(i64 inreg %X) {
ret i64 %X
-; CHECK: mov{{.*}}EAX, ECX
+; CHECK: mov{{.*}}eax, ecx
}
declare x86_thiscallcc i64 @callee2(i32)
define i64 @caller3() {
%X = call x86_thiscallcc i64 @callee2( i32 3 )
-; CHECK: mov{{.*}}ECX, 3
+; CHECK: mov{{.*}}ecx, 3
ret i64 %X
}
define x86_thiscallcc i32 @caller4(i32 %X) {
ret i32 %X
-; CHECK: mov{{.*}}EAX, ECX
+; CHECK: mov{{.*}}eax, ecx
}
diff --git a/test/CodeGen/X86/fast-isel-call.ll b/test/CodeGen/X86/fast-isel-call.ll
index 3159741cd9c4a..42d2b8bed6545 100644
--- a/test/CodeGen/X86/fast-isel-call.ll
+++ b/test/CodeGen/X86/fast-isel-call.ll
@@ -10,7 +10,7 @@ BB1:
ret i32 1
BB2:
ret i32 0
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: calll
; CHECK-NEXT: testb $1
}
@@ -21,7 +21,7 @@ declare void @foo2(%struct.s* byval)
define void @test2(%struct.s* %d) nounwind {
call void @foo2(%struct.s* byval %d )
ret void
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK: movl (%eax)
; CHECK: movl {{.*}}, (%esp)
; CHECK: movl 4(%eax)
@@ -35,7 +35,7 @@ declare void @llvm.memset.p0i8.i32(i8* nocapture, i8, i32, i32, i1) nounwind
define void @test3(i8* %a) {
call void @llvm.memset.p0i8.i32(i8* %a, i8 0, i32 100, i32 1, i1 false)
ret void
-; CHECK: test3:
+; CHECK-LABEL: test3:
; CHECK: movl {{.*}}, (%esp)
; CHECK: movl $0, 4(%esp)
; CHECK: movl $100, 8(%esp)
@@ -47,7 +47,7 @@ declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture, i32, i32,
define void @test4(i8* %a, i8* %b) {
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %a, i8* %b, i32 100, i32 1, i1 false)
ret void
-; CHECK: test4:
+; CHECK-LABEL: test4:
; CHECK: movl {{.*}}, (%esp)
; CHECK: movl {{.*}}, 4(%esp)
; CHECK: movl $100, 8(%esp)
diff --git a/test/CodeGen/X86/fast-isel-divrem-x86-64.ll b/test/CodeGen/X86/fast-isel-divrem-x86-64.ll
index 45494f139e247..0fd0561e20461 100644
--- a/test/CodeGen/X86/fast-isel-divrem-x86-64.ll
+++ b/test/CodeGen/X86/fast-isel-divrem-x86-64.ll
@@ -1,4 +1,4 @@
-; RUN: llc -mtriple=x86_64-none-linux -fast-isel -fast-isel-abort < %s | FileCheck %s
+; RUN: llc -mtriple=x86_64-none-linux -fast-isel -fast-isel-abort -verify-machineinstrs < %s | FileCheck %s
define i64 @test_sdiv64(i64 %dividend, i64 %divisor) nounwind {
entry:
@@ -6,7 +6,7 @@ entry:
ret i64 %result
}
-; CHECK: test_sdiv64:
+; CHECK-LABEL: test_sdiv64:
; CHECK: cqto
; CHECK: idivq
@@ -16,7 +16,7 @@ entry:
ret i64 %result
}
-; CHECK: test_srem64:
+; CHECK-LABEL: test_srem64:
; CHECK: cqto
; CHECK: idivq
@@ -26,7 +26,7 @@ entry:
ret i64 %result
}
-; CHECK: test_udiv64:
+; CHECK-LABEL: test_udiv64:
; CHECK: xorl
; CHECK: divq
@@ -36,6 +36,6 @@ entry:
ret i64 %result
}
-; CHECK: test_urem64:
+; CHECK-LABEL: test_urem64:
; CHECK: xorl
; CHECK: divq
diff --git a/test/CodeGen/X86/fast-isel-divrem.ll b/test/CodeGen/X86/fast-isel-divrem.ll
index 7aba7f7b79530..5828becb3c338 100644
--- a/test/CodeGen/X86/fast-isel-divrem.ll
+++ b/test/CodeGen/X86/fast-isel-divrem.ll
@@ -1,5 +1,5 @@
-; RUN: llc -mtriple=x86_64-none-linux -fast-isel -fast-isel-abort < %s | FileCheck %s
-; RUN: llc -mtriple=i686-none-linux -fast-isel -fast-isel-abort < %s | FileCheck %s
+; RUN: llc -mtriple=x86_64-none-linux -fast-isel -fast-isel-abort -verify-machineinstrs < %s | FileCheck %s
+; RUN: llc -mtriple=i686-none-linux -fast-isel -fast-isel-abort -verify-machineinstrs < %s | FileCheck %s
define i8 @test_sdiv8(i8 %dividend, i8 %divisor) nounwind {
entry:
@@ -7,7 +7,7 @@ entry:
ret i8 %result
}
-; CHECK: test_sdiv8:
+; CHECK-LABEL: test_sdiv8:
; CHECK: movsbw
; CHECK: idivb
@@ -17,7 +17,7 @@ entry:
ret i8 %result
}
-; CHECK: test_srem8:
+; CHECK-LABEL: test_srem8:
; CHECK: movsbw
; CHECK: idivb
@@ -27,7 +27,7 @@ entry:
ret i8 %result
}
-; CHECK: test_udiv8:
+; CHECK-LABEL: test_udiv8:
; CHECK: movzbw
; CHECK: divb
@@ -37,7 +37,7 @@ entry:
ret i8 %result
}
-; CHECK: test_urem8:
+; CHECK-LABEL: test_urem8:
; CHECK: movzbw
; CHECK: divb
@@ -47,7 +47,7 @@ entry:
ret i16 %result
}
-; CHECK: test_sdiv16:
+; CHECK-LABEL: test_sdiv16:
; CHECK: cwtd
; CHECK: idivw
@@ -57,7 +57,7 @@ entry:
ret i16 %result
}
-; CHECK: test_srem16:
+; CHECK-LABEL: test_srem16:
; CHECK: cwtd
; CHECK: idivw
@@ -67,7 +67,7 @@ entry:
ret i16 %result
}
-; CHECK: test_udiv16:
+; CHECK-LABEL: test_udiv16:
; CHECK: xorl
; CHECK: divw
@@ -77,7 +77,7 @@ entry:
ret i16 %result
}
-; CHECK: test_urem16:
+; CHECK-LABEL: test_urem16:
; CHECK: xorl
; CHECK: divw
@@ -87,7 +87,7 @@ entry:
ret i32 %result
}
-; CHECK: test_sdiv32:
+; CHECK-LABEL: test_sdiv32:
; CHECK: cltd
; CHECK: idivl
@@ -97,7 +97,7 @@ entry:
ret i32 %result
}
-; CHECK: test_srem32:
+; CHECK-LABEL: test_srem32:
; CHECK: cltd
; CHECK: idivl
@@ -107,7 +107,7 @@ entry:
ret i32 %result
}
-; CHECK: test_udiv32:
+; CHECK-LABEL: test_udiv32:
; CHECK: xorl
; CHECK: divl
@@ -117,6 +117,6 @@ entry:
ret i32 %result
}
-; CHECK: test_urem32:
+; CHECK-LABEL: test_urem32:
; CHECK: xorl
; CHECK: divl
diff --git a/test/CodeGen/X86/fast-isel-extract.ll b/test/CodeGen/X86/fast-isel-extract.ll
index f63396e40ca45..3a4b2a685504c 100644
--- a/test/CodeGen/X86/fast-isel-extract.ll
+++ b/test/CodeGen/X86/fast-isel-extract.ll
@@ -10,7 +10,7 @@ define void @test1(i64*) nounwind ssp {
%4 = add i64 %3, 10
store i64 %4, i64* %0
ret void
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: callq _f
; CHECK-NEXT: addq $10, %rax
}
@@ -21,7 +21,7 @@ define void @test2(i64*) nounwind ssp {
%4 = add i64 %3, 10
store i64 %4, i64* %0
ret void
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK: callq _f
; CHECK-NEXT: addq $10, %rdx
}
diff --git a/test/CodeGen/X86/fast-isel-fneg.ll b/test/CodeGen/X86/fast-isel-fneg.ll
index 67fdad299369a..8b38587164fef 100644
--- a/test/CodeGen/X86/fast-isel-fneg.ll
+++ b/test/CodeGen/X86/fast-isel-fneg.ll
@@ -5,14 +5,14 @@
; SSE2: xor
; SSE2-NOT: xor
-; CHECK: doo:
+; CHECK-LABEL: doo:
; CHECK: xor
define double @doo(double %x) nounwind {
%y = fsub double -0.0, %x
ret double %y
}
-; CHECK: foo:
+; CHECK-LABEL: foo:
; CHECK: xor
define float @foo(float %x) nounwind {
%y = fsub float -0.0, %x
diff --git a/test/CodeGen/X86/fast-isel-gep.ll b/test/CodeGen/X86/fast-isel-gep.ll
index f0375f86028c1..4e47c7455c53c 100644
--- a/test/CodeGen/X86/fast-isel-gep.ll
+++ b/test/CodeGen/X86/fast-isel-gep.ll
@@ -9,11 +9,11 @@ define i32 @test1(i32 %t3, i32* %t1) nounwind {
%t9 = getelementptr i32* %t1, i32 %t3 ; <i32*> [#uses=1]
%t15 = load i32* %t9 ; <i32> [#uses=1]
ret i32 %t15
-; X32: test1:
+; X32-LABEL: test1:
; X32: movl (%eax,%ecx,4), %eax
; X32: ret
-; X64: test1:
+; X64-LABEL: test1:
; X64: movslq %e[[A0:di|cx]], %rax
; X64: movl (%r[[A1:si|dx]],%rax,4), %eax
; X64: ret
@@ -23,11 +23,11 @@ define i32 @test2(i64 %t3, i32* %t1) nounwind {
%t9 = getelementptr i32* %t1, i64 %t3 ; <i32*> [#uses=1]
%t15 = load i32* %t9 ; <i32> [#uses=1]
ret i32 %t15
-; X32: test2:
+; X32-LABEL: test2:
; X32: movl (%edx,%ecx,4), %e
; X32: ret
-; X64: test2:
+; X64-LABEL: test2:
; X64: movl (%r[[A1]],%r[[A0]],4), %eax
; X64: ret
}
@@ -42,12 +42,12 @@ entry:
ret i8 %B
-; X32: test3:
+; X32-LABEL: test3:
; X32: movl 4(%esp), %eax
; X32: movb -2(%eax), %al
; X32: ret
-; X64: test3:
+; X64-LABEL: test3:
; X64: movb -2(%r[[A0]]), %al
; X64: ret
@@ -66,9 +66,9 @@ entry:
%tmp2 = load double* %arrayidx ; <double> [#uses=1]
ret double %tmp2
-; X32: test4:
+; X32-LABEL: test4:
; X32: 128(%e{{.*}},%e{{.*}},8)
-; X64: test4:
+; X64-LABEL: test4:
; X64: 128(%r{{.*}},%r{{.*}},8)
}
@@ -80,7 +80,7 @@ define i64 @test5(i8* %A, i32 %I, i64 %B) nounwind {
%v10 = load i64* %v9
%v11 = add i64 %B, %v10
ret i64 %v11
-; X64: test5:
+; X64-LABEL: test5:
; X64: movslq %e[[A1]], %rax
; X64-NEXT: (%r[[A0]],%rax),
; X64: ret
@@ -113,7 +113,7 @@ declare i8* @_ZNK18G__FastAllocString4dataEv() nounwind
; PR10605 / rdar://9930964 - Don't fold loads incorrectly. The load should
; happen before the store.
define i32 @test7({i32,i32,i32}* %tmp1, i32 %tmp71, i32 %tmp63) nounwind {
-; X64: test7:
+; X64-LABEL: test7:
; X64: movl 8({{%rdi|%rcx}}), %eax
; X64: movl $4, 8({{%rdi|%rcx}})
diff --git a/test/CodeGen/X86/fast-isel-i1.ll b/test/CodeGen/X86/fast-isel-i1.ll
index bea18a195006b..9c042d30e78cf 100644
--- a/test/CodeGen/X86/fast-isel-i1.ll
+++ b/test/CodeGen/X86/fast-isel-i1.ll
@@ -4,7 +4,7 @@
declare i32 @test1a(i32)
define i32 @test1(i32 %x) nounwind {
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: andb $1, %
%y = add i32 %x, -3
%t = call i32 @test1a(i32 %y)
@@ -23,7 +23,7 @@ exit: ; preds = %next
define void @test2(i8* %a) nounwind {
entry:
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK: movb {{.*}} %al
; CHECK-NEXT: xorb $1, %al
; CHECK-NEXT: testb $1
diff --git a/test/CodeGen/X86/fast-isel-mem.ll b/test/CodeGen/X86/fast-isel-mem.ll
index 52b1e8564338e..cd2dc1d02c8a7 100644
--- a/test/CodeGen/X86/fast-isel-mem.ll
+++ b/test/CodeGen/X86/fast-isel-mem.ll
@@ -12,7 +12,7 @@ entry:
store i32 %2, i32* @src
ret i32 %2
; This should fold one of the loads into the add.
-; CHECK: loadgv:
+; CHECK-LABEL: loadgv:
; CHECK: movl L_src$non_lazy_ptr, %ecx
; CHECK: movl (%ecx), %eax
; CHECK: addl (%ecx), %eax
@@ -40,7 +40,7 @@ entry:
; CHECK: movl L_LotsStuff$non_lazy_ptr, %ecx
; ATOM: _t:
-; ATOM: movl L_LotsStuff$non_lazy_ptr, %ecx
-; ATOM: movl $0, %eax
+; ATOM: movl L_LotsStuff$non_lazy_ptr, %e{{..}}
+; ATOM: movl $0, %e{{..}}
}
diff --git a/test/CodeGen/X86/fast-isel-ret-ext.ll b/test/CodeGen/X86/fast-isel-ret-ext.ll
index fd768cb9b3368..0370d99f906c3 100644
--- a/test/CodeGen/X86/fast-isel-ret-ext.ll
+++ b/test/CodeGen/X86/fast-isel-ret-ext.ll
@@ -4,35 +4,35 @@
define zeroext i8 @test1(i32 %y) nounwind {
%conv = trunc i32 %y to i8
ret i8 %conv
- ; CHECK: test1:
+ ; CHECK-LABEL: test1:
; CHECK: movzbl {{.*}}, %eax
}
define signext i8 @test2(i32 %y) nounwind {
%conv = trunc i32 %y to i8
ret i8 %conv
- ; CHECK: test2:
+ ; CHECK-LABEL: test2:
; CHECK: movsbl {{.*}}, %eax
}
define zeroext i16 @test3(i32 %y) nounwind {
%conv = trunc i32 %y to i16
ret i16 %conv
- ; CHECK: test3:
+ ; CHECK-LABEL: test3:
; CHECK: movzwl {{.*}}, %eax
}
define signext i16 @test4(i32 %y) nounwind {
%conv = trunc i32 %y to i16
ret i16 %conv
- ; CHECK: test4:
- ; CHECK: movswl {{.*}}, %eax
+ ; CHECK-LABEL: test4:
+ ; CHECK: {{(movswl.%.x, %eax|cwtl)}}
}
define zeroext i1 @test5(i32 %y) nounwind {
%conv = trunc i32 %y to i1
ret i1 %conv
- ; CHECK: test5:
+ ; CHECK-LABEL: test5:
; CHECK: andb $1
; CHECK: movzbl {{.*}}, %eax
}
diff --git a/test/CodeGen/X86/fast-isel-store.ll b/test/CodeGen/X86/fast-isel-store.ll
new file mode 100644
index 0000000000000..3d2a46c2bd1b2
--- /dev/null
+++ b/test/CodeGen/X86/fast-isel-store.ll
@@ -0,0 +1,64 @@
+; RUN: llc -mtriple=x86_64-none-linux -fast-isel -fast-isel-abort -mattr=+sse2 < %s | FileCheck %s
+; RUN: llc -mtriple=i686-none-linux -fast-isel -fast-isel-abort -mattr=+sse2 < %s | FileCheck %s
+
+define i32 @test_store_32(i32* nocapture %addr, i32 %value) {
+entry:
+ store i32 %value, i32* %addr, align 1
+ ret i32 %value
+}
+
+; CHECK: ret
+
+define i16 @test_store_16(i16* nocapture %addr, i16 %value) {
+entry:
+ store i16 %value, i16* %addr, align 1
+ ret i16 %value
+}
+
+; CHECK: ret
+
+define <4 x i32> @test_store_4xi32(<4 x i32>* nocapture %addr, <4 x i32> %value, <4 x i32> %value2) {
+; CHECK: movdqu
+; CHECK: ret
+ %foo = add <4 x i32> %value, %value2 ; to force integer type on store
+ store <4 x i32> %foo, <4 x i32>* %addr, align 1
+ ret <4 x i32> %foo
+}
+
+define <4 x i32> @test_store_4xi32_aligned(<4 x i32>* nocapture %addr, <4 x i32> %value, <4 x i32> %value2) {
+; CHECK: movdqa
+; CHECK: ret
+ %foo = add <4 x i32> %value, %value2 ; to force integer type on store
+ store <4 x i32> %foo, <4 x i32>* %addr, align 16
+ ret <4 x i32> %foo
+}
+
+define <4 x float> @test_store_4xf32(<4 x float>* nocapture %addr, <4 x float> %value) {
+; CHECK: movups
+; CHECK: ret
+ store <4 x float> %value, <4 x float>* %addr, align 1
+ ret <4 x float> %value
+}
+
+define <4 x float> @test_store_4xf32_aligned(<4 x float>* nocapture %addr, <4 x float> %value) {
+; CHECK: movaps
+; CHECK: ret
+ store <4 x float> %value, <4 x float>* %addr, align 16
+ ret <4 x float> %value
+}
+
+define <2 x double> @test_store_2xf64(<2 x double>* nocapture %addr, <2 x double> %value, <2 x double> %value2) {
+; CHECK: movupd
+; CHECK: ret
+ %foo = fadd <2 x double> %value, %value2 ; to force dobule type on store
+ store <2 x double> %foo, <2 x double>* %addr, align 1
+ ret <2 x double> %foo
+}
+
+define <2 x double> @test_store_2xf64_aligned(<2 x double>* nocapture %addr, <2 x double> %value, <2 x double> %value2) {
+; CHECK: movapd
+; CHECK: ret
+ %foo = fadd <2 x double> %value, %value2 ; to force dobule type on store
+ store <2 x double> %foo, <2 x double>* %addr, align 16
+ ret <2 x double> %foo
+}
diff --git a/test/CodeGen/X86/fast-isel-tls.ll b/test/CodeGen/X86/fast-isel-tls.ll
index 0963c5201c258..f71abd2fec010 100644
--- a/test/CodeGen/X86/fast-isel-tls.ll
+++ b/test/CodeGen/X86/fast-isel-tls.ll
@@ -9,7 +9,7 @@ entry:
ret i32 %s
}
-; CHECK: f:
+; CHECK-LABEL: f:
; CHECK: leal v@TLSGD
; CHECK: __tls_get_addr
@@ -21,6 +21,6 @@ entry:
ret i32 %s
}
-; CHECK: f_alias:
+; CHECK-LABEL: f_alias:
; CHECK: leal v@TLSGD
; CHECK: __tls_get_addr
diff --git a/test/CodeGen/X86/fast-isel-unaligned-store.ll b/test/CodeGen/X86/fast-isel-unaligned-store.ll
deleted file mode 100644
index 7ce7f676add0b..0000000000000
--- a/test/CodeGen/X86/fast-isel-unaligned-store.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llc -mtriple=x86_64-none-linux -fast-isel -fast-isel-abort < %s | FileCheck %s
-; RUN: llc -mtriple=i686-none-linux -fast-isel -fast-isel-abort < %s | FileCheck %s
-
-define i32 @test_store_32(i32* nocapture %addr, i32 %value) {
-entry:
- store i32 %value, i32* %addr, align 1
- ret i32 %value
-}
-
-; CHECK: ret
-
-define i16 @test_store_16(i16* nocapture %addr, i16 %value) {
-entry:
- store i16 %value, i16* %addr, align 1
- ret i16 %value
-}
-
-; CHECK: ret
diff --git a/test/CodeGen/X86/fast-isel-x86-64.ll b/test/CodeGen/X86/fast-isel-x86-64.ll
index ad1520ef81943..f7d2750b5b815 100644
--- a/test/CodeGen/X86/fast-isel-x86-64.ll
+++ b/test/CodeGen/X86/fast-isel-x86-64.ll
@@ -11,7 +11,7 @@ define i32 @test1(i32 %i) nounwind ssp {
ret i32 %and
}
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: andl $8,
@@ -29,7 +29,7 @@ if.then: ; preds = %entry
if.end: ; preds = %if.then, %entry
ret void
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK: movq %rdi, -8(%rsp)
; CHECK: cmpq $42, -8(%rsp)
}
@@ -41,7 +41,7 @@ if.end: ; preds = %if.then, %entry
define i64 @test3() nounwind {
%A = ptrtoint i32* @G to i64
ret i64 %A
-; CHECK: test3:
+; CHECK-LABEL: test3:
; CHECK: movq _G@GOTPCREL(%rip), %rax
; CHECK-NEXT: ret
}
@@ -57,7 +57,7 @@ define i32 @test4(i64 %idxprom9) nounwind {
%conv = zext i8 %tmp11 to i32
ret i32 %conv
-; CHECK: test4:
+; CHECK-LABEL: test4:
; CHECK: movq _rtx_length@GOTPCREL(%rip), %rax
; CHECK-NEXT: movzbl (%rax,%rdi), %eax
; CHECK-NEXT: ret
@@ -70,7 +70,7 @@ define void @test5(i32 %x, i32* %p) nounwind {
store i32 %y, i32* %p
ret void
-; CHECK: test5:
+; CHECK-LABEL: test5:
; CHECK: movl $50000, %ecx
; CHECK: sarl %cl, %edi
; CHECK: ret
@@ -82,7 +82,7 @@ entry:
%mul = mul nsw i64 %x, 8
ret i64 %mul
-; CHECK: test6:
+; CHECK-LABEL: test6:
; CHECK: shlq $3, %rdi
}
@@ -90,7 +90,7 @@ define i32 @test7(i32 %x) nounwind ssp {
entry:
%mul = mul nsw i32 %x, 8
ret i32 %mul
-; CHECK: test7:
+; CHECK-LABEL: test7:
; CHECK: shll $3, %edi
}
@@ -101,7 +101,7 @@ entry:
%add = add nsw i64 %x, 7
ret i64 %add
-; CHECK: test8:
+; CHECK-LABEL: test8:
; CHECK: addq $7, %rdi
}
@@ -109,7 +109,7 @@ define i64 @test9(i64 %x) nounwind ssp {
entry:
%add = mul nsw i64 %x, 7
ret i64 %add
-; CHECK: test9:
+; CHECK-LABEL: test9:
; CHECK: imulq $7, %rdi, %rax
}
@@ -117,14 +117,14 @@ entry:
define i32 @test10(i32 %X) nounwind {
%Y = udiv i32 %X, 8
ret i32 %Y
-; CHECK: test10:
+; CHECK-LABEL: test10:
; CHECK: shrl $3,
}
define i32 @test11(i32 %X) nounwind {
%Y = sdiv exact i32 %X, 8
ret i32 %Y
-; CHECK: test11:
+; CHECK-LABEL: test11:
; CHECK: sarl $3,
}
@@ -141,7 +141,7 @@ if.then: ; preds = %entry
if.end: ; preds = %if.then, %entry
ret void
-; CHECK: test12:
+; CHECK-LABEL: test12:
; CHECK: testb $1,
; CHECK-NEXT: je L
; CHECK-NEXT: movl $0, %edi
@@ -153,7 +153,7 @@ declare void @test13f(i1 %X)
define void @test13() nounwind {
call void @test13f(i1 0)
ret void
-; CHECK: test13:
+; CHECK-LABEL: test13:
; CHECK: movl $0, %edi
; CHECK-NEXT: callq
}
@@ -166,7 +166,7 @@ entry:
%tobool = trunc i8 %tmp to i1
call void @test13f(i1 zeroext %tobool) noredzone
ret void
-; CHECK: test14:
+; CHECK-LABEL: test14:
; CHECK: andb $1,
; CHECK: callq
}
@@ -177,7 +177,7 @@ declare void @llvm.memcpy.p0i8.p0i8.i64(i8*, i8*, i64, i32, i1)
define void @test15(i8* %a, i8* %b) nounwind {
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %a, i8* %b, i64 4, i32 4, i1 false)
ret void
-; CHECK: test15:
+; CHECK-LABEL: test15:
; CHECK-NEXT: movl (%rsi), %eax
; CHECK-NEXT: movl %eax, (%rdi)
; CHECK-NEXT: ret
@@ -186,7 +186,7 @@ define void @test15(i8* %a, i8* %b) nounwind {
; Handling for varargs calls
declare void @test16callee(...) nounwind
define void @test16() nounwind {
-; CHECK: test16:
+; CHECK-LABEL: test16:
; CHECK: movl $1, %edi
; CHECK: movb $0, %al
; CHECK: callq _test16callee
@@ -224,7 +224,7 @@ if.then: ; preds = %entry
if.else: ; preds = %entry
ret i32 2
-; CHECK: test17:
+; CHECK-LABEL: test17:
; CHECK: movl (%rdi), %eax
; CHECK: callq _foo
; CHECK: cmpl $5, %eax
@@ -235,7 +235,7 @@ if.else: ; preds = %entry
define void @test18(float* %p1) {
store float 0.0, float* %p1
ret void
-; CHECK: test18:
+; CHECK-LABEL: test18:
; CHECK: xorps
}
@@ -243,7 +243,7 @@ define void @test18(float* %p1) {
define void @test19(double* %p1) {
store double 0.0, double* %p1
ret void
-; CHECK: test19:
+; CHECK-LABEL: test19:
; CHECK: xorps
}
@@ -254,7 +254,7 @@ entry:
%tmp = alloca %struct.a, align 8
call void @test20sret(%struct.a* sret %tmp)
ret void
-; CHECK: test20:
+; CHECK-LABEL: test20:
; CHECK: leaq (%rsp), %rdi
; CHECK: callq _test20sret
}
@@ -264,7 +264,7 @@ declare void @test20sret(%struct.a* sret)
define void @test21(double* %p1) {
store double -0.0, double* %p1
ret void
-; CHECK: test21:
+; CHECK-LABEL: test21:
; CHECK-NOT: xor
; CHECK: movsd LCPI
}
@@ -279,7 +279,7 @@ entry:
call void @foo22(i32 2)
call void @foo22(i32 3)
ret void
-; CHECK: test22:
+; CHECK-LABEL: test22:
; CHECK: movl $0, %edi
; CHECK: callq _foo22
; CHECK: movl $1, %edi
@@ -297,7 +297,7 @@ define void @test23(i8* noalias sret %result) {
%a = alloca i8
%b = call i8* @foo23()
ret void
-; CHECK: test23:
+; CHECK-LABEL: test23:
; CHECK: call
; CHECK: movq %rdi, %rax
; CHECK: ret
diff --git a/test/CodeGen/X86/fast-isel-x86.ll b/test/CodeGen/X86/fast-isel-x86.ll
index 4caa3a039d6ac..ba86e888cdde7 100644
--- a/test/CodeGen/X86/fast-isel-x86.ll
+++ b/test/CodeGen/X86/fast-isel-x86.ll
@@ -1,7 +1,7 @@
; RUN: llc -fast-isel -O0 -mcpu=generic -mtriple=i386-apple-darwin10 -relocation-model=pic < %s | FileCheck %s
; This should use flds to set the return value.
-; CHECK: test0:
+; CHECK-LABEL: test0:
; CHECK: flds
; CHECK: ret
@G = external global float
@@ -11,7 +11,7 @@ define float @test0() nounwind {
}
; This should pop 4 bytes on return.
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: ret $4
define void @test1({i32, i32, i32, i32}* sret %p) nounwind {
store {i32, i32, i32, i32} zeroinitializer, {i32, i32, i32, i32}* %p
@@ -19,7 +19,7 @@ define void @test1({i32, i32, i32, i32}* sret %p) nounwind {
}
; Properly initialize the pic base.
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK-NOT: HHH
; CHECK: call{{.*}}L2$pb
; CHECK-NEXT: L2$pb:
@@ -39,7 +39,7 @@ entry:
%tmp = alloca %struct.a, align 8
call void @test3sret(%struct.a* sret %tmp)
ret void
-; CHECK: test3:
+; CHECK-LABEL: test3:
; CHECK: subl $44
; CHECK: leal 16(%esp)
; CHECK: calll _test3sret
@@ -53,7 +53,7 @@ entry:
%tmp = alloca %struct.a, align 8
call fastcc void @test4fastccsret(%struct.a* sret %tmp)
ret void
-; CHECK: test4:
+; CHECK-LABEL: test4:
; CHECK: subl $28
; CHECK: leal (%esp), %ecx
; CHECK: calll _test4fastccsret
diff --git a/test/CodeGen/X86/fastcc.ll b/test/CodeGen/X86/fastcc.ll
index 705ab7bada7c8..a362f8d1ca7ed 100644
--- a/test/CodeGen/X86/fastcc.ll
+++ b/test/CodeGen/X86/fastcc.ll
@@ -1,6 +1,6 @@
; RUN: llc < %s -mtriple=i686-apple-darwin -mattr=+sse2 -post-RA-scheduler=false | FileCheck %s
-; CHECK: movsd %xmm0, 8(%esp)
-; CHECK: xorl %ecx, %ecx
+; CHECK: movsd %xmm{{[0-9]}}, 8(%esp)
+; CHECK: xorl %eax, %eax
@d = external global double ; <double*> [#uses=1]
@c = external global double ; <double*> [#uses=1]
diff --git a/test/CodeGen/X86/fastisel-gep-promote-before-add.ll b/test/CodeGen/X86/fastisel-gep-promote-before-add.ll
new file mode 100644
index 0000000000000..f87a34c4abde1
--- /dev/null
+++ b/test/CodeGen/X86/fastisel-gep-promote-before-add.ll
@@ -0,0 +1,37 @@
+; fastisel should not fold add with non-pointer bitwidth
+; sext(a) + sext(b) != sext(a + b)
+; RUN: llc -mtriple=x86_64-apple-darwin %s -O0 -o - | FileCheck %s
+
+define zeroext i8 @gep_promotion(i8* %ptr) nounwind uwtable ssp {
+entry:
+ %ptr.addr = alloca i8*, align 8
+ %add = add i8 64, 64 ; 0x40 + 0x40
+ %0 = load i8** %ptr.addr, align 8
+
+ ; CHECK-LABEL: _gep_promotion:
+ ; CHECK: movzbl ({{.*}})
+ %arrayidx = getelementptr inbounds i8* %0, i8 %add
+
+ %1 = load i8* %arrayidx, align 1
+ ret i8 %1
+}
+
+define zeroext i8 @gep_promotion_nonconst(i8 %i, i8* %ptr) nounwind uwtable ssp {
+entry:
+ %i.addr = alloca i8, align 4
+ %ptr.addr = alloca i8*, align 8
+ store i8 %i, i8* %i.addr, align 4
+ store i8* %ptr, i8** %ptr.addr, align 8
+ %0 = load i8* %i.addr, align 4
+ ; CHECK-LABEL: _gep_promotion_nonconst:
+ ; CHECK: movzbl ({{.*}})
+ %xor = xor i8 %0, -128 ; %0 ^ 0x80
+ %add = add i8 %xor, -127 ; %xor + 0x81
+ %1 = load i8** %ptr.addr, align 8
+
+ %arrayidx = getelementptr inbounds i8* %1, i8 %add
+
+ %2 = load i8* %arrayidx, align 1
+ ret i8 %2
+}
+
diff --git a/test/CodeGen/X86/floor-soft-float.ll b/test/CodeGen/X86/floor-soft-float.ll
new file mode 100644
index 0000000000000..5644509a86f74
--- /dev/null
+++ b/test/CodeGen/X86/floor-soft-float.ll
@@ -0,0 +1,13 @@
+; RUN: llc < %s -march=x86-64 -mattr=+sse4.1,-avx -soft-float=0 | FileCheck %s --check-prefix=CHECK-HARD-FLOAT
+; RUN: llc < %s -march=x86-64 -mattr=+sse4.1,-avx -soft-float=1 | FileCheck %s --check-prefix=CHECK-SOFT-FLOAT
+
+target triple = "x86_64-unknown-linux-gnu"
+
+declare float @llvm.floor.f32(float)
+
+; CHECK-SOFT-FLOAT: callq floorf
+; CHECK-HARD-FLOAT: roundss $1, %xmm0, %xmm0
+define float @myfloor(float %a) {
+ %val = tail call float @llvm.floor.f32(float %a)
+ ret float %val
+}
diff --git a/test/CodeGen/X86/fma.ll b/test/CodeGen/X86/fma.ll
index bd3514cc3f732..917eac0ca32de 100644
--- a/test/CodeGen/X86/fma.ll
+++ b/test/CodeGen/X86/fma.ll
@@ -34,6 +34,14 @@ entry:
ret x86_fp80 %call
}
+; CHECK: test_f32_cst
+; CHECK-NOT: fma
+define float @test_f32_cst() nounwind readnone ssp {
+entry:
+ %call = tail call float @llvm.fma.f32(float 3.0, float 3.0, float 3.0) nounwind readnone
+ ret float %call
+}
+
declare float @llvm.fma.f32(float, float, float) nounwind readnone
declare double @llvm.fma.f64(double, double, double) nounwind readnone
declare x86_fp80 @llvm.fma.f80(x86_fp80, x86_fp80, x86_fp80) nounwind readnone
diff --git a/test/CodeGen/X86/fma_patterns.ll b/test/CodeGen/X86/fma_patterns.ll
index 6d98d59b3822b..cfb598df634c6 100644
--- a/test/CodeGen/X86/fma_patterns.ll
+++ b/test/CodeGen/X86/fma_patterns.ll
@@ -182,11 +182,11 @@ define float @test_x86_fnmsub_ss(float %a0, float %a1, float %a2) {
ret float %res
}
-; CHECK: test_x86_fmadd_ps
+; CHECK: test_x86_fmadd_ps_load
; CHECK: vmovaps (%rdi), %xmm2
; CHECK: vfmadd213ps %xmm1, %xmm0, %xmm2
; CHECK: ret
-; CHECK_FMA4: test_x86_fmadd_ps
+; CHECK_FMA4: test_x86_fmadd_ps_load
; CHECK_FMA4: vfmaddps %xmm1, (%rdi), %xmm0, %xmm0
; CHECK_FMA4: ret
define <4 x float> @test_x86_fmadd_ps_load(<4 x float>* %a0, <4 x float> %a1, <4 x float> %a2) {
@@ -196,11 +196,11 @@ define <4 x float> @test_x86_fmadd_ps_load(<4 x float>* %a0, <4 x float> %a1, <4
ret <4 x float> %res
}
-; CHECK: test_x86_fmsub_ps
+; CHECK: test_x86_fmsub_ps_load
; CHECK: vmovaps (%rdi), %xmm2
; CHECK: fmsub213ps %xmm1, %xmm0, %xmm2
; CHECK: ret
-; CHECK_FMA4: test_x86_fmsub_ps
+; CHECK_FMA4: test_x86_fmsub_ps_load
; CHECK_FMA4: vfmsubps %xmm1, (%rdi), %xmm0, %xmm0
; CHECK_FMA4: ret
define <4 x float> @test_x86_fmsub_ps_load(<4 x float>* %a0, <4 x float> %a1, <4 x float> %a2) {
diff --git a/test/CodeGen/X86/fma_patterns_wide.ll b/test/CodeGen/X86/fma_patterns_wide.ll
new file mode 100644
index 0000000000000..04db2d76cd8c5
--- /dev/null
+++ b/test/CodeGen/X86/fma_patterns_wide.ll
@@ -0,0 +1,84 @@
+; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=core-avx2 -mattr=avx2,+fma -fp-contract=fast | FileCheck %s
+; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -mattr=-fma4 -fp-contract=fast | FileCheck %s
+; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mcpu=bdver1 -fp-contract=fast | FileCheck %s --check-prefix=CHECK_FMA4
+
+; CHECK-LABEL: test_x86_fmadd_ps_y_wide
+; CHECK: vfmadd213ps
+; CHECK: vfmadd213ps
+; CHECK: ret
+; CHECK_FMA4-LABEL: test_x86_fmadd_ps_y_wide
+; CHECK_FMA4: vfmaddps
+; CHECK_FMA4: vfmaddps
+; CHECK_FMA4: ret
+define <16 x float> @test_x86_fmadd_ps_y_wide(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2) {
+ %x = fmul <16 x float> %a0, %a1
+ %res = fadd <16 x float> %x, %a2
+ ret <16 x float> %res
+}
+
+; CHECK-LABEL: test_x86_fmsub_ps_y_wide
+; CHECK: vfmsub213ps
+; CHECK: vfmsub213ps
+; CHECK: ret
+; CHECK_FMA4-LABEL: test_x86_fmsub_ps_y_wide
+; CHECK_FMA4: vfmsubps
+; CHECK_FMA4: vfmsubps
+; CHECK_FMA4: ret
+define <16 x float> @test_x86_fmsub_ps_y_wide(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2) {
+ %x = fmul <16 x float> %a0, %a1
+ %res = fsub <16 x float> %x, %a2
+ ret <16 x float> %res
+}
+
+; CHECK-LABEL: test_x86_fnmadd_ps_y_wide
+; CHECK: vfnmadd213ps
+; CHECK: vfnmadd213ps
+; CHECK: ret
+; CHECK_FMA4-LABEL: test_x86_fnmadd_ps_y_wide
+; CHECK_FMA4: vfnmaddps
+; CHECK_FMA4: vfnmaddps
+; CHECK_FMA4: ret
+define <16 x float> @test_x86_fnmadd_ps_y_wide(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2) {
+ %x = fmul <16 x float> %a0, %a1
+ %res = fsub <16 x float> %a2, %x
+ ret <16 x float> %res
+}
+
+; CHECK-LABEL: test_x86_fnmsub_ps_y_wide
+; CHECK: vfnmsub213ps
+; CHECK: vfnmsub213ps
+; CHECK: ret
+define <16 x float> @test_x86_fnmsub_ps_y_wide(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2) {
+ %x = fmul <16 x float> %a0, %a1
+ %y = fsub <16 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %x
+ %res = fsub <16 x float> %y, %a2
+ ret <16 x float> %res
+}
+
+; CHECK-LABEL: test_x86_fmadd_pd_y_wide
+; CHECK: vfmadd213pd
+; CHECK: vfmadd213pd
+; CHECK: ret
+; CHECK_FMA4-LABEL: test_x86_fmadd_pd_y_wide
+; CHECK_FMA4: vfmaddpd
+; CHECK_FMA4: vfmaddpd
+; CHECK_FMA4: ret
+define <8 x double> @test_x86_fmadd_pd_y_wide(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2) {
+ %x = fmul <8 x double> %a0, %a1
+ %res = fadd <8 x double> %x, %a2
+ ret <8 x double> %res
+}
+
+; CHECK-LABEL: test_x86_fmsub_pd_y_wide
+; CHECK: vfmsub213pd
+; CHECK: vfmsub213pd
+; CHECK: ret
+; CHECK_FMA4-LABEL: test_x86_fmsub_pd_y_wide
+; CHECK_FMA4: vfmsubpd
+; CHECK_FMA4: vfmsubpd
+; CHECK_FMA4: ret
+define <8 x double> @test_x86_fmsub_pd_y_wide(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2) {
+ %x = fmul <8 x double> %a0, %a1
+ %res = fsub <8 x double> %x, %a2
+ ret <8 x double> %res
+}
diff --git a/test/CodeGen/X86/fold-add.ll b/test/CodeGen/X86/fold-add.ll
index 63e7d36ada256..0b27387b73bf7 100644
--- a/test/CodeGen/X86/fold-add.ll
+++ b/test/CodeGen/X86/fold-add.ll
@@ -7,7 +7,7 @@ target triple = "x86_64-apple-darwin9.6"
@llvm.used = appending global [1 x i8*] [i8* bitcast (i32 (i32)* @longest_match to i8*)] ; <[1 x i8*]*> [#uses=0]
define fastcc i32 @longest_match(i32 %cur_match) nounwind {
-; CHECK: longest_match:
+; CHECK-LABEL: longest_match:
; CHECK-NOT: ret
; CHECK: cmpb $0, (%r{{.*}},%r{{.*}})
; CHECK: ret
diff --git a/test/CodeGen/X86/fold-and-shift.ll b/test/CodeGen/X86/fold-and-shift.ll
index 93baa0e0eee0b..a5eb8b5de3a44 100644
--- a/test/CodeGen/X86/fold-and-shift.ll
+++ b/test/CodeGen/X86/fold-and-shift.ll
@@ -1,7 +1,7 @@
; RUN: llc < %s -march=x86 | FileCheck %s
define i32 @t1(i8* %X, i32 %i) {
-; CHECK: t1:
+; CHECK-LABEL: t1:
; CHECK-NOT: and
; CHECK: movzbl
; CHECK: movl (%{{...}},%{{...}},4),
@@ -17,7 +17,7 @@ entry:
}
define i32 @t2(i16* %X, i32 %i) {
-; CHECK: t2:
+; CHECK-LABEL: t2:
; CHECK-NOT: and
; CHECK: movzwl
; CHECK: movl (%{{...}},%{{...}},4),
@@ -39,7 +39,7 @@ define i32 @t3(i16* %i.ptr, i32* %arr) {
; To make matters worse, because of the two-phase zext of %i and their reuse in
; the function, the DAG can get confusing trying to re-use both of them and
; prevent easy analysis of the mask in order to match this.
-; CHECK: t3:
+; CHECK-LABEL: t3:
; CHECK-NOT: and
; CHECK: shrl
; CHECK: addl (%{{...}},%{{...}},4),
@@ -58,7 +58,7 @@ entry:
define i32 @t4(i16* %i.ptr, i32* %arr) {
; A version of @t3 that has more zero extends and more re-use of intermediate
; values. This exercise slightly different bits of canonicalization.
-; CHECK: t4:
+; CHECK-LABEL: t4:
; CHECK-NOT: and
; CHECK: shrl
; CHECK: addl (%{{...}},%{{...}},4),
diff --git a/test/CodeGen/X86/fold-load-vec.ll b/test/CodeGen/X86/fold-load-vec.ll
index c1756d5e2e1ad..e85d8f78c0525 100644
--- a/test/CodeGen/X86/fold-load-vec.ll
+++ b/test/CodeGen/X86/fold-load-vec.ll
@@ -1,12 +1,12 @@
-; RUN: llc < %s -march=x86-64 -mcpu=corei7 -mattr=+sse41 | FileCheck %s
+; RUN: llc < %s -march=x86-64 -mcpu=corei7 -mattr=+sse4.1 | FileCheck %s
; rdar://12721174
; We should not fold movss into pshufd since pshufd expects m128 while movss
; loads from m32.
define void @sample_test(<4 x float>* %source, <2 x float>* %dest) nounwind {
; CHECK: sample_test
-; CHECK: movss
-; CHECK: pshufd
+; CHECK: movaps
+; CHECK: insertps
entry:
%source.addr = alloca <4 x float>*, align 8
%dest.addr = alloca <2 x float>*, align 8
diff --git a/test/CodeGen/X86/fold-load.ll b/test/CodeGen/X86/fold-load.ll
index d8366654c01ce..dde0a2d1c5d39 100644
--- a/test/CodeGen/X86/fold-load.ll
+++ b/test/CodeGen/X86/fold-load.ll
@@ -38,21 +38,21 @@ L:
store i16 %A, i16* %Q
ret i32 %D
-
-; CHECK: test2:
+
+; CHECK-LABEL: test2:
; CHECK: movl 4(%esp), %eax
-; CHECK-NEXT: movzwl (%eax), %ecx
+; CHECK-NEXT: movzwl (%eax), %e{{..}}
}
; rdar://10554090
; xor in exit block will be CSE'ed and load will be folded to xor in entry.
define i1 @test3(i32* %P, i32* %Q) nounwind {
-; CHECK: test3:
-; CHECK: movl 8(%esp), %eax
-; CHECK: xorl (%eax),
+; CHECK-LABEL: test3:
+; CHECK: movl 8(%esp), %e
+; CHECK: movl 4(%esp), %e
+; CHECK: xorl (%e
; CHECK: j
-; CHECK-NOT: xor
entry:
%0 = load i32* %P, align 4
%1 = load i32* %Q, align 4
diff --git a/test/CodeGen/X86/fold-pcmpeqd-1.ll b/test/CodeGen/X86/fold-pcmpeqd-1.ll
index d850630a4d083..663e2afe22c7c 100644
--- a/test/CodeGen/X86/fold-pcmpeqd-1.ll
+++ b/test/CodeGen/X86/fold-pcmpeqd-1.ll
@@ -2,14 +2,14 @@
define <2 x double> @foo() nounwind {
ret <2 x double> bitcast (<2 x i64><i64 -1, i64 -1> to <2 x double>)
-; CHECK: foo:
+; CHECK-LABEL: foo:
; CHECK: pcmpeqd %xmm0, %xmm0
; CHECK-NOT: %xmm
; CHECK: ret
}
define <2 x double> @bar() nounwind {
ret <2 x double> bitcast (<2 x i64><i64 0, i64 0> to <2 x double>)
-; CHECK: bar:
+; CHECK-LABEL: bar:
; CHECK: xorps %xmm0, %xmm0
; CHECK-NOT: %xmm
; CHECK: ret
diff --git a/test/CodeGen/X86/fold-pcmpeqd-2.ll b/test/CodeGen/X86/fold-pcmpeqd-2.ll
index 2bde76efd2ae7..60a6844b39b2b 100644
--- a/test/CodeGen/X86/fold-pcmpeqd-2.ll
+++ b/test/CodeGen/X86/fold-pcmpeqd-2.ll
@@ -11,7 +11,7 @@
; CHECK: .space 16,255
; No pcmpeqd instructions, everybody uses the constant pool.
-; CHECK: program_1:
+; CHECK-LABEL: program_1:
; CHECK-NOT: pcmpeqd
%struct.__ImageExecInfo = type <{ <4 x i32>, <4 x float>, <2 x i64>, i8*, i8*, i8*, i32, i32, i32, i32, i32 }>
@@ -54,22 +54,27 @@ forbody: ; preds = %forcond
%mul310 = fmul <4 x float> %bitcast204.i104, zeroinitializer ; <<4 x float>> [#uses=2]
%mul313 = fmul <4 x float> %bitcast204.i, zeroinitializer ; <<4 x float>> [#uses=1]
%cmpunord.i11 = call <4 x float> @llvm.x86.sse.cmp.ps(<4 x float> zeroinitializer, <4 x float> zeroinitializer, i8 3) nounwind ; <<4 x float>> [#uses=1]
+ %tmp83 = call <4 x float> @llvm.x86.sse.min.ps(<4 x float> %mul310, <4 x float> zeroinitializer) nounwind ; <<4 x float>> [#uses=1]
+ %bitcast.i3 = bitcast <4 x float> %mul310 to <4 x i32> ; <<4 x i32>> [#uses=1]
+ %andps.i5 = and <4 x i32> %bitcast.i3, zeroinitializer ; <<4 x i32>> [#uses=1]
+
+ call void null(<4 x float> %mul313, <4 x float> %cmpunord.i11, <4 x float> %tmp83, <4 x float> zeroinitializer, %struct.__ImageExecInfo* null, <4 x i32> zeroinitializer) nounwind
+
+ %tmp84 = call <4 x float> @llvm.x86.sse.min.ps(<4 x float> %mul313, <4 x float> zeroinitializer) nounwind ; <<4 x float>> [#uses=1]
+
%bitcast6.i13 = bitcast <4 x float> %cmpunord.i11 to <4 x i32> ; <<4 x i32>> [#uses=2]
%andps.i14 = add <4 x i32> <i32 1, i32 1, i32 1, i32 1>, %bitcast6.i13 ; <<4 x i32>> [#uses=1]
%not.i16 = xor <4 x i32> %bitcast6.i13, < i32 -1, i32 -1, i32 -1, i32 -1 > ; <<4 x i32>> [#uses=1]
%andnps.i17 = add <4 x i32> <i32 1, i32 1, i32 1, i32 1>, %not.i16 ; <<4 x i32>> [#uses=1]
%orps.i18 = or <4 x i32> %andnps.i17, %andps.i14 ; <<4 x i32>> [#uses=1]
%bitcast17.i19 = bitcast <4 x i32> %orps.i18 to <4 x float> ; <<4 x float>> [#uses=1]
- %tmp83 = call <4 x float> @llvm.x86.sse.min.ps(<4 x float> %mul310, <4 x float> zeroinitializer) nounwind ; <<4 x float>> [#uses=1]
- %bitcast.i3 = bitcast <4 x float> %mul310 to <4 x i32> ; <<4 x i32>> [#uses=1]
- %andps.i5 = and <4 x i32> %bitcast.i3, zeroinitializer ; <<4 x i32>> [#uses=1]
+
%bitcast11.i6 = bitcast <4 x float> %tmp83 to <4 x i32> ; <<4 x i32>> [#uses=1]
%not.i7 = xor <4 x i32> zeroinitializer, < i32 -1, i32 -1, i32 -1, i32 -1 > ; <<4 x i32>> [#uses=1]
%andnps.i8 = and <4 x i32> %bitcast11.i6, %not.i7 ; <<4 x i32>> [#uses=1]
- call void null(<4 x float> %mul313, <4 x float> %cmpunord.i11, <4 x float> %tmp83, <4 x float> zeroinitializer, %struct.__ImageExecInfo* null, <4 x i32> zeroinitializer) nounwind
%orps.i9 = or <4 x i32> %andnps.i8, %andps.i5 ; <<4 x i32>> [#uses=1]
%bitcast17.i10 = bitcast <4 x i32> %orps.i9 to <4 x float> ; <<4 x float>> [#uses=1]
- %tmp84 = call <4 x float> @llvm.x86.sse.min.ps(<4 x float> %mul313, <4 x float> zeroinitializer) nounwind ; <<4 x float>> [#uses=1]
+
%bitcast6.i = bitcast <4 x float> zeroinitializer to <4 x i32> ; <<4 x i32>> [#uses=2]
%andps.i = and <4 x i32> zeroinitializer, %bitcast6.i ; <<4 x i32>> [#uses=1]
%bitcast11.i = bitcast <4 x float> %tmp84 to <4 x i32> ; <<4 x i32>> [#uses=1]
diff --git a/test/CodeGen/X86/force-align-stack-alloca.ll b/test/CodeGen/X86/force-align-stack-alloca.ll
index 2ada194f891ff..95defc83db1f3 100644
--- a/test/CodeGen/X86/force-align-stack-alloca.ll
+++ b/test/CodeGen/X86/force-align-stack-alloca.ll
@@ -16,7 +16,7 @@ entry:
}
define i64 @g(i32 %i) nounwind {
-; CHECK: g:
+; CHECK-LABEL: g:
; CHECK: pushl %ebp
; CHECK-NEXT: movl %esp, %ebp
; CHECK-NEXT: pushl
diff --git a/test/CodeGen/X86/fp-elim-and-no-fp-elim.ll b/test/CodeGen/X86/fp-elim-and-no-fp-elim.ll
index 3468a457e95f6..c3b2dfb5d6c63 100644
--- a/test/CodeGen/X86/fp-elim-and-no-fp-elim.ll
+++ b/test/CodeGen/X86/fp-elim-and-no-fp-elim.ll
@@ -1,7 +1,7 @@
; RUN: llc < %s -mtriple x86_64-apple-darwin | FileCheck %s
define void @bar(i32 %argc) #0 {
-; CHECK: bar:
+; CHECK-LABEL: bar:
; CHECK: pushq %rbp
entry:
%conv = sitofp i32 %argc to double
@@ -14,7 +14,7 @@ entry:
}
define void @qux(i32 %argc) #1 {
-; CHECK: qux:
+; CHECK-LABEL: qux:
; CHECK-NOT: pushq %rbp
entry:
%conv = sitofp i32 %argc to double
diff --git a/test/CodeGen/X86/fp-elim.ll b/test/CodeGen/X86/fp-elim.ll
index 60892a2352fb8..2c50bd1be75a3 100644
--- a/test/CodeGen/X86/fp-elim.ll
+++ b/test/CodeGen/X86/fp-elim.ll
@@ -1,42 +1,60 @@
; RUN: llc < %s -march=x86 -asm-verbose=false | FileCheck %s -check-prefix=FP-ELIM
; RUN: llc < %s -march=x86 -asm-verbose=false -disable-fp-elim | FileCheck %s -check-prefix=NO-ELIM
-; RUN: llc < %s -march=x86 -asm-verbose=false -disable-non-leaf-fp-elim | FileCheck %s -check-prefix=NON-LEAF
; Implement -momit-leaf-frame-pointer
; rdar://7886181
define i32 @t1() nounwind readnone {
entry:
-; FP-ELIM: t1:
-; FP-ELIM-NEXT: movl
-; FP-ELIM-NEXT: ret
+; FP-ELIM-LABEL: t1:
+; FP-ELIM-NEXT: movl
+; FP-ELIM-NEXT: ret
-; NO-ELIM: t1:
-; NO-ELIM-NEXT: pushl %ebp
-; NO-ELIM: popl %ebp
-; NO-ELIM-NEXT: ret
-
-; NON-LEAF: t1:
-; NON-LEAF-NEXT: movl
-; NON-LEAF-NEXT: ret
+; NO-ELIM-LABEL: t1:
+; NO-ELIM-NEXT: pushl %ebp
+; NO-ELIM: popl %ebp
+; NO-ELIM-NEXT: ret
ret i32 10
}
define void @t2() nounwind {
entry:
-; FP-ELIM: t2:
-; FP-ELIM-NOT: pushl %ebp
-; FP-ELIM: ret
+; FP-ELIM-LABEL: t2:
+; FP-ELIM-NOT: pushl %ebp
+; FP-ELIM: ret
+
+; NO-ELIM-LABEL: t2:
+; NO-ELIM-NEXT: pushl %ebp
+; NO-ELIM: popl %ebp
+; NO-ELIM-NEXT: ret
+ tail call void @foo(i32 0) nounwind
+ ret void
+}
-; NO-ELIM: t2:
-; NO-ELIM-NEXT: pushl %ebp
-; NO-ELIM: popl %ebp
-; NO-ELIM-NEXT: ret
+define i32 @t3() "no-frame-pointer-elim-non-leaf" nounwind readnone {
+entry:
+; FP-ELIM-LABEL: t3:
+; FP-ELIM-NEXT: movl
+; FP-ELIM-NEXT: ret
+
+; NO-ELIM-LABEL: t3:
+; NO-ELIM-NEXT: pushl %ebp
+; NO-ELIM: popl %ebp
+; NO-ELIM-NEXT: ret
+ ret i32 10
+}
+
+define void @t4() "no-frame-pointer-elim-non-leaf" nounwind {
+entry:
+; FP-ELIM-LABEL: t4:
+; FP-ELIM-NEXT: pushl %ebp
+; FP-ELIM: popl %ebp
+; FP-ELIM-NEXT: ret
-; NON-LEAF: t2:
-; NON-LEAF-NEXT: pushl %ebp
-; NON-LEAF: popl %ebp
-; NON-LEAF-NEXT: ret
+; NO-ELIM-LABEL: t4:
+; NO-ELIM-NEXT: pushl %ebp
+; NO-ELIM: popl %ebp
+; NO-ELIM-NEXT: ret
tail call void @foo(i32 0) nounwind
ret void
}
diff --git a/test/CodeGen/X86/fp-fast.ll b/test/CodeGen/X86/fp-fast.ll
index 287504801d04f..07baca84804ed 100644
--- a/test/CodeGen/X86/fp-fast.ll
+++ b/test/CodeGen/X86/fp-fast.ll
@@ -1,6 +1,6 @@
; RUN: llc -march=x86-64 -mattr=+avx,-fma4 -mtriple=x86_64-apple-darwin -enable-unsafe-fp-math < %s | FileCheck %s
-; CHECK: test1
+; CHECK-LABEL: test1
define float @test1(float %a) {
; CHECK-NOT: addss
; CHECK: mulss
@@ -11,7 +11,7 @@ define float @test1(float %a) {
ret float %r
}
-; CHECK: test2
+; CHECK-LABEL: test2
define float @test2(float %a) {
; CHECK-NOT: addss
; CHECK: mulss
@@ -23,9 +23,45 @@ define float @test2(float %a) {
ret float %r
}
-; CHECK: test3
+; CHECK-LABEL: test3
define float @test3(float %a) {
; CHECK-NOT: addss
+; CHECK: mulss
+; CHECK-NOT: addss
+; CHECK: ret
+ %t1 = fmul float %a, 4.0
+ %t2 = fadd float %a, %a
+ %r = fadd float %t1, %t2
+ ret float %r
+}
+
+; CHECK-LABEL: test4
+define float @test4(float %a) {
+; CHECK-NOT: addss
+; CHECK: mulss
+; CHECK-NOT: addss
+; CHECK: ret
+ %t1 = fadd float %a, %a
+ %t2 = fmul float 4.0, %a
+ %r = fadd float %t1, %t2
+ ret float %r
+}
+
+; CHECK-LABEL: test5
+define float @test5(float %a) {
+; CHECK-NOT: addss
+; CHECK: mulss
+; CHECK-NOT: addss
+; CHECK: ret
+ %t1 = fadd float %a, %a
+ %t2 = fmul float %a, 4.0
+ %r = fadd float %t1, %t2
+ ret float %r
+}
+
+; CHECK-LABEL: test6
+define float @test6(float %a) {
+; CHECK-NOT: addss
; CHECK: xorps
; CHECK-NOT: addss
; CHECK: ret
@@ -35,8 +71,20 @@ define float @test3(float %a) {
ret float %r
}
-; CHECK: test4
-define float @test4(float %a) {
+; CHECK-LABEL: test7
+define float @test7(float %a) {
+; CHECK-NOT: addss
+; CHECK: xorps
+; CHECK-NOT: addss
+; CHECK: ret
+ %t1 = fmul float %a, 2.0
+ %t2 = fadd float %a, %a
+ %r = fsub float %t1, %t2
+ ret float %r
+}
+
+; CHECK-LABEL: test8
+define float @test8(float %a) {
; CHECK-NOT: fma
; CHECK-NOT: mul
; CHECK-NOT: add
@@ -46,8 +94,29 @@ define float @test4(float %a) {
ret float %t2
}
-; CHECK: test5
-define float @test5(float %a) {
+; CHECK-LABEL: test9
+define float @test9(float %a) {
+; CHECK-NOT: fma
+; CHECK-NOT: mul
+; CHECK-NOT: add
+; CHECK: ret
+ %t1 = fmul float 0.0, %a
+ %t2 = fadd float %t1, %a
+ ret float %t2
+}
+
+; CHECK-LABEL: test10
+define float @test10(float %a) {
+; CHECK-NOT: add
+; CHECK: vxorps
+; CHECK: ret
+ %t1 = fsub float -0.0, %a
+ %t2 = fadd float %a, %t1
+ ret float %t2
+}
+
+; CHECK-LABEL: test11
+define float @test11(float %a) {
; CHECK-NOT: add
; CHECK: vxorps
; CHECK: ret
diff --git a/test/CodeGen/X86/fp-select-cmp-and.ll b/test/CodeGen/X86/fp-select-cmp-and.ll
new file mode 100644
index 0000000000000..cc76b43e87610
--- /dev/null
+++ b/test/CodeGen/X86/fp-select-cmp-and.ll
@@ -0,0 +1,185 @@
+; RUN: llc < %s -march=x86-64 -mtriple=x86_64-apple-darwin -mcpu=nehalem | FileCheck %s
+
+define double @test1(double %a, double %b, double %eps) {
+ %cmp = fcmp olt double %a, %eps
+ %cond = select i1 %cmp, double %b, double 0.000000e+00
+ ret double %cond
+
+; CHECK-LABEL: @test1
+; CHECK: cmpltsd %xmm2, %xmm0
+; CHECK-NEXT: andpd %xmm1, %xmm0
+}
+
+define double @test2(double %a, double %b, double %eps) {
+ %cmp = fcmp ole double %a, %eps
+ %cond = select i1 %cmp, double %b, double 0.000000e+00
+ ret double %cond
+
+; CHECK-LABEL: @test2
+; CHECK: cmplesd %xmm2, %xmm0
+; CHECK-NEXT: andpd %xmm1, %xmm0
+}
+
+define double @test3(double %a, double %b, double %eps) {
+ %cmp = fcmp ogt double %a, %eps
+ %cond = select i1 %cmp, double %b, double 0.000000e+00
+ ret double %cond
+
+; CHECK-LABEL: @test3
+; CHECK: cmpltsd %xmm0, %xmm2
+; CHECK-NEXT: andpd %xmm1, %xmm2
+}
+
+define double @test4(double %a, double %b, double %eps) {
+ %cmp = fcmp oge double %a, %eps
+ %cond = select i1 %cmp, double %b, double 0.000000e+00
+ ret double %cond
+
+; CHECK-LABEL: @test4
+; CHECK: cmplesd %xmm0, %xmm2
+; CHECK-NEXT: andpd %xmm1, %xmm2
+}
+
+define double @test5(double %a, double %b, double %eps) {
+ %cmp = fcmp olt double %a, %eps
+ %cond = select i1 %cmp, double 0.000000e+00, double %b
+ ret double %cond
+
+; CHECK-LABEL: @test5
+; CHECK: cmpltsd %xmm2, %xmm0
+; CHECK-NEXT: andnpd %xmm1, %xmm0
+}
+
+define double @test6(double %a, double %b, double %eps) {
+ %cmp = fcmp ole double %a, %eps
+ %cond = select i1 %cmp, double 0.000000e+00, double %b
+ ret double %cond
+
+; CHECK-LABEL: @test6
+; CHECK: cmplesd %xmm2, %xmm0
+; CHECK-NEXT: andnpd %xmm1, %xmm0
+}
+
+define double @test7(double %a, double %b, double %eps) {
+ %cmp = fcmp ogt double %a, %eps
+ %cond = select i1 %cmp, double 0.000000e+00, double %b
+ ret double %cond
+
+; CHECK-LABEL: @test7
+; CHECK: cmpltsd %xmm0, %xmm2
+; CHECK-NEXT: andnpd %xmm1, %xmm2
+}
+
+define double @test8(double %a, double %b, double %eps) {
+ %cmp = fcmp oge double %a, %eps
+ %cond = select i1 %cmp, double 0.000000e+00, double %b
+ ret double %cond
+
+; CHECK-LABEL: @test8
+; CHECK: cmplesd %xmm0, %xmm2
+; CHECK-NEXT: andnpd %xmm1, %xmm2
+}
+
+define float @test9(float %a, float %b, float %eps) {
+ %cmp = fcmp olt float %a, %eps
+ %cond = select i1 %cmp, float %b, float 0.000000e+00
+ ret float %cond
+
+; CHECK-LABEL: @test9
+; CHECK: cmpltss %xmm2, %xmm0
+; CHECK-NEXT: andps %xmm1, %xmm0
+}
+
+define float @test10(float %a, float %b, float %eps) {
+ %cmp = fcmp ole float %a, %eps
+ %cond = select i1 %cmp, float %b, float 0.000000e+00
+ ret float %cond
+
+; CHECK-LABEL: @test10
+; CHECK: cmpless %xmm2, %xmm0
+; CHECK-NEXT: andps %xmm1, %xmm0
+}
+
+define float @test11(float %a, float %b, float %eps) {
+ %cmp = fcmp ogt float %a, %eps
+ %cond = select i1 %cmp, float %b, float 0.000000e+00
+ ret float %cond
+
+; CHECK-LABEL: @test11
+; CHECK: cmpltss %xmm0, %xmm2
+; CHECK-NEXT: andps %xmm1, %xmm2
+}
+
+define float @test12(float %a, float %b, float %eps) {
+ %cmp = fcmp oge float %a, %eps
+ %cond = select i1 %cmp, float %b, float 0.000000e+00
+ ret float %cond
+
+; CHECK-LABEL: @test12
+; CHECK: cmpless %xmm0, %xmm2
+; CHECK-NEXT: andps %xmm1, %xmm2
+}
+
+define float @test13(float %a, float %b, float %eps) {
+ %cmp = fcmp olt float %a, %eps
+ %cond = select i1 %cmp, float 0.000000e+00, float %b
+ ret float %cond
+
+; CHECK-LABEL: @test13
+; CHECK: cmpltss %xmm2, %xmm0
+; CHECK-NEXT: andnps %xmm1, %xmm0
+}
+
+define float @test14(float %a, float %b, float %eps) {
+ %cmp = fcmp ole float %a, %eps
+ %cond = select i1 %cmp, float 0.000000e+00, float %b
+ ret float %cond
+
+; CHECK-LABEL: @test14
+; CHECK: cmpless %xmm2, %xmm0
+; CHECK-NEXT: andnps %xmm1, %xmm0
+}
+
+define float @test15(float %a, float %b, float %eps) {
+ %cmp = fcmp ogt float %a, %eps
+ %cond = select i1 %cmp, float 0.000000e+00, float %b
+ ret float %cond
+
+; CHECK-LABEL: @test15
+; CHECK: cmpltss %xmm0, %xmm2
+; CHECK-NEXT: andnps %xmm1, %xmm2
+}
+
+define float @test16(float %a, float %b, float %eps) {
+ %cmp = fcmp oge float %a, %eps
+ %cond = select i1 %cmp, float 0.000000e+00, float %b
+ ret float %cond
+
+; CHECK-LABEL: @test16
+; CHECK: cmpless %xmm0, %xmm2
+; CHECK-NEXT: andnps %xmm1, %xmm2
+}
+
+define float @test17(float %a, float %b, float %c, float %eps) {
+ %cmp = fcmp oge float %a, %eps
+ %cond = select i1 %cmp, float %c, float %b
+ ret float %cond
+
+; CHECK-LABEL: @test17
+; CHECK: cmpless %xmm0, %xmm3
+; CHECK-NEXT: andps %xmm3, %xmm2
+; CHECK-NEXT: andnps %xmm1, %xmm3
+; CHECK-NEXT: orps %xmm2, %xmm3
+}
+
+define double @test18(double %a, double %b, double %c, double %eps) {
+ %cmp = fcmp oge double %a, %eps
+ %cond = select i1 %cmp, double %c, double %b
+ ret double %cond
+
+; CHECK-LABEL: @test18
+; CHECK: cmplesd %xmm0, %xmm3
+; CHECK-NEXT: andpd %xmm3, %xmm2
+; CHECK-NEXT: andnpd %xmm1, %xmm3
+; CHECK-NEXT: orpd %xmm2, %xmm3
+}
diff --git a/test/CodeGen/X86/fp-une-cmp.ll b/test/CodeGen/X86/fp-une-cmp.ll
new file mode 100644
index 0000000000000..7f772d11da9a8
--- /dev/null
+++ b/test/CodeGen/X86/fp-une-cmp.ll
@@ -0,0 +1,43 @@
+; RUN: llc < %s -march=x86 -mattr=sse4.1 | FileCheck %s
+; <rdar://problem/7859988>
+
+; Make sure we don't generate more jumps than we need to. We used to generate
+; something like this:
+;
+; jne LBB0_1
+; jnp LBB0_2
+; LBB0_1:
+; jmp LBB0_3
+; LBB0_2:
+; addsd ...
+; LBB0_3:
+;
+; Now we generate this:
+;
+; jne LBB0_2
+; jp LBB0_2
+; addsd ...
+; LBB0_2:
+
+; CHECK: func
+; CHECK: jne [[LABEL:.*]]
+; CHECK-NEXT: jp [[LABEL]]
+; CHECK-NOT: jmp
+
+define float @func(float %x, float %y) nounwind readnone optsize ssp {
+entry:
+ %0 = fpext float %x to double
+ %1 = fpext float %y to double
+ %2 = fmul double %0, %1
+ %3 = fcmp une double %2, 0.000000e+00
+ br i1 %3, label %bb2, label %bb1
+
+bb1:
+ %4 = fadd double %2, -1.000000e+00
+ br label %bb2
+
+bb2:
+ %.0.in = phi double [ %4, %bb1 ], [ %2, %entry ]
+ %.0 = fptrunc double %.0.in to float
+ ret float %.0
+}
diff --git a/test/CodeGen/X86/fp_constant_op.ll b/test/CodeGen/X86/fp_constant_op.ll
index b3ec5388d704f..9a1337ab6cdb1 100644
--- a/test/CodeGen/X86/fp_constant_op.ll
+++ b/test/CodeGen/X86/fp_constant_op.ll
@@ -6,41 +6,41 @@ define double @foo_add(double %P) {
%tmp.1 = fadd double %P, 1.230000e+02 ; <double> [#uses=1]
ret double %tmp.1
}
-; CHECK: foo_add:
-; CHECK: fadd DWORD PTR
+; CHECK-LABEL: foo_add:
+; CHECK: fadd dword ptr
define double @foo_mul(double %P) {
%tmp.1 = fmul double %P, 1.230000e+02 ; <double> [#uses=1]
ret double %tmp.1
}
-; CHECK: foo_mul:
-; CHECK: fmul DWORD PTR
+; CHECK-LABEL: foo_mul:
+; CHECK: fmul dword ptr
define double @foo_sub(double %P) {
%tmp.1 = fsub double %P, 1.230000e+02 ; <double> [#uses=1]
ret double %tmp.1
}
-; CHECK: foo_sub:
-; CHECK: fadd DWORD PTR
+; CHECK-LABEL: foo_sub:
+; CHECK: fadd dword ptr
define double @foo_subr(double %P) {
%tmp.1 = fsub double 1.230000e+02, %P ; <double> [#uses=1]
ret double %tmp.1
}
-; CHECK: foo_subr:
-; CHECK: fsub QWORD PTR
+; CHECK-LABEL: foo_subr:
+; CHECK: fsub qword ptr
define double @foo_div(double %P) {
%tmp.1 = fdiv double %P, 1.230000e+02 ; <double> [#uses=1]
ret double %tmp.1
}
-; CHECK: foo_div:
-; CHECK: fdiv DWORD PTR
+; CHECK-LABEL: foo_div:
+; CHECK: fdiv dword ptr
define double @foo_divr(double %P) {
%tmp.1 = fdiv double 1.230000e+02, %P ; <double> [#uses=1]
ret double %tmp.1
}
-; CHECK: foo_divr:
-; CHECK: fdiv QWORD PTR
+; CHECK-LABEL: foo_divr:
+; CHECK: fdiv qword ptr
diff --git a/test/CodeGen/X86/frame-base.ll b/test/CodeGen/X86/frame-base.ll
new file mode 100644
index 0000000000000..a6bd2a51c9a51
--- /dev/null
+++ b/test/CodeGen/X86/frame-base.ll
@@ -0,0 +1,22 @@
+; RUN: llc -mtriple=x86_64-apple-macosx -o - %s | FileCheck %s
+
+; The issue here was a conflict between forming a %rip-relative lea and a
+; FrameIndex lea. The %rip sanity-checks didn't consider that a base register
+; had been set if we'd already matched a FrameIndex, when it has in reality.
+
+@var = global i32 0
+
+define void @test_frame_rip_conflict() {
+; CHECK-LABEL: test_frame_rip_conflict:
+; CHECK: leaq _var(%rip), [[TMPADDR:%r.*]]
+; CHECK: leaq {{-?[0-9]+}}(%rsp,[[TMPADDR]]),
+ %stackvar = alloca i32
+
+ %stackint = ptrtoint i32* %stackvar to i64
+ %addr = add i64 ptrtoint(i32* @var to i64), %stackint
+
+ call void @eat_i64(i64 %addr)
+ ret void
+}
+
+declare void @eat_i64(i64)
diff --git a/test/CodeGen/X86/full-lsr.ll b/test/CodeGen/X86/full-lsr.ll
index 0729dda4a12b3..cbcc62a7011a4 100644
--- a/test/CodeGen/X86/full-lsr.ll
+++ b/test/CodeGen/X86/full-lsr.ll
@@ -4,7 +4,7 @@
define void @foo(float* nocapture %A, float* nocapture %B, float* nocapture %C, i32 %N) nounwind {
; ATOM: foo
; ATOM: addl
-; ATOM: leal
+; ATOM: addl
; ATOM: leal
; CHECK: foo
diff --git a/test/CodeGen/X86/gather-addresses.ll b/test/CodeGen/X86/gather-addresses.ll
index 72a50961b2ff1..5f48b1e32b161 100644
--- a/test/CodeGen/X86/gather-addresses.ll
+++ b/test/CodeGen/X86/gather-addresses.ll
@@ -1,21 +1,35 @@
-; RUN: llc -mtriple=x86_64-linux -mcpu=nehalem < %s | FileCheck %s
-; RUN: llc -mtriple=x86_64-win32 -mcpu=nehalem < %s | FileCheck %s
+; RUN: llc -mtriple=x86_64-linux -mcpu=nehalem < %s | FileCheck %s --check-prefix=LIN
+; RUN: llc -mtriple=x86_64-win32 -mcpu=nehalem < %s | FileCheck %s --check-prefix=WIN
; rdar://7398554
; When doing vector gather-scatter index calculation with 32-bit indices,
; bounce the vector off of cache rather than shuffling each individual
; element out of the index vector.
-; CHECK: andps ([[H:%rdx|%r8]]), %xmm0
-; CHECK: movaps %xmm0, {{(-24)?}}(%rsp)
-; CHECK: movslq {{(-24)?}}(%rsp), %rax
-; CHECK: movsd ([[P:%rdi|%rcx]],%rax,8), %xmm0
-; CHECK: movslq {{-20|4}}(%rsp), %rax
-; CHECK: movhpd ([[P]],%rax,8), %xmm0
-; CHECK: movslq {{-16|8}}(%rsp), %rax
-; CHECK: movsd ([[P]],%rax,8), %xmm1
-; CHECK: movslq {{-12|12}}(%rsp), %rax
-; CHECK: movhpd ([[P]],%rax,8), %xmm1
+; CHECK: foo:
+; LIN: movaps (%rsi), %xmm0
+; LIN: andps (%rdx), %xmm0
+; LIN: movaps %xmm0, -24(%rsp)
+; LIN: movslq -24(%rsp), %[[REG1:r.+]]
+; LIN: movslq -20(%rsp), %[[REG2:r.+]]
+; LIN: movslq -16(%rsp), %[[REG3:r.+]]
+; LIN: movslq -12(%rsp), %[[REG4:r.+]]
+; LIN: movsd (%rdi,%[[REG1]],8), %xmm0
+; LIN: movhpd (%rdi,%[[REG2]],8), %xmm0
+; LIN: movsd (%rdi,%[[REG3]],8), %xmm1
+; LIN: movhpd (%rdi,%[[REG4]],8), %xmm1
+
+; WIN: movaps (%rdx), %xmm0
+; WIN: andps (%r8), %xmm0
+; WIN: movaps %xmm0, (%rsp)
+; WIN: movslq (%rsp), %[[REG1:r.+]]
+; WIN: movslq 4(%rsp), %[[REG2:r.+]]
+; WIN: movslq 8(%rsp), %[[REG3:r.+]]
+; WIN: movslq 12(%rsp), %[[REG4:r.+]]
+; WIN: movsd (%rcx,%[[REG1]],8), %xmm0
+; WIN: movhpd (%rcx,%[[REG2]],8), %xmm0
+; WIN: movsd (%rcx,%[[REG3]],8), %xmm1
+; WIN: movhpd (%rcx,%[[REG4]],8), %xmm1
define <4 x double> @foo(double* %p, <4 x i32>* %i, <4 x i32>* %h) nounwind {
%a = load <4 x i32>* %i
diff --git a/test/CodeGen/X86/gcc_except_table.ll b/test/CodeGen/X86/gcc_except_table.ll
index d89e9dca33d11..fcc4e9f0b89bc 100644
--- a/test/CodeGen/X86/gcc_except_table.ll
+++ b/test/CodeGen/X86/gcc_except_table.ll
@@ -2,6 +2,12 @@
@_ZTIi = external constant i8*
define i32 @main() uwtable optsize ssp {
+; CHECK: .cfi_startproc
+; CHECK: .cfi_personality 155, ___gxx_personality_v0
+; CHECK: .cfi_lsda 16, Lexception0
+; CHECK: .cfi_def_cfa_offset 16
+; CHECK: .cfi_endproc
+
entry:
invoke void @_Z1fv() optsize
to label %try.cont unwind label %lpad
diff --git a/test/CodeGen/X86/ghc-cc.ll b/test/CodeGen/X86/ghc-cc.ll
index 0e65cfdbae309..4dba2c0863296 100644
--- a/test/CodeGen/X86/ghc-cc.ll
+++ b/test/CodeGen/X86/ghc-cc.ll
@@ -28,10 +28,10 @@ entry:
define cc 10 void @foo() nounwind {
entry:
- ; CHECK: movl base, %ebx
- ; CHECK-NEXT: movl sp, %ebp
+ ; CHECK: movl r1, %esi
; CHECK-NEXT: movl hp, %edi
- ; CHECK-NEXT: movl r1, %esi
+ ; CHECK-NEXT: movl sp, %ebp
+ ; CHECK-NEXT: movl base, %ebx
%0 = load i32* @r1
%1 = load i32* @hp
%2 = load i32* @sp
@@ -42,4 +42,3 @@ entry:
}
declare cc 10 void @bar(i32, i32, i32, i32)
-
diff --git a/test/CodeGen/X86/ghc-cc64.ll b/test/CodeGen/X86/ghc-cc64.ll
index fcf7e1797ad8f..403391e816589 100644
--- a/test/CodeGen/X86/ghc-cc64.ll
+++ b/test/CodeGen/X86/ghc-cc64.ll
@@ -41,22 +41,22 @@ entry:
define cc 10 void @foo() nounwind {
entry:
- ; CHECK: movq base(%rip), %r13
- ; CHECK-NEXT: movq sp(%rip), %rbp
- ; CHECK-NEXT: movq hp(%rip), %r12
- ; CHECK-NEXT: movq r1(%rip), %rbx
- ; CHECK-NEXT: movq r2(%rip), %r14
- ; CHECK-NEXT: movq r3(%rip), %rsi
- ; CHECK-NEXT: movq r4(%rip), %rdi
- ; CHECK-NEXT: movq r5(%rip), %r8
- ; CHECK-NEXT: movq r6(%rip), %r9
- ; CHECK-NEXT: movq splim(%rip), %r15
- ; CHECK-NEXT: movss f1(%rip), %xmm1
- ; CHECK-NEXT: movss f2(%rip), %xmm2
- ; CHECK-NEXT: movss f3(%rip), %xmm3
- ; CHECK-NEXT: movss f4(%rip), %xmm4
+ ; CHECK: movsd d2(%rip), %xmm6
; CHECK-NEXT: movsd d1(%rip), %xmm5
- ; CHECK-NEXT: movsd d2(%rip), %xmm6
+ ; CHECK-NEXT: movss f4(%rip), %xmm4
+ ; CHECK-NEXT: movss f3(%rip), %xmm3
+ ; CHECK-NEXT: movss f2(%rip), %xmm2
+ ; CHECK-NEXT: movss f1(%rip), %xmm1
+ ; CHECK-NEXT: movq splim(%rip), %r15
+ ; CHECK-NEXT: movq r6(%rip), %r9
+ ; CHECK-NEXT: movq r5(%rip), %r8
+ ; CHECK-NEXT: movq r4(%rip), %rdi
+ ; CHECK-NEXT: movq r3(%rip), %rsi
+ ; CHECK-NEXT: movq r2(%rip), %r14
+ ; CHECK-NEXT: movq r1(%rip), %rbx
+ ; CHECK-NEXT: movq hp(%rip), %r12
+ ; CHECK-NEXT: movq sp(%rip), %rbp
+ ; CHECK-NEXT: movq base(%rip), %r13
%0 = load double* @d2
%1 = load double* @d1
%2 = load float* @f4
@@ -83,4 +83,3 @@ entry:
declare cc 10 void @bar(i64, i64, i64, i64, i64, i64, i64, i64, i64, i64,
float, float, float, float, double, double)
-
diff --git a/test/CodeGen/X86/global-sections.ll b/test/CodeGen/X86/global-sections.ll
index 194f59765e5b2..d8743ac31814d 100644
--- a/test/CodeGen/X86/global-sections.ll
+++ b/test/CodeGen/X86/global-sections.ll
@@ -65,10 +65,10 @@
; PR4584
@"foo bar" = linkonce global i32 42
-; LINUX: .type foo_20_bar,@object
-; LINUX: .section .data.foo_20_bar,"aGw",@progbits,foo_20_bar,comdat
-; LINUX: .weak foo_20_bar
-; LINUX: foo_20_bar:
+; LINUX: .type "foo bar",@object
+; LINUX: .section ".data.foo bar","aGw",@progbits,"foo bar",comdat
+; LINUX: .weak "foo bar"
+; LINUX: "foo bar":
; DARWIN: .section __DATA,__datacoal_nt,coalesced
; DARWIN: .globl "_foo bar"
diff --git a/test/CodeGen/X86/h-register-addressing-32.ll b/test/CodeGen/X86/h-register-addressing-32.ll
index 968a9e88c0e97..68e8c605f6781 100644
--- a/test/CodeGen/X86/h-register-addressing-32.ll
+++ b/test/CodeGen/X86/h-register-addressing-32.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86 | grep "movzbl %[abcd]h," | count 7
+; RUN: llc < %s -march=x86 -mattr=-bmi | FileCheck %s
; Use h-register extract and zero-extend.
@@ -9,6 +9,9 @@ define double @foo8(double* nocapture inreg %p, i32 inreg %x) nounwind readonly
%t3 = load double* %t2, align 8
ret double %t3
}
+; CHECK: foo8:
+; CHECK: movzbl %{{[abcd]}}h, %e
+
define float @foo4(float* nocapture inreg %p, i32 inreg %x) nounwind readonly {
%t0 = lshr i32 %x, 8
%t1 = and i32 %t0, 255
@@ -16,6 +19,9 @@ define float @foo4(float* nocapture inreg %p, i32 inreg %x) nounwind readonly {
%t3 = load float* %t2, align 8
ret float %t3
}
+; CHECK: foo4:
+; CHECK: movzbl %{{[abcd]}}h, %e
+
define i16 @foo2(i16* nocapture inreg %p, i32 inreg %x) nounwind readonly {
%t0 = lshr i32 %x, 8
%t1 = and i32 %t0, 255
@@ -23,6 +29,9 @@ define i16 @foo2(i16* nocapture inreg %p, i32 inreg %x) nounwind readonly {
%t3 = load i16* %t2, align 8
ret i16 %t3
}
+; CHECK: foo2:
+; CHECK: movzbl %{{[abcd]}}h, %e
+
define i8 @foo1(i8* nocapture inreg %p, i32 inreg %x) nounwind readonly {
%t0 = lshr i32 %x, 8
%t1 = and i32 %t0, 255
@@ -30,6 +39,9 @@ define i8 @foo1(i8* nocapture inreg %p, i32 inreg %x) nounwind readonly {
%t3 = load i8* %t2, align 8
ret i8 %t3
}
+; CHECK: foo1:
+; CHECK: movzbl %{{[abcd]}}h, %e
+
define i8 @bar8(i8* nocapture inreg %p, i32 inreg %x) nounwind readonly {
%t0 = lshr i32 %x, 5
%t1 = and i32 %t0, 2040
@@ -37,6 +49,9 @@ define i8 @bar8(i8* nocapture inreg %p, i32 inreg %x) nounwind readonly {
%t3 = load i8* %t2, align 8
ret i8 %t3
}
+; CHECK: bar8:
+; CHECK: movzbl %{{[abcd]}}h, %e
+
define i8 @bar4(i8* nocapture inreg %p, i32 inreg %x) nounwind readonly {
%t0 = lshr i32 %x, 6
%t1 = and i32 %t0, 1020
@@ -44,6 +59,9 @@ define i8 @bar4(i8* nocapture inreg %p, i32 inreg %x) nounwind readonly {
%t3 = load i8* %t2, align 8
ret i8 %t3
}
+; CHECK: bar4:
+; CHECK: movzbl %{{[abcd]}}h, %e
+
define i8 @bar2(i8* nocapture inreg %p, i32 inreg %x) nounwind readonly {
%t0 = lshr i32 %x, 7
%t1 = and i32 %t0, 510
@@ -51,3 +69,6 @@ define i8 @bar2(i8* nocapture inreg %p, i32 inreg %x) nounwind readonly {
%t3 = load i8* %t2, align 8
ret i8 %t3
}
+; CHECK: bar2:
+; CHECK: movzbl %{{[abcd]}}h, %e
+; CHECK: ret
diff --git a/test/CodeGen/X86/h-register-addressing-64.ll b/test/CodeGen/X86/h-register-addressing-64.ll
index a19fca555811a..3f549d26c2fe6 100644
--- a/test/CodeGen/X86/h-register-addressing-64.ll
+++ b/test/CodeGen/X86/h-register-addressing-64.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86-64 | grep "movzbl %[abcd]h," | count 7
+; RUN: llc < %s -march=x86-64 -mattr=-bmi | FileCheck %s
; Use h-register extract and zero-extend.
@@ -9,6 +9,9 @@ define double @foo8(double* nocapture inreg %p, i64 inreg %x) nounwind readonly
%t3 = load double* %t2, align 8
ret double %t3
}
+; CHECK: foo8:
+; CHECK: movzbl %{{[abcd]}}h, %e
+
define float @foo4(float* nocapture inreg %p, i64 inreg %x) nounwind readonly {
%t0 = lshr i64 %x, 8
%t1 = and i64 %t0, 255
@@ -16,6 +19,9 @@ define float @foo4(float* nocapture inreg %p, i64 inreg %x) nounwind readonly {
%t3 = load float* %t2, align 8
ret float %t3
}
+; CHECK: foo4:
+; CHECK: movzbl %{{[abcd]}}h, %e
+
define i16 @foo2(i16* nocapture inreg %p, i64 inreg %x) nounwind readonly {
%t0 = lshr i64 %x, 8
%t1 = and i64 %t0, 255
@@ -23,6 +29,9 @@ define i16 @foo2(i16* nocapture inreg %p, i64 inreg %x) nounwind readonly {
%t3 = load i16* %t2, align 8
ret i16 %t3
}
+; CHECK: foo2:
+; CHECK: movzbl %{{[abcd]}}h, %e
+
define i8 @foo1(i8* nocapture inreg %p, i64 inreg %x) nounwind readonly {
%t0 = lshr i64 %x, 8
%t1 = and i64 %t0, 255
@@ -30,6 +39,9 @@ define i8 @foo1(i8* nocapture inreg %p, i64 inreg %x) nounwind readonly {
%t3 = load i8* %t2, align 8
ret i8 %t3
}
+; CHECK: foo1:
+; CHECK: movzbl %{{[abcd]}}h, %e
+
define i8 @bar8(i8* nocapture inreg %p, i64 inreg %x) nounwind readonly {
%t0 = lshr i64 %x, 5
%t1 = and i64 %t0, 2040
@@ -37,6 +49,9 @@ define i8 @bar8(i8* nocapture inreg %p, i64 inreg %x) nounwind readonly {
%t3 = load i8* %t2, align 8
ret i8 %t3
}
+; CHECK: bar8:
+; CHECK: movzbl %{{[abcd]}}h, %e
+
define i8 @bar4(i8* nocapture inreg %p, i64 inreg %x) nounwind readonly {
%t0 = lshr i64 %x, 6
%t1 = and i64 %t0, 1020
@@ -44,6 +59,9 @@ define i8 @bar4(i8* nocapture inreg %p, i64 inreg %x) nounwind readonly {
%t3 = load i8* %t2, align 8
ret i8 %t3
}
+; CHECK: bar4:
+; CHECK: movzbl %{{[abcd]}}h, %e
+
define i8 @bar2(i8* nocapture inreg %p, i64 inreg %x) nounwind readonly {
%t0 = lshr i64 %x, 7
%t1 = and i64 %t0, 510
@@ -51,3 +69,6 @@ define i8 @bar2(i8* nocapture inreg %p, i64 inreg %x) nounwind readonly {
%t3 = load i8* %t2, align 8
ret i8 %t3
}
+; CHECK: bar2:
+; CHECK: movzbl %{{[abcd]}}h, %e
+; CHECK: ret
diff --git a/test/CodeGen/X86/h-registers-0.ll b/test/CodeGen/X86/h-registers-0.ll
index cdc75af92e430..6a5ccaa1e76f2 100644
--- a/test/CodeGen/X86/h-registers-0.ll
+++ b/test/CodeGen/X86/h-registers-0.ll
@@ -1,22 +1,22 @@
-; RUN: llc < %s -mtriple=x86_64-linux | FileCheck %s -check-prefix=X86-64
-; RUN: llc < %s -mtriple=x86_64-win32 | FileCheck %s -check-prefix=WIN64
-; RUN: llc < %s -march=x86 | FileCheck %s -check-prefix=X86-32
+; RUN: llc < %s -mattr=-bmi -mtriple=x86_64-linux | FileCheck %s -check-prefix=X86-64
+; RUN: llc < %s -mattr=-bmi -mtriple=x86_64-win32 | FileCheck %s -check-prefix=WIN64
+; RUN: llc < %s -mattr=-bmi -march=x86 | FileCheck %s -check-prefix=X86-32
; Use h registers. On x86-64, codegen doesn't support general allocation
; of h registers yet, due to x86 encoding complications.
define void @bar64(i64 inreg %x, i8* inreg %p) nounwind {
-; X86-64: bar64:
+; X86-64-LABEL: bar64:
; X86-64: shrq $8, %rdi
; X86-64: incb %dil
; See FIXME: on regclass GR8.
; It could be optimally transformed like; incb %ch; movb %ch, (%rdx)
-; WIN64: bar64:
+; WIN64-LABEL: bar64:
; WIN64: shrq $8, %rcx
; WIN64: incb %cl
-; X86-32: bar64:
+; X86-32-LABEL: bar64:
; X86-32: incb %ah
%t0 = lshr i64 %x, 8
%t1 = trunc i64 %t0 to i8
@@ -26,15 +26,15 @@ define void @bar64(i64 inreg %x, i8* inreg %p) nounwind {
}
define void @bar32(i32 inreg %x, i8* inreg %p) nounwind {
-; X86-64: bar32:
+; X86-64-LABEL: bar32:
; X86-64: shrl $8, %edi
; X86-64: incb %dil
-; WIN64: bar32:
+; WIN64-LABEL: bar32:
; WIN64: shrl $8, %ecx
; WIN64: incb %cl
-; X86-32: bar32:
+; X86-32-LABEL: bar32:
; X86-32: incb %ah
%t0 = lshr i32 %x, 8
%t1 = trunc i32 %t0 to i8
@@ -44,15 +44,15 @@ define void @bar32(i32 inreg %x, i8* inreg %p) nounwind {
}
define void @bar16(i16 inreg %x, i8* inreg %p) nounwind {
-; X86-64: bar16:
+; X86-64-LABEL: bar16:
; X86-64: shrl $8, %edi
; X86-64: incb %dil
-; WIN64: bar16:
+; WIN64-LABEL: bar16:
; WIN64: shrl $8, %ecx
; WIN64: incb %cl
-; X86-32: bar16:
+; X86-32-LABEL: bar16:
; X86-32: incb %ah
%t0 = lshr i16 %x, 8
%t1 = trunc i16 %t0 to i8
@@ -62,14 +62,14 @@ define void @bar16(i16 inreg %x, i8* inreg %p) nounwind {
}
define i64 @qux64(i64 inreg %x) nounwind {
-; X86-64: qux64:
+; X86-64-LABEL: qux64:
; X86-64: movq %rdi, %rax
; X86-64: movzbl %ah, %eax
-; WIN64: qux64:
+; WIN64-LABEL: qux64:
; WIN64: movzbl %ch, %eax
-; X86-32: qux64:
+; X86-32-LABEL: qux64:
; X86-32: movzbl %ah, %eax
%t0 = lshr i64 %x, 8
%t1 = and i64 %t0, 255
@@ -77,14 +77,14 @@ define i64 @qux64(i64 inreg %x) nounwind {
}
define i32 @qux32(i32 inreg %x) nounwind {
-; X86-64: qux32:
+; X86-64-LABEL: qux32:
; X86-64: movl %edi, %eax
; X86-64: movzbl %ah, %eax
-; WIN64: qux32:
+; WIN64-LABEL: qux32:
; WIN64: movzbl %ch, %eax
-; X86-32: qux32:
+; X86-32-LABEL: qux32:
; X86-32: movzbl %ah, %eax
%t0 = lshr i32 %x, 8
%t1 = and i32 %t0, 255
@@ -92,14 +92,14 @@ define i32 @qux32(i32 inreg %x) nounwind {
}
define i16 @qux16(i16 inreg %x) nounwind {
-; X86-64: qux16:
+; X86-64-LABEL: qux16:
; X86-64: movl %edi, %eax
; X86-64: movzbl %ah, %eax
-; WIN64: qux16:
+; WIN64-LABEL: qux16:
; WIN64: movzbl %ch, %eax
-; X86-32: qux16:
+; X86-32-LABEL: qux16:
; X86-32: movzbl %ah, %eax
%t0 = lshr i16 %x, 8
ret i16 %t0
diff --git a/test/CodeGen/X86/h-registers-1.ll b/test/CodeGen/X86/h-registers-1.ll
index 903c4538aba73..7254325a92657 100644
--- a/test/CodeGen/X86/h-registers-1.ll
+++ b/test/CodeGen/X86/h-registers-1.ll
@@ -1,12 +1,21 @@
-; RUN: llc < %s -mtriple=x86_64-linux > %t
-; RUN: grep "movzbl %[abcd]h," %t | count 8
-; RUN: grep "%[abcd]h" %t | not grep "%r[[:digit:]]*d"
+; RUN: llc -mattr=-bmi < %s -mtriple=x86_64-linux | FileCheck %s
; LLVM creates virtual registers for values live across blocks
; based on the type of the value. Make sure that the extracts
; here use the GR64_NOREX register class for their result,
; instead of plain GR64.
+; CHECK: foo:
+; CHECK: movzbl %{{[abcd]}}h, %e
+; CHECK: movzbl %{{[abcd]}}h, %e
+; CHECK: movzbl %{{[abcd]}}h, %e
+; CHECK: movzbl %{{[abcd]}}h, %e
+; CHECK: movzbl %{{[abcd]}}h, %e
+; CHECK: movzbl %{{[abcd]}}h, %e
+; CHECK: movzbl %{{[abcd]}}h, %e
+; CHECK: movzbl %{{[abcd]}}h, %e
+; CHECK: ret
+
define i64 @foo(i64 %a, i64 %b, i64 %c, i64 %d,
i64 %e, i64 %f, i64 %g, i64 %h) {
%sa = lshr i64 %a, 8
diff --git a/test/CodeGen/X86/h-registers-2.ll b/test/CodeGen/X86/h-registers-2.ll
index 488444c15d3b7..91acb7d5bb1ce 100644
--- a/test/CodeGen/X86/h-registers-2.ll
+++ b/test/CodeGen/X86/h-registers-2.ll
@@ -4,7 +4,7 @@
; non-address use(s).
define i32 @foo(i8* %x, i32 %y) nounwind {
-; CHECK: foo:
+; CHECK-LABEL: foo:
; CHECK-NOT: ret
; CHECK: movzbl %{{[abcd]h}},
; CHECK-NOT: ret
diff --git a/test/CodeGen/X86/haddsub.ll b/test/CodeGen/X86/haddsub.ll
index 5f1f4fd8f76d0..9feb5f6ea6e7c 100644
--- a/test/CodeGen/X86/haddsub.ll
+++ b/test/CodeGen/X86/haddsub.ll
@@ -1,10 +1,10 @@
; RUN: llc < %s -march=x86-64 -mattr=+sse3,-avx | FileCheck %s -check-prefix=SSE3
; RUN: llc < %s -march=x86-64 -mattr=-sse3,+avx | FileCheck %s -check-prefix=AVX
-; SSE3: haddpd1:
+; SSE3-LABEL: haddpd1:
; SSE3-NOT: vhaddpd
; SSE3: haddpd
-; AVX: haddpd1:
+; AVX-LABEL: haddpd1:
; AVX: vhaddpd
define <2 x double> @haddpd1(<2 x double> %x, <2 x double> %y) {
%a = shufflevector <2 x double> %x, <2 x double> %y, <2 x i32> <i32 0, i32 2>
@@ -13,10 +13,10 @@ define <2 x double> @haddpd1(<2 x double> %x, <2 x double> %y) {
ret <2 x double> %r
}
-; SSE3: haddpd2:
+; SSE3-LABEL: haddpd2:
; SSE3-NOT: vhaddpd
; SSE3: haddpd
-; AVX: haddpd2:
+; AVX-LABEL: haddpd2:
; AVX: vhaddpd
define <2 x double> @haddpd2(<2 x double> %x, <2 x double> %y) {
%a = shufflevector <2 x double> %x, <2 x double> %y, <2 x i32> <i32 1, i32 2>
@@ -25,10 +25,10 @@ define <2 x double> @haddpd2(<2 x double> %x, <2 x double> %y) {
ret <2 x double> %r
}
-; SSE3: haddpd3:
+; SSE3-LABEL: haddpd3:
; SSE3-NOT: vhaddpd
; SSE3: haddpd
-; AVX: haddpd3:
+; AVX-LABEL: haddpd3:
; AVX: vhaddpd
define <2 x double> @haddpd3(<2 x double> %x) {
%a = shufflevector <2 x double> %x, <2 x double> undef, <2 x i32> <i32 0, i32 undef>
@@ -37,10 +37,10 @@ define <2 x double> @haddpd3(<2 x double> %x) {
ret <2 x double> %r
}
-; SSE3: haddps1:
+; SSE3-LABEL: haddps1:
; SSE3-NOT: vhaddps
; SSE3: haddps
-; AVX: haddps1:
+; AVX-LABEL: haddps1:
; AVX: vhaddps
define <4 x float> @haddps1(<4 x float> %x, <4 x float> %y) {
%a = shufflevector <4 x float> %x, <4 x float> %y, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
@@ -49,10 +49,10 @@ define <4 x float> @haddps1(<4 x float> %x, <4 x float> %y) {
ret <4 x float> %r
}
-; SSE3: haddps2:
+; SSE3-LABEL: haddps2:
; SSE3-NOT: vhaddps
; SSE3: haddps
-; AVX: haddps2:
+; AVX-LABEL: haddps2:
; AVX: vhaddps
define <4 x float> @haddps2(<4 x float> %x, <4 x float> %y) {
%a = shufflevector <4 x float> %x, <4 x float> %y, <4 x i32> <i32 1, i32 2, i32 5, i32 6>
@@ -61,10 +61,10 @@ define <4 x float> @haddps2(<4 x float> %x, <4 x float> %y) {
ret <4 x float> %r
}
-; SSE3: haddps3:
+; SSE3-LABEL: haddps3:
; SSE3-NOT: vhaddps
; SSE3: haddps
-; AVX: haddps3:
+; AVX-LABEL: haddps3:
; AVX: vhaddps
define <4 x float> @haddps3(<4 x float> %x) {
%a = shufflevector <4 x float> %x, <4 x float> undef, <4 x i32> <i32 undef, i32 2, i32 4, i32 6>
@@ -73,10 +73,10 @@ define <4 x float> @haddps3(<4 x float> %x) {
ret <4 x float> %r
}
-; SSE3: haddps4:
+; SSE3-LABEL: haddps4:
; SSE3-NOT: vhaddps
; SSE3: haddps
-; AVX: haddps4:
+; AVX-LABEL: haddps4:
; AVX: vhaddps
define <4 x float> @haddps4(<4 x float> %x) {
%a = shufflevector <4 x float> %x, <4 x float> undef, <4 x i32> <i32 0, i32 2, i32 undef, i32 undef>
@@ -85,10 +85,10 @@ define <4 x float> @haddps4(<4 x float> %x) {
ret <4 x float> %r
}
-; SSE3: haddps5:
+; SSE3-LABEL: haddps5:
; SSE3-NOT: vhaddps
; SSE3: haddps
-; AVX: haddps5:
+; AVX-LABEL: haddps5:
; AVX: vhaddps
define <4 x float> @haddps5(<4 x float> %x) {
%a = shufflevector <4 x float> %x, <4 x float> undef, <4 x i32> <i32 0, i32 3, i32 undef, i32 undef>
@@ -97,10 +97,10 @@ define <4 x float> @haddps5(<4 x float> %x) {
ret <4 x float> %r
}
-; SSE3: haddps6:
+; SSE3-LABEL: haddps6:
; SSE3-NOT: vhaddps
; SSE3: haddps
-; AVX: haddps6:
+; AVX-LABEL: haddps6:
; AVX: vhaddps
define <4 x float> @haddps6(<4 x float> %x) {
%a = shufflevector <4 x float> %x, <4 x float> undef, <4 x i32> <i32 0, i32 undef, i32 undef, i32 undef>
@@ -109,10 +109,10 @@ define <4 x float> @haddps6(<4 x float> %x) {
ret <4 x float> %r
}
-; SSE3: haddps7:
+; SSE3-LABEL: haddps7:
; SSE3-NOT: vhaddps
; SSE3: haddps
-; AVX: haddps7:
+; AVX-LABEL: haddps7:
; AVX: vhaddps
define <4 x float> @haddps7(<4 x float> %x) {
%a = shufflevector <4 x float> %x, <4 x float> undef, <4 x i32> <i32 undef, i32 3, i32 undef, i32 undef>
@@ -121,10 +121,10 @@ define <4 x float> @haddps7(<4 x float> %x) {
ret <4 x float> %r
}
-; SSE3: hsubpd1:
+; SSE3-LABEL: hsubpd1:
; SSE3-NOT: vhsubpd
; SSE3: hsubpd
-; AVX: hsubpd1:
+; AVX-LABEL: hsubpd1:
; AVX: vhsubpd
define <2 x double> @hsubpd1(<2 x double> %x, <2 x double> %y) {
%a = shufflevector <2 x double> %x, <2 x double> %y, <2 x i32> <i32 0, i32 2>
@@ -133,10 +133,10 @@ define <2 x double> @hsubpd1(<2 x double> %x, <2 x double> %y) {
ret <2 x double> %r
}
-; SSE3: hsubpd2:
+; SSE3-LABEL: hsubpd2:
; SSE3-NOT: vhsubpd
; SSE3: hsubpd
-; AVX: hsubpd2:
+; AVX-LABEL: hsubpd2:
; AVX: vhsubpd
define <2 x double> @hsubpd2(<2 x double> %x) {
%a = shufflevector <2 x double> %x, <2 x double> undef, <2 x i32> <i32 0, i32 undef>
@@ -145,10 +145,10 @@ define <2 x double> @hsubpd2(<2 x double> %x) {
ret <2 x double> %r
}
-; SSE3: hsubps1:
+; SSE3-LABEL: hsubps1:
; SSE3-NOT: vhsubps
; SSE3: hsubps
-; AVX: hsubps1:
+; AVX-LABEL: hsubps1:
; AVX: vhsubps
define <4 x float> @hsubps1(<4 x float> %x, <4 x float> %y) {
%a = shufflevector <4 x float> %x, <4 x float> %y, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
@@ -157,10 +157,10 @@ define <4 x float> @hsubps1(<4 x float> %x, <4 x float> %y) {
ret <4 x float> %r
}
-; SSE3: hsubps2:
+; SSE3-LABEL: hsubps2:
; SSE3-NOT: vhsubps
; SSE3: hsubps
-; AVX: hsubps2:
+; AVX-LABEL: hsubps2:
; AVX: vhsubps
define <4 x float> @hsubps2(<4 x float> %x) {
%a = shufflevector <4 x float> %x, <4 x float> undef, <4 x i32> <i32 undef, i32 2, i32 4, i32 6>
@@ -169,10 +169,10 @@ define <4 x float> @hsubps2(<4 x float> %x) {
ret <4 x float> %r
}
-; SSE3: hsubps3:
+; SSE3-LABEL: hsubps3:
; SSE3-NOT: vhsubps
; SSE3: hsubps
-; AVX: hsubps3:
+; AVX-LABEL: hsubps3:
; AVX: vhsubps
define <4 x float> @hsubps3(<4 x float> %x) {
%a = shufflevector <4 x float> %x, <4 x float> undef, <4 x i32> <i32 0, i32 2, i32 undef, i32 undef>
@@ -181,10 +181,10 @@ define <4 x float> @hsubps3(<4 x float> %x) {
ret <4 x float> %r
}
-; SSE3: hsubps4:
+; SSE3-LABEL: hsubps4:
; SSE3-NOT: vhsubps
; SSE3: hsubps
-; AVX: hsubps4:
+; AVX-LABEL: hsubps4:
; AVX: vhsubps
define <4 x float> @hsubps4(<4 x float> %x) {
%a = shufflevector <4 x float> %x, <4 x float> undef, <4 x i32> <i32 0, i32 undef, i32 undef, i32 undef>
@@ -193,11 +193,11 @@ define <4 x float> @hsubps4(<4 x float> %x) {
ret <4 x float> %r
}
-; SSE3: vhaddps1:
+; SSE3-LABEL: vhaddps1:
; SSE3-NOT: vhaddps
; SSE3: haddps
; SSE3: haddps
-; AVX: vhaddps1:
+; AVX-LABEL: vhaddps1:
; AVX: vhaddps
define <8 x float> @vhaddps1(<8 x float> %x, <8 x float> %y) {
%a = shufflevector <8 x float> %x, <8 x float> %y, <8 x i32> <i32 0, i32 2, i32 8, i32 10, i32 4, i32 6, i32 12, i32 14>
@@ -206,11 +206,11 @@ define <8 x float> @vhaddps1(<8 x float> %x, <8 x float> %y) {
ret <8 x float> %r
}
-; SSE3: vhaddps2:
+; SSE3-LABEL: vhaddps2:
; SSE3-NOT: vhaddps
; SSE3: haddps
; SSE3: haddps
-; AVX: vhaddps2:
+; AVX-LABEL: vhaddps2:
; AVX: vhaddps
define <8 x float> @vhaddps2(<8 x float> %x, <8 x float> %y) {
%a = shufflevector <8 x float> %x, <8 x float> %y, <8 x i32> <i32 1, i32 2, i32 9, i32 10, i32 5, i32 6, i32 13, i32 14>
@@ -219,11 +219,11 @@ define <8 x float> @vhaddps2(<8 x float> %x, <8 x float> %y) {
ret <8 x float> %r
}
-; SSE3: vhaddps3:
+; SSE3-LABEL: vhaddps3:
; SSE3-NOT: vhaddps
; SSE3: haddps
; SSE3: haddps
-; AVX: vhaddps3:
+; AVX-LABEL: vhaddps3:
; AVX: vhaddps
define <8 x float> @vhaddps3(<8 x float> %x) {
%a = shufflevector <8 x float> %x, <8 x float> undef, <8 x i32> <i32 undef, i32 2, i32 8, i32 10, i32 4, i32 6, i32 undef, i32 14>
@@ -232,11 +232,11 @@ define <8 x float> @vhaddps3(<8 x float> %x) {
ret <8 x float> %r
}
-; SSE3: vhsubps1:
+; SSE3-LABEL: vhsubps1:
; SSE3-NOT: vhsubps
; SSE3: hsubps
; SSE3: hsubps
-; AVX: vhsubps1:
+; AVX-LABEL: vhsubps1:
; AVX: vhsubps
define <8 x float> @vhsubps1(<8 x float> %x, <8 x float> %y) {
%a = shufflevector <8 x float> %x, <8 x float> %y, <8 x i32> <i32 0, i32 2, i32 8, i32 10, i32 4, i32 6, i32 12, i32 14>
@@ -245,11 +245,11 @@ define <8 x float> @vhsubps1(<8 x float> %x, <8 x float> %y) {
ret <8 x float> %r
}
-; SSE3: vhsubps3:
+; SSE3-LABEL: vhsubps3:
; SSE3-NOT: vhsubps
; SSE3: hsubps
; SSE3: hsubps
-; AVX: vhsubps3:
+; AVX-LABEL: vhsubps3:
; AVX: vhsubps
define <8 x float> @vhsubps3(<8 x float> %x) {
%a = shufflevector <8 x float> %x, <8 x float> undef, <8 x i32> <i32 undef, i32 2, i32 8, i32 10, i32 4, i32 6, i32 undef, i32 14>
@@ -258,11 +258,11 @@ define <8 x float> @vhsubps3(<8 x float> %x) {
ret <8 x float> %r
}
-; SSE3: vhaddpd1:
+; SSE3-LABEL: vhaddpd1:
; SSE3-NOT: vhaddpd
; SSE3: haddpd
; SSE3: haddpd
-; AVX: vhaddpd1:
+; AVX-LABEL: vhaddpd1:
; AVX: vhaddpd
define <4 x double> @vhaddpd1(<4 x double> %x, <4 x double> %y) {
%a = shufflevector <4 x double> %x, <4 x double> %y, <4 x i32> <i32 0, i32 4, i32 2, i32 6>
@@ -271,11 +271,11 @@ define <4 x double> @vhaddpd1(<4 x double> %x, <4 x double> %y) {
ret <4 x double> %r
}
-; SSE3: vhsubpd1:
+; SSE3-LABEL: vhsubpd1:
; SSE3-NOT: vhsubpd
; SSE3: hsubpd
; SSE3: hsubpd
-; AVX: vhsubpd1:
+; AVX-LABEL: vhsubpd1:
; AVX: vhsubpd
define <4 x double> @vhsubpd1(<4 x double> %x, <4 x double> %y) {
%a = shufflevector <4 x double> %x, <4 x double> %y, <4 x i32> <i32 0, i32 4, i32 2, i32 6>
diff --git a/test/CodeGen/X86/hidden-vis-4.ll b/test/CodeGen/X86/hidden-vis-4.ll
index a8aede52accdf..25a87b905bc14 100644
--- a/test/CodeGen/X86/hidden-vis-4.ll
+++ b/test/CodeGen/X86/hidden-vis-4.ll
@@ -4,7 +4,7 @@
define i32 @t() nounwind readonly {
entry:
-; CHECK: t:
+; CHECK-LABEL: t:
; CHECK: movl _x, %eax
; CHECK: .comm _x,4
%0 = load i32* @x, align 4 ; <i32> [#uses=1]
diff --git a/test/CodeGen/X86/hidden-vis.ll b/test/CodeGen/X86/hidden-vis.ll
index fcb74fc9de526..a072cb08c99d6 100644
--- a/test/CodeGen/X86/hidden-vis.ll
+++ b/test/CodeGen/X86/hidden-vis.ll
@@ -9,12 +9,12 @@
define weak hidden void @t1() nounwind {
; LINUX: .hidden t1
-; LINUX: t1:
+; LINUX-LABEL: t1:
; DARWIN: .private_extern _t1
-; DARWIN: t1:
+; DARWIN-LABEL: t1:
-; WINDOWS: t1:
+; WINDOWS-LABEL: t1:
; WINDOWS-NOT: hidden
ret void
}
diff --git a/test/CodeGen/X86/hipe-cc.ll b/test/CodeGen/X86/hipe-cc.ll
index 76d17a09d54e6..b34417ebf69bf 100644
--- a/test/CodeGen/X86/hipe-cc.ll
+++ b/test/CodeGen/X86/hipe-cc.ll
@@ -49,10 +49,10 @@ entry:
store i32 %arg1, i32* %arg1_var
store i32 %arg2, i32* %arg2_var
- ; CHECK: movl 4(%esp), %edx
- ; CHECK-NEXT: movl 8(%esp), %eax
+ ; CHECK: movl 16(%esp), %esi
; CHECK-NEXT: movl 12(%esp), %ebp
- ; CHECK-NEXT: movl 16(%esp), %esi
+ ; CHECK-NEXT: movl 8(%esp), %eax
+ ; CHECK-NEXT: movl 4(%esp), %edx
%0 = load i32* %hp_var
%1 = load i32* %p_var
%2 = load i32* %arg0_var
diff --git a/test/CodeGen/X86/hipe-cc64.ll b/test/CodeGen/X86/hipe-cc64.ll
index 5dbb5a25cbeb0..27e1c723a8f70 100644
--- a/test/CodeGen/X86/hipe-cc64.ll
+++ b/test/CodeGen/X86/hipe-cc64.ll
@@ -5,10 +5,10 @@
define void @zap(i64 %a, i64 %b) nounwind {
entry:
; CHECK: movq %rsi, %rax
- ; CHECK-NEXT: movq %rdi, %rsi
- ; CHECK-NEXT: movq %rax, %rdx
; CHECK-NEXT: movl $8, %ecx
; CHECK-NEXT: movl $9, %r8d
+ ; CHECK-NEXT: movq %rdi, %rsi
+ ; CHECK-NEXT: movq %rax, %rdx
; CHECK-NEXT: callq addfour
%0 = call cc 11 {i64, i64, i64} @addfour(i64 undef, i64 undef, i64 %a, i64 %b, i64 8, i64 9)
%res = extractvalue {i64, i64, i64} %0, 2
@@ -57,11 +57,11 @@ entry:
store i64 %arg2, i64* %arg2_var
store i64 %arg3, i64* %arg3_var
- ; CHECK: movq 8(%rsp), %rcx
- ; CHECK-NEXT: movq 16(%rsp), %rdx
- ; CHECK-NEXT: movq 24(%rsp), %rsi
+ ; CHECK: movq 40(%rsp), %r15
; CHECK-NEXT: movq 32(%rsp), %rbp
- ; CHECK-NEXT: movq 40(%rsp), %r15
+ ; CHECK-NEXT: movq 24(%rsp), %rsi
+ ; CHECK-NEXT: movq 16(%rsp), %rdx
+ ; CHECK-NEXT: movq 8(%rsp), %rcx
%0 = load i64* %hp_var
%1 = load i64* %p_var
%2 = load i64* %arg0_var
diff --git a/test/CodeGen/X86/hipe-prologue.ll b/test/CodeGen/X86/hipe-prologue.ll
index ff3c5c803c907..2f16423600c92 100644
--- a/test/CodeGen/X86/hipe-prologue.ll
+++ b/test/CodeGen/X86/hipe-prologue.ll
@@ -9,10 +9,10 @@
declare void @dummy_use(i32*, i32)
define {i32, i32} @test_basic(i32 %hp, i32 %p) {
- ; X32-Linux: test_basic:
+ ; X32-Linux-LABEL: test_basic:
; X32-Linux-NOT: calll inc_stack_0
- ; X64-Linux: test_basic:
+ ; X64-Linux-LABEL: test_basic:
; X64-Linux-NOT: callq inc_stack_0
%mem = alloca i32, i32 10
@@ -23,7 +23,7 @@ define {i32, i32} @test_basic(i32 %hp, i32 %p) {
}
define cc 11 {i32, i32} @test_basic_hipecc(i32 %hp, i32 %p) {
- ; X32-Linux: test_basic_hipecc:
+ ; X32-Linux-LABEL: test_basic_hipecc:
; X32-Linux: leal -156(%esp), %ebx
; X32-Linux-NEXT: cmpl 76(%ebp), %ebx
; X32-Linux-NEXT: jb .LBB1_1
@@ -33,7 +33,7 @@ define cc 11 {i32, i32} @test_basic_hipecc(i32 %hp, i32 %p) {
; X32-Linux: .LBB1_1:
; X32-Linux-NEXT: calll inc_stack_0
- ; X64-Linux: test_basic_hipecc:
+ ; X64-Linux-LABEL: test_basic_hipecc:
; X64-Linux: leaq -232(%rsp), %r14
; X64-Linux-NEXT: cmpq 144(%rbp), %r14
; X64-Linux-NEXT: jb .LBB1_1
@@ -51,10 +51,10 @@ define cc 11 {i32, i32} @test_basic_hipecc(i32 %hp, i32 %p) {
}
define cc 11 {i32,i32,i32} @test_nocall_hipecc(i32 %hp,i32 %p,i32 %x,i32 %y) {
- ; X32-Linux: test_nocall_hipecc:
+ ; X32-Linux-LABEL: test_nocall_hipecc:
; X32-Linux-NOT: calll inc_stack_0
- ; X64-Linux: test_nocall_hipecc:
+ ; X64-Linux-LABEL: test_nocall_hipecc:
; X64-Linux-NOT: callq inc_stack_0
%1 = add i32 %x, %y
diff --git a/test/CodeGen/X86/hoist-common.ll b/test/CodeGen/X86/hoist-common.ll
index 72e17c065b63b..01d1b8c034e34 100644
--- a/test/CodeGen/X86/hoist-common.ll
+++ b/test/CodeGen/X86/hoist-common.ll
@@ -1,4 +1,14 @@
; RUN: llc < %s -mtriple=x86_64-apple-macosx | FileCheck %s
+; This is supposed to be testing BranchFolding's common
+; code hoisting logic, but has been erroneously passing due
+; to there being a redundant xorl in the entry block
+; and no common code to hoist.
+; However, now that MachineSink sinks the redundant xor
+; hoist-common looks at it and rejects it for hoisting,
+; which causes this test to fail.
+; Since it seems this test is broken, marking XFAIL for now
+; until someone decides to remove it or fix what it tests.
+; XFAIL: *
; Common "xorb al, al" instruction in the two successor blocks should be
; moved to the entry block above the test + je.
@@ -7,8 +17,8 @@
define zeroext i1 @t(i32 %c) nounwind ssp {
entry:
-; CHECK: t:
-; CHECK: xorb %al, %al
+; CHECK-LABEL: t:
+; CHECK: xorl %eax, %eax
; CHECK: test
; CHECK: je
%tobool = icmp eq i32 %c, 0
diff --git a/test/CodeGen/X86/i128-mul.ll b/test/CodeGen/X86/i128-mul.ll
index e9d30d67019e2..8cfda85ce46dd 100644
--- a/test/CodeGen/X86/i128-mul.ll
+++ b/test/CodeGen/X86/i128-mul.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86-64
+; RUN: llc < %s -march=x86-64 -mcpu=corei7 | FileCheck %s
; PR1198
define i64 @foo(i64 %x, i64 %y) {
@@ -10,3 +10,37 @@ define i64 @foo(i64 %x, i64 %y) {
%tmp4 = trunc i128 %tmp3 to i64
ret i64 %tmp4
}
+
+; <rdar://problem/14096009> superfluous multiply by high part of
+; zero-extended value.
+; CHECK: @mul1
+; CHECK-NOT: imulq
+; CHECK: mulq
+; CHECK-NOT: imulq
+define i64 @mul1(i64 %n, i64* nocapture %z, i64* nocapture %x, i64 %y) {
+entry:
+ %conv = zext i64 %y to i128
+ %cmp11 = icmp eq i64 %n, 0
+ br i1 %cmp11, label %for.end, label %for.body
+
+for.body: ; preds = %entry, %for.body
+ %carry.013 = phi i64 [ %conv6, %for.body ], [ 0, %entry ]
+ %i.012 = phi i64 [ %inc, %for.body ], [ 0, %entry ]
+ %arrayidx = getelementptr inbounds i64* %x, i64 %i.012
+ %0 = load i64* %arrayidx, align 8
+ %conv2 = zext i64 %0 to i128
+ %mul = mul i128 %conv2, %conv
+ %conv3 = zext i64 %carry.013 to i128
+ %add = add i128 %mul, %conv3
+ %conv4 = trunc i128 %add to i64
+ %arrayidx5 = getelementptr inbounds i64* %z, i64 %i.012
+ store i64 %conv4, i64* %arrayidx5, align 8
+ %shr = lshr i128 %add, 64
+ %conv6 = trunc i128 %shr to i64
+ %inc = add i64 %i.012, 1
+ %exitcond = icmp eq i64 %inc, %n
+ br i1 %exitcond, label %for.end, label %for.body
+
+for.end: ; preds = %for.body, %entry
+ ret i64 0
+}
diff --git a/test/CodeGen/X86/i128-sdiv.ll b/test/CodeGen/X86/i128-sdiv.ll
index ab5cdda0ce22a..89cd495aa8b6c 100644
--- a/test/CodeGen/X86/i128-sdiv.ll
+++ b/test/CodeGen/X86/i128-sdiv.ll
@@ -3,21 +3,21 @@
; trigger correctly.
define i128 @test1(i128 %x) {
- ; CHECK: test1:
+ ; CHECK-LABEL: test1:
; CHECK-NOT: call
%tmp = sdiv i128 %x, 73786976294838206464
ret i128 %tmp
}
define i128 @test2(i128 %x) {
- ; CHECK: test2:
+ ; CHECK-LABEL: test2:
; CHECK-NOT: call
%tmp = sdiv i128 %x, -73786976294838206464
ret i128 %tmp
}
define i128 @test3(i128 %x) {
- ; CHECK: test3:
+ ; CHECK-LABEL: test3:
; CHECK: call
%tmp = sdiv i128 %x, -73786976294838206467
ret i128 %tmp
diff --git a/test/CodeGen/X86/i486-fence-loop.ll b/test/CodeGen/X86/i486-fence-loop.ll
new file mode 100644
index 0000000000000..d8096197b0df8
--- /dev/null
+++ b/test/CodeGen/X86/i486-fence-loop.ll
@@ -0,0 +1,27 @@
+; RUN: llc -march=x86 -mcpu=i486 -o - %s | FileCheck %s
+
+; Main test here was that ISelDAG could cope with a MachineNode in the chain
+; from the first load to the "X86ISD::SUB". Previously it thought that meant no
+; cycle could be formed so it tried to use "sub (%eax), [[RHS]]".
+
+define void @gst_atomic_queue_push(i32* %addr) {
+; CHECK-LABEL: gst_atomic_queue_push:
+; CHECK: movl (%eax), [[LHS:%e[a-z]+]]
+; CHECK: lock
+; CHECK-NEXT: orl
+; CHECK: movl (%eax), [[RHS:%e[a-z]+]]
+; CHECK: cmpl [[LHS]], [[RHS]]
+
+entry:
+ br label %while.body
+
+while.body:
+ %0 = load volatile i32* %addr, align 4
+ fence seq_cst
+ %1 = load volatile i32* %addr, align 4
+ %cmp = icmp sgt i32 %1, %0
+ br i1 %cmp, label %while.body, label %if.then
+
+if.then:
+ ret void
+} \ No newline at end of file
diff --git a/test/CodeGen/X86/iabs.ll b/test/CodeGen/X86/iabs.ll
index 9196cce1ae5ac..f47bd7b2defbc 100644
--- a/test/CodeGen/X86/iabs.ll
+++ b/test/CodeGen/X86/iabs.ll
@@ -7,7 +7,7 @@
;; ret
; rdar://10695237
define i32 @test(i32 %a) nounwind {
-; CHECK: test:
+; CHECK-LABEL: test:
; CHECK: mov
; CHECK-NEXT: neg
; CHECK-NEXT: cmov
diff --git a/test/CodeGen/X86/ident-metadata.ll b/test/CodeGen/X86/ident-metadata.ll
new file mode 100644
index 0000000000000..a5686730cee93
--- /dev/null
+++ b/test/CodeGen/X86/ident-metadata.ll
@@ -0,0 +1,9 @@
+; RUN: llc -mtriple=x86_64-linux < %s | FileCheck %s
+; Verify that llvm.ident metadata is emitted as .ident
+; directives in assembly files, and in the .comment section in ELF object files.
+
+; CHECK: .ident "clang version x.x"
+; CHECK-NEXT: .ident "something else"
+!llvm.ident = !{!0, !1}
+!0 = metadata !{metadata !"clang version x.x"}
+!1 = metadata !{metadata !"something else"}
diff --git a/test/CodeGen/X86/inline-asm-R-constraint.ll b/test/CodeGen/X86/inline-asm-R-constraint.ll
index 66c27ac877121..d17e04dd7949d 100644
--- a/test/CodeGen/X86/inline-asm-R-constraint.ll
+++ b/test/CodeGen/X86/inline-asm-R-constraint.ll
@@ -6,7 +6,7 @@ target triple = "x86_64-apple-darwin10.0"
define void @udiv8(i8* %quotient, i16 zeroext %a, i8 zeroext %b, i8 zeroext %c, i8* %remainder) nounwind ssp {
entry:
-; CHECK: udiv8:
+; CHECK-LABEL: udiv8:
; CHECK-NOT: movb %ah, (%r8)
%a_addr = alloca i16, align 2 ; <i16*> [#uses=2]
%b_addr = alloca i8, align 1 ; <i8*> [#uses=2]
diff --git a/test/CodeGen/X86/inline-asm-error.ll b/test/CodeGen/X86/inline-asm-error.ll
index 747a5891cf046..31fb190daf83c 100644
--- a/test/CodeGen/X86/inline-asm-error.ll
+++ b/test/CodeGen/X86/inline-asm-error.ll
@@ -6,7 +6,7 @@
; RUN: FileCheck %s < %t3
; The register allocator must fail on this function.
-; CHECK: error: ran out of registers during register allocation
+; CHECK: error: inline assembly requires more registers than available
define void @f(i32 %x0, i32 %x1, i32 %x2, i32 %x3, i32 %x4, i32 %x5, i32 %x6, i32 %x7, i32 %x8, i32 %x9) nounwind ssp {
entry:
diff --git a/test/CodeGen/X86/inline-asm-flag-clobber.ll b/test/CodeGen/X86/inline-asm-flag-clobber.ll
index 51ea843712d19..45f4d2f38a469 100644
--- a/test/CodeGen/X86/inline-asm-flag-clobber.ll
+++ b/test/CodeGen/X86/inline-asm-flag-clobber.ll
@@ -2,18 +2,31 @@
; PR3701
define i64 @t(i64* %arg) nounwind {
- br i1 true, label %1, label %5
+ br i1 true, label %1, label %5
-; <label>:1 ; preds = %0
- %2 = icmp eq i64* null, %arg ; <i1> [#uses=1]
- %3 = tail call i64* asm sideeffect "movl %fs:0,$0", "=r,~{dirflag},~{fpsr},~{flags}"() nounwind ; <%struct.thread*> [#uses=0]
+; <label>:1 ; preds = %0
+ %2 = icmp eq i64* null, %arg ; <i1> [#uses=1]
+ %3 = tail call i64* asm sideeffect "movl %fs:0,$0", "=r,~{dirflag},~{fpsr},~{flags}"() nounwind ; <%struct.thread*> [#uses=0]
; CHECK: test
; CHECK-NEXT: j
- br i1 %2, label %4, label %5
+ br i1 %2, label %4, label %5
-; <label>:4 ; preds = %1
- ret i64 1
+; <label>:4 ; preds = %1
+ ret i64 1
-; <label>:5 ; preds = %1
- ret i64 0
+; <label>:5 ; preds = %1
+ ret i64 0
}
+
+; Make sure that we translate this to the bswap intrinsic which lowers down without the
+; inline assembly.
+; CHECK-NOT: #APP
+define i32 @s(i32 %argc, i8** nocapture %argv) unnamed_addr nounwind {
+entry:
+ %0 = trunc i32 %argc to i16
+ %asmtmp = tail call i16 asm "rorw $$8, ${0:w}", "=r,0,~{fpsr},~{flags},~{cc}"(i16 %0) nounwind, !srcloc !0
+ %1 = zext i16 %asmtmp to i32
+ ret i32 %1
+}
+
+!0 = metadata !{i64 935930}
diff --git a/test/CodeGen/X86/inline-asm-fpstack.ll b/test/CodeGen/X86/inline-asm-fpstack.ll
index 2249618c8a9e6..e83c065632dc7 100644
--- a/test/CodeGen/X86/inline-asm-fpstack.ll
+++ b/test/CodeGen/X86/inline-asm-fpstack.ll
@@ -147,7 +147,7 @@ declare x86_fp80 @ceil(x86_fp80)
; PR4484
; test1 leaves a value on the stack that is needed after the asm.
; CHECK: testPR4484
-; CHECK: test1
+; CHECK: calll _test1
; CHECK-NOT: fstp
; Load %a from stack after ceil
; CHECK: fldt
diff --git a/test/CodeGen/X86/inreg.ll b/test/CodeGen/X86/inreg.ll
index 6653cfb14ed81..e4610e3602579 100644
--- a/test/CodeGen/X86/inreg.ll
+++ b/test/CodeGen/X86/inreg.ll
@@ -8,7 +8,7 @@ entry:
%tmp = alloca %struct.s1, align 4
call void @f(%struct.s1* inreg sret %tmp, i32 inreg 41, i32 inreg 42, i32 43)
ret void
- ; DAG: g1:
+ ; DAG-LABEL: g1:
; DAG: subl $[[AMT:.*]], %esp
; DAG-NEXT: $43, (%esp)
; DAG-NEXT: leal 16(%esp), %eax
@@ -18,7 +18,7 @@ entry:
; DAG-NEXT: addl $[[AMT]], %esp
; DAG-NEXT: ret
- ; FAST: g1:
+ ; FAST-LABEL: g1:
; FAST: subl $[[AMT:.*]], %esp
; FAST-NEXT: leal 8(%esp), %eax
; FAST-NEXT: movl $41, %edx
diff --git a/test/CodeGen/X86/ins_subreg_coalesce-1.ll b/test/CodeGen/X86/ins_subreg_coalesce-1.ll
index 83674361a7735..a74e3f20c41a2 100644
--- a/test/CodeGen/X86/ins_subreg_coalesce-1.ll
+++ b/test/CodeGen/X86/ins_subreg_coalesce-1.ll
@@ -1,8 +1,8 @@
-; RUN: llc < %s -march=x86 | FileCheck %s
+; RUN: llc < %s -march=x86 -mattr=-bmi | FileCheck %s
define fastcc i32 @t() nounwind {
entry:
-; CHECK: t:
+; CHECK-LABEL: t:
; CHECK: movzwl 0, %eax
; CHECK: orl $2, %eax
; CHECK: movw %ax, 0
diff --git a/test/CodeGen/X86/isel-optnone.ll b/test/CodeGen/X86/isel-optnone.ll
new file mode 100644
index 0000000000000..d2f062832e0c0
--- /dev/null
+++ b/test/CodeGen/X86/isel-optnone.ll
@@ -0,0 +1,42 @@
+; RUN: llc -O2 -march=x86 < %s | FileCheck %s
+
+define i32* @fooOptnone(i32* %p, i32* %q, i32** %z) #0 {
+entry:
+ %r = load i32* %p
+ %s = load i32* %q
+ %y = load i32** %z
+
+ %t0 = add i32 %r, %s
+ %t1 = add i32 %t0, 1
+ %t2 = getelementptr i32* %y, i32 1
+ %t3 = getelementptr i32* %t2, i32 %t1
+
+ ret i32* %t3
+
+; 'optnone' should use fast-isel which will not produce 'lea'.
+; CHECK-LABEL: fooOptnone:
+; CHECK-NOT: lea
+; CHECK: ret
+}
+
+define i32* @fooNormal(i32* %p, i32* %q, i32** %z) #1 {
+entry:
+ %r = load i32* %p
+ %s = load i32* %q
+ %y = load i32** %z
+
+ %t0 = add i32 %r, %s
+ %t1 = add i32 %t0, 1
+ %t2 = getelementptr i32* %y, i32 1
+ %t3 = getelementptr i32* %t2, i32 %t1
+
+ ret i32* %t3
+
+; Normal ISel will produce 'lea'.
+; CHECK-LABEL: fooNormal:
+; CHECK: lea
+; CHECK: ret
+}
+
+attributes #0 = { nounwind optnone noinline }
+attributes #1 = { nounwind }
diff --git a/test/CodeGen/X86/isel-sink.ll b/test/CodeGen/X86/isel-sink.ll
index d2755331fe8d7..458f19dfc4f77 100644
--- a/test/CodeGen/X86/isel-sink.ll
+++ b/test/CodeGen/X86/isel-sink.ll
@@ -1,7 +1,7 @@
; RUN: llc < %s -march=x86 | FileCheck %s
define i32 @test(i32* %X, i32 %B) {
-; CHECK: test:
+; CHECK-LABEL: test:
; CHECK-NOT: ret
; CHECK-NOT: lea
; CHECK: mov{{.}} $4, ({{.*}},{{.*}},4)
diff --git a/test/CodeGen/X86/jump_sign.ll b/test/CodeGen/X86/jump_sign.ll
index 0e34222b945f2..d4174539f2f95 100644
--- a/test/CodeGen/X86/jump_sign.ll
+++ b/test/CodeGen/X86/jump_sign.ll
@@ -1,8 +1,8 @@
; RUN: llc < %s -march=x86 -mcpu=pentiumpro -verify-machineinstrs | FileCheck %s
-define i32 @f(i32 %X) {
+define i32 @func_f(i32 %X) {
entry:
-; CHECK: f:
+; CHECK-LABEL: func_f:
; CHECK: jns
%tmp1 = add i32 %X, 1 ; <i32> [#uses=1]
%tmp = icmp slt i32 %tmp1, 0 ; <i1> [#uses=1]
@@ -23,9 +23,9 @@ declare i32 @baz(...)
; rdar://10633221
; rdar://11355268
-define i32 @g(i32 %a, i32 %b) nounwind {
+define i32 @func_g(i32 %a, i32 %b) nounwind {
entry:
-; CHECK: g:
+; CHECK-LABEL: func_g:
; CHECK-NOT: test
; CHECK: cmovs
%sub = sub nsw i32 %a, %b
@@ -35,9 +35,9 @@ entry:
}
; rdar://10734411
-define i32 @h(i32 %a, i32 %b) nounwind {
+define i32 @func_h(i32 %a, i32 %b) nounwind {
entry:
-; CHECK: h:
+; CHECK-LABEL: func_h:
; CHECK-NOT: cmp
; CHECK: cmov
; CHECK-NOT: movl
@@ -47,9 +47,9 @@ entry:
%cond = select i1 %cmp, i32 %sub, i32 0
ret i32 %cond
}
-define i32 @i(i32 %a, i32 %b) nounwind {
+define i32 @func_i(i32 %a, i32 %b) nounwind {
entry:
-; CHECK: i:
+; CHECK-LABEL: func_i:
; CHECK-NOT: cmp
; CHECK: cmov
; CHECK-NOT: movl
@@ -59,9 +59,9 @@ entry:
%cond = select i1 %cmp, i32 %sub, i32 0
ret i32 %cond
}
-define i32 @j(i32 %a, i32 %b) nounwind {
+define i32 @func_j(i32 %a, i32 %b) nounwind {
entry:
-; CHECK: j:
+; CHECK-LABEL: func_j:
; CHECK-NOT: cmp
; CHECK: cmov
; CHECK-NOT: movl
@@ -71,9 +71,9 @@ entry:
%cond = select i1 %cmp, i32 %sub, i32 0
ret i32 %cond
}
-define i32 @k(i32 %a, i32 %b) nounwind {
+define i32 @func_k(i32 %a, i32 %b) nounwind {
entry:
-; CHECK: k:
+; CHECK-LABEL: func_k:
; CHECK-NOT: cmp
; CHECK: cmov
; CHECK-NOT: movl
@@ -84,18 +84,18 @@ entry:
ret i32 %cond
}
; redundant cmp instruction
-define i32 @l(i32 %a, i32 %b) nounwind {
+define i32 @func_l(i32 %a, i32 %b) nounwind {
entry:
-; CHECK: l:
+; CHECK-LABEL: func_l:
; CHECK-NOT: cmp
%cmp = icmp slt i32 %b, %a
%sub = sub nsw i32 %a, %b
%cond = select i1 %cmp, i32 %sub, i32 %a
ret i32 %cond
}
-define i32 @m(i32 %a, i32 %b) nounwind {
+define i32 @func_m(i32 %a, i32 %b) nounwind {
entry:
-; CHECK: m:
+; CHECK-LABEL: func_m:
; CHECK-NOT: cmp
%cmp = icmp sgt i32 %a, %b
%sub = sub nsw i32 %a, %b
@@ -104,9 +104,9 @@ entry:
}
; If EFLAGS is live-out, we can't remove cmp if there exists
; a swapped sub.
-define i32 @l2(i32 %a, i32 %b) nounwind {
+define i32 @func_l2(i32 %a, i32 %b) nounwind {
entry:
-; CHECK: l2:
+; CHECK-LABEL: func_l2:
; CHECK: cmp
%cmp = icmp eq i32 %b, %a
%sub = sub nsw i32 %a, %b
@@ -120,9 +120,9 @@ if.then:
if.else:
ret i32 %sub
}
-define i32 @l3(i32 %a, i32 %b) nounwind {
+define i32 @func_l3(i32 %a, i32 %b) nounwind {
entry:
-; CHECK: l3:
+; CHECK-LABEL: func_l3:
; CHECK: sub
; CHECK-NOT: cmp
; CHECK: jge
@@ -139,9 +139,9 @@ if.else:
}
; rdar://11830760
; When Movr0 is between sub and cmp, we need to move "Movr0" before sub.
-define i32 @l4(i32 %a, i32 %b) nounwind {
+define i32 @func_l4(i32 %a, i32 %b) nounwind {
entry:
-; CHECK: l4:
+; CHECK-LABEL: func_l4:
; CHECK: xor
; CHECK: sub
; CHECK-NOT: cmp
@@ -151,9 +151,9 @@ entry:
ret i32 %.sub
}
; rdar://11540023
-define i32 @n(i32 %x, i32 %y) nounwind {
+define i32 @func_n(i32 %x, i32 %y) nounwind {
entry:
-; CHECK: n:
+; CHECK-LABEL: func_n:
; CHECK-NOT: sub
; CHECK: cmp
%sub = sub nsw i32 %x, %y
@@ -162,7 +162,7 @@ entry:
ret i32 %y.x
}
; PR://13046
-define void @o() nounwind uwtable {
+define void @func_o() nounwind uwtable {
entry:
%0 = load i16* undef, align 2
br i1 undef, label %if.then.i, label %if.end.i
@@ -177,7 +177,7 @@ sw.bb: ; preds = %if.end.i
br i1 undef, label %if.then44, label %if.end29
if.end29: ; preds = %sw.bb
-; CHECK: o:
+; CHECK-LABEL: func_o:
; CHECK: cmp
%1 = urem i16 %0, 10
%cmp25 = icmp eq i16 %1, 0
@@ -204,9 +204,9 @@ if.else.i104: ; preds = %if.then44
ret void
}
; rdar://11855129
-define i32 @p(i32 %a, i32 %b) nounwind {
+define i32 @func_p(i32 %a, i32 %b) nounwind {
entry:
-; CHECK: p:
+; CHECK-LABEL: func_p:
; CHECK-NOT: test
; CHECK: cmovs
%add = add nsw i32 %b, %a
@@ -217,8 +217,8 @@ entry:
; PR13475
; If we have sub a, b and cmp b, a and the result of cmp is used
; by sbb, we should not optimize cmp away.
-define i32 @q(i32 %j.4, i32 %w, i32 %el) {
-; CHECK: q:
+define i32 @func_q(i32 %j.4, i32 %w, i32 %el) {
+; CHECK-LABEL: func_q:
; CHECK: cmp
; CHECK-NEXT: sbb
%tmp532 = add i32 %j.4, %w
@@ -230,9 +230,9 @@ define i32 @q(i32 %j.4, i32 %w, i32 %el) {
ret i32 %j.5
}
; rdar://11873276
-define i8* @r(i8* %base, i32* nocapture %offset, i32 %size) nounwind {
+define i8* @func_r(i8* %base, i32* nocapture %offset, i32 %size) nounwind {
entry:
-; CHECK: r:
+; CHECK-LABEL: func_r:
; CHECK: sub
; CHECK-NOT: cmp
; CHECK: j
@@ -254,9 +254,9 @@ return:
}
; Test optimizations of dec/inc.
-define i32 @dec(i32 %a) nounwind {
+define i32 @func_dec(i32 %a) nounwind {
entry:
-; CHECK: dec:
+; CHECK-LABEL: func_dec:
; CHECK: decl
; CHECK-NOT: test
; CHECK: cmovsl
@@ -266,9 +266,9 @@ entry:
ret i32 %cond
}
-define i32 @inc(i32 %a) nounwind {
+define i32 @func_inc(i32 %a) nounwind {
entry:
-; CHECK: inc:
+; CHECK-LABEL: func_inc:
; CHECK: incl
; CHECK-NOT: test
; CHECK: cmovsl
@@ -281,9 +281,9 @@ entry:
; PR13966
@b = common global i32 0, align 4
@a = common global i32 0, align 4
-define i32 @test1(i32 %p1) nounwind uwtable {
+define i32 @func_test1(i32 %p1) nounwind uwtable {
entry:
-; CHECK: test1:
+; CHECK-LABEL: func_test1:
; CHECK: testb
; CHECK: j
; CHECK: ret
diff --git a/test/CodeGen/X86/large-gep-chain.ll b/test/CodeGen/X86/large-gep-chain.ll
new file mode 100644
index 0000000000000..5cf4661f8ff99
--- /dev/null
+++ b/test/CodeGen/X86/large-gep-chain.ll
@@ -0,0 +1,25607 @@
+; RUN: llc < %s -O0 -march x86 -o /dev/null
+; <rdar://problem/12445434>
+
+%0 = type { i32, float* }
+
+@0 = external unnamed_addr constant [27 x i8], align 1
+@1 = external unnamed_addr constant [26 x i8], align 1
+@2 = external unnamed_addr constant [18 x i8], align 1
+@3 = external unnamed_addr constant [15 x i8], align 1
+@4 = external unnamed_addr constant [20 x i8], align 1
+@5 = external unnamed_addr constant [21 x i8], align 1
+@6 = external unnamed_addr constant [12 x i8], align 1
+@7 = external unnamed_addr constant [27 x i8], align 1
+@8 = external unnamed_addr constant [63 x i8], align 1
+
+define void @main() uwtable ssp {
+bb:
+ br i1 undef, label %bb1, label %bb2
+
+bb1: ; preds = %bb
+ br label %bb25362
+
+bb2: ; preds = %bb
+ %tmp = getelementptr inbounds float* null, i64 1
+ %tmp3 = getelementptr inbounds float* %tmp, i64 1
+ %tmp4 = getelementptr inbounds float* %tmp3, i64 1
+ %tmp5 = getelementptr inbounds float* %tmp4, i64 1
+ %tmp6 = getelementptr inbounds float* %tmp5, i64 1
+ %tmp7 = getelementptr inbounds float* %tmp6, i64 1
+ %tmp8 = getelementptr inbounds float* %tmp7, i64 1
+ %tmp9 = getelementptr inbounds float* %tmp8, i64 1
+ %tmp10 = getelementptr inbounds float* %tmp9, i64 1
+ %tmp11 = getelementptr inbounds float* %tmp10, i64 1
+ %tmp12 = getelementptr inbounds float* %tmp11, i64 1
+ %tmp13 = getelementptr inbounds float* %tmp12, i64 1
+ %tmp14 = getelementptr inbounds float* %tmp13, i64 1
+ %tmp15 = getelementptr inbounds float* %tmp14, i64 1
+ %tmp16 = getelementptr inbounds float* %tmp15, i64 1
+ %tmp17 = getelementptr inbounds float* %tmp16, i64 1
+ %tmp18 = getelementptr inbounds float* %tmp17, i64 1
+ %tmp19 = getelementptr inbounds float* %tmp18, i64 1
+ %tmp20 = getelementptr inbounds float* %tmp19, i64 1
+ %tmp21 = getelementptr inbounds float* %tmp20, i64 1
+ %tmp22 = getelementptr inbounds float* %tmp21, i64 1
+ %tmp23 = getelementptr inbounds float* %tmp22, i64 1
+ %tmp24 = getelementptr inbounds float* %tmp23, i64 1
+ %tmp25 = getelementptr inbounds float* %tmp24, i64 1
+ %tmp26 = getelementptr inbounds float* %tmp25, i64 1
+ %tmp27 = getelementptr inbounds float* %tmp26, i64 1
+ %tmp28 = getelementptr inbounds float* %tmp27, i64 1
+ %tmp29 = getelementptr inbounds float* %tmp28, i64 1
+ %tmp30 = getelementptr inbounds float* %tmp29, i64 1
+ %tmp31 = getelementptr inbounds float* %tmp30, i64 1
+ %tmp32 = getelementptr inbounds float* %tmp31, i64 1
+ %tmp33 = getelementptr inbounds float* %tmp32, i64 1
+ %tmp34 = getelementptr inbounds float* %tmp33, i64 1
+ %tmp35 = getelementptr inbounds float* %tmp34, i64 1
+ %tmp36 = getelementptr inbounds float* %tmp35, i64 1
+ %tmp37 = getelementptr inbounds float* %tmp36, i64 1
+ %tmp38 = getelementptr inbounds float* %tmp37, i64 1
+ %tmp39 = getelementptr inbounds float* %tmp38, i64 1
+ %tmp40 = getelementptr inbounds float* %tmp39, i64 1
+ %tmp41 = getelementptr inbounds float* %tmp40, i64 1
+ %tmp42 = getelementptr inbounds float* %tmp41, i64 1
+ %tmp43 = getelementptr inbounds float* %tmp42, i64 1
+ %tmp44 = getelementptr inbounds float* %tmp43, i64 1
+ %tmp45 = getelementptr inbounds float* %tmp44, i64 1
+ %tmp46 = getelementptr inbounds float* %tmp45, i64 1
+ %tmp47 = getelementptr inbounds float* %tmp46, i64 1
+ %tmp48 = getelementptr inbounds float* %tmp47, i64 1
+ %tmp49 = getelementptr inbounds float* %tmp48, i64 1
+ %tmp50 = getelementptr inbounds float* %tmp49, i64 1
+ %tmp51 = getelementptr inbounds float* %tmp50, i64 1
+ %tmp52 = getelementptr inbounds float* %tmp51, i64 1
+ %tmp53 = getelementptr inbounds float* %tmp52, i64 1
+ %tmp54 = getelementptr inbounds float* %tmp53, i64 1
+ %tmp55 = getelementptr inbounds float* %tmp54, i64 1
+ %tmp56 = getelementptr inbounds float* %tmp55, i64 1
+ %tmp57 = getelementptr inbounds float* %tmp56, i64 1
+ %tmp58 = getelementptr inbounds float* %tmp57, i64 1
+ %tmp59 = getelementptr inbounds float* %tmp58, i64 1
+ %tmp60 = getelementptr inbounds float* %tmp59, i64 1
+ %tmp61 = getelementptr inbounds float* %tmp60, i64 1
+ %tmp62 = getelementptr inbounds float* %tmp61, i64 1
+ %tmp63 = getelementptr inbounds float* %tmp62, i64 1
+ %tmp64 = getelementptr inbounds float* %tmp63, i64 1
+ %tmp65 = getelementptr inbounds float* %tmp64, i64 1
+ %tmp66 = getelementptr inbounds float* %tmp65, i64 1
+ %tmp67 = getelementptr inbounds float* %tmp66, i64 1
+ %tmp68 = getelementptr inbounds float* %tmp67, i64 1
+ %tmp69 = getelementptr inbounds float* %tmp68, i64 1
+ %tmp70 = getelementptr inbounds float* %tmp69, i64 1
+ %tmp71 = getelementptr inbounds float* %tmp70, i64 1
+ %tmp72 = getelementptr inbounds float* %tmp71, i64 1
+ %tmp73 = getelementptr inbounds float* %tmp72, i64 1
+ %tmp74 = getelementptr inbounds float* %tmp73, i64 1
+ %tmp75 = getelementptr inbounds float* %tmp74, i64 1
+ %tmp76 = getelementptr inbounds float* %tmp75, i64 1
+ %tmp77 = getelementptr inbounds float* %tmp76, i64 1
+ %tmp78 = getelementptr inbounds float* %tmp77, i64 1
+ %tmp79 = getelementptr inbounds float* %tmp78, i64 1
+ %tmp80 = getelementptr inbounds float* %tmp79, i64 1
+ %tmp81 = getelementptr inbounds float* %tmp80, i64 1
+ %tmp82 = getelementptr inbounds float* %tmp81, i64 1
+ %tmp83 = getelementptr inbounds float* %tmp82, i64 1
+ %tmp84 = getelementptr inbounds float* %tmp83, i64 1
+ %tmp85 = getelementptr inbounds float* %tmp84, i64 1
+ %tmp86 = getelementptr inbounds float* %tmp85, i64 1
+ %tmp87 = getelementptr inbounds float* %tmp86, i64 1
+ %tmp88 = getelementptr inbounds float* %tmp87, i64 1
+ %tmp89 = getelementptr inbounds float* %tmp88, i64 1
+ %tmp90 = getelementptr inbounds float* %tmp89, i64 1
+ %tmp91 = getelementptr inbounds float* %tmp90, i64 1
+ %tmp92 = getelementptr inbounds float* %tmp91, i64 1
+ %tmp93 = getelementptr inbounds float* %tmp92, i64 1
+ %tmp94 = getelementptr inbounds float* %tmp93, i64 1
+ %tmp95 = getelementptr inbounds float* %tmp94, i64 1
+ %tmp96 = getelementptr inbounds float* %tmp95, i64 1
+ %tmp97 = getelementptr inbounds float* %tmp96, i64 1
+ %tmp98 = getelementptr inbounds float* %tmp97, i64 1
+ %tmp99 = getelementptr inbounds float* %tmp98, i64 1
+ %tmp100 = getelementptr inbounds float* %tmp99, i64 1
+ %tmp101 = getelementptr inbounds float* %tmp100, i64 1
+ %tmp102 = getelementptr inbounds float* %tmp101, i64 1
+ %tmp103 = getelementptr inbounds float* %tmp102, i64 1
+ %tmp104 = getelementptr inbounds float* %tmp103, i64 1
+ %tmp105 = getelementptr inbounds float* %tmp104, i64 1
+ %tmp106 = getelementptr inbounds float* %tmp105, i64 1
+ %tmp107 = getelementptr inbounds float* %tmp106, i64 1
+ %tmp108 = getelementptr inbounds float* %tmp107, i64 1
+ %tmp109 = getelementptr inbounds float* %tmp108, i64 1
+ %tmp110 = getelementptr inbounds float* %tmp109, i64 1
+ %tmp111 = getelementptr inbounds float* %tmp110, i64 1
+ %tmp112 = getelementptr inbounds float* %tmp111, i64 1
+ %tmp113 = getelementptr inbounds float* %tmp112, i64 1
+ %tmp114 = getelementptr inbounds float* %tmp113, i64 1
+ %tmp115 = getelementptr inbounds float* %tmp114, i64 1
+ %tmp116 = getelementptr inbounds float* %tmp115, i64 1
+ %tmp117 = getelementptr inbounds float* %tmp116, i64 1
+ %tmp118 = getelementptr inbounds float* %tmp117, i64 1
+ %tmp119 = getelementptr inbounds float* %tmp118, i64 1
+ %tmp120 = getelementptr inbounds float* %tmp119, i64 1
+ %tmp121 = getelementptr inbounds float* %tmp120, i64 1
+ %tmp122 = getelementptr inbounds float* %tmp121, i64 1
+ %tmp123 = getelementptr inbounds float* %tmp122, i64 1
+ %tmp124 = getelementptr inbounds float* %tmp123, i64 1
+ %tmp125 = getelementptr inbounds float* %tmp124, i64 1
+ %tmp126 = getelementptr inbounds float* %tmp125, i64 1
+ %tmp127 = getelementptr inbounds float* %tmp126, i64 1
+ %tmp128 = getelementptr inbounds float* %tmp127, i64 1
+ %tmp129 = getelementptr inbounds float* %tmp128, i64 1
+ %tmp130 = getelementptr inbounds float* %tmp129, i64 1
+ %tmp131 = getelementptr inbounds float* %tmp130, i64 1
+ %tmp132 = getelementptr inbounds float* %tmp131, i64 1
+ %tmp133 = getelementptr inbounds float* %tmp132, i64 1
+ %tmp134 = getelementptr inbounds float* %tmp133, i64 1
+ %tmp135 = getelementptr inbounds float* %tmp134, i64 1
+ %tmp136 = getelementptr inbounds float* %tmp135, i64 1
+ %tmp137 = getelementptr inbounds float* %tmp136, i64 1
+ %tmp138 = getelementptr inbounds float* %tmp137, i64 1
+ %tmp139 = getelementptr inbounds float* %tmp138, i64 1
+ %tmp140 = getelementptr inbounds float* %tmp139, i64 1
+ %tmp141 = getelementptr inbounds float* %tmp140, i64 1
+ %tmp142 = getelementptr inbounds float* %tmp141, i64 1
+ %tmp143 = getelementptr inbounds float* %tmp142, i64 1
+ %tmp144 = getelementptr inbounds float* %tmp143, i64 1
+ %tmp145 = getelementptr inbounds float* %tmp144, i64 1
+ %tmp146 = getelementptr inbounds float* %tmp145, i64 1
+ %tmp147 = getelementptr inbounds float* %tmp146, i64 1
+ %tmp148 = getelementptr inbounds float* %tmp147, i64 1
+ %tmp149 = getelementptr inbounds float* %tmp148, i64 1
+ %tmp150 = getelementptr inbounds float* %tmp149, i64 1
+ %tmp151 = getelementptr inbounds float* %tmp150, i64 1
+ %tmp152 = getelementptr inbounds float* %tmp151, i64 1
+ %tmp153 = getelementptr inbounds float* %tmp152, i64 1
+ %tmp154 = getelementptr inbounds float* %tmp153, i64 1
+ %tmp155 = getelementptr inbounds float* %tmp154, i64 1
+ %tmp156 = getelementptr inbounds float* %tmp155, i64 1
+ %tmp157 = getelementptr inbounds float* %tmp156, i64 1
+ %tmp158 = getelementptr inbounds float* %tmp157, i64 1
+ %tmp159 = getelementptr inbounds float* %tmp158, i64 1
+ %tmp160 = getelementptr inbounds float* %tmp159, i64 1
+ %tmp161 = getelementptr inbounds float* %tmp160, i64 1
+ %tmp162 = getelementptr inbounds float* %tmp161, i64 1
+ %tmp163 = getelementptr inbounds float* %tmp162, i64 1
+ %tmp164 = getelementptr inbounds float* %tmp163, i64 1
+ %tmp165 = getelementptr inbounds float* %tmp164, i64 1
+ %tmp166 = getelementptr inbounds float* %tmp165, i64 1
+ %tmp167 = getelementptr inbounds float* %tmp166, i64 1
+ %tmp168 = getelementptr inbounds float* %tmp167, i64 1
+ %tmp169 = getelementptr inbounds float* %tmp168, i64 1
+ %tmp170 = getelementptr inbounds float* %tmp169, i64 1
+ %tmp171 = getelementptr inbounds float* %tmp170, i64 1
+ %tmp172 = getelementptr inbounds float* %tmp171, i64 1
+ %tmp173 = getelementptr inbounds float* %tmp172, i64 1
+ %tmp174 = getelementptr inbounds float* %tmp173, i64 1
+ %tmp175 = getelementptr inbounds float* %tmp174, i64 1
+ %tmp176 = getelementptr inbounds float* %tmp175, i64 1
+ %tmp177 = getelementptr inbounds float* %tmp176, i64 1
+ %tmp178 = getelementptr inbounds float* %tmp177, i64 1
+ %tmp179 = getelementptr inbounds float* %tmp178, i64 1
+ %tmp180 = getelementptr inbounds float* %tmp179, i64 1
+ %tmp181 = getelementptr inbounds float* %tmp180, i64 1
+ %tmp182 = getelementptr inbounds float* %tmp181, i64 1
+ %tmp183 = getelementptr inbounds float* %tmp182, i64 1
+ %tmp184 = getelementptr inbounds float* %tmp183, i64 1
+ %tmp185 = getelementptr inbounds float* %tmp184, i64 1
+ %tmp186 = getelementptr inbounds float* %tmp185, i64 1
+ %tmp187 = getelementptr inbounds float* %tmp186, i64 1
+ %tmp188 = getelementptr inbounds float* %tmp187, i64 1
+ %tmp189 = getelementptr inbounds float* %tmp188, i64 1
+ %tmp190 = getelementptr inbounds float* %tmp189, i64 1
+ %tmp191 = getelementptr inbounds float* %tmp190, i64 1
+ %tmp192 = getelementptr inbounds float* %tmp191, i64 1
+ %tmp193 = getelementptr inbounds float* %tmp192, i64 1
+ %tmp194 = getelementptr inbounds float* %tmp193, i64 1
+ %tmp195 = getelementptr inbounds float* %tmp194, i64 1
+ %tmp196 = getelementptr inbounds float* %tmp195, i64 1
+ %tmp197 = getelementptr inbounds float* %tmp196, i64 1
+ %tmp198 = getelementptr inbounds float* %tmp197, i64 1
+ %tmp199 = getelementptr inbounds float* %tmp198, i64 1
+ %tmp200 = getelementptr inbounds float* %tmp199, i64 1
+ %tmp201 = getelementptr inbounds float* %tmp200, i64 1
+ %tmp202 = getelementptr inbounds float* %tmp201, i64 1
+ %tmp203 = getelementptr inbounds float* %tmp202, i64 1
+ %tmp204 = getelementptr inbounds float* %tmp203, i64 1
+ %tmp205 = getelementptr inbounds float* %tmp204, i64 1
+ %tmp206 = getelementptr inbounds float* %tmp205, i64 1
+ %tmp207 = getelementptr inbounds float* %tmp206, i64 1
+ %tmp208 = getelementptr inbounds float* %tmp207, i64 1
+ %tmp209 = getelementptr inbounds float* %tmp208, i64 1
+ %tmp210 = getelementptr inbounds float* %tmp209, i64 1
+ %tmp211 = getelementptr inbounds float* %tmp210, i64 1
+ %tmp212 = getelementptr inbounds float* %tmp211, i64 1
+ %tmp213 = getelementptr inbounds float* %tmp212, i64 1
+ %tmp214 = getelementptr inbounds float* %tmp213, i64 1
+ %tmp215 = getelementptr inbounds float* %tmp214, i64 1
+ %tmp216 = getelementptr inbounds float* %tmp215, i64 1
+ %tmp217 = getelementptr inbounds float* %tmp216, i64 1
+ %tmp218 = getelementptr inbounds float* %tmp217, i64 1
+ %tmp219 = getelementptr inbounds float* %tmp218, i64 1
+ %tmp220 = getelementptr inbounds float* %tmp219, i64 1
+ %tmp221 = getelementptr inbounds float* %tmp220, i64 1
+ %tmp222 = getelementptr inbounds float* %tmp221, i64 1
+ %tmp223 = getelementptr inbounds float* %tmp222, i64 1
+ %tmp224 = getelementptr inbounds float* %tmp223, i64 1
+ %tmp225 = getelementptr inbounds float* %tmp224, i64 1
+ %tmp226 = getelementptr inbounds float* %tmp225, i64 1
+ %tmp227 = getelementptr inbounds float* %tmp226, i64 1
+ %tmp228 = getelementptr inbounds float* %tmp227, i64 1
+ %tmp229 = getelementptr inbounds float* %tmp228, i64 1
+ %tmp230 = getelementptr inbounds float* %tmp229, i64 1
+ %tmp231 = getelementptr inbounds float* %tmp230, i64 1
+ %tmp232 = getelementptr inbounds float* %tmp231, i64 1
+ %tmp233 = getelementptr inbounds float* %tmp232, i64 1
+ %tmp234 = getelementptr inbounds float* %tmp233, i64 1
+ %tmp235 = getelementptr inbounds float* %tmp234, i64 1
+ %tmp236 = getelementptr inbounds float* %tmp235, i64 1
+ %tmp237 = getelementptr inbounds float* %tmp236, i64 1
+ %tmp238 = getelementptr inbounds float* %tmp237, i64 1
+ %tmp239 = getelementptr inbounds float* %tmp238, i64 1
+ %tmp240 = getelementptr inbounds float* %tmp239, i64 1
+ %tmp241 = getelementptr inbounds float* %tmp240, i64 1
+ %tmp242 = getelementptr inbounds float* %tmp241, i64 1
+ %tmp243 = getelementptr inbounds float* %tmp242, i64 1
+ %tmp244 = getelementptr inbounds float* %tmp243, i64 1
+ %tmp245 = getelementptr inbounds float* %tmp244, i64 1
+ %tmp246 = getelementptr inbounds float* %tmp245, i64 1
+ %tmp247 = getelementptr inbounds float* %tmp246, i64 1
+ %tmp248 = getelementptr inbounds float* %tmp247, i64 1
+ %tmp249 = getelementptr inbounds float* %tmp248, i64 1
+ %tmp250 = getelementptr inbounds float* %tmp249, i64 1
+ %tmp251 = getelementptr inbounds float* %tmp250, i64 1
+ %tmp252 = getelementptr inbounds float* %tmp251, i64 1
+ %tmp253 = getelementptr inbounds float* %tmp252, i64 1
+ %tmp254 = getelementptr inbounds float* %tmp253, i64 1
+ %tmp255 = getelementptr inbounds float* %tmp254, i64 1
+ %tmp256 = getelementptr inbounds float* %tmp255, i64 1
+ %tmp257 = getelementptr inbounds float* %tmp256, i64 1
+ %tmp258 = getelementptr inbounds float* %tmp257, i64 1
+ %tmp259 = getelementptr inbounds float* %tmp258, i64 1
+ %tmp260 = getelementptr inbounds float* %tmp259, i64 1
+ %tmp261 = getelementptr inbounds float* %tmp260, i64 1
+ %tmp262 = getelementptr inbounds float* %tmp261, i64 1
+ %tmp263 = getelementptr inbounds float* %tmp262, i64 1
+ %tmp264 = getelementptr inbounds float* %tmp263, i64 1
+ %tmp265 = getelementptr inbounds float* %tmp264, i64 1
+ %tmp266 = getelementptr inbounds float* %tmp265, i64 1
+ %tmp267 = getelementptr inbounds float* %tmp266, i64 1
+ %tmp268 = getelementptr inbounds float* %tmp267, i64 1
+ %tmp269 = getelementptr inbounds float* %tmp268, i64 1
+ %tmp270 = getelementptr inbounds float* %tmp269, i64 1
+ %tmp271 = getelementptr inbounds float* %tmp270, i64 1
+ %tmp272 = getelementptr inbounds float* %tmp271, i64 1
+ %tmp273 = getelementptr inbounds float* %tmp272, i64 1
+ %tmp274 = getelementptr inbounds float* %tmp273, i64 1
+ %tmp275 = getelementptr inbounds float* %tmp274, i64 1
+ %tmp276 = getelementptr inbounds float* %tmp275, i64 1
+ %tmp277 = getelementptr inbounds float* %tmp276, i64 1
+ %tmp278 = getelementptr inbounds float* %tmp277, i64 1
+ %tmp279 = getelementptr inbounds float* %tmp278, i64 1
+ %tmp280 = getelementptr inbounds float* %tmp279, i64 1
+ %tmp281 = getelementptr inbounds float* %tmp280, i64 1
+ %tmp282 = getelementptr inbounds float* %tmp281, i64 1
+ %tmp283 = getelementptr inbounds float* %tmp282, i64 1
+ %tmp284 = getelementptr inbounds float* %tmp283, i64 1
+ %tmp285 = getelementptr inbounds float* %tmp284, i64 1
+ %tmp286 = getelementptr inbounds float* %tmp285, i64 1
+ %tmp287 = getelementptr inbounds float* %tmp286, i64 1
+ %tmp288 = getelementptr inbounds float* %tmp287, i64 1
+ %tmp289 = getelementptr inbounds float* %tmp288, i64 1
+ %tmp290 = getelementptr inbounds float* %tmp289, i64 1
+ %tmp291 = getelementptr inbounds float* %tmp290, i64 1
+ %tmp292 = getelementptr inbounds float* %tmp291, i64 1
+ %tmp293 = getelementptr inbounds float* %tmp292, i64 1
+ %tmp294 = getelementptr inbounds float* %tmp293, i64 1
+ %tmp295 = getelementptr inbounds float* %tmp294, i64 1
+ %tmp296 = getelementptr inbounds float* %tmp295, i64 1
+ %tmp297 = getelementptr inbounds float* %tmp296, i64 1
+ %tmp298 = getelementptr inbounds float* %tmp297, i64 1
+ %tmp299 = getelementptr inbounds float* %tmp298, i64 1
+ %tmp300 = getelementptr inbounds float* %tmp299, i64 1
+ %tmp301 = getelementptr inbounds float* %tmp300, i64 1
+ %tmp302 = getelementptr inbounds float* %tmp301, i64 1
+ %tmp303 = getelementptr inbounds float* %tmp302, i64 1
+ %tmp304 = getelementptr inbounds float* %tmp303, i64 1
+ %tmp305 = getelementptr inbounds float* %tmp304, i64 1
+ %tmp306 = getelementptr inbounds float* %tmp305, i64 1
+ %tmp307 = getelementptr inbounds float* %tmp306, i64 1
+ %tmp308 = getelementptr inbounds float* %tmp307, i64 1
+ %tmp309 = getelementptr inbounds float* %tmp308, i64 1
+ %tmp310 = getelementptr inbounds float* %tmp309, i64 1
+ %tmp311 = getelementptr inbounds float* %tmp310, i64 1
+ %tmp312 = getelementptr inbounds float* %tmp311, i64 1
+ %tmp313 = getelementptr inbounds float* %tmp312, i64 1
+ %tmp314 = getelementptr inbounds float* %tmp313, i64 1
+ %tmp315 = getelementptr inbounds float* %tmp314, i64 1
+ %tmp316 = getelementptr inbounds float* %tmp315, i64 1
+ %tmp317 = getelementptr inbounds float* %tmp316, i64 1
+ %tmp318 = getelementptr inbounds float* %tmp317, i64 1
+ %tmp319 = getelementptr inbounds float* %tmp318, i64 1
+ %tmp320 = getelementptr inbounds float* %tmp319, i64 1
+ %tmp321 = getelementptr inbounds float* %tmp320, i64 1
+ %tmp322 = getelementptr inbounds float* %tmp321, i64 1
+ %tmp323 = getelementptr inbounds float* %tmp322, i64 1
+ %tmp324 = getelementptr inbounds float* %tmp323, i64 1
+ %tmp325 = getelementptr inbounds float* %tmp324, i64 1
+ %tmp326 = getelementptr inbounds float* %tmp325, i64 1
+ %tmp327 = getelementptr inbounds float* %tmp326, i64 1
+ %tmp328 = getelementptr inbounds float* %tmp327, i64 1
+ %tmp329 = getelementptr inbounds float* %tmp328, i64 1
+ %tmp330 = getelementptr inbounds float* %tmp329, i64 1
+ %tmp331 = getelementptr inbounds float* %tmp330, i64 1
+ %tmp332 = getelementptr inbounds float* %tmp331, i64 1
+ %tmp333 = getelementptr inbounds float* %tmp332, i64 1
+ %tmp334 = getelementptr inbounds float* %tmp333, i64 1
+ %tmp335 = getelementptr inbounds float* %tmp334, i64 1
+ %tmp336 = getelementptr inbounds float* %tmp335, i64 1
+ %tmp337 = getelementptr inbounds float* %tmp336, i64 1
+ %tmp338 = getelementptr inbounds float* %tmp337, i64 1
+ %tmp339 = getelementptr inbounds float* %tmp338, i64 1
+ %tmp340 = getelementptr inbounds float* %tmp339, i64 1
+ %tmp341 = getelementptr inbounds float* %tmp340, i64 1
+ %tmp342 = getelementptr inbounds float* %tmp341, i64 1
+ %tmp343 = getelementptr inbounds float* %tmp342, i64 1
+ %tmp344 = getelementptr inbounds float* %tmp343, i64 1
+ %tmp345 = getelementptr inbounds float* %tmp344, i64 1
+ %tmp346 = getelementptr inbounds float* %tmp345, i64 1
+ %tmp347 = getelementptr inbounds float* %tmp346, i64 1
+ %tmp348 = getelementptr inbounds float* %tmp347, i64 1
+ %tmp349 = getelementptr inbounds float* %tmp348, i64 1
+ %tmp350 = getelementptr inbounds float* %tmp349, i64 1
+ %tmp351 = getelementptr inbounds float* %tmp350, i64 1
+ %tmp352 = getelementptr inbounds float* %tmp351, i64 1
+ %tmp353 = getelementptr inbounds float* %tmp352, i64 1
+ %tmp354 = getelementptr inbounds float* %tmp353, i64 1
+ %tmp355 = getelementptr inbounds float* %tmp354, i64 1
+ %tmp356 = getelementptr inbounds float* %tmp355, i64 1
+ %tmp357 = getelementptr inbounds float* %tmp356, i64 1
+ %tmp358 = getelementptr inbounds float* %tmp357, i64 1
+ %tmp359 = getelementptr inbounds float* %tmp358, i64 1
+ %tmp360 = getelementptr inbounds float* %tmp359, i64 1
+ %tmp361 = getelementptr inbounds float* %tmp360, i64 1
+ %tmp362 = getelementptr inbounds float* %tmp361, i64 1
+ %tmp363 = getelementptr inbounds float* %tmp362, i64 1
+ %tmp364 = getelementptr inbounds float* %tmp363, i64 1
+ %tmp365 = getelementptr inbounds float* %tmp364, i64 1
+ %tmp366 = getelementptr inbounds float* %tmp365, i64 1
+ %tmp367 = getelementptr inbounds float* %tmp366, i64 1
+ %tmp368 = getelementptr inbounds float* %tmp367, i64 1
+ %tmp369 = getelementptr inbounds float* %tmp368, i64 1
+ %tmp370 = getelementptr inbounds float* %tmp369, i64 1
+ %tmp371 = getelementptr inbounds float* %tmp370, i64 1
+ %tmp372 = getelementptr inbounds float* %tmp371, i64 1
+ %tmp373 = getelementptr inbounds float* %tmp372, i64 1
+ %tmp374 = getelementptr inbounds float* %tmp373, i64 1
+ %tmp375 = getelementptr inbounds float* %tmp374, i64 1
+ %tmp376 = getelementptr inbounds float* %tmp375, i64 1
+ %tmp377 = getelementptr inbounds float* %tmp376, i64 1
+ %tmp378 = getelementptr inbounds float* %tmp377, i64 1
+ %tmp379 = getelementptr inbounds float* %tmp378, i64 1
+ %tmp380 = getelementptr inbounds float* %tmp379, i64 1
+ %tmp381 = getelementptr inbounds float* %tmp380, i64 1
+ %tmp382 = getelementptr inbounds float* %tmp381, i64 1
+ %tmp383 = getelementptr inbounds float* %tmp382, i64 1
+ %tmp384 = getelementptr inbounds float* %tmp383, i64 1
+ %tmp385 = getelementptr inbounds float* %tmp384, i64 1
+ %tmp386 = getelementptr inbounds float* %tmp385, i64 1
+ %tmp387 = getelementptr inbounds float* %tmp386, i64 1
+ %tmp388 = getelementptr inbounds float* %tmp387, i64 1
+ %tmp389 = getelementptr inbounds float* %tmp388, i64 1
+ %tmp390 = getelementptr inbounds float* %tmp389, i64 1
+ %tmp391 = getelementptr inbounds float* %tmp390, i64 1
+ %tmp392 = getelementptr inbounds float* %tmp391, i64 1
+ %tmp393 = getelementptr inbounds float* %tmp392, i64 1
+ %tmp394 = getelementptr inbounds float* %tmp393, i64 1
+ %tmp395 = getelementptr inbounds float* %tmp394, i64 1
+ %tmp396 = getelementptr inbounds float* %tmp395, i64 1
+ %tmp397 = getelementptr inbounds float* %tmp396, i64 1
+ %tmp398 = getelementptr inbounds float* %tmp397, i64 1
+ %tmp399 = getelementptr inbounds float* %tmp398, i64 1
+ %tmp400 = getelementptr inbounds float* %tmp399, i64 1
+ %tmp401 = getelementptr inbounds float* %tmp400, i64 1
+ %tmp402 = getelementptr inbounds float* %tmp401, i64 1
+ %tmp403 = getelementptr inbounds float* %tmp402, i64 1
+ %tmp404 = getelementptr inbounds float* %tmp403, i64 1
+ %tmp405 = getelementptr inbounds float* %tmp404, i64 1
+ %tmp406 = getelementptr inbounds float* %tmp405, i64 1
+ %tmp407 = getelementptr inbounds float* %tmp406, i64 1
+ %tmp408 = getelementptr inbounds float* %tmp407, i64 1
+ %tmp409 = getelementptr inbounds float* %tmp408, i64 1
+ %tmp410 = getelementptr inbounds float* %tmp409, i64 1
+ %tmp411 = getelementptr inbounds float* %tmp410, i64 1
+ %tmp412 = getelementptr inbounds float* %tmp411, i64 1
+ %tmp413 = getelementptr inbounds float* %tmp412, i64 1
+ %tmp414 = getelementptr inbounds float* %tmp413, i64 1
+ %tmp415 = getelementptr inbounds float* %tmp414, i64 1
+ %tmp416 = getelementptr inbounds float* %tmp415, i64 1
+ %tmp417 = getelementptr inbounds float* %tmp416, i64 1
+ %tmp418 = getelementptr inbounds float* %tmp417, i64 1
+ %tmp419 = getelementptr inbounds float* %tmp418, i64 1
+ %tmp420 = getelementptr inbounds float* %tmp419, i64 1
+ %tmp421 = getelementptr inbounds float* %tmp420, i64 1
+ %tmp422 = getelementptr inbounds float* %tmp421, i64 1
+ %tmp423 = getelementptr inbounds float* %tmp422, i64 1
+ %tmp424 = getelementptr inbounds float* %tmp423, i64 1
+ %tmp425 = getelementptr inbounds float* %tmp424, i64 1
+ %tmp426 = getelementptr inbounds float* %tmp425, i64 1
+ %tmp427 = getelementptr inbounds float* %tmp426, i64 1
+ %tmp428 = getelementptr inbounds float* %tmp427, i64 1
+ %tmp429 = getelementptr inbounds float* %tmp428, i64 1
+ %tmp430 = getelementptr inbounds float* %tmp429, i64 1
+ %tmp431 = getelementptr inbounds float* %tmp430, i64 1
+ %tmp432 = getelementptr inbounds float* %tmp431, i64 1
+ %tmp433 = getelementptr inbounds float* %tmp432, i64 1
+ %tmp434 = getelementptr inbounds float* %tmp433, i64 1
+ %tmp435 = getelementptr inbounds float* %tmp434, i64 1
+ %tmp436 = getelementptr inbounds float* %tmp435, i64 1
+ %tmp437 = getelementptr inbounds float* %tmp436, i64 1
+ %tmp438 = getelementptr inbounds float* %tmp437, i64 1
+ %tmp439 = getelementptr inbounds float* %tmp438, i64 1
+ %tmp440 = getelementptr inbounds float* %tmp439, i64 1
+ %tmp441 = getelementptr inbounds float* %tmp440, i64 1
+ %tmp442 = getelementptr inbounds float* %tmp441, i64 1
+ %tmp443 = getelementptr inbounds float* %tmp442, i64 1
+ %tmp444 = getelementptr inbounds float* %tmp443, i64 1
+ %tmp445 = getelementptr inbounds float* %tmp444, i64 1
+ %tmp446 = getelementptr inbounds float* %tmp445, i64 1
+ %tmp447 = getelementptr inbounds float* %tmp446, i64 1
+ %tmp448 = getelementptr inbounds float* %tmp447, i64 1
+ %tmp449 = getelementptr inbounds float* %tmp448, i64 1
+ %tmp450 = getelementptr inbounds float* %tmp449, i64 1
+ %tmp451 = getelementptr inbounds float* %tmp450, i64 1
+ %tmp452 = getelementptr inbounds float* %tmp451, i64 1
+ %tmp453 = getelementptr inbounds float* %tmp452, i64 1
+ %tmp454 = getelementptr inbounds float* %tmp453, i64 1
+ %tmp455 = getelementptr inbounds float* %tmp454, i64 1
+ %tmp456 = getelementptr inbounds float* %tmp455, i64 1
+ %tmp457 = getelementptr inbounds float* %tmp456, i64 1
+ %tmp458 = getelementptr inbounds float* %tmp457, i64 1
+ %tmp459 = getelementptr inbounds float* %tmp458, i64 1
+ %tmp460 = getelementptr inbounds float* %tmp459, i64 1
+ %tmp461 = getelementptr inbounds float* %tmp460, i64 1
+ %tmp462 = getelementptr inbounds float* %tmp461, i64 1
+ %tmp463 = getelementptr inbounds float* %tmp462, i64 1
+ %tmp464 = getelementptr inbounds float* %tmp463, i64 1
+ %tmp465 = getelementptr inbounds float* %tmp464, i64 1
+ %tmp466 = getelementptr inbounds float* %tmp465, i64 1
+ %tmp467 = getelementptr inbounds float* %tmp466, i64 1
+ %tmp468 = getelementptr inbounds float* %tmp467, i64 1
+ %tmp469 = getelementptr inbounds float* %tmp468, i64 1
+ %tmp470 = getelementptr inbounds float* %tmp469, i64 1
+ %tmp471 = getelementptr inbounds float* %tmp470, i64 1
+ %tmp472 = getelementptr inbounds float* %tmp471, i64 1
+ %tmp473 = getelementptr inbounds float* %tmp472, i64 1
+ %tmp474 = getelementptr inbounds float* %tmp473, i64 1
+ %tmp475 = getelementptr inbounds float* %tmp474, i64 1
+ %tmp476 = getelementptr inbounds float* %tmp475, i64 1
+ %tmp477 = getelementptr inbounds float* %tmp476, i64 1
+ %tmp478 = getelementptr inbounds float* %tmp477, i64 1
+ %tmp479 = getelementptr inbounds float* %tmp478, i64 1
+ %tmp480 = getelementptr inbounds float* %tmp479, i64 1
+ %tmp481 = getelementptr inbounds float* %tmp480, i64 1
+ %tmp482 = getelementptr inbounds float* %tmp481, i64 1
+ %tmp483 = getelementptr inbounds float* %tmp482, i64 1
+ %tmp484 = getelementptr inbounds float* %tmp483, i64 1
+ %tmp485 = getelementptr inbounds float* %tmp484, i64 1
+ %tmp486 = getelementptr inbounds float* %tmp485, i64 1
+ %tmp487 = getelementptr inbounds float* %tmp486, i64 1
+ %tmp488 = getelementptr inbounds float* %tmp487, i64 1
+ %tmp489 = getelementptr inbounds float* %tmp488, i64 1
+ %tmp490 = getelementptr inbounds float* %tmp489, i64 1
+ %tmp491 = getelementptr inbounds float* %tmp490, i64 1
+ %tmp492 = getelementptr inbounds float* %tmp491, i64 1
+ %tmp493 = getelementptr inbounds float* %tmp492, i64 1
+ %tmp494 = getelementptr inbounds float* %tmp493, i64 1
+ %tmp495 = getelementptr inbounds float* %tmp494, i64 1
+ %tmp496 = getelementptr inbounds float* %tmp495, i64 1
+ %tmp497 = getelementptr inbounds float* %tmp496, i64 1
+ %tmp498 = getelementptr inbounds float* %tmp497, i64 1
+ %tmp499 = getelementptr inbounds float* %tmp498, i64 1
+ %tmp500 = getelementptr inbounds float* %tmp499, i64 1
+ %tmp501 = getelementptr inbounds float* %tmp500, i64 1
+ %tmp502 = getelementptr inbounds float* %tmp501, i64 1
+ %tmp503 = getelementptr inbounds float* %tmp502, i64 1
+ %tmp504 = getelementptr inbounds float* %tmp503, i64 1
+ %tmp505 = getelementptr inbounds float* %tmp504, i64 1
+ %tmp506 = getelementptr inbounds float* %tmp505, i64 1
+ %tmp507 = getelementptr inbounds float* %tmp506, i64 1
+ %tmp508 = getelementptr inbounds float* %tmp507, i64 1
+ %tmp509 = getelementptr inbounds float* %tmp508, i64 1
+ %tmp510 = getelementptr inbounds float* %tmp509, i64 1
+ %tmp511 = getelementptr inbounds float* %tmp510, i64 1
+ %tmp512 = getelementptr inbounds float* %tmp511, i64 1
+ %tmp513 = getelementptr inbounds float* %tmp512, i64 1
+ %tmp514 = getelementptr inbounds float* %tmp513, i64 1
+ %tmp515 = getelementptr inbounds float* %tmp514, i64 1
+ %tmp516 = getelementptr inbounds float* %tmp515, i64 1
+ %tmp517 = getelementptr inbounds float* %tmp516, i64 1
+ %tmp518 = getelementptr inbounds float* %tmp517, i64 1
+ %tmp519 = getelementptr inbounds float* %tmp518, i64 1
+ %tmp520 = getelementptr inbounds float* %tmp519, i64 1
+ %tmp521 = getelementptr inbounds float* %tmp520, i64 1
+ %tmp522 = getelementptr inbounds float* %tmp521, i64 1
+ %tmp523 = getelementptr inbounds float* %tmp522, i64 1
+ %tmp524 = getelementptr inbounds float* %tmp523, i64 1
+ %tmp525 = getelementptr inbounds float* %tmp524, i64 1
+ %tmp526 = getelementptr inbounds float* %tmp525, i64 1
+ %tmp527 = getelementptr inbounds float* %tmp526, i64 1
+ %tmp528 = getelementptr inbounds float* %tmp527, i64 1
+ %tmp529 = getelementptr inbounds float* %tmp528, i64 1
+ %tmp530 = getelementptr inbounds float* %tmp529, i64 1
+ %tmp531 = getelementptr inbounds float* %tmp530, i64 1
+ %tmp532 = getelementptr inbounds float* %tmp531, i64 1
+ %tmp533 = getelementptr inbounds float* %tmp532, i64 1
+ %tmp534 = getelementptr inbounds float* %tmp533, i64 1
+ %tmp535 = getelementptr inbounds float* %tmp534, i64 1
+ %tmp536 = getelementptr inbounds float* %tmp535, i64 1
+ %tmp537 = getelementptr inbounds float* %tmp536, i64 1
+ %tmp538 = getelementptr inbounds float* %tmp537, i64 1
+ %tmp539 = getelementptr inbounds float* %tmp538, i64 1
+ %tmp540 = getelementptr inbounds float* %tmp539, i64 1
+ %tmp541 = getelementptr inbounds float* %tmp540, i64 1
+ %tmp542 = getelementptr inbounds float* %tmp541, i64 1
+ %tmp543 = getelementptr inbounds float* %tmp542, i64 1
+ %tmp544 = getelementptr inbounds float* %tmp543, i64 1
+ %tmp545 = getelementptr inbounds float* %tmp544, i64 1
+ %tmp546 = getelementptr inbounds float* %tmp545, i64 1
+ %tmp547 = getelementptr inbounds float* %tmp546, i64 1
+ %tmp548 = getelementptr inbounds float* %tmp547, i64 1
+ %tmp549 = getelementptr inbounds float* %tmp548, i64 1
+ %tmp550 = getelementptr inbounds float* %tmp549, i64 1
+ %tmp551 = getelementptr inbounds float* %tmp550, i64 1
+ %tmp552 = getelementptr inbounds float* %tmp551, i64 1
+ %tmp553 = getelementptr inbounds float* %tmp552, i64 1
+ %tmp554 = getelementptr inbounds float* %tmp553, i64 1
+ %tmp555 = getelementptr inbounds float* %tmp554, i64 1
+ %tmp556 = getelementptr inbounds float* %tmp555, i64 1
+ %tmp557 = getelementptr inbounds float* %tmp556, i64 1
+ %tmp558 = getelementptr inbounds float* %tmp557, i64 1
+ %tmp559 = getelementptr inbounds float* %tmp558, i64 1
+ %tmp560 = getelementptr inbounds float* %tmp559, i64 1
+ %tmp561 = getelementptr inbounds float* %tmp560, i64 1
+ %tmp562 = getelementptr inbounds float* %tmp561, i64 1
+ %tmp563 = getelementptr inbounds float* %tmp562, i64 1
+ %tmp564 = getelementptr inbounds float* %tmp563, i64 1
+ %tmp565 = getelementptr inbounds float* %tmp564, i64 1
+ %tmp566 = getelementptr inbounds float* %tmp565, i64 1
+ %tmp567 = getelementptr inbounds float* %tmp566, i64 1
+ %tmp568 = getelementptr inbounds float* %tmp567, i64 1
+ %tmp569 = getelementptr inbounds float* %tmp568, i64 1
+ %tmp570 = getelementptr inbounds float* %tmp569, i64 1
+ %tmp571 = getelementptr inbounds float* %tmp570, i64 1
+ %tmp572 = getelementptr inbounds float* %tmp571, i64 1
+ %tmp573 = getelementptr inbounds float* %tmp572, i64 1
+ %tmp574 = getelementptr inbounds float* %tmp573, i64 1
+ %tmp575 = getelementptr inbounds float* %tmp574, i64 1
+ %tmp576 = getelementptr inbounds float* %tmp575, i64 1
+ %tmp577 = getelementptr inbounds float* %tmp576, i64 1
+ %tmp578 = getelementptr inbounds float* %tmp577, i64 1
+ %tmp579 = getelementptr inbounds float* %tmp578, i64 1
+ %tmp580 = getelementptr inbounds float* %tmp579, i64 1
+ %tmp581 = getelementptr inbounds float* %tmp580, i64 1
+ %tmp582 = getelementptr inbounds float* %tmp581, i64 1
+ %tmp583 = getelementptr inbounds float* %tmp582, i64 1
+ %tmp584 = getelementptr inbounds float* %tmp583, i64 1
+ %tmp585 = getelementptr inbounds float* %tmp584, i64 1
+ %tmp586 = getelementptr inbounds float* %tmp585, i64 1
+ %tmp587 = getelementptr inbounds float* %tmp586, i64 1
+ %tmp588 = getelementptr inbounds float* %tmp587, i64 1
+ %tmp589 = getelementptr inbounds float* %tmp588, i64 1
+ %tmp590 = getelementptr inbounds float* %tmp589, i64 1
+ %tmp591 = getelementptr inbounds float* %tmp590, i64 1
+ %tmp592 = getelementptr inbounds float* %tmp591, i64 1
+ %tmp593 = getelementptr inbounds float* %tmp592, i64 1
+ %tmp594 = getelementptr inbounds float* %tmp593, i64 1
+ %tmp595 = getelementptr inbounds float* %tmp594, i64 1
+ %tmp596 = getelementptr inbounds float* %tmp595, i64 1
+ %tmp597 = getelementptr inbounds float* %tmp596, i64 1
+ %tmp598 = getelementptr inbounds float* %tmp597, i64 1
+ %tmp599 = getelementptr inbounds float* %tmp598, i64 1
+ %tmp600 = getelementptr inbounds float* %tmp599, i64 1
+ %tmp601 = getelementptr inbounds float* %tmp600, i64 1
+ %tmp602 = getelementptr inbounds float* %tmp601, i64 1
+ %tmp603 = getelementptr inbounds float* %tmp602, i64 1
+ %tmp604 = getelementptr inbounds float* %tmp603, i64 1
+ %tmp605 = getelementptr inbounds float* %tmp604, i64 1
+ %tmp606 = getelementptr inbounds float* %tmp605, i64 1
+ %tmp607 = getelementptr inbounds float* %tmp606, i64 1
+ %tmp608 = getelementptr inbounds float* %tmp607, i64 1
+ %tmp609 = getelementptr inbounds float* %tmp608, i64 1
+ %tmp610 = getelementptr inbounds float* %tmp609, i64 1
+ %tmp611 = getelementptr inbounds float* %tmp610, i64 1
+ %tmp612 = getelementptr inbounds float* %tmp611, i64 1
+ %tmp613 = getelementptr inbounds float* %tmp612, i64 1
+ %tmp614 = getelementptr inbounds float* %tmp613, i64 1
+ %tmp615 = getelementptr inbounds float* %tmp614, i64 1
+ %tmp616 = getelementptr inbounds float* %tmp615, i64 1
+ %tmp617 = getelementptr inbounds float* %tmp616, i64 1
+ %tmp618 = getelementptr inbounds float* %tmp617, i64 1
+ %tmp619 = getelementptr inbounds float* %tmp618, i64 1
+ %tmp620 = getelementptr inbounds float* %tmp619, i64 1
+ %tmp621 = getelementptr inbounds float* %tmp620, i64 1
+ %tmp622 = getelementptr inbounds float* %tmp621, i64 1
+ %tmp623 = getelementptr inbounds float* %tmp622, i64 1
+ %tmp624 = getelementptr inbounds float* %tmp623, i64 1
+ %tmp625 = getelementptr inbounds float* %tmp624, i64 1
+ %tmp626 = getelementptr inbounds float* %tmp625, i64 1
+ %tmp627 = getelementptr inbounds float* %tmp626, i64 1
+ %tmp628 = getelementptr inbounds float* %tmp627, i64 1
+ %tmp629 = getelementptr inbounds float* %tmp628, i64 1
+ %tmp630 = getelementptr inbounds float* %tmp629, i64 1
+ %tmp631 = getelementptr inbounds float* %tmp630, i64 1
+ %tmp632 = getelementptr inbounds float* %tmp631, i64 1
+ %tmp633 = getelementptr inbounds float* %tmp632, i64 1
+ %tmp634 = getelementptr inbounds float* %tmp633, i64 1
+ %tmp635 = getelementptr inbounds float* %tmp634, i64 1
+ %tmp636 = getelementptr inbounds float* %tmp635, i64 1
+ %tmp637 = getelementptr inbounds float* %tmp636, i64 1
+ %tmp638 = getelementptr inbounds float* %tmp637, i64 1
+ %tmp639 = getelementptr inbounds float* %tmp638, i64 1
+ %tmp640 = getelementptr inbounds float* %tmp639, i64 1
+ %tmp641 = getelementptr inbounds float* %tmp640, i64 1
+ %tmp642 = getelementptr inbounds float* %tmp641, i64 1
+ %tmp643 = getelementptr inbounds float* %tmp642, i64 1
+ %tmp644 = getelementptr inbounds float* %tmp643, i64 1
+ %tmp645 = getelementptr inbounds float* %tmp644, i64 1
+ %tmp646 = getelementptr inbounds float* %tmp645, i64 1
+ %tmp647 = getelementptr inbounds float* %tmp646, i64 1
+ %tmp648 = getelementptr inbounds float* %tmp647, i64 1
+ %tmp649 = getelementptr inbounds float* %tmp648, i64 1
+ %tmp650 = getelementptr inbounds float* %tmp649, i64 1
+ %tmp651 = getelementptr inbounds float* %tmp650, i64 1
+ %tmp652 = getelementptr inbounds float* %tmp651, i64 1
+ %tmp653 = getelementptr inbounds float* %tmp652, i64 1
+ %tmp654 = getelementptr inbounds float* %tmp653, i64 1
+ %tmp655 = getelementptr inbounds float* %tmp654, i64 1
+ %tmp656 = getelementptr inbounds float* %tmp655, i64 1
+ %tmp657 = getelementptr inbounds float* %tmp656, i64 1
+ %tmp658 = getelementptr inbounds float* %tmp657, i64 1
+ %tmp659 = getelementptr inbounds float* %tmp658, i64 1
+ %tmp660 = getelementptr inbounds float* %tmp659, i64 1
+ %tmp661 = getelementptr inbounds float* %tmp660, i64 1
+ %tmp662 = getelementptr inbounds float* %tmp661, i64 1
+ %tmp663 = getelementptr inbounds float* %tmp662, i64 1
+ %tmp664 = getelementptr inbounds float* %tmp663, i64 1
+ %tmp665 = getelementptr inbounds float* %tmp664, i64 1
+ %tmp666 = getelementptr inbounds float* %tmp665, i64 1
+ %tmp667 = getelementptr inbounds float* %tmp666, i64 1
+ %tmp668 = getelementptr inbounds float* %tmp667, i64 1
+ %tmp669 = getelementptr inbounds float* %tmp668, i64 1
+ %tmp670 = getelementptr inbounds float* %tmp669, i64 1
+ %tmp671 = getelementptr inbounds float* %tmp670, i64 1
+ %tmp672 = getelementptr inbounds float* %tmp671, i64 1
+ %tmp673 = getelementptr inbounds float* %tmp672, i64 1
+ %tmp674 = getelementptr inbounds float* %tmp673, i64 1
+ %tmp675 = getelementptr inbounds float* %tmp674, i64 1
+ %tmp676 = getelementptr inbounds float* %tmp675, i64 1
+ %tmp677 = getelementptr inbounds float* %tmp676, i64 1
+ %tmp678 = getelementptr inbounds float* %tmp677, i64 1
+ %tmp679 = getelementptr inbounds float* %tmp678, i64 1
+ %tmp680 = getelementptr inbounds float* %tmp679, i64 1
+ %tmp681 = getelementptr inbounds float* %tmp680, i64 1
+ %tmp682 = getelementptr inbounds float* %tmp681, i64 1
+ %tmp683 = getelementptr inbounds float* %tmp682, i64 1
+ %tmp684 = getelementptr inbounds float* %tmp683, i64 1
+ %tmp685 = getelementptr inbounds float* %tmp684, i64 1
+ %tmp686 = getelementptr inbounds float* %tmp685, i64 1
+ %tmp687 = getelementptr inbounds float* %tmp686, i64 1
+ %tmp688 = getelementptr inbounds float* %tmp687, i64 1
+ %tmp689 = getelementptr inbounds float* %tmp688, i64 1
+ %tmp690 = getelementptr inbounds float* %tmp689, i64 1
+ %tmp691 = getelementptr inbounds float* %tmp690, i64 1
+ %tmp692 = getelementptr inbounds float* %tmp691, i64 1
+ %tmp693 = getelementptr inbounds float* %tmp692, i64 1
+ %tmp694 = getelementptr inbounds float* %tmp693, i64 1
+ %tmp695 = getelementptr inbounds float* %tmp694, i64 1
+ %tmp696 = getelementptr inbounds float* %tmp695, i64 1
+ %tmp697 = getelementptr inbounds float* %tmp696, i64 1
+ %tmp698 = getelementptr inbounds float* %tmp697, i64 1
+ %tmp699 = getelementptr inbounds float* %tmp698, i64 1
+ %tmp700 = getelementptr inbounds float* %tmp699, i64 1
+ %tmp701 = getelementptr inbounds float* %tmp700, i64 1
+ %tmp702 = getelementptr inbounds float* %tmp701, i64 1
+ %tmp703 = getelementptr inbounds float* %tmp702, i64 1
+ %tmp704 = getelementptr inbounds float* %tmp703, i64 1
+ %tmp705 = getelementptr inbounds float* %tmp704, i64 1
+ %tmp706 = getelementptr inbounds float* %tmp705, i64 1
+ %tmp707 = getelementptr inbounds float* %tmp706, i64 1
+ %tmp708 = getelementptr inbounds float* %tmp707, i64 1
+ %tmp709 = getelementptr inbounds float* %tmp708, i64 1
+ %tmp710 = getelementptr inbounds float* %tmp709, i64 1
+ %tmp711 = getelementptr inbounds float* %tmp710, i64 1
+ %tmp712 = getelementptr inbounds float* %tmp711, i64 1
+ %tmp713 = getelementptr inbounds float* %tmp712, i64 1
+ %tmp714 = getelementptr inbounds float* %tmp713, i64 1
+ %tmp715 = getelementptr inbounds float* %tmp714, i64 1
+ %tmp716 = getelementptr inbounds float* %tmp715, i64 1
+ %tmp717 = getelementptr inbounds float* %tmp716, i64 1
+ %tmp718 = getelementptr inbounds float* %tmp717, i64 1
+ %tmp719 = getelementptr inbounds float* %tmp718, i64 1
+ %tmp720 = getelementptr inbounds float* %tmp719, i64 1
+ %tmp721 = getelementptr inbounds float* %tmp720, i64 1
+ %tmp722 = getelementptr inbounds float* %tmp721, i64 1
+ %tmp723 = getelementptr inbounds float* %tmp722, i64 1
+ %tmp724 = getelementptr inbounds float* %tmp723, i64 1
+ %tmp725 = getelementptr inbounds float* %tmp724, i64 1
+ %tmp726 = getelementptr inbounds float* %tmp725, i64 1
+ %tmp727 = getelementptr inbounds float* %tmp726, i64 1
+ %tmp728 = getelementptr inbounds float* %tmp727, i64 1
+ %tmp729 = getelementptr inbounds float* %tmp728, i64 1
+ %tmp730 = getelementptr inbounds float* %tmp729, i64 1
+ %tmp731 = getelementptr inbounds float* %tmp730, i64 1
+ %tmp732 = getelementptr inbounds float* %tmp731, i64 1
+ %tmp733 = getelementptr inbounds float* %tmp732, i64 1
+ %tmp734 = getelementptr inbounds float* %tmp733, i64 1
+ %tmp735 = getelementptr inbounds float* %tmp734, i64 1
+ %tmp736 = getelementptr inbounds float* %tmp735, i64 1
+ %tmp737 = getelementptr inbounds float* %tmp736, i64 1
+ %tmp738 = getelementptr inbounds float* %tmp737, i64 1
+ %tmp739 = getelementptr inbounds float* %tmp738, i64 1
+ %tmp740 = getelementptr inbounds float* %tmp739, i64 1
+ %tmp741 = getelementptr inbounds float* %tmp740, i64 1
+ %tmp742 = getelementptr inbounds float* %tmp741, i64 1
+ %tmp743 = getelementptr inbounds float* %tmp742, i64 1
+ %tmp744 = getelementptr inbounds float* %tmp743, i64 1
+ %tmp745 = getelementptr inbounds float* %tmp744, i64 1
+ %tmp746 = getelementptr inbounds float* %tmp745, i64 1
+ %tmp747 = getelementptr inbounds float* %tmp746, i64 1
+ %tmp748 = getelementptr inbounds float* %tmp747, i64 1
+ %tmp749 = getelementptr inbounds float* %tmp748, i64 1
+ %tmp750 = getelementptr inbounds float* %tmp749, i64 1
+ %tmp751 = getelementptr inbounds float* %tmp750, i64 1
+ %tmp752 = getelementptr inbounds float* %tmp751, i64 1
+ %tmp753 = getelementptr inbounds float* %tmp752, i64 1
+ %tmp754 = getelementptr inbounds float* %tmp753, i64 1
+ %tmp755 = getelementptr inbounds float* %tmp754, i64 1
+ %tmp756 = getelementptr inbounds float* %tmp755, i64 1
+ %tmp757 = getelementptr inbounds float* %tmp756, i64 1
+ %tmp758 = getelementptr inbounds float* %tmp757, i64 1
+ %tmp759 = getelementptr inbounds float* %tmp758, i64 1
+ %tmp760 = getelementptr inbounds float* %tmp759, i64 1
+ %tmp761 = getelementptr inbounds float* %tmp760, i64 1
+ %tmp762 = getelementptr inbounds float* %tmp761, i64 1
+ %tmp763 = getelementptr inbounds float* %tmp762, i64 1
+ %tmp764 = getelementptr inbounds float* %tmp763, i64 1
+ %tmp765 = getelementptr inbounds float* %tmp764, i64 1
+ %tmp766 = getelementptr inbounds float* %tmp765, i64 1
+ %tmp767 = getelementptr inbounds float* %tmp766, i64 1
+ %tmp768 = getelementptr inbounds float* %tmp767, i64 1
+ %tmp769 = getelementptr inbounds float* %tmp768, i64 1
+ %tmp770 = getelementptr inbounds float* %tmp769, i64 1
+ %tmp771 = getelementptr inbounds float* %tmp770, i64 1
+ %tmp772 = getelementptr inbounds float* %tmp771, i64 1
+ %tmp773 = getelementptr inbounds float* %tmp772, i64 1
+ %tmp774 = getelementptr inbounds float* %tmp773, i64 1
+ %tmp775 = getelementptr inbounds float* %tmp774, i64 1
+ %tmp776 = getelementptr inbounds float* %tmp775, i64 1
+ %tmp777 = getelementptr inbounds float* %tmp776, i64 1
+ %tmp778 = getelementptr inbounds float* %tmp777, i64 1
+ %tmp779 = getelementptr inbounds float* %tmp778, i64 1
+ %tmp780 = getelementptr inbounds float* %tmp779, i64 1
+ %tmp781 = getelementptr inbounds float* %tmp780, i64 1
+ %tmp782 = getelementptr inbounds float* %tmp781, i64 1
+ %tmp783 = getelementptr inbounds float* %tmp782, i64 1
+ %tmp784 = getelementptr inbounds float* %tmp783, i64 1
+ %tmp785 = getelementptr inbounds float* %tmp784, i64 1
+ %tmp786 = getelementptr inbounds float* %tmp785, i64 1
+ %tmp787 = getelementptr inbounds float* %tmp786, i64 1
+ %tmp788 = getelementptr inbounds float* %tmp787, i64 1
+ %tmp789 = getelementptr inbounds float* %tmp788, i64 1
+ %tmp790 = getelementptr inbounds float* %tmp789, i64 1
+ %tmp791 = getelementptr inbounds float* %tmp790, i64 1
+ %tmp792 = getelementptr inbounds float* %tmp791, i64 1
+ %tmp793 = getelementptr inbounds float* %tmp792, i64 1
+ %tmp794 = getelementptr inbounds float* %tmp793, i64 1
+ %tmp795 = getelementptr inbounds float* %tmp794, i64 1
+ %tmp796 = getelementptr inbounds float* %tmp795, i64 1
+ %tmp797 = getelementptr inbounds float* %tmp796, i64 1
+ %tmp798 = getelementptr inbounds float* %tmp797, i64 1
+ %tmp799 = getelementptr inbounds float* %tmp798, i64 1
+ %tmp800 = getelementptr inbounds float* %tmp799, i64 1
+ %tmp801 = getelementptr inbounds float* %tmp800, i64 1
+ %tmp802 = getelementptr inbounds float* %tmp801, i64 1
+ %tmp803 = getelementptr inbounds float* %tmp802, i64 1
+ %tmp804 = getelementptr inbounds float* %tmp803, i64 1
+ %tmp805 = getelementptr inbounds float* %tmp804, i64 1
+ %tmp806 = getelementptr inbounds float* %tmp805, i64 1
+ %tmp807 = getelementptr inbounds float* %tmp806, i64 1
+ %tmp808 = getelementptr inbounds float* %tmp807, i64 1
+ %tmp809 = getelementptr inbounds float* %tmp808, i64 1
+ %tmp810 = getelementptr inbounds float* %tmp809, i64 1
+ %tmp811 = getelementptr inbounds float* %tmp810, i64 1
+ %tmp812 = getelementptr inbounds float* %tmp811, i64 1
+ %tmp813 = getelementptr inbounds float* %tmp812, i64 1
+ %tmp814 = getelementptr inbounds float* %tmp813, i64 1
+ %tmp815 = getelementptr inbounds float* %tmp814, i64 1
+ %tmp816 = getelementptr inbounds float* %tmp815, i64 1
+ %tmp817 = getelementptr inbounds float* %tmp816, i64 1
+ %tmp818 = getelementptr inbounds float* %tmp817, i64 1
+ %tmp819 = getelementptr inbounds float* %tmp818, i64 1
+ %tmp820 = getelementptr inbounds float* %tmp819, i64 1
+ %tmp821 = getelementptr inbounds float* %tmp820, i64 1
+ %tmp822 = getelementptr inbounds float* %tmp821, i64 1
+ %tmp823 = getelementptr inbounds float* %tmp822, i64 1
+ %tmp824 = getelementptr inbounds float* %tmp823, i64 1
+ %tmp825 = getelementptr inbounds float* %tmp824, i64 1
+ %tmp826 = getelementptr inbounds float* %tmp825, i64 1
+ %tmp827 = getelementptr inbounds float* %tmp826, i64 1
+ %tmp828 = getelementptr inbounds float* %tmp827, i64 1
+ %tmp829 = getelementptr inbounds float* %tmp828, i64 1
+ %tmp830 = getelementptr inbounds float* %tmp829, i64 1
+ %tmp831 = getelementptr inbounds float* %tmp830, i64 1
+ %tmp832 = getelementptr inbounds float* %tmp831, i64 1
+ %tmp833 = getelementptr inbounds float* %tmp832, i64 1
+ %tmp834 = getelementptr inbounds float* %tmp833, i64 1
+ %tmp835 = getelementptr inbounds float* %tmp834, i64 1
+ %tmp836 = getelementptr inbounds float* %tmp835, i64 1
+ %tmp837 = getelementptr inbounds float* %tmp836, i64 1
+ %tmp838 = getelementptr inbounds float* %tmp837, i64 1
+ %tmp839 = getelementptr inbounds float* %tmp838, i64 1
+ %tmp840 = getelementptr inbounds float* %tmp839, i64 1
+ %tmp841 = getelementptr inbounds float* %tmp840, i64 1
+ %tmp842 = getelementptr inbounds float* %tmp841, i64 1
+ %tmp843 = getelementptr inbounds float* %tmp842, i64 1
+ %tmp844 = getelementptr inbounds float* %tmp843, i64 1
+ %tmp845 = getelementptr inbounds float* %tmp844, i64 1
+ %tmp846 = getelementptr inbounds float* %tmp845, i64 1
+ %tmp847 = getelementptr inbounds float* %tmp846, i64 1
+ %tmp848 = getelementptr inbounds float* %tmp847, i64 1
+ %tmp849 = getelementptr inbounds float* %tmp848, i64 1
+ %tmp850 = getelementptr inbounds float* %tmp849, i64 1
+ %tmp851 = getelementptr inbounds float* %tmp850, i64 1
+ %tmp852 = getelementptr inbounds float* %tmp851, i64 1
+ %tmp853 = getelementptr inbounds float* %tmp852, i64 1
+ %tmp854 = getelementptr inbounds float* %tmp853, i64 1
+ %tmp855 = getelementptr inbounds float* %tmp854, i64 1
+ %tmp856 = getelementptr inbounds float* %tmp855, i64 1
+ %tmp857 = getelementptr inbounds float* %tmp856, i64 1
+ %tmp858 = getelementptr inbounds float* %tmp857, i64 1
+ %tmp859 = getelementptr inbounds float* %tmp858, i64 1
+ %tmp860 = getelementptr inbounds float* %tmp859, i64 1
+ %tmp861 = getelementptr inbounds float* %tmp860, i64 1
+ %tmp862 = getelementptr inbounds float* %tmp861, i64 1
+ %tmp863 = getelementptr inbounds float* %tmp862, i64 1
+ %tmp864 = getelementptr inbounds float* %tmp863, i64 1
+ %tmp865 = getelementptr inbounds float* %tmp864, i64 1
+ %tmp866 = getelementptr inbounds float* %tmp865, i64 1
+ %tmp867 = getelementptr inbounds float* %tmp866, i64 1
+ %tmp868 = getelementptr inbounds float* %tmp867, i64 1
+ %tmp869 = getelementptr inbounds float* %tmp868, i64 1
+ %tmp870 = getelementptr inbounds float* %tmp869, i64 1
+ %tmp871 = getelementptr inbounds float* %tmp870, i64 1
+ %tmp872 = getelementptr inbounds float* %tmp871, i64 1
+ %tmp873 = getelementptr inbounds float* %tmp872, i64 1
+ %tmp874 = getelementptr inbounds float* %tmp873, i64 1
+ %tmp875 = getelementptr inbounds float* %tmp874, i64 1
+ %tmp876 = getelementptr inbounds float* %tmp875, i64 1
+ %tmp877 = getelementptr inbounds float* %tmp876, i64 1
+ %tmp878 = getelementptr inbounds float* %tmp877, i64 1
+ %tmp879 = getelementptr inbounds float* %tmp878, i64 1
+ %tmp880 = getelementptr inbounds float* %tmp879, i64 1
+ %tmp881 = getelementptr inbounds float* %tmp880, i64 1
+ %tmp882 = getelementptr inbounds float* %tmp881, i64 1
+ %tmp883 = getelementptr inbounds float* %tmp882, i64 1
+ %tmp884 = getelementptr inbounds float* %tmp883, i64 1
+ %tmp885 = getelementptr inbounds float* %tmp884, i64 1
+ %tmp886 = getelementptr inbounds float* %tmp885, i64 1
+ %tmp887 = getelementptr inbounds float* %tmp886, i64 1
+ %tmp888 = getelementptr inbounds float* %tmp887, i64 1
+ %tmp889 = getelementptr inbounds float* %tmp888, i64 1
+ %tmp890 = getelementptr inbounds float* %tmp889, i64 1
+ %tmp891 = getelementptr inbounds float* %tmp890, i64 1
+ %tmp892 = getelementptr inbounds float* %tmp891, i64 1
+ %tmp893 = getelementptr inbounds float* %tmp892, i64 1
+ %tmp894 = getelementptr inbounds float* %tmp893, i64 1
+ %tmp895 = getelementptr inbounds float* %tmp894, i64 1
+ %tmp896 = getelementptr inbounds float* %tmp895, i64 1
+ %tmp897 = getelementptr inbounds float* %tmp896, i64 1
+ %tmp898 = getelementptr inbounds float* %tmp897, i64 1
+ %tmp899 = getelementptr inbounds float* %tmp898, i64 1
+ %tmp900 = getelementptr inbounds float* %tmp899, i64 1
+ %tmp901 = getelementptr inbounds float* %tmp900, i64 1
+ %tmp902 = getelementptr inbounds float* %tmp901, i64 1
+ %tmp903 = getelementptr inbounds float* %tmp902, i64 1
+ %tmp904 = getelementptr inbounds float* %tmp903, i64 1
+ %tmp905 = getelementptr inbounds float* %tmp904, i64 1
+ %tmp906 = getelementptr inbounds float* %tmp905, i64 1
+ %tmp907 = getelementptr inbounds float* %tmp906, i64 1
+ %tmp908 = getelementptr inbounds float* %tmp907, i64 1
+ %tmp909 = getelementptr inbounds float* %tmp908, i64 1
+ %tmp910 = getelementptr inbounds float* %tmp909, i64 1
+ %tmp911 = getelementptr inbounds float* %tmp910, i64 1
+ %tmp912 = getelementptr inbounds float* %tmp911, i64 1
+ %tmp913 = getelementptr inbounds float* %tmp912, i64 1
+ %tmp914 = getelementptr inbounds float* %tmp913, i64 1
+ %tmp915 = getelementptr inbounds float* %tmp914, i64 1
+ %tmp916 = getelementptr inbounds float* %tmp915, i64 1
+ %tmp917 = getelementptr inbounds float* %tmp916, i64 1
+ %tmp918 = getelementptr inbounds float* %tmp917, i64 1
+ %tmp919 = getelementptr inbounds float* %tmp918, i64 1
+ %tmp920 = getelementptr inbounds float* %tmp919, i64 1
+ %tmp921 = getelementptr inbounds float* %tmp920, i64 1
+ %tmp922 = getelementptr inbounds float* %tmp921, i64 1
+ %tmp923 = getelementptr inbounds float* %tmp922, i64 1
+ %tmp924 = getelementptr inbounds float* %tmp923, i64 1
+ %tmp925 = getelementptr inbounds float* %tmp924, i64 1
+ %tmp926 = getelementptr inbounds float* %tmp925, i64 1
+ %tmp927 = getelementptr inbounds float* %tmp926, i64 1
+ %tmp928 = getelementptr inbounds float* %tmp927, i64 1
+ %tmp929 = getelementptr inbounds float* %tmp928, i64 1
+ %tmp930 = getelementptr inbounds float* %tmp929, i64 1
+ %tmp931 = getelementptr inbounds float* %tmp930, i64 1
+ %tmp932 = getelementptr inbounds float* %tmp931, i64 1
+ %tmp933 = getelementptr inbounds float* %tmp932, i64 1
+ %tmp934 = getelementptr inbounds float* %tmp933, i64 1
+ %tmp935 = getelementptr inbounds float* %tmp934, i64 1
+ %tmp936 = getelementptr inbounds float* %tmp935, i64 1
+ %tmp937 = getelementptr inbounds float* %tmp936, i64 1
+ %tmp938 = getelementptr inbounds float* %tmp937, i64 1
+ %tmp939 = getelementptr inbounds float* %tmp938, i64 1
+ %tmp940 = getelementptr inbounds float* %tmp939, i64 1
+ %tmp941 = getelementptr inbounds float* %tmp940, i64 1
+ %tmp942 = getelementptr inbounds float* %tmp941, i64 1
+ %tmp943 = getelementptr inbounds float* %tmp942, i64 1
+ %tmp944 = getelementptr inbounds float* %tmp943, i64 1
+ %tmp945 = getelementptr inbounds float* %tmp944, i64 1
+ %tmp946 = getelementptr inbounds float* %tmp945, i64 1
+ %tmp947 = getelementptr inbounds float* %tmp946, i64 1
+ %tmp948 = getelementptr inbounds float* %tmp947, i64 1
+ %tmp949 = getelementptr inbounds float* %tmp948, i64 1
+ %tmp950 = getelementptr inbounds float* %tmp949, i64 1
+ %tmp951 = getelementptr inbounds float* %tmp950, i64 1
+ %tmp952 = getelementptr inbounds float* %tmp951, i64 1
+ %tmp953 = getelementptr inbounds float* %tmp952, i64 1
+ %tmp954 = getelementptr inbounds float* %tmp953, i64 1
+ %tmp955 = getelementptr inbounds float* %tmp954, i64 1
+ %tmp956 = getelementptr inbounds float* %tmp955, i64 1
+ %tmp957 = getelementptr inbounds float* %tmp956, i64 1
+ %tmp958 = getelementptr inbounds float* %tmp957, i64 1
+ %tmp959 = getelementptr inbounds float* %tmp958, i64 1
+ %tmp960 = getelementptr inbounds float* %tmp959, i64 1
+ %tmp961 = getelementptr inbounds float* %tmp960, i64 1
+ %tmp962 = getelementptr inbounds float* %tmp961, i64 1
+ %tmp963 = getelementptr inbounds float* %tmp962, i64 1
+ %tmp964 = getelementptr inbounds float* %tmp963, i64 1
+ %tmp965 = getelementptr inbounds float* %tmp964, i64 1
+ %tmp966 = getelementptr inbounds float* %tmp965, i64 1
+ %tmp967 = getelementptr inbounds float* %tmp966, i64 1
+ %tmp968 = getelementptr inbounds float* %tmp967, i64 1
+ %tmp969 = getelementptr inbounds float* %tmp968, i64 1
+ %tmp970 = getelementptr inbounds float* %tmp969, i64 1
+ %tmp971 = getelementptr inbounds float* %tmp970, i64 1
+ %tmp972 = getelementptr inbounds float* %tmp971, i64 1
+ %tmp973 = getelementptr inbounds float* %tmp972, i64 1
+ %tmp974 = getelementptr inbounds float* %tmp973, i64 1
+ %tmp975 = getelementptr inbounds float* %tmp974, i64 1
+ %tmp976 = getelementptr inbounds float* %tmp975, i64 1
+ %tmp977 = getelementptr inbounds float* %tmp976, i64 1
+ %tmp978 = getelementptr inbounds float* %tmp977, i64 1
+ %tmp979 = getelementptr inbounds float* %tmp978, i64 1
+ %tmp980 = getelementptr inbounds float* %tmp979, i64 1
+ %tmp981 = getelementptr inbounds float* %tmp980, i64 1
+ %tmp982 = getelementptr inbounds float* %tmp981, i64 1
+ %tmp983 = getelementptr inbounds float* %tmp982, i64 1
+ %tmp984 = getelementptr inbounds float* %tmp983, i64 1
+ %tmp985 = getelementptr inbounds float* %tmp984, i64 1
+ %tmp986 = getelementptr inbounds float* %tmp985, i64 1
+ %tmp987 = getelementptr inbounds float* %tmp986, i64 1
+ %tmp988 = getelementptr inbounds float* %tmp987, i64 1
+ %tmp989 = getelementptr inbounds float* %tmp988, i64 1
+ %tmp990 = getelementptr inbounds float* %tmp989, i64 1
+ %tmp991 = getelementptr inbounds float* %tmp990, i64 1
+ %tmp992 = getelementptr inbounds float* %tmp991, i64 1
+ %tmp993 = getelementptr inbounds float* %tmp992, i64 1
+ %tmp994 = getelementptr inbounds float* %tmp993, i64 1
+ %tmp995 = getelementptr inbounds float* %tmp994, i64 1
+ %tmp996 = getelementptr inbounds float* %tmp995, i64 1
+ %tmp997 = getelementptr inbounds float* %tmp996, i64 1
+ %tmp998 = getelementptr inbounds float* %tmp997, i64 1
+ %tmp999 = getelementptr inbounds float* %tmp998, i64 1
+ %tmp1000 = getelementptr inbounds float* %tmp999, i64 1
+ %tmp1001 = getelementptr inbounds float* %tmp1000, i64 1
+ %tmp1002 = getelementptr inbounds float* %tmp1001, i64 1
+ %tmp1003 = getelementptr inbounds float* %tmp1002, i64 1
+ %tmp1004 = getelementptr inbounds float* %tmp1003, i64 1
+ %tmp1005 = getelementptr inbounds float* %tmp1004, i64 1
+ %tmp1006 = getelementptr inbounds float* %tmp1005, i64 1
+ %tmp1007 = getelementptr inbounds float* %tmp1006, i64 1
+ %tmp1008 = getelementptr inbounds float* %tmp1007, i64 1
+ %tmp1009 = getelementptr inbounds float* %tmp1008, i64 1
+ %tmp1010 = getelementptr inbounds float* %tmp1009, i64 1
+ %tmp1011 = getelementptr inbounds float* %tmp1010, i64 1
+ %tmp1012 = getelementptr inbounds float* %tmp1011, i64 1
+ %tmp1013 = getelementptr inbounds float* %tmp1012, i64 1
+ %tmp1014 = getelementptr inbounds float* %tmp1013, i64 1
+ %tmp1015 = getelementptr inbounds float* %tmp1014, i64 1
+ %tmp1016 = getelementptr inbounds float* %tmp1015, i64 1
+ %tmp1017 = getelementptr inbounds float* %tmp1016, i64 1
+ %tmp1018 = getelementptr inbounds float* %tmp1017, i64 1
+ %tmp1019 = getelementptr inbounds float* %tmp1018, i64 1
+ %tmp1020 = getelementptr inbounds float* %tmp1019, i64 1
+ %tmp1021 = getelementptr inbounds float* %tmp1020, i64 1
+ %tmp1022 = getelementptr inbounds float* %tmp1021, i64 1
+ %tmp1023 = getelementptr inbounds float* %tmp1022, i64 1
+ %tmp1024 = getelementptr inbounds float* %tmp1023, i64 1
+ %tmp1025 = getelementptr inbounds float* %tmp1024, i64 1
+ %tmp1026 = getelementptr inbounds float* %tmp1025, i64 1
+ %tmp1027 = getelementptr inbounds float* %tmp1026, i64 1
+ %tmp1028 = getelementptr inbounds float* %tmp1027, i64 1
+ %tmp1029 = getelementptr inbounds float* %tmp1028, i64 1
+ %tmp1030 = getelementptr inbounds float* %tmp1029, i64 1
+ %tmp1031 = getelementptr inbounds float* %tmp1030, i64 1
+ %tmp1032 = getelementptr inbounds float* %tmp1031, i64 1
+ %tmp1033 = getelementptr inbounds float* %tmp1032, i64 1
+ %tmp1034 = getelementptr inbounds float* %tmp1033, i64 1
+ %tmp1035 = getelementptr inbounds float* %tmp1034, i64 1
+ %tmp1036 = getelementptr inbounds float* %tmp1035, i64 1
+ %tmp1037 = getelementptr inbounds float* %tmp1036, i64 1
+ %tmp1038 = getelementptr inbounds float* %tmp1037, i64 1
+ %tmp1039 = getelementptr inbounds float* %tmp1038, i64 1
+ %tmp1040 = getelementptr inbounds float* %tmp1039, i64 1
+ %tmp1041 = getelementptr inbounds float* %tmp1040, i64 1
+ %tmp1042 = getelementptr inbounds float* %tmp1041, i64 1
+ %tmp1043 = getelementptr inbounds float* %tmp1042, i64 1
+ %tmp1044 = getelementptr inbounds float* %tmp1043, i64 1
+ %tmp1045 = getelementptr inbounds float* %tmp1044, i64 1
+ %tmp1046 = getelementptr inbounds float* %tmp1045, i64 1
+ %tmp1047 = getelementptr inbounds float* %tmp1046, i64 1
+ %tmp1048 = getelementptr inbounds float* %tmp1047, i64 1
+ %tmp1049 = getelementptr inbounds float* %tmp1048, i64 1
+ %tmp1050 = getelementptr inbounds float* %tmp1049, i64 1
+ %tmp1051 = getelementptr inbounds float* %tmp1050, i64 1
+ %tmp1052 = getelementptr inbounds float* %tmp1051, i64 1
+ %tmp1053 = getelementptr inbounds float* %tmp1052, i64 1
+ %tmp1054 = getelementptr inbounds float* %tmp1053, i64 1
+ %tmp1055 = getelementptr inbounds float* %tmp1054, i64 1
+ %tmp1056 = getelementptr inbounds float* %tmp1055, i64 1
+ %tmp1057 = getelementptr inbounds float* %tmp1056, i64 1
+ %tmp1058 = getelementptr inbounds float* %tmp1057, i64 1
+ %tmp1059 = getelementptr inbounds float* %tmp1058, i64 1
+ %tmp1060 = getelementptr inbounds float* %tmp1059, i64 1
+ %tmp1061 = getelementptr inbounds float* %tmp1060, i64 1
+ %tmp1062 = getelementptr inbounds float* %tmp1061, i64 1
+ %tmp1063 = getelementptr inbounds float* %tmp1062, i64 1
+ %tmp1064 = getelementptr inbounds float* %tmp1063, i64 1
+ %tmp1065 = getelementptr inbounds float* %tmp1064, i64 1
+ %tmp1066 = getelementptr inbounds float* %tmp1065, i64 1
+ %tmp1067 = getelementptr inbounds float* %tmp1066, i64 1
+ %tmp1068 = getelementptr inbounds float* %tmp1067, i64 1
+ %tmp1069 = getelementptr inbounds float* %tmp1068, i64 1
+ %tmp1070 = getelementptr inbounds float* %tmp1069, i64 1
+ %tmp1071 = getelementptr inbounds float* %tmp1070, i64 1
+ %tmp1072 = getelementptr inbounds float* %tmp1071, i64 1
+ %tmp1073 = getelementptr inbounds float* %tmp1072, i64 1
+ %tmp1074 = getelementptr inbounds float* %tmp1073, i64 1
+ %tmp1075 = getelementptr inbounds float* %tmp1074, i64 1
+ %tmp1076 = getelementptr inbounds float* %tmp1075, i64 1
+ %tmp1077 = getelementptr inbounds float* %tmp1076, i64 1
+ %tmp1078 = getelementptr inbounds float* %tmp1077, i64 1
+ %tmp1079 = getelementptr inbounds float* %tmp1078, i64 1
+ %tmp1080 = getelementptr inbounds float* %tmp1079, i64 1
+ %tmp1081 = getelementptr inbounds float* %tmp1080, i64 1
+ %tmp1082 = getelementptr inbounds float* %tmp1081, i64 1
+ %tmp1083 = getelementptr inbounds float* %tmp1082, i64 1
+ %tmp1084 = getelementptr inbounds float* %tmp1083, i64 1
+ %tmp1085 = getelementptr inbounds float* %tmp1084, i64 1
+ %tmp1086 = getelementptr inbounds float* %tmp1085, i64 1
+ %tmp1087 = getelementptr inbounds float* %tmp1086, i64 1
+ %tmp1088 = getelementptr inbounds float* %tmp1087, i64 1
+ %tmp1089 = getelementptr inbounds float* %tmp1088, i64 1
+ %tmp1090 = getelementptr inbounds float* %tmp1089, i64 1
+ %tmp1091 = getelementptr inbounds float* %tmp1090, i64 1
+ %tmp1092 = getelementptr inbounds float* %tmp1091, i64 1
+ %tmp1093 = getelementptr inbounds float* %tmp1092, i64 1
+ %tmp1094 = getelementptr inbounds float* %tmp1093, i64 1
+ %tmp1095 = getelementptr inbounds float* %tmp1094, i64 1
+ %tmp1096 = getelementptr inbounds float* %tmp1095, i64 1
+ %tmp1097 = getelementptr inbounds float* %tmp1096, i64 1
+ %tmp1098 = getelementptr inbounds float* %tmp1097, i64 1
+ %tmp1099 = getelementptr inbounds float* %tmp1098, i64 1
+ %tmp1100 = getelementptr inbounds float* %tmp1099, i64 1
+ %tmp1101 = getelementptr inbounds float* %tmp1100, i64 1
+ %tmp1102 = getelementptr inbounds float* %tmp1101, i64 1
+ %tmp1103 = getelementptr inbounds float* %tmp1102, i64 1
+ %tmp1104 = getelementptr inbounds float* %tmp1103, i64 1
+ %tmp1105 = getelementptr inbounds float* %tmp1104, i64 1
+ %tmp1106 = getelementptr inbounds float* %tmp1105, i64 1
+ %tmp1107 = getelementptr inbounds float* %tmp1106, i64 1
+ %tmp1108 = getelementptr inbounds float* %tmp1107, i64 1
+ %tmp1109 = getelementptr inbounds float* %tmp1108, i64 1
+ %tmp1110 = getelementptr inbounds float* %tmp1109, i64 1
+ %tmp1111 = getelementptr inbounds float* %tmp1110, i64 1
+ %tmp1112 = getelementptr inbounds float* %tmp1111, i64 1
+ %tmp1113 = getelementptr inbounds float* %tmp1112, i64 1
+ %tmp1114 = getelementptr inbounds float* %tmp1113, i64 1
+ %tmp1115 = getelementptr inbounds float* %tmp1114, i64 1
+ %tmp1116 = getelementptr inbounds float* %tmp1115, i64 1
+ %tmp1117 = getelementptr inbounds float* %tmp1116, i64 1
+ %tmp1118 = getelementptr inbounds float* %tmp1117, i64 1
+ %tmp1119 = getelementptr inbounds float* %tmp1118, i64 1
+ %tmp1120 = getelementptr inbounds float* %tmp1119, i64 1
+ %tmp1121 = getelementptr inbounds float* %tmp1120, i64 1
+ %tmp1122 = getelementptr inbounds float* %tmp1121, i64 1
+ %tmp1123 = getelementptr inbounds float* %tmp1122, i64 1
+ %tmp1124 = getelementptr inbounds float* %tmp1123, i64 1
+ %tmp1125 = getelementptr inbounds float* %tmp1124, i64 1
+ %tmp1126 = getelementptr inbounds float* %tmp1125, i64 1
+ %tmp1127 = getelementptr inbounds float* %tmp1126, i64 1
+ %tmp1128 = getelementptr inbounds float* %tmp1127, i64 1
+ %tmp1129 = getelementptr inbounds float* %tmp1128, i64 1
+ %tmp1130 = getelementptr inbounds float* %tmp1129, i64 1
+ %tmp1131 = getelementptr inbounds float* %tmp1130, i64 1
+ %tmp1132 = getelementptr inbounds float* %tmp1131, i64 1
+ %tmp1133 = getelementptr inbounds float* %tmp1132, i64 1
+ %tmp1134 = getelementptr inbounds float* %tmp1133, i64 1
+ %tmp1135 = getelementptr inbounds float* %tmp1134, i64 1
+ %tmp1136 = getelementptr inbounds float* %tmp1135, i64 1
+ %tmp1137 = getelementptr inbounds float* %tmp1136, i64 1
+ %tmp1138 = getelementptr inbounds float* %tmp1137, i64 1
+ %tmp1139 = getelementptr inbounds float* %tmp1138, i64 1
+ %tmp1140 = getelementptr inbounds float* %tmp1139, i64 1
+ %tmp1141 = getelementptr inbounds float* %tmp1140, i64 1
+ %tmp1142 = getelementptr inbounds float* %tmp1141, i64 1
+ %tmp1143 = getelementptr inbounds float* %tmp1142, i64 1
+ %tmp1144 = getelementptr inbounds float* %tmp1143, i64 1
+ %tmp1145 = getelementptr inbounds float* %tmp1144, i64 1
+ %tmp1146 = getelementptr inbounds float* %tmp1145, i64 1
+ %tmp1147 = getelementptr inbounds float* %tmp1146, i64 1
+ %tmp1148 = getelementptr inbounds float* %tmp1147, i64 1
+ %tmp1149 = getelementptr inbounds float* %tmp1148, i64 1
+ %tmp1150 = getelementptr inbounds float* %tmp1149, i64 1
+ %tmp1151 = getelementptr inbounds float* %tmp1150, i64 1
+ %tmp1152 = getelementptr inbounds float* %tmp1151, i64 1
+ %tmp1153 = getelementptr inbounds float* %tmp1152, i64 1
+ %tmp1154 = getelementptr inbounds float* %tmp1153, i64 1
+ %tmp1155 = getelementptr inbounds float* %tmp1154, i64 1
+ %tmp1156 = getelementptr inbounds float* %tmp1155, i64 1
+ %tmp1157 = getelementptr inbounds float* %tmp1156, i64 1
+ %tmp1158 = getelementptr inbounds float* %tmp1157, i64 1
+ %tmp1159 = getelementptr inbounds float* %tmp1158, i64 1
+ %tmp1160 = getelementptr inbounds float* %tmp1159, i64 1
+ %tmp1161 = getelementptr inbounds float* %tmp1160, i64 1
+ %tmp1162 = getelementptr inbounds float* %tmp1161, i64 1
+ %tmp1163 = getelementptr inbounds float* %tmp1162, i64 1
+ %tmp1164 = getelementptr inbounds float* %tmp1163, i64 1
+ %tmp1165 = getelementptr inbounds float* %tmp1164, i64 1
+ %tmp1166 = getelementptr inbounds float* %tmp1165, i64 1
+ %tmp1167 = getelementptr inbounds float* %tmp1166, i64 1
+ %tmp1168 = getelementptr inbounds float* %tmp1167, i64 1
+ %tmp1169 = getelementptr inbounds float* %tmp1168, i64 1
+ %tmp1170 = getelementptr inbounds float* %tmp1169, i64 1
+ %tmp1171 = getelementptr inbounds float* %tmp1170, i64 1
+ %tmp1172 = getelementptr inbounds float* %tmp1171, i64 1
+ %tmp1173 = getelementptr inbounds float* %tmp1172, i64 1
+ %tmp1174 = getelementptr inbounds float* %tmp1173, i64 1
+ %tmp1175 = getelementptr inbounds float* %tmp1174, i64 1
+ %tmp1176 = getelementptr inbounds float* %tmp1175, i64 1
+ %tmp1177 = getelementptr inbounds float* %tmp1176, i64 1
+ %tmp1178 = getelementptr inbounds float* %tmp1177, i64 1
+ %tmp1179 = getelementptr inbounds float* %tmp1178, i64 1
+ %tmp1180 = getelementptr inbounds float* %tmp1179, i64 1
+ %tmp1181 = getelementptr inbounds float* %tmp1180, i64 1
+ %tmp1182 = getelementptr inbounds float* %tmp1181, i64 1
+ %tmp1183 = getelementptr inbounds float* %tmp1182, i64 1
+ %tmp1184 = getelementptr inbounds float* %tmp1183, i64 1
+ %tmp1185 = getelementptr inbounds float* %tmp1184, i64 1
+ %tmp1186 = getelementptr inbounds float* %tmp1185, i64 1
+ %tmp1187 = getelementptr inbounds float* %tmp1186, i64 1
+ %tmp1188 = getelementptr inbounds float* %tmp1187, i64 1
+ %tmp1189 = getelementptr inbounds float* %tmp1188, i64 1
+ %tmp1190 = getelementptr inbounds float* %tmp1189, i64 1
+ %tmp1191 = getelementptr inbounds float* %tmp1190, i64 1
+ %tmp1192 = getelementptr inbounds float* %tmp1191, i64 1
+ %tmp1193 = getelementptr inbounds float* %tmp1192, i64 1
+ %tmp1194 = getelementptr inbounds float* %tmp1193, i64 1
+ %tmp1195 = getelementptr inbounds float* %tmp1194, i64 1
+ %tmp1196 = getelementptr inbounds float* %tmp1195, i64 1
+ %tmp1197 = getelementptr inbounds float* %tmp1196, i64 1
+ %tmp1198 = getelementptr inbounds float* %tmp1197, i64 1
+ %tmp1199 = getelementptr inbounds float* %tmp1198, i64 1
+ %tmp1200 = getelementptr inbounds float* %tmp1199, i64 1
+ %tmp1201 = getelementptr inbounds float* %tmp1200, i64 1
+ %tmp1202 = getelementptr inbounds float* %tmp1201, i64 1
+ %tmp1203 = getelementptr inbounds float* %tmp1202, i64 1
+ %tmp1204 = getelementptr inbounds float* %tmp1203, i64 1
+ %tmp1205 = getelementptr inbounds float* %tmp1204, i64 1
+ %tmp1206 = getelementptr inbounds float* %tmp1205, i64 1
+ %tmp1207 = getelementptr inbounds float* %tmp1206, i64 1
+ %tmp1208 = getelementptr inbounds float* %tmp1207, i64 1
+ %tmp1209 = getelementptr inbounds float* %tmp1208, i64 1
+ %tmp1210 = getelementptr inbounds float* %tmp1209, i64 1
+ %tmp1211 = getelementptr inbounds float* %tmp1210, i64 1
+ %tmp1212 = getelementptr inbounds float* %tmp1211, i64 1
+ %tmp1213 = getelementptr inbounds float* %tmp1212, i64 1
+ %tmp1214 = getelementptr inbounds float* %tmp1213, i64 1
+ %tmp1215 = getelementptr inbounds float* %tmp1214, i64 1
+ %tmp1216 = getelementptr inbounds float* %tmp1215, i64 1
+ %tmp1217 = getelementptr inbounds float* %tmp1216, i64 1
+ %tmp1218 = getelementptr inbounds float* %tmp1217, i64 1
+ %tmp1219 = getelementptr inbounds float* %tmp1218, i64 1
+ %tmp1220 = getelementptr inbounds float* %tmp1219, i64 1
+ %tmp1221 = getelementptr inbounds float* %tmp1220, i64 1
+ %tmp1222 = getelementptr inbounds float* %tmp1221, i64 1
+ %tmp1223 = getelementptr inbounds float* %tmp1222, i64 1
+ %tmp1224 = getelementptr inbounds float* %tmp1223, i64 1
+ %tmp1225 = getelementptr inbounds float* %tmp1224, i64 1
+ %tmp1226 = getelementptr inbounds float* %tmp1225, i64 1
+ %tmp1227 = getelementptr inbounds float* %tmp1226, i64 1
+ %tmp1228 = getelementptr inbounds float* %tmp1227, i64 1
+ %tmp1229 = getelementptr inbounds float* %tmp1228, i64 1
+ %tmp1230 = getelementptr inbounds float* %tmp1229, i64 1
+ %tmp1231 = getelementptr inbounds float* %tmp1230, i64 1
+ %tmp1232 = getelementptr inbounds float* %tmp1231, i64 1
+ %tmp1233 = getelementptr inbounds float* %tmp1232, i64 1
+ %tmp1234 = getelementptr inbounds float* %tmp1233, i64 1
+ %tmp1235 = getelementptr inbounds float* %tmp1234, i64 1
+ %tmp1236 = getelementptr inbounds float* %tmp1235, i64 1
+ %tmp1237 = getelementptr inbounds float* %tmp1236, i64 1
+ %tmp1238 = getelementptr inbounds float* %tmp1237, i64 1
+ %tmp1239 = getelementptr inbounds float* %tmp1238, i64 1
+ %tmp1240 = getelementptr inbounds float* %tmp1239, i64 1
+ %tmp1241 = getelementptr inbounds float* %tmp1240, i64 1
+ %tmp1242 = getelementptr inbounds float* %tmp1241, i64 1
+ %tmp1243 = getelementptr inbounds float* %tmp1242, i64 1
+ %tmp1244 = getelementptr inbounds float* %tmp1243, i64 1
+ %tmp1245 = getelementptr inbounds float* %tmp1244, i64 1
+ %tmp1246 = getelementptr inbounds float* %tmp1245, i64 1
+ %tmp1247 = getelementptr inbounds float* %tmp1246, i64 1
+ %tmp1248 = getelementptr inbounds float* %tmp1247, i64 1
+ %tmp1249 = getelementptr inbounds float* %tmp1248, i64 1
+ %tmp1250 = getelementptr inbounds float* %tmp1249, i64 1
+ %tmp1251 = getelementptr inbounds float* %tmp1250, i64 1
+ %tmp1252 = getelementptr inbounds float* %tmp1251, i64 1
+ %tmp1253 = getelementptr inbounds float* %tmp1252, i64 1
+ %tmp1254 = getelementptr inbounds float* %tmp1253, i64 1
+ %tmp1255 = getelementptr inbounds float* %tmp1254, i64 1
+ %tmp1256 = getelementptr inbounds float* %tmp1255, i64 1
+ %tmp1257 = getelementptr inbounds float* %tmp1256, i64 1
+ %tmp1258 = getelementptr inbounds float* %tmp1257, i64 1
+ %tmp1259 = getelementptr inbounds float* %tmp1258, i64 1
+ %tmp1260 = getelementptr inbounds float* %tmp1259, i64 1
+ %tmp1261 = getelementptr inbounds float* %tmp1260, i64 1
+ %tmp1262 = getelementptr inbounds float* %tmp1261, i64 1
+ %tmp1263 = getelementptr inbounds float* %tmp1262, i64 1
+ %tmp1264 = getelementptr inbounds float* %tmp1263, i64 1
+ %tmp1265 = getelementptr inbounds float* %tmp1264, i64 1
+ %tmp1266 = getelementptr inbounds float* %tmp1265, i64 1
+ %tmp1267 = getelementptr inbounds float* %tmp1266, i64 1
+ %tmp1268 = getelementptr inbounds float* %tmp1267, i64 1
+ %tmp1269 = getelementptr inbounds float* %tmp1268, i64 1
+ %tmp1270 = getelementptr inbounds float* %tmp1269, i64 1
+ %tmp1271 = getelementptr inbounds float* %tmp1270, i64 1
+ %tmp1272 = getelementptr inbounds float* %tmp1271, i64 1
+ %tmp1273 = getelementptr inbounds float* %tmp1272, i64 1
+ %tmp1274 = getelementptr inbounds float* %tmp1273, i64 1
+ %tmp1275 = getelementptr inbounds float* %tmp1274, i64 1
+ %tmp1276 = getelementptr inbounds float* %tmp1275, i64 1
+ %tmp1277 = getelementptr inbounds float* %tmp1276, i64 1
+ %tmp1278 = getelementptr inbounds float* %tmp1277, i64 1
+ %tmp1279 = getelementptr inbounds float* %tmp1278, i64 1
+ %tmp1280 = getelementptr inbounds float* %tmp1279, i64 1
+ %tmp1281 = getelementptr inbounds float* %tmp1280, i64 1
+ %tmp1282 = getelementptr inbounds float* %tmp1281, i64 1
+ %tmp1283 = getelementptr inbounds float* %tmp1282, i64 1
+ %tmp1284 = getelementptr inbounds float* %tmp1283, i64 1
+ %tmp1285 = getelementptr inbounds float* %tmp1284, i64 1
+ %tmp1286 = getelementptr inbounds float* %tmp1285, i64 1
+ %tmp1287 = getelementptr inbounds float* %tmp1286, i64 1
+ %tmp1288 = getelementptr inbounds float* %tmp1287, i64 1
+ %tmp1289 = getelementptr inbounds float* %tmp1288, i64 1
+ %tmp1290 = getelementptr inbounds float* %tmp1289, i64 1
+ %tmp1291 = getelementptr inbounds float* %tmp1290, i64 1
+ %tmp1292 = getelementptr inbounds float* %tmp1291, i64 1
+ %tmp1293 = getelementptr inbounds float* %tmp1292, i64 1
+ %tmp1294 = getelementptr inbounds float* %tmp1293, i64 1
+ %tmp1295 = getelementptr inbounds float* %tmp1294, i64 1
+ %tmp1296 = getelementptr inbounds float* %tmp1295, i64 1
+ %tmp1297 = getelementptr inbounds float* %tmp1296, i64 1
+ %tmp1298 = getelementptr inbounds float* %tmp1297, i64 1
+ %tmp1299 = getelementptr inbounds float* %tmp1298, i64 1
+ %tmp1300 = getelementptr inbounds float* %tmp1299, i64 1
+ %tmp1301 = getelementptr inbounds float* %tmp1300, i64 1
+ %tmp1302 = getelementptr inbounds float* %tmp1301, i64 1
+ %tmp1303 = getelementptr inbounds float* %tmp1302, i64 1
+ %tmp1304 = getelementptr inbounds float* %tmp1303, i64 1
+ %tmp1305 = getelementptr inbounds float* %tmp1304, i64 1
+ %tmp1306 = getelementptr inbounds float* %tmp1305, i64 1
+ %tmp1307 = getelementptr inbounds float* %tmp1306, i64 1
+ %tmp1308 = getelementptr inbounds float* %tmp1307, i64 1
+ %tmp1309 = getelementptr inbounds float* %tmp1308, i64 1
+ %tmp1310 = getelementptr inbounds float* %tmp1309, i64 1
+ %tmp1311 = getelementptr inbounds float* %tmp1310, i64 1
+ %tmp1312 = getelementptr inbounds float* %tmp1311, i64 1
+ %tmp1313 = getelementptr inbounds float* %tmp1312, i64 1
+ %tmp1314 = getelementptr inbounds float* %tmp1313, i64 1
+ %tmp1315 = getelementptr inbounds float* %tmp1314, i64 1
+ %tmp1316 = getelementptr inbounds float* %tmp1315, i64 1
+ %tmp1317 = getelementptr inbounds float* %tmp1316, i64 1
+ %tmp1318 = getelementptr inbounds float* %tmp1317, i64 1
+ %tmp1319 = getelementptr inbounds float* %tmp1318, i64 1
+ %tmp1320 = getelementptr inbounds float* %tmp1319, i64 1
+ %tmp1321 = getelementptr inbounds float* %tmp1320, i64 1
+ %tmp1322 = getelementptr inbounds float* %tmp1321, i64 1
+ %tmp1323 = getelementptr inbounds float* %tmp1322, i64 1
+ %tmp1324 = getelementptr inbounds float* %tmp1323, i64 1
+ %tmp1325 = getelementptr inbounds float* %tmp1324, i64 1
+ %tmp1326 = getelementptr inbounds float* %tmp1325, i64 1
+ %tmp1327 = getelementptr inbounds float* %tmp1326, i64 1
+ %tmp1328 = getelementptr inbounds float* %tmp1327, i64 1
+ %tmp1329 = getelementptr inbounds float* %tmp1328, i64 1
+ %tmp1330 = getelementptr inbounds float* %tmp1329, i64 1
+ %tmp1331 = getelementptr inbounds float* %tmp1330, i64 1
+ %tmp1332 = getelementptr inbounds float* %tmp1331, i64 1
+ %tmp1333 = getelementptr inbounds float* %tmp1332, i64 1
+ %tmp1334 = getelementptr inbounds float* %tmp1333, i64 1
+ %tmp1335 = getelementptr inbounds float* %tmp1334, i64 1
+ %tmp1336 = getelementptr inbounds float* %tmp1335, i64 1
+ %tmp1337 = getelementptr inbounds float* %tmp1336, i64 1
+ %tmp1338 = getelementptr inbounds float* %tmp1337, i64 1
+ %tmp1339 = getelementptr inbounds float* %tmp1338, i64 1
+ %tmp1340 = getelementptr inbounds float* %tmp1339, i64 1
+ %tmp1341 = getelementptr inbounds float* %tmp1340, i64 1
+ %tmp1342 = getelementptr inbounds float* %tmp1341, i64 1
+ %tmp1343 = getelementptr inbounds float* %tmp1342, i64 1
+ %tmp1344 = getelementptr inbounds float* %tmp1343, i64 1
+ %tmp1345 = getelementptr inbounds float* %tmp1344, i64 1
+ %tmp1346 = getelementptr inbounds float* %tmp1345, i64 1
+ %tmp1347 = getelementptr inbounds float* %tmp1346, i64 1
+ %tmp1348 = getelementptr inbounds float* %tmp1347, i64 1
+ %tmp1349 = getelementptr inbounds float* %tmp1348, i64 1
+ %tmp1350 = getelementptr inbounds float* %tmp1349, i64 1
+ %tmp1351 = getelementptr inbounds float* %tmp1350, i64 1
+ %tmp1352 = getelementptr inbounds float* %tmp1351, i64 1
+ %tmp1353 = getelementptr inbounds float* %tmp1352, i64 1
+ %tmp1354 = getelementptr inbounds float* %tmp1353, i64 1
+ %tmp1355 = getelementptr inbounds float* %tmp1354, i64 1
+ %tmp1356 = getelementptr inbounds float* %tmp1355, i64 1
+ %tmp1357 = getelementptr inbounds float* %tmp1356, i64 1
+ %tmp1358 = getelementptr inbounds float* %tmp1357, i64 1
+ %tmp1359 = getelementptr inbounds float* %tmp1358, i64 1
+ %tmp1360 = getelementptr inbounds float* %tmp1359, i64 1
+ %tmp1361 = getelementptr inbounds float* %tmp1360, i64 1
+ %tmp1362 = getelementptr inbounds float* %tmp1361, i64 1
+ %tmp1363 = getelementptr inbounds float* %tmp1362, i64 1
+ %tmp1364 = getelementptr inbounds float* %tmp1363, i64 1
+ %tmp1365 = getelementptr inbounds float* %tmp1364, i64 1
+ %tmp1366 = getelementptr inbounds float* %tmp1365, i64 1
+ %tmp1367 = getelementptr inbounds float* %tmp1366, i64 1
+ %tmp1368 = getelementptr inbounds float* %tmp1367, i64 1
+ %tmp1369 = getelementptr inbounds float* %tmp1368, i64 1
+ %tmp1370 = getelementptr inbounds float* %tmp1369, i64 1
+ %tmp1371 = getelementptr inbounds float* %tmp1370, i64 1
+ %tmp1372 = getelementptr inbounds float* %tmp1371, i64 1
+ %tmp1373 = getelementptr inbounds float* %tmp1372, i64 1
+ %tmp1374 = getelementptr inbounds float* %tmp1373, i64 1
+ %tmp1375 = getelementptr inbounds float* %tmp1374, i64 1
+ %tmp1376 = getelementptr inbounds float* %tmp1375, i64 1
+ %tmp1377 = getelementptr inbounds float* %tmp1376, i64 1
+ %tmp1378 = getelementptr inbounds float* %tmp1377, i64 1
+ %tmp1379 = getelementptr inbounds float* %tmp1378, i64 1
+ %tmp1380 = getelementptr inbounds float* %tmp1379, i64 1
+ %tmp1381 = getelementptr inbounds float* %tmp1380, i64 1
+ %tmp1382 = getelementptr inbounds float* %tmp1381, i64 1
+ %tmp1383 = getelementptr inbounds float* %tmp1382, i64 1
+ %tmp1384 = getelementptr inbounds float* %tmp1383, i64 1
+ %tmp1385 = getelementptr inbounds float* %tmp1384, i64 1
+ %tmp1386 = getelementptr inbounds float* %tmp1385, i64 1
+ %tmp1387 = getelementptr inbounds float* %tmp1386, i64 1
+ %tmp1388 = getelementptr inbounds float* %tmp1387, i64 1
+ %tmp1389 = getelementptr inbounds float* %tmp1388, i64 1
+ %tmp1390 = getelementptr inbounds float* %tmp1389, i64 1
+ %tmp1391 = getelementptr inbounds float* %tmp1390, i64 1
+ %tmp1392 = getelementptr inbounds float* %tmp1391, i64 1
+ %tmp1393 = getelementptr inbounds float* %tmp1392, i64 1
+ %tmp1394 = getelementptr inbounds float* %tmp1393, i64 1
+ %tmp1395 = getelementptr inbounds float* %tmp1394, i64 1
+ %tmp1396 = getelementptr inbounds float* %tmp1395, i64 1
+ %tmp1397 = getelementptr inbounds float* %tmp1396, i64 1
+ %tmp1398 = getelementptr inbounds float* %tmp1397, i64 1
+ %tmp1399 = getelementptr inbounds float* %tmp1398, i64 1
+ %tmp1400 = getelementptr inbounds float* %tmp1399, i64 1
+ %tmp1401 = getelementptr inbounds float* %tmp1400, i64 1
+ %tmp1402 = getelementptr inbounds float* %tmp1401, i64 1
+ %tmp1403 = getelementptr inbounds float* %tmp1402, i64 1
+ %tmp1404 = getelementptr inbounds float* %tmp1403, i64 1
+ %tmp1405 = getelementptr inbounds float* %tmp1404, i64 1
+ %tmp1406 = getelementptr inbounds float* %tmp1405, i64 1
+ %tmp1407 = getelementptr inbounds float* %tmp1406, i64 1
+ %tmp1408 = getelementptr inbounds float* %tmp1407, i64 1
+ %tmp1409 = getelementptr inbounds float* %tmp1408, i64 1
+ %tmp1410 = getelementptr inbounds float* %tmp1409, i64 1
+ %tmp1411 = getelementptr inbounds float* %tmp1410, i64 1
+ %tmp1412 = getelementptr inbounds float* %tmp1411, i64 1
+ %tmp1413 = getelementptr inbounds float* %tmp1412, i64 1
+ %tmp1414 = getelementptr inbounds float* %tmp1413, i64 1
+ %tmp1415 = getelementptr inbounds float* %tmp1414, i64 1
+ %tmp1416 = getelementptr inbounds float* %tmp1415, i64 1
+ %tmp1417 = getelementptr inbounds float* %tmp1416, i64 1
+ %tmp1418 = getelementptr inbounds float* %tmp1417, i64 1
+ %tmp1419 = getelementptr inbounds float* %tmp1418, i64 1
+ %tmp1420 = getelementptr inbounds float* %tmp1419, i64 1
+ %tmp1421 = getelementptr inbounds float* %tmp1420, i64 1
+ %tmp1422 = getelementptr inbounds float* %tmp1421, i64 1
+ %tmp1423 = getelementptr inbounds float* %tmp1422, i64 1
+ %tmp1424 = getelementptr inbounds float* %tmp1423, i64 1
+ %tmp1425 = getelementptr inbounds float* %tmp1424, i64 1
+ %tmp1426 = getelementptr inbounds float* %tmp1425, i64 1
+ %tmp1427 = getelementptr inbounds float* %tmp1426, i64 1
+ %tmp1428 = getelementptr inbounds float* %tmp1427, i64 1
+ %tmp1429 = getelementptr inbounds float* %tmp1428, i64 1
+ %tmp1430 = getelementptr inbounds float* %tmp1429, i64 1
+ %tmp1431 = getelementptr inbounds float* %tmp1430, i64 1
+ %tmp1432 = getelementptr inbounds float* %tmp1431, i64 1
+ %tmp1433 = getelementptr inbounds float* %tmp1432, i64 1
+ %tmp1434 = getelementptr inbounds float* %tmp1433, i64 1
+ %tmp1435 = getelementptr inbounds float* %tmp1434, i64 1
+ %tmp1436 = getelementptr inbounds float* %tmp1435, i64 1
+ %tmp1437 = getelementptr inbounds float* %tmp1436, i64 1
+ %tmp1438 = getelementptr inbounds float* %tmp1437, i64 1
+ %tmp1439 = getelementptr inbounds float* %tmp1438, i64 1
+ %tmp1440 = getelementptr inbounds float* %tmp1439, i64 1
+ %tmp1441 = getelementptr inbounds float* %tmp1440, i64 1
+ %tmp1442 = getelementptr inbounds float* %tmp1441, i64 1
+ %tmp1443 = getelementptr inbounds float* %tmp1442, i64 1
+ %tmp1444 = getelementptr inbounds float* %tmp1443, i64 1
+ %tmp1445 = getelementptr inbounds float* %tmp1444, i64 1
+ %tmp1446 = getelementptr inbounds float* %tmp1445, i64 1
+ %tmp1447 = getelementptr inbounds float* %tmp1446, i64 1
+ %tmp1448 = getelementptr inbounds float* %tmp1447, i64 1
+ %tmp1449 = getelementptr inbounds float* %tmp1448, i64 1
+ %tmp1450 = getelementptr inbounds float* %tmp1449, i64 1
+ %tmp1451 = getelementptr inbounds float* %tmp1450, i64 1
+ %tmp1452 = getelementptr inbounds float* %tmp1451, i64 1
+ %tmp1453 = getelementptr inbounds float* %tmp1452, i64 1
+ %tmp1454 = getelementptr inbounds float* %tmp1453, i64 1
+ %tmp1455 = getelementptr inbounds float* %tmp1454, i64 1
+ %tmp1456 = getelementptr inbounds float* %tmp1455, i64 1
+ %tmp1457 = getelementptr inbounds float* %tmp1456, i64 1
+ %tmp1458 = getelementptr inbounds float* %tmp1457, i64 1
+ %tmp1459 = getelementptr inbounds float* %tmp1458, i64 1
+ %tmp1460 = getelementptr inbounds float* %tmp1459, i64 1
+ %tmp1461 = getelementptr inbounds float* %tmp1460, i64 1
+ %tmp1462 = getelementptr inbounds float* %tmp1461, i64 1
+ %tmp1463 = getelementptr inbounds float* %tmp1462, i64 1
+ %tmp1464 = getelementptr inbounds float* %tmp1463, i64 1
+ %tmp1465 = getelementptr inbounds float* %tmp1464, i64 1
+ %tmp1466 = getelementptr inbounds float* %tmp1465, i64 1
+ %tmp1467 = getelementptr inbounds float* %tmp1466, i64 1
+ %tmp1468 = getelementptr inbounds float* %tmp1467, i64 1
+ %tmp1469 = getelementptr inbounds float* %tmp1468, i64 1
+ %tmp1470 = getelementptr inbounds float* %tmp1469, i64 1
+ %tmp1471 = getelementptr inbounds float* %tmp1470, i64 1
+ %tmp1472 = getelementptr inbounds float* %tmp1471, i64 1
+ %tmp1473 = getelementptr inbounds float* %tmp1472, i64 1
+ %tmp1474 = getelementptr inbounds float* %tmp1473, i64 1
+ %tmp1475 = getelementptr inbounds float* %tmp1474, i64 1
+ %tmp1476 = getelementptr inbounds float* %tmp1475, i64 1
+ %tmp1477 = getelementptr inbounds float* %tmp1476, i64 1
+ %tmp1478 = getelementptr inbounds float* %tmp1477, i64 1
+ %tmp1479 = getelementptr inbounds float* %tmp1478, i64 1
+ %tmp1480 = getelementptr inbounds float* %tmp1479, i64 1
+ %tmp1481 = getelementptr inbounds float* %tmp1480, i64 1
+ %tmp1482 = getelementptr inbounds float* %tmp1481, i64 1
+ %tmp1483 = getelementptr inbounds float* %tmp1482, i64 1
+ %tmp1484 = getelementptr inbounds float* %tmp1483, i64 1
+ %tmp1485 = getelementptr inbounds float* %tmp1484, i64 1
+ %tmp1486 = getelementptr inbounds float* %tmp1485, i64 1
+ %tmp1487 = getelementptr inbounds float* %tmp1486, i64 1
+ %tmp1488 = getelementptr inbounds float* %tmp1487, i64 1
+ %tmp1489 = getelementptr inbounds float* %tmp1488, i64 1
+ %tmp1490 = getelementptr inbounds float* %tmp1489, i64 1
+ %tmp1491 = getelementptr inbounds float* %tmp1490, i64 1
+ %tmp1492 = getelementptr inbounds float* %tmp1491, i64 1
+ %tmp1493 = getelementptr inbounds float* %tmp1492, i64 1
+ %tmp1494 = getelementptr inbounds float* %tmp1493, i64 1
+ %tmp1495 = getelementptr inbounds float* %tmp1494, i64 1
+ %tmp1496 = getelementptr inbounds float* %tmp1495, i64 1
+ %tmp1497 = getelementptr inbounds float* %tmp1496, i64 1
+ %tmp1498 = getelementptr inbounds float* %tmp1497, i64 1
+ %tmp1499 = getelementptr inbounds float* %tmp1498, i64 1
+ %tmp1500 = getelementptr inbounds float* %tmp1499, i64 1
+ %tmp1501 = getelementptr inbounds float* %tmp1500, i64 1
+ %tmp1502 = getelementptr inbounds float* %tmp1501, i64 1
+ %tmp1503 = getelementptr inbounds float* %tmp1502, i64 1
+ %tmp1504 = getelementptr inbounds float* %tmp1503, i64 1
+ %tmp1505 = getelementptr inbounds float* %tmp1504, i64 1
+ %tmp1506 = getelementptr inbounds float* %tmp1505, i64 1
+ %tmp1507 = getelementptr inbounds float* %tmp1506, i64 1
+ %tmp1508 = getelementptr inbounds float* %tmp1507, i64 1
+ %tmp1509 = getelementptr inbounds float* %tmp1508, i64 1
+ %tmp1510 = getelementptr inbounds float* %tmp1509, i64 1
+ %tmp1511 = getelementptr inbounds float* %tmp1510, i64 1
+ %tmp1512 = getelementptr inbounds float* %tmp1511, i64 1
+ %tmp1513 = getelementptr inbounds float* %tmp1512, i64 1
+ %tmp1514 = getelementptr inbounds float* %tmp1513, i64 1
+ %tmp1515 = getelementptr inbounds float* %tmp1514, i64 1
+ %tmp1516 = getelementptr inbounds float* %tmp1515, i64 1
+ %tmp1517 = getelementptr inbounds float* %tmp1516, i64 1
+ %tmp1518 = getelementptr inbounds float* %tmp1517, i64 1
+ %tmp1519 = getelementptr inbounds float* %tmp1518, i64 1
+ %tmp1520 = getelementptr inbounds float* %tmp1519, i64 1
+ %tmp1521 = getelementptr inbounds float* %tmp1520, i64 1
+ %tmp1522 = getelementptr inbounds float* %tmp1521, i64 1
+ %tmp1523 = getelementptr inbounds float* %tmp1522, i64 1
+ %tmp1524 = getelementptr inbounds float* %tmp1523, i64 1
+ %tmp1525 = getelementptr inbounds float* %tmp1524, i64 1
+ %tmp1526 = getelementptr inbounds float* %tmp1525, i64 1
+ %tmp1527 = getelementptr inbounds float* %tmp1526, i64 1
+ %tmp1528 = getelementptr inbounds float* %tmp1527, i64 1
+ %tmp1529 = getelementptr inbounds float* %tmp1528, i64 1
+ %tmp1530 = getelementptr inbounds float* %tmp1529, i64 1
+ %tmp1531 = getelementptr inbounds float* %tmp1530, i64 1
+ %tmp1532 = getelementptr inbounds float* %tmp1531, i64 1
+ %tmp1533 = getelementptr inbounds float* %tmp1532, i64 1
+ %tmp1534 = getelementptr inbounds float* %tmp1533, i64 1
+ %tmp1535 = getelementptr inbounds float* %tmp1534, i64 1
+ %tmp1536 = getelementptr inbounds float* %tmp1535, i64 1
+ %tmp1537 = getelementptr inbounds float* %tmp1536, i64 1
+ %tmp1538 = getelementptr inbounds float* %tmp1537, i64 1
+ %tmp1539 = getelementptr inbounds float* %tmp1538, i64 1
+ %tmp1540 = getelementptr inbounds float* %tmp1539, i64 1
+ %tmp1541 = getelementptr inbounds float* %tmp1540, i64 1
+ %tmp1542 = getelementptr inbounds float* %tmp1541, i64 1
+ %tmp1543 = getelementptr inbounds float* %tmp1542, i64 1
+ %tmp1544 = getelementptr inbounds float* %tmp1543, i64 1
+ %tmp1545 = getelementptr inbounds float* %tmp1544, i64 1
+ %tmp1546 = getelementptr inbounds float* %tmp1545, i64 1
+ %tmp1547 = getelementptr inbounds float* %tmp1546, i64 1
+ %tmp1548 = getelementptr inbounds float* %tmp1547, i64 1
+ %tmp1549 = getelementptr inbounds float* %tmp1548, i64 1
+ %tmp1550 = getelementptr inbounds float* %tmp1549, i64 1
+ %tmp1551 = getelementptr inbounds float* %tmp1550, i64 1
+ %tmp1552 = getelementptr inbounds float* %tmp1551, i64 1
+ %tmp1553 = getelementptr inbounds float* %tmp1552, i64 1
+ %tmp1554 = getelementptr inbounds float* %tmp1553, i64 1
+ %tmp1555 = getelementptr inbounds float* %tmp1554, i64 1
+ %tmp1556 = getelementptr inbounds float* %tmp1555, i64 1
+ %tmp1557 = getelementptr inbounds float* %tmp1556, i64 1
+ %tmp1558 = getelementptr inbounds float* %tmp1557, i64 1
+ %tmp1559 = getelementptr inbounds float* %tmp1558, i64 1
+ %tmp1560 = getelementptr inbounds float* %tmp1559, i64 1
+ %tmp1561 = getelementptr inbounds float* %tmp1560, i64 1
+ %tmp1562 = getelementptr inbounds float* %tmp1561, i64 1
+ %tmp1563 = getelementptr inbounds float* %tmp1562, i64 1
+ %tmp1564 = getelementptr inbounds float* %tmp1563, i64 1
+ %tmp1565 = getelementptr inbounds float* %tmp1564, i64 1
+ %tmp1566 = getelementptr inbounds float* %tmp1565, i64 1
+ %tmp1567 = getelementptr inbounds float* %tmp1566, i64 1
+ %tmp1568 = getelementptr inbounds float* %tmp1567, i64 1
+ %tmp1569 = getelementptr inbounds float* %tmp1568, i64 1
+ %tmp1570 = getelementptr inbounds float* %tmp1569, i64 1
+ %tmp1571 = getelementptr inbounds float* %tmp1570, i64 1
+ %tmp1572 = getelementptr inbounds float* %tmp1571, i64 1
+ %tmp1573 = getelementptr inbounds float* %tmp1572, i64 1
+ %tmp1574 = getelementptr inbounds float* %tmp1573, i64 1
+ %tmp1575 = getelementptr inbounds float* %tmp1574, i64 1
+ %tmp1576 = getelementptr inbounds float* %tmp1575, i64 1
+ %tmp1577 = getelementptr inbounds float* %tmp1576, i64 1
+ %tmp1578 = getelementptr inbounds float* %tmp1577, i64 1
+ %tmp1579 = getelementptr inbounds float* %tmp1578, i64 1
+ %tmp1580 = getelementptr inbounds float* %tmp1579, i64 1
+ %tmp1581 = getelementptr inbounds float* %tmp1580, i64 1
+ %tmp1582 = getelementptr inbounds float* %tmp1581, i64 1
+ %tmp1583 = getelementptr inbounds float* %tmp1582, i64 1
+ %tmp1584 = getelementptr inbounds float* %tmp1583, i64 1
+ %tmp1585 = getelementptr inbounds float* %tmp1584, i64 1
+ %tmp1586 = getelementptr inbounds float* %tmp1585, i64 1
+ %tmp1587 = getelementptr inbounds float* %tmp1586, i64 1
+ %tmp1588 = getelementptr inbounds float* %tmp1587, i64 1
+ %tmp1589 = getelementptr inbounds float* %tmp1588, i64 1
+ %tmp1590 = getelementptr inbounds float* %tmp1589, i64 1
+ %tmp1591 = getelementptr inbounds float* %tmp1590, i64 1
+ %tmp1592 = getelementptr inbounds float* %tmp1591, i64 1
+ %tmp1593 = getelementptr inbounds float* %tmp1592, i64 1
+ %tmp1594 = getelementptr inbounds float* %tmp1593, i64 1
+ %tmp1595 = getelementptr inbounds float* %tmp1594, i64 1
+ %tmp1596 = getelementptr inbounds float* %tmp1595, i64 1
+ %tmp1597 = getelementptr inbounds float* %tmp1596, i64 1
+ %tmp1598 = getelementptr inbounds float* %tmp1597, i64 1
+ %tmp1599 = getelementptr inbounds float* %tmp1598, i64 1
+ %tmp1600 = getelementptr inbounds float* %tmp1599, i64 1
+ %tmp1601 = getelementptr inbounds float* %tmp1600, i64 1
+ %tmp1602 = getelementptr inbounds float* %tmp1601, i64 1
+ %tmp1603 = getelementptr inbounds float* %tmp1602, i64 1
+ %tmp1604 = getelementptr inbounds float* %tmp1603, i64 1
+ %tmp1605 = getelementptr inbounds float* %tmp1604, i64 1
+ %tmp1606 = getelementptr inbounds float* %tmp1605, i64 1
+ %tmp1607 = getelementptr inbounds float* %tmp1606, i64 1
+ %tmp1608 = getelementptr inbounds float* %tmp1607, i64 1
+ %tmp1609 = getelementptr inbounds float* %tmp1608, i64 1
+ %tmp1610 = getelementptr inbounds float* %tmp1609, i64 1
+ %tmp1611 = getelementptr inbounds float* %tmp1610, i64 1
+ %tmp1612 = getelementptr inbounds float* %tmp1611, i64 1
+ %tmp1613 = getelementptr inbounds float* %tmp1612, i64 1
+ %tmp1614 = getelementptr inbounds float* %tmp1613, i64 1
+ %tmp1615 = getelementptr inbounds float* %tmp1614, i64 1
+ %tmp1616 = getelementptr inbounds float* %tmp1615, i64 1
+ %tmp1617 = getelementptr inbounds float* %tmp1616, i64 1
+ %tmp1618 = getelementptr inbounds float* %tmp1617, i64 1
+ %tmp1619 = getelementptr inbounds float* %tmp1618, i64 1
+ %tmp1620 = getelementptr inbounds float* %tmp1619, i64 1
+ %tmp1621 = getelementptr inbounds float* %tmp1620, i64 1
+ %tmp1622 = getelementptr inbounds float* %tmp1621, i64 1
+ %tmp1623 = getelementptr inbounds float* %tmp1622, i64 1
+ %tmp1624 = getelementptr inbounds float* %tmp1623, i64 1
+ %tmp1625 = getelementptr inbounds float* %tmp1624, i64 1
+ %tmp1626 = getelementptr inbounds float* %tmp1625, i64 1
+ %tmp1627 = getelementptr inbounds float* %tmp1626, i64 1
+ %tmp1628 = getelementptr inbounds float* %tmp1627, i64 1
+ %tmp1629 = getelementptr inbounds float* %tmp1628, i64 1
+ %tmp1630 = getelementptr inbounds float* %tmp1629, i64 1
+ %tmp1631 = getelementptr inbounds float* %tmp1630, i64 1
+ %tmp1632 = getelementptr inbounds float* %tmp1631, i64 1
+ %tmp1633 = getelementptr inbounds float* %tmp1632, i64 1
+ %tmp1634 = getelementptr inbounds float* %tmp1633, i64 1
+ %tmp1635 = getelementptr inbounds float* %tmp1634, i64 1
+ %tmp1636 = getelementptr inbounds float* %tmp1635, i64 1
+ %tmp1637 = getelementptr inbounds float* %tmp1636, i64 1
+ %tmp1638 = getelementptr inbounds float* %tmp1637, i64 1
+ %tmp1639 = getelementptr inbounds float* %tmp1638, i64 1
+ %tmp1640 = getelementptr inbounds float* %tmp1639, i64 1
+ %tmp1641 = getelementptr inbounds float* %tmp1640, i64 1
+ %tmp1642 = getelementptr inbounds float* %tmp1641, i64 1
+ %tmp1643 = getelementptr inbounds float* %tmp1642, i64 1
+ %tmp1644 = getelementptr inbounds float* %tmp1643, i64 1
+ %tmp1645 = getelementptr inbounds float* %tmp1644, i64 1
+ %tmp1646 = getelementptr inbounds float* %tmp1645, i64 1
+ %tmp1647 = getelementptr inbounds float* %tmp1646, i64 1
+ %tmp1648 = getelementptr inbounds float* %tmp1647, i64 1
+ %tmp1649 = getelementptr inbounds float* %tmp1648, i64 1
+ %tmp1650 = getelementptr inbounds float* %tmp1649, i64 1
+ %tmp1651 = getelementptr inbounds float* %tmp1650, i64 1
+ %tmp1652 = getelementptr inbounds float* %tmp1651, i64 1
+ %tmp1653 = getelementptr inbounds float* %tmp1652, i64 1
+ %tmp1654 = getelementptr inbounds float* %tmp1653, i64 1
+ %tmp1655 = getelementptr inbounds float* %tmp1654, i64 1
+ %tmp1656 = getelementptr inbounds float* %tmp1655, i64 1
+ %tmp1657 = getelementptr inbounds float* %tmp1656, i64 1
+ %tmp1658 = getelementptr inbounds float* %tmp1657, i64 1
+ %tmp1659 = getelementptr inbounds float* %tmp1658, i64 1
+ %tmp1660 = getelementptr inbounds float* %tmp1659, i64 1
+ %tmp1661 = getelementptr inbounds float* %tmp1660, i64 1
+ %tmp1662 = getelementptr inbounds float* %tmp1661, i64 1
+ %tmp1663 = getelementptr inbounds float* %tmp1662, i64 1
+ %tmp1664 = getelementptr inbounds float* %tmp1663, i64 1
+ %tmp1665 = getelementptr inbounds float* %tmp1664, i64 1
+ %tmp1666 = getelementptr inbounds float* %tmp1665, i64 1
+ %tmp1667 = getelementptr inbounds float* %tmp1666, i64 1
+ %tmp1668 = getelementptr inbounds float* %tmp1667, i64 1
+ %tmp1669 = getelementptr inbounds float* %tmp1668, i64 1
+ %tmp1670 = getelementptr inbounds float* %tmp1669, i64 1
+ %tmp1671 = getelementptr inbounds float* %tmp1670, i64 1
+ %tmp1672 = getelementptr inbounds float* %tmp1671, i64 1
+ %tmp1673 = getelementptr inbounds float* %tmp1672, i64 1
+ %tmp1674 = getelementptr inbounds float* %tmp1673, i64 1
+ %tmp1675 = getelementptr inbounds float* %tmp1674, i64 1
+ %tmp1676 = getelementptr inbounds float* %tmp1675, i64 1
+ %tmp1677 = getelementptr inbounds float* %tmp1676, i64 1
+ %tmp1678 = getelementptr inbounds float* %tmp1677, i64 1
+ %tmp1679 = getelementptr inbounds float* %tmp1678, i64 1
+ %tmp1680 = getelementptr inbounds float* %tmp1679, i64 1
+ %tmp1681 = getelementptr inbounds float* %tmp1680, i64 1
+ %tmp1682 = getelementptr inbounds float* %tmp1681, i64 1
+ %tmp1683 = getelementptr inbounds float* %tmp1682, i64 1
+ %tmp1684 = getelementptr inbounds float* %tmp1683, i64 1
+ %tmp1685 = getelementptr inbounds float* %tmp1684, i64 1
+ %tmp1686 = getelementptr inbounds float* %tmp1685, i64 1
+ %tmp1687 = getelementptr inbounds float* %tmp1686, i64 1
+ %tmp1688 = getelementptr inbounds float* %tmp1687, i64 1
+ %tmp1689 = getelementptr inbounds float* %tmp1688, i64 1
+ %tmp1690 = getelementptr inbounds float* %tmp1689, i64 1
+ %tmp1691 = getelementptr inbounds float* %tmp1690, i64 1
+ %tmp1692 = getelementptr inbounds float* %tmp1691, i64 1
+ %tmp1693 = getelementptr inbounds float* %tmp1692, i64 1
+ %tmp1694 = getelementptr inbounds float* %tmp1693, i64 1
+ %tmp1695 = getelementptr inbounds float* %tmp1694, i64 1
+ %tmp1696 = getelementptr inbounds float* %tmp1695, i64 1
+ %tmp1697 = getelementptr inbounds float* %tmp1696, i64 1
+ %tmp1698 = getelementptr inbounds float* %tmp1697, i64 1
+ %tmp1699 = getelementptr inbounds float* %tmp1698, i64 1
+ %tmp1700 = getelementptr inbounds float* %tmp1699, i64 1
+ %tmp1701 = getelementptr inbounds float* %tmp1700, i64 1
+ %tmp1702 = getelementptr inbounds float* %tmp1701, i64 1
+ %tmp1703 = getelementptr inbounds float* %tmp1702, i64 1
+ %tmp1704 = getelementptr inbounds float* %tmp1703, i64 1
+ %tmp1705 = getelementptr inbounds float* %tmp1704, i64 1
+ %tmp1706 = getelementptr inbounds float* %tmp1705, i64 1
+ %tmp1707 = getelementptr inbounds float* %tmp1706, i64 1
+ %tmp1708 = getelementptr inbounds float* %tmp1707, i64 1
+ %tmp1709 = getelementptr inbounds float* %tmp1708, i64 1
+ %tmp1710 = getelementptr inbounds float* %tmp1709, i64 1
+ %tmp1711 = getelementptr inbounds float* %tmp1710, i64 1
+ %tmp1712 = getelementptr inbounds float* %tmp1711, i64 1
+ %tmp1713 = getelementptr inbounds float* %tmp1712, i64 1
+ %tmp1714 = getelementptr inbounds float* %tmp1713, i64 1
+ %tmp1715 = getelementptr inbounds float* %tmp1714, i64 1
+ %tmp1716 = getelementptr inbounds float* %tmp1715, i64 1
+ %tmp1717 = getelementptr inbounds float* %tmp1716, i64 1
+ %tmp1718 = getelementptr inbounds float* %tmp1717, i64 1
+ %tmp1719 = getelementptr inbounds float* %tmp1718, i64 1
+ %tmp1720 = getelementptr inbounds float* %tmp1719, i64 1
+ %tmp1721 = getelementptr inbounds float* %tmp1720, i64 1
+ %tmp1722 = getelementptr inbounds float* %tmp1721, i64 1
+ %tmp1723 = getelementptr inbounds float* %tmp1722, i64 1
+ %tmp1724 = getelementptr inbounds float* %tmp1723, i64 1
+ %tmp1725 = getelementptr inbounds float* %tmp1724, i64 1
+ %tmp1726 = getelementptr inbounds float* %tmp1725, i64 1
+ %tmp1727 = getelementptr inbounds float* %tmp1726, i64 1
+ %tmp1728 = getelementptr inbounds float* %tmp1727, i64 1
+ %tmp1729 = getelementptr inbounds float* %tmp1728, i64 1
+ %tmp1730 = getelementptr inbounds float* %tmp1729, i64 1
+ %tmp1731 = getelementptr inbounds float* %tmp1730, i64 1
+ %tmp1732 = getelementptr inbounds float* %tmp1731, i64 1
+ %tmp1733 = getelementptr inbounds float* %tmp1732, i64 1
+ %tmp1734 = getelementptr inbounds float* %tmp1733, i64 1
+ %tmp1735 = getelementptr inbounds float* %tmp1734, i64 1
+ %tmp1736 = getelementptr inbounds float* %tmp1735, i64 1
+ %tmp1737 = getelementptr inbounds float* %tmp1736, i64 1
+ %tmp1738 = getelementptr inbounds float* %tmp1737, i64 1
+ %tmp1739 = getelementptr inbounds float* %tmp1738, i64 1
+ %tmp1740 = getelementptr inbounds float* %tmp1739, i64 1
+ %tmp1741 = getelementptr inbounds float* %tmp1740, i64 1
+ %tmp1742 = getelementptr inbounds float* %tmp1741, i64 1
+ %tmp1743 = getelementptr inbounds float* %tmp1742, i64 1
+ %tmp1744 = getelementptr inbounds float* %tmp1743, i64 1
+ %tmp1745 = getelementptr inbounds float* %tmp1744, i64 1
+ %tmp1746 = getelementptr inbounds float* %tmp1745, i64 1
+ %tmp1747 = getelementptr inbounds float* %tmp1746, i64 1
+ %tmp1748 = getelementptr inbounds float* %tmp1747, i64 1
+ %tmp1749 = getelementptr inbounds float* %tmp1748, i64 1
+ %tmp1750 = getelementptr inbounds float* %tmp1749, i64 1
+ %tmp1751 = getelementptr inbounds float* %tmp1750, i64 1
+ %tmp1752 = getelementptr inbounds float* %tmp1751, i64 1
+ %tmp1753 = getelementptr inbounds float* %tmp1752, i64 1
+ %tmp1754 = getelementptr inbounds float* %tmp1753, i64 1
+ %tmp1755 = getelementptr inbounds float* %tmp1754, i64 1
+ %tmp1756 = getelementptr inbounds float* %tmp1755, i64 1
+ %tmp1757 = getelementptr inbounds float* %tmp1756, i64 1
+ %tmp1758 = getelementptr inbounds float* %tmp1757, i64 1
+ %tmp1759 = getelementptr inbounds float* %tmp1758, i64 1
+ %tmp1760 = getelementptr inbounds float* %tmp1759, i64 1
+ %tmp1761 = getelementptr inbounds float* %tmp1760, i64 1
+ %tmp1762 = getelementptr inbounds float* %tmp1761, i64 1
+ %tmp1763 = getelementptr inbounds float* %tmp1762, i64 1
+ %tmp1764 = getelementptr inbounds float* %tmp1763, i64 1
+ %tmp1765 = getelementptr inbounds float* %tmp1764, i64 1
+ %tmp1766 = getelementptr inbounds float* %tmp1765, i64 1
+ %tmp1767 = getelementptr inbounds float* %tmp1766, i64 1
+ %tmp1768 = getelementptr inbounds float* %tmp1767, i64 1
+ %tmp1769 = getelementptr inbounds float* %tmp1768, i64 1
+ %tmp1770 = getelementptr inbounds float* %tmp1769, i64 1
+ %tmp1771 = getelementptr inbounds float* %tmp1770, i64 1
+ %tmp1772 = getelementptr inbounds float* %tmp1771, i64 1
+ %tmp1773 = getelementptr inbounds float* %tmp1772, i64 1
+ %tmp1774 = getelementptr inbounds float* %tmp1773, i64 1
+ %tmp1775 = getelementptr inbounds float* %tmp1774, i64 1
+ %tmp1776 = getelementptr inbounds float* %tmp1775, i64 1
+ %tmp1777 = getelementptr inbounds float* %tmp1776, i64 1
+ %tmp1778 = getelementptr inbounds float* %tmp1777, i64 1
+ %tmp1779 = getelementptr inbounds float* %tmp1778, i64 1
+ %tmp1780 = getelementptr inbounds float* %tmp1779, i64 1
+ %tmp1781 = getelementptr inbounds float* %tmp1780, i64 1
+ %tmp1782 = getelementptr inbounds float* %tmp1781, i64 1
+ %tmp1783 = getelementptr inbounds float* %tmp1782, i64 1
+ %tmp1784 = getelementptr inbounds float* %tmp1783, i64 1
+ %tmp1785 = getelementptr inbounds float* %tmp1784, i64 1
+ %tmp1786 = getelementptr inbounds float* %tmp1785, i64 1
+ %tmp1787 = getelementptr inbounds float* %tmp1786, i64 1
+ %tmp1788 = getelementptr inbounds float* %tmp1787, i64 1
+ %tmp1789 = getelementptr inbounds float* %tmp1788, i64 1
+ %tmp1790 = getelementptr inbounds float* %tmp1789, i64 1
+ %tmp1791 = getelementptr inbounds float* %tmp1790, i64 1
+ %tmp1792 = getelementptr inbounds float* %tmp1791, i64 1
+ %tmp1793 = getelementptr inbounds float* %tmp1792, i64 1
+ %tmp1794 = getelementptr inbounds float* %tmp1793, i64 1
+ %tmp1795 = getelementptr inbounds float* %tmp1794, i64 1
+ %tmp1796 = getelementptr inbounds float* %tmp1795, i64 1
+ %tmp1797 = getelementptr inbounds float* %tmp1796, i64 1
+ %tmp1798 = getelementptr inbounds float* %tmp1797, i64 1
+ %tmp1799 = getelementptr inbounds float* %tmp1798, i64 1
+ %tmp1800 = getelementptr inbounds float* %tmp1799, i64 1
+ %tmp1801 = getelementptr inbounds float* %tmp1800, i64 1
+ %tmp1802 = getelementptr inbounds float* %tmp1801, i64 1
+ %tmp1803 = getelementptr inbounds float* %tmp1802, i64 1
+ %tmp1804 = getelementptr inbounds float* %tmp1803, i64 1
+ %tmp1805 = getelementptr inbounds float* %tmp1804, i64 1
+ %tmp1806 = getelementptr inbounds float* %tmp1805, i64 1
+ %tmp1807 = getelementptr inbounds float* %tmp1806, i64 1
+ %tmp1808 = getelementptr inbounds float* %tmp1807, i64 1
+ %tmp1809 = getelementptr inbounds float* %tmp1808, i64 1
+ %tmp1810 = getelementptr inbounds float* %tmp1809, i64 1
+ %tmp1811 = getelementptr inbounds float* %tmp1810, i64 1
+ %tmp1812 = getelementptr inbounds float* %tmp1811, i64 1
+ %tmp1813 = getelementptr inbounds float* %tmp1812, i64 1
+ %tmp1814 = getelementptr inbounds float* %tmp1813, i64 1
+ %tmp1815 = getelementptr inbounds float* %tmp1814, i64 1
+ %tmp1816 = getelementptr inbounds float* %tmp1815, i64 1
+ %tmp1817 = getelementptr inbounds float* %tmp1816, i64 1
+ %tmp1818 = getelementptr inbounds float* %tmp1817, i64 1
+ %tmp1819 = getelementptr inbounds float* %tmp1818, i64 1
+ %tmp1820 = getelementptr inbounds float* %tmp1819, i64 1
+ %tmp1821 = getelementptr inbounds float* %tmp1820, i64 1
+ %tmp1822 = getelementptr inbounds float* %tmp1821, i64 1
+ %tmp1823 = getelementptr inbounds float* %tmp1822, i64 1
+ %tmp1824 = getelementptr inbounds float* %tmp1823, i64 1
+ %tmp1825 = getelementptr inbounds float* %tmp1824, i64 1
+ %tmp1826 = getelementptr inbounds float* %tmp1825, i64 1
+ %tmp1827 = getelementptr inbounds float* %tmp1826, i64 1
+ %tmp1828 = getelementptr inbounds float* %tmp1827, i64 1
+ %tmp1829 = getelementptr inbounds float* %tmp1828, i64 1
+ %tmp1830 = getelementptr inbounds float* %tmp1829, i64 1
+ %tmp1831 = getelementptr inbounds float* %tmp1830, i64 1
+ %tmp1832 = getelementptr inbounds float* %tmp1831, i64 1
+ %tmp1833 = getelementptr inbounds float* %tmp1832, i64 1
+ %tmp1834 = getelementptr inbounds float* %tmp1833, i64 1
+ %tmp1835 = getelementptr inbounds float* %tmp1834, i64 1
+ %tmp1836 = getelementptr inbounds float* %tmp1835, i64 1
+ %tmp1837 = getelementptr inbounds float* %tmp1836, i64 1
+ %tmp1838 = getelementptr inbounds float* %tmp1837, i64 1
+ %tmp1839 = getelementptr inbounds float* %tmp1838, i64 1
+ %tmp1840 = getelementptr inbounds float* %tmp1839, i64 1
+ %tmp1841 = getelementptr inbounds float* %tmp1840, i64 1
+ %tmp1842 = getelementptr inbounds float* %tmp1841, i64 1
+ %tmp1843 = getelementptr inbounds float* %tmp1842, i64 1
+ %tmp1844 = getelementptr inbounds float* %tmp1843, i64 1
+ %tmp1845 = getelementptr inbounds float* %tmp1844, i64 1
+ %tmp1846 = getelementptr inbounds float* %tmp1845, i64 1
+ %tmp1847 = getelementptr inbounds float* %tmp1846, i64 1
+ %tmp1848 = getelementptr inbounds float* %tmp1847, i64 1
+ %tmp1849 = getelementptr inbounds float* %tmp1848, i64 1
+ %tmp1850 = getelementptr inbounds float* %tmp1849, i64 1
+ %tmp1851 = getelementptr inbounds float* %tmp1850, i64 1
+ %tmp1852 = getelementptr inbounds float* %tmp1851, i64 1
+ %tmp1853 = getelementptr inbounds float* %tmp1852, i64 1
+ %tmp1854 = getelementptr inbounds float* %tmp1853, i64 1
+ %tmp1855 = getelementptr inbounds float* %tmp1854, i64 1
+ %tmp1856 = getelementptr inbounds float* %tmp1855, i64 1
+ %tmp1857 = getelementptr inbounds float* %tmp1856, i64 1
+ %tmp1858 = getelementptr inbounds float* %tmp1857, i64 1
+ %tmp1859 = getelementptr inbounds float* %tmp1858, i64 1
+ %tmp1860 = getelementptr inbounds float* %tmp1859, i64 1
+ %tmp1861 = getelementptr inbounds float* %tmp1860, i64 1
+ %tmp1862 = getelementptr inbounds float* %tmp1861, i64 1
+ %tmp1863 = getelementptr inbounds float* %tmp1862, i64 1
+ %tmp1864 = getelementptr inbounds float* %tmp1863, i64 1
+ %tmp1865 = getelementptr inbounds float* %tmp1864, i64 1
+ %tmp1866 = getelementptr inbounds float* %tmp1865, i64 1
+ %tmp1867 = getelementptr inbounds float* %tmp1866, i64 1
+ %tmp1868 = getelementptr inbounds float* %tmp1867, i64 1
+ %tmp1869 = getelementptr inbounds float* %tmp1868, i64 1
+ %tmp1870 = getelementptr inbounds float* %tmp1869, i64 1
+ %tmp1871 = getelementptr inbounds float* %tmp1870, i64 1
+ %tmp1872 = getelementptr inbounds float* %tmp1871, i64 1
+ %tmp1873 = getelementptr inbounds float* %tmp1872, i64 1
+ %tmp1874 = getelementptr inbounds float* %tmp1873, i64 1
+ %tmp1875 = getelementptr inbounds float* %tmp1874, i64 1
+ %tmp1876 = getelementptr inbounds float* %tmp1875, i64 1
+ %tmp1877 = getelementptr inbounds float* %tmp1876, i64 1
+ %tmp1878 = getelementptr inbounds float* %tmp1877, i64 1
+ %tmp1879 = getelementptr inbounds float* %tmp1878, i64 1
+ %tmp1880 = getelementptr inbounds float* %tmp1879, i64 1
+ %tmp1881 = getelementptr inbounds float* %tmp1880, i64 1
+ %tmp1882 = getelementptr inbounds float* %tmp1881, i64 1
+ %tmp1883 = getelementptr inbounds float* %tmp1882, i64 1
+ %tmp1884 = getelementptr inbounds float* %tmp1883, i64 1
+ %tmp1885 = getelementptr inbounds float* %tmp1884, i64 1
+ %tmp1886 = getelementptr inbounds float* %tmp1885, i64 1
+ %tmp1887 = getelementptr inbounds float* %tmp1886, i64 1
+ %tmp1888 = getelementptr inbounds float* %tmp1887, i64 1
+ %tmp1889 = getelementptr inbounds float* %tmp1888, i64 1
+ %tmp1890 = getelementptr inbounds float* %tmp1889, i64 1
+ %tmp1891 = getelementptr inbounds float* %tmp1890, i64 1
+ %tmp1892 = getelementptr inbounds float* %tmp1891, i64 1
+ %tmp1893 = getelementptr inbounds float* %tmp1892, i64 1
+ %tmp1894 = getelementptr inbounds float* %tmp1893, i64 1
+ %tmp1895 = getelementptr inbounds float* %tmp1894, i64 1
+ %tmp1896 = getelementptr inbounds float* %tmp1895, i64 1
+ %tmp1897 = getelementptr inbounds float* %tmp1896, i64 1
+ %tmp1898 = getelementptr inbounds float* %tmp1897, i64 1
+ %tmp1899 = getelementptr inbounds float* %tmp1898, i64 1
+ %tmp1900 = getelementptr inbounds float* %tmp1899, i64 1
+ %tmp1901 = getelementptr inbounds float* %tmp1900, i64 1
+ %tmp1902 = getelementptr inbounds float* %tmp1901, i64 1
+ %tmp1903 = getelementptr inbounds float* %tmp1902, i64 1
+ %tmp1904 = getelementptr inbounds float* %tmp1903, i64 1
+ %tmp1905 = getelementptr inbounds float* %tmp1904, i64 1
+ %tmp1906 = getelementptr inbounds float* %tmp1905, i64 1
+ %tmp1907 = getelementptr inbounds float* %tmp1906, i64 1
+ %tmp1908 = getelementptr inbounds float* %tmp1907, i64 1
+ %tmp1909 = getelementptr inbounds float* %tmp1908, i64 1
+ %tmp1910 = getelementptr inbounds float* %tmp1909, i64 1
+ %tmp1911 = getelementptr inbounds float* %tmp1910, i64 1
+ %tmp1912 = getelementptr inbounds float* %tmp1911, i64 1
+ %tmp1913 = getelementptr inbounds float* %tmp1912, i64 1
+ %tmp1914 = getelementptr inbounds float* %tmp1913, i64 1
+ %tmp1915 = getelementptr inbounds float* %tmp1914, i64 1
+ %tmp1916 = getelementptr inbounds float* %tmp1915, i64 1
+ %tmp1917 = getelementptr inbounds float* %tmp1916, i64 1
+ %tmp1918 = getelementptr inbounds float* %tmp1917, i64 1
+ %tmp1919 = getelementptr inbounds float* %tmp1918, i64 1
+ %tmp1920 = getelementptr inbounds float* %tmp1919, i64 1
+ %tmp1921 = getelementptr inbounds float* %tmp1920, i64 1
+ %tmp1922 = getelementptr inbounds float* %tmp1921, i64 1
+ %tmp1923 = getelementptr inbounds float* %tmp1922, i64 1
+ %tmp1924 = getelementptr inbounds float* %tmp1923, i64 1
+ %tmp1925 = getelementptr inbounds float* %tmp1924, i64 1
+ %tmp1926 = getelementptr inbounds float* %tmp1925, i64 1
+ %tmp1927 = getelementptr inbounds float* %tmp1926, i64 1
+ %tmp1928 = getelementptr inbounds float* %tmp1927, i64 1
+ %tmp1929 = getelementptr inbounds float* %tmp1928, i64 1
+ %tmp1930 = getelementptr inbounds float* %tmp1929, i64 1
+ %tmp1931 = getelementptr inbounds float* %tmp1930, i64 1
+ %tmp1932 = getelementptr inbounds float* %tmp1931, i64 1
+ %tmp1933 = getelementptr inbounds float* %tmp1932, i64 1
+ %tmp1934 = getelementptr inbounds float* %tmp1933, i64 1
+ %tmp1935 = getelementptr inbounds float* %tmp1934, i64 1
+ %tmp1936 = getelementptr inbounds float* %tmp1935, i64 1
+ %tmp1937 = getelementptr inbounds float* %tmp1936, i64 1
+ %tmp1938 = getelementptr inbounds float* %tmp1937, i64 1
+ %tmp1939 = getelementptr inbounds float* %tmp1938, i64 1
+ %tmp1940 = getelementptr inbounds float* %tmp1939, i64 1
+ %tmp1941 = getelementptr inbounds float* %tmp1940, i64 1
+ %tmp1942 = getelementptr inbounds float* %tmp1941, i64 1
+ %tmp1943 = getelementptr inbounds float* %tmp1942, i64 1
+ %tmp1944 = getelementptr inbounds float* %tmp1943, i64 1
+ %tmp1945 = getelementptr inbounds float* %tmp1944, i64 1
+ %tmp1946 = getelementptr inbounds float* %tmp1945, i64 1
+ %tmp1947 = getelementptr inbounds float* %tmp1946, i64 1
+ %tmp1948 = getelementptr inbounds float* %tmp1947, i64 1
+ %tmp1949 = getelementptr inbounds float* %tmp1948, i64 1
+ %tmp1950 = getelementptr inbounds float* %tmp1949, i64 1
+ %tmp1951 = getelementptr inbounds float* %tmp1950, i64 1
+ %tmp1952 = getelementptr inbounds float* %tmp1951, i64 1
+ %tmp1953 = getelementptr inbounds float* %tmp1952, i64 1
+ %tmp1954 = getelementptr inbounds float* %tmp1953, i64 1
+ %tmp1955 = getelementptr inbounds float* %tmp1954, i64 1
+ %tmp1956 = getelementptr inbounds float* %tmp1955, i64 1
+ %tmp1957 = getelementptr inbounds float* %tmp1956, i64 1
+ %tmp1958 = getelementptr inbounds float* %tmp1957, i64 1
+ %tmp1959 = getelementptr inbounds float* %tmp1958, i64 1
+ %tmp1960 = getelementptr inbounds float* %tmp1959, i64 1
+ %tmp1961 = getelementptr inbounds float* %tmp1960, i64 1
+ %tmp1962 = getelementptr inbounds float* %tmp1961, i64 1
+ %tmp1963 = getelementptr inbounds float* %tmp1962, i64 1
+ %tmp1964 = getelementptr inbounds float* %tmp1963, i64 1
+ %tmp1965 = getelementptr inbounds float* %tmp1964, i64 1
+ %tmp1966 = getelementptr inbounds float* %tmp1965, i64 1
+ %tmp1967 = getelementptr inbounds float* %tmp1966, i64 1
+ %tmp1968 = getelementptr inbounds float* %tmp1967, i64 1
+ %tmp1969 = getelementptr inbounds float* %tmp1968, i64 1
+ %tmp1970 = getelementptr inbounds float* %tmp1969, i64 1
+ %tmp1971 = getelementptr inbounds float* %tmp1970, i64 1
+ %tmp1972 = getelementptr inbounds float* %tmp1971, i64 1
+ %tmp1973 = getelementptr inbounds float* %tmp1972, i64 1
+ %tmp1974 = getelementptr inbounds float* %tmp1973, i64 1
+ %tmp1975 = getelementptr inbounds float* %tmp1974, i64 1
+ %tmp1976 = getelementptr inbounds float* %tmp1975, i64 1
+ %tmp1977 = getelementptr inbounds float* %tmp1976, i64 1
+ %tmp1978 = getelementptr inbounds float* %tmp1977, i64 1
+ %tmp1979 = getelementptr inbounds float* %tmp1978, i64 1
+ %tmp1980 = getelementptr inbounds float* %tmp1979, i64 1
+ %tmp1981 = getelementptr inbounds float* %tmp1980, i64 1
+ %tmp1982 = getelementptr inbounds float* %tmp1981, i64 1
+ %tmp1983 = getelementptr inbounds float* %tmp1982, i64 1
+ %tmp1984 = getelementptr inbounds float* %tmp1983, i64 1
+ %tmp1985 = getelementptr inbounds float* %tmp1984, i64 1
+ %tmp1986 = getelementptr inbounds float* %tmp1985, i64 1
+ %tmp1987 = getelementptr inbounds float* %tmp1986, i64 1
+ %tmp1988 = getelementptr inbounds float* %tmp1987, i64 1
+ %tmp1989 = getelementptr inbounds float* %tmp1988, i64 1
+ %tmp1990 = getelementptr inbounds float* %tmp1989, i64 1
+ %tmp1991 = getelementptr inbounds float* %tmp1990, i64 1
+ %tmp1992 = getelementptr inbounds float* %tmp1991, i64 1
+ %tmp1993 = getelementptr inbounds float* %tmp1992, i64 1
+ %tmp1994 = getelementptr inbounds float* %tmp1993, i64 1
+ %tmp1995 = getelementptr inbounds float* %tmp1994, i64 1
+ %tmp1996 = getelementptr inbounds float* %tmp1995, i64 1
+ %tmp1997 = getelementptr inbounds float* %tmp1996, i64 1
+ %tmp1998 = getelementptr inbounds float* %tmp1997, i64 1
+ %tmp1999 = getelementptr inbounds float* %tmp1998, i64 1
+ %tmp2000 = getelementptr inbounds float* %tmp1999, i64 1
+ %tmp2001 = getelementptr inbounds float* %tmp2000, i64 1
+ %tmp2002 = getelementptr inbounds float* %tmp2001, i64 1
+ %tmp2003 = getelementptr inbounds float* %tmp2002, i64 1
+ %tmp2004 = getelementptr inbounds float* %tmp2003, i64 1
+ %tmp2005 = getelementptr inbounds float* %tmp2004, i64 1
+ %tmp2006 = getelementptr inbounds float* %tmp2005, i64 1
+ %tmp2007 = getelementptr inbounds float* %tmp2006, i64 1
+ %tmp2008 = getelementptr inbounds float* %tmp2007, i64 1
+ %tmp2009 = getelementptr inbounds float* %tmp2008, i64 1
+ %tmp2010 = getelementptr inbounds float* %tmp2009, i64 1
+ %tmp2011 = getelementptr inbounds float* %tmp2010, i64 1
+ %tmp2012 = getelementptr inbounds float* %tmp2011, i64 1
+ %tmp2013 = getelementptr inbounds float* %tmp2012, i64 1
+ %tmp2014 = getelementptr inbounds float* %tmp2013, i64 1
+ %tmp2015 = getelementptr inbounds float* %tmp2014, i64 1
+ %tmp2016 = getelementptr inbounds float* %tmp2015, i64 1
+ %tmp2017 = getelementptr inbounds float* %tmp2016, i64 1
+ %tmp2018 = getelementptr inbounds float* %tmp2017, i64 1
+ %tmp2019 = getelementptr inbounds float* %tmp2018, i64 1
+ %tmp2020 = getelementptr inbounds float* %tmp2019, i64 1
+ %tmp2021 = getelementptr inbounds float* %tmp2020, i64 1
+ %tmp2022 = getelementptr inbounds float* %tmp2021, i64 1
+ %tmp2023 = getelementptr inbounds float* %tmp2022, i64 1
+ %tmp2024 = getelementptr inbounds float* %tmp2023, i64 1
+ %tmp2025 = getelementptr inbounds float* %tmp2024, i64 1
+ %tmp2026 = getelementptr inbounds float* %tmp2025, i64 1
+ %tmp2027 = getelementptr inbounds float* %tmp2026, i64 1
+ %tmp2028 = getelementptr inbounds float* %tmp2027, i64 1
+ %tmp2029 = getelementptr inbounds float* %tmp2028, i64 1
+ %tmp2030 = getelementptr inbounds float* %tmp2029, i64 1
+ %tmp2031 = getelementptr inbounds float* %tmp2030, i64 1
+ %tmp2032 = getelementptr inbounds float* %tmp2031, i64 1
+ %tmp2033 = getelementptr inbounds float* %tmp2032, i64 1
+ %tmp2034 = getelementptr inbounds float* %tmp2033, i64 1
+ %tmp2035 = getelementptr inbounds float* %tmp2034, i64 1
+ %tmp2036 = getelementptr inbounds float* %tmp2035, i64 1
+ %tmp2037 = getelementptr inbounds float* %tmp2036, i64 1
+ %tmp2038 = getelementptr inbounds float* %tmp2037, i64 1
+ %tmp2039 = getelementptr inbounds float* %tmp2038, i64 1
+ %tmp2040 = getelementptr inbounds float* %tmp2039, i64 1
+ %tmp2041 = getelementptr inbounds float* %tmp2040, i64 1
+ %tmp2042 = getelementptr inbounds float* %tmp2041, i64 1
+ %tmp2043 = getelementptr inbounds float* %tmp2042, i64 1
+ %tmp2044 = getelementptr inbounds float* %tmp2043, i64 1
+ %tmp2045 = getelementptr inbounds float* %tmp2044, i64 1
+ %tmp2046 = getelementptr inbounds float* %tmp2045, i64 1
+ %tmp2047 = getelementptr inbounds float* %tmp2046, i64 1
+ %tmp2048 = getelementptr inbounds float* %tmp2047, i64 1
+ %tmp2049 = getelementptr inbounds float* %tmp2048, i64 1
+ %tmp2050 = getelementptr inbounds float* %tmp2049, i64 1
+ %tmp2051 = getelementptr inbounds float* %tmp2050, i64 1
+ %tmp2052 = getelementptr inbounds float* %tmp2051, i64 1
+ %tmp2053 = getelementptr inbounds float* %tmp2052, i64 1
+ %tmp2054 = getelementptr inbounds float* %tmp2053, i64 1
+ %tmp2055 = getelementptr inbounds float* %tmp2054, i64 1
+ %tmp2056 = getelementptr inbounds float* %tmp2055, i64 1
+ %tmp2057 = getelementptr inbounds float* %tmp2056, i64 1
+ %tmp2058 = getelementptr inbounds float* %tmp2057, i64 1
+ %tmp2059 = getelementptr inbounds float* %tmp2058, i64 1
+ %tmp2060 = getelementptr inbounds float* %tmp2059, i64 1
+ %tmp2061 = getelementptr inbounds float* %tmp2060, i64 1
+ %tmp2062 = getelementptr inbounds float* %tmp2061, i64 1
+ %tmp2063 = getelementptr inbounds float* %tmp2062, i64 1
+ %tmp2064 = getelementptr inbounds float* %tmp2063, i64 1
+ %tmp2065 = getelementptr inbounds float* %tmp2064, i64 1
+ %tmp2066 = getelementptr inbounds float* %tmp2065, i64 1
+ %tmp2067 = getelementptr inbounds float* %tmp2066, i64 1
+ %tmp2068 = getelementptr inbounds float* %tmp2067, i64 1
+ %tmp2069 = getelementptr inbounds float* %tmp2068, i64 1
+ %tmp2070 = getelementptr inbounds float* %tmp2069, i64 1
+ %tmp2071 = getelementptr inbounds float* %tmp2070, i64 1
+ %tmp2072 = getelementptr inbounds float* %tmp2071, i64 1
+ %tmp2073 = getelementptr inbounds float* %tmp2072, i64 1
+ %tmp2074 = getelementptr inbounds float* %tmp2073, i64 1
+ %tmp2075 = getelementptr inbounds float* %tmp2074, i64 1
+ %tmp2076 = getelementptr inbounds float* %tmp2075, i64 1
+ %tmp2077 = getelementptr inbounds float* %tmp2076, i64 1
+ %tmp2078 = getelementptr inbounds float* %tmp2077, i64 1
+ %tmp2079 = getelementptr inbounds float* %tmp2078, i64 1
+ %tmp2080 = getelementptr inbounds float* %tmp2079, i64 1
+ %tmp2081 = getelementptr inbounds float* %tmp2080, i64 1
+ %tmp2082 = getelementptr inbounds float* %tmp2081, i64 1
+ %tmp2083 = getelementptr inbounds float* %tmp2082, i64 1
+ %tmp2084 = getelementptr inbounds float* %tmp2083, i64 1
+ %tmp2085 = getelementptr inbounds float* %tmp2084, i64 1
+ %tmp2086 = getelementptr inbounds float* %tmp2085, i64 1
+ %tmp2087 = getelementptr inbounds float* %tmp2086, i64 1
+ %tmp2088 = getelementptr inbounds float* %tmp2087, i64 1
+ %tmp2089 = getelementptr inbounds float* %tmp2088, i64 1
+ %tmp2090 = getelementptr inbounds float* %tmp2089, i64 1
+ %tmp2091 = getelementptr inbounds float* %tmp2090, i64 1
+ %tmp2092 = getelementptr inbounds float* %tmp2091, i64 1
+ %tmp2093 = getelementptr inbounds float* %tmp2092, i64 1
+ %tmp2094 = getelementptr inbounds float* %tmp2093, i64 1
+ %tmp2095 = getelementptr inbounds float* %tmp2094, i64 1
+ %tmp2096 = getelementptr inbounds float* %tmp2095, i64 1
+ %tmp2097 = getelementptr inbounds float* %tmp2096, i64 1
+ %tmp2098 = getelementptr inbounds float* %tmp2097, i64 1
+ %tmp2099 = getelementptr inbounds float* %tmp2098, i64 1
+ %tmp2100 = getelementptr inbounds float* %tmp2099, i64 1
+ %tmp2101 = getelementptr inbounds float* %tmp2100, i64 1
+ %tmp2102 = getelementptr inbounds float* %tmp2101, i64 1
+ %tmp2103 = getelementptr inbounds float* %tmp2102, i64 1
+ %tmp2104 = getelementptr inbounds float* %tmp2103, i64 1
+ %tmp2105 = getelementptr inbounds float* %tmp2104, i64 1
+ %tmp2106 = getelementptr inbounds float* %tmp2105, i64 1
+ %tmp2107 = getelementptr inbounds float* %tmp2106, i64 1
+ %tmp2108 = getelementptr inbounds float* %tmp2107, i64 1
+ %tmp2109 = getelementptr inbounds float* %tmp2108, i64 1
+ %tmp2110 = getelementptr inbounds float* %tmp2109, i64 1
+ %tmp2111 = getelementptr inbounds float* %tmp2110, i64 1
+ %tmp2112 = getelementptr inbounds float* %tmp2111, i64 1
+ %tmp2113 = getelementptr inbounds float* %tmp2112, i64 1
+ %tmp2114 = getelementptr inbounds float* %tmp2113, i64 1
+ %tmp2115 = getelementptr inbounds float* %tmp2114, i64 1
+ %tmp2116 = getelementptr inbounds float* %tmp2115, i64 1
+ %tmp2117 = getelementptr inbounds float* %tmp2116, i64 1
+ %tmp2118 = getelementptr inbounds float* %tmp2117, i64 1
+ %tmp2119 = getelementptr inbounds float* %tmp2118, i64 1
+ %tmp2120 = getelementptr inbounds float* %tmp2119, i64 1
+ %tmp2121 = getelementptr inbounds float* %tmp2120, i64 1
+ %tmp2122 = getelementptr inbounds float* %tmp2121, i64 1
+ %tmp2123 = getelementptr inbounds float* %tmp2122, i64 1
+ %tmp2124 = getelementptr inbounds float* %tmp2123, i64 1
+ %tmp2125 = getelementptr inbounds float* %tmp2124, i64 1
+ %tmp2126 = getelementptr inbounds float* %tmp2125, i64 1
+ %tmp2127 = getelementptr inbounds float* %tmp2126, i64 1
+ %tmp2128 = getelementptr inbounds float* %tmp2127, i64 1
+ %tmp2129 = getelementptr inbounds float* %tmp2128, i64 1
+ %tmp2130 = getelementptr inbounds float* %tmp2129, i64 1
+ %tmp2131 = getelementptr inbounds float* %tmp2130, i64 1
+ %tmp2132 = getelementptr inbounds float* %tmp2131, i64 1
+ %tmp2133 = getelementptr inbounds float* %tmp2132, i64 1
+ %tmp2134 = getelementptr inbounds float* %tmp2133, i64 1
+ %tmp2135 = getelementptr inbounds float* %tmp2134, i64 1
+ %tmp2136 = getelementptr inbounds float* %tmp2135, i64 1
+ %tmp2137 = getelementptr inbounds float* %tmp2136, i64 1
+ %tmp2138 = getelementptr inbounds float* %tmp2137, i64 1
+ %tmp2139 = getelementptr inbounds float* %tmp2138, i64 1
+ %tmp2140 = getelementptr inbounds float* %tmp2139, i64 1
+ %tmp2141 = getelementptr inbounds float* %tmp2140, i64 1
+ %tmp2142 = getelementptr inbounds float* %tmp2141, i64 1
+ %tmp2143 = getelementptr inbounds float* %tmp2142, i64 1
+ %tmp2144 = getelementptr inbounds float* %tmp2143, i64 1
+ %tmp2145 = getelementptr inbounds float* %tmp2144, i64 1
+ %tmp2146 = getelementptr inbounds float* %tmp2145, i64 1
+ %tmp2147 = getelementptr inbounds float* %tmp2146, i64 1
+ %tmp2148 = getelementptr inbounds float* %tmp2147, i64 1
+ %tmp2149 = getelementptr inbounds float* %tmp2148, i64 1
+ %tmp2150 = getelementptr inbounds float* %tmp2149, i64 1
+ %tmp2151 = getelementptr inbounds float* %tmp2150, i64 1
+ %tmp2152 = getelementptr inbounds float* %tmp2151, i64 1
+ %tmp2153 = getelementptr inbounds float* %tmp2152, i64 1
+ %tmp2154 = getelementptr inbounds float* %tmp2153, i64 1
+ %tmp2155 = getelementptr inbounds float* %tmp2154, i64 1
+ %tmp2156 = getelementptr inbounds float* %tmp2155, i64 1
+ %tmp2157 = getelementptr inbounds float* %tmp2156, i64 1
+ %tmp2158 = getelementptr inbounds float* %tmp2157, i64 1
+ %tmp2159 = getelementptr inbounds float* %tmp2158, i64 1
+ %tmp2160 = getelementptr inbounds float* %tmp2159, i64 1
+ %tmp2161 = getelementptr inbounds float* %tmp2160, i64 1
+ %tmp2162 = getelementptr inbounds float* %tmp2161, i64 1
+ %tmp2163 = getelementptr inbounds float* %tmp2162, i64 1
+ %tmp2164 = getelementptr inbounds float* %tmp2163, i64 1
+ %tmp2165 = getelementptr inbounds float* %tmp2164, i64 1
+ %tmp2166 = getelementptr inbounds float* %tmp2165, i64 1
+ %tmp2167 = getelementptr inbounds float* %tmp2166, i64 1
+ %tmp2168 = getelementptr inbounds float* %tmp2167, i64 1
+ %tmp2169 = getelementptr inbounds float* %tmp2168, i64 1
+ %tmp2170 = getelementptr inbounds float* %tmp2169, i64 1
+ %tmp2171 = getelementptr inbounds float* %tmp2170, i64 1
+ %tmp2172 = getelementptr inbounds float* %tmp2171, i64 1
+ %tmp2173 = getelementptr inbounds float* %tmp2172, i64 1
+ %tmp2174 = getelementptr inbounds float* %tmp2173, i64 1
+ %tmp2175 = getelementptr inbounds float* %tmp2174, i64 1
+ %tmp2176 = getelementptr inbounds float* %tmp2175, i64 1
+ %tmp2177 = getelementptr inbounds float* %tmp2176, i64 1
+ %tmp2178 = getelementptr inbounds float* %tmp2177, i64 1
+ %tmp2179 = getelementptr inbounds float* %tmp2178, i64 1
+ %tmp2180 = getelementptr inbounds float* %tmp2179, i64 1
+ %tmp2181 = getelementptr inbounds float* %tmp2180, i64 1
+ %tmp2182 = getelementptr inbounds float* %tmp2181, i64 1
+ %tmp2183 = getelementptr inbounds float* %tmp2182, i64 1
+ %tmp2184 = getelementptr inbounds float* %tmp2183, i64 1
+ %tmp2185 = getelementptr inbounds float* %tmp2184, i64 1
+ %tmp2186 = getelementptr inbounds float* %tmp2185, i64 1
+ %tmp2187 = getelementptr inbounds float* %tmp2186, i64 1
+ %tmp2188 = getelementptr inbounds float* %tmp2187, i64 1
+ %tmp2189 = getelementptr inbounds float* %tmp2188, i64 1
+ %tmp2190 = getelementptr inbounds float* %tmp2189, i64 1
+ %tmp2191 = getelementptr inbounds float* %tmp2190, i64 1
+ %tmp2192 = getelementptr inbounds float* %tmp2191, i64 1
+ %tmp2193 = getelementptr inbounds float* %tmp2192, i64 1
+ %tmp2194 = getelementptr inbounds float* %tmp2193, i64 1
+ %tmp2195 = getelementptr inbounds float* %tmp2194, i64 1
+ %tmp2196 = getelementptr inbounds float* %tmp2195, i64 1
+ %tmp2197 = getelementptr inbounds float* %tmp2196, i64 1
+ %tmp2198 = getelementptr inbounds float* %tmp2197, i64 1
+ %tmp2199 = getelementptr inbounds float* %tmp2198, i64 1
+ %tmp2200 = getelementptr inbounds float* %tmp2199, i64 1
+ %tmp2201 = getelementptr inbounds float* %tmp2200, i64 1
+ %tmp2202 = getelementptr inbounds float* %tmp2201, i64 1
+ %tmp2203 = getelementptr inbounds float* %tmp2202, i64 1
+ %tmp2204 = getelementptr inbounds float* %tmp2203, i64 1
+ %tmp2205 = getelementptr inbounds float* %tmp2204, i64 1
+ %tmp2206 = getelementptr inbounds float* %tmp2205, i64 1
+ %tmp2207 = getelementptr inbounds float* %tmp2206, i64 1
+ %tmp2208 = getelementptr inbounds float* %tmp2207, i64 1
+ %tmp2209 = getelementptr inbounds float* %tmp2208, i64 1
+ %tmp2210 = getelementptr inbounds float* %tmp2209, i64 1
+ %tmp2211 = getelementptr inbounds float* %tmp2210, i64 1
+ %tmp2212 = getelementptr inbounds float* %tmp2211, i64 1
+ %tmp2213 = getelementptr inbounds float* %tmp2212, i64 1
+ %tmp2214 = getelementptr inbounds float* %tmp2213, i64 1
+ %tmp2215 = getelementptr inbounds float* %tmp2214, i64 1
+ %tmp2216 = getelementptr inbounds float* %tmp2215, i64 1
+ %tmp2217 = getelementptr inbounds float* %tmp2216, i64 1
+ %tmp2218 = getelementptr inbounds float* %tmp2217, i64 1
+ %tmp2219 = getelementptr inbounds float* %tmp2218, i64 1
+ %tmp2220 = getelementptr inbounds float* %tmp2219, i64 1
+ %tmp2221 = getelementptr inbounds float* %tmp2220, i64 1
+ %tmp2222 = getelementptr inbounds float* %tmp2221, i64 1
+ %tmp2223 = getelementptr inbounds float* %tmp2222, i64 1
+ %tmp2224 = getelementptr inbounds float* %tmp2223, i64 1
+ %tmp2225 = getelementptr inbounds float* %tmp2224, i64 1
+ %tmp2226 = getelementptr inbounds float* %tmp2225, i64 1
+ %tmp2227 = getelementptr inbounds float* %tmp2226, i64 1
+ %tmp2228 = getelementptr inbounds float* %tmp2227, i64 1
+ %tmp2229 = getelementptr inbounds float* %tmp2228, i64 1
+ %tmp2230 = getelementptr inbounds float* %tmp2229, i64 1
+ %tmp2231 = getelementptr inbounds float* %tmp2230, i64 1
+ %tmp2232 = getelementptr inbounds float* %tmp2231, i64 1
+ %tmp2233 = getelementptr inbounds float* %tmp2232, i64 1
+ %tmp2234 = getelementptr inbounds float* %tmp2233, i64 1
+ %tmp2235 = getelementptr inbounds float* %tmp2234, i64 1
+ %tmp2236 = getelementptr inbounds float* %tmp2235, i64 1
+ %tmp2237 = getelementptr inbounds float* %tmp2236, i64 1
+ %tmp2238 = getelementptr inbounds float* %tmp2237, i64 1
+ %tmp2239 = getelementptr inbounds float* %tmp2238, i64 1
+ %tmp2240 = getelementptr inbounds float* %tmp2239, i64 1
+ %tmp2241 = getelementptr inbounds float* %tmp2240, i64 1
+ %tmp2242 = getelementptr inbounds float* %tmp2241, i64 1
+ %tmp2243 = getelementptr inbounds float* %tmp2242, i64 1
+ %tmp2244 = getelementptr inbounds float* %tmp2243, i64 1
+ %tmp2245 = getelementptr inbounds float* %tmp2244, i64 1
+ %tmp2246 = getelementptr inbounds float* %tmp2245, i64 1
+ %tmp2247 = getelementptr inbounds float* %tmp2246, i64 1
+ %tmp2248 = getelementptr inbounds float* %tmp2247, i64 1
+ %tmp2249 = getelementptr inbounds float* %tmp2248, i64 1
+ %tmp2250 = getelementptr inbounds float* %tmp2249, i64 1
+ %tmp2251 = getelementptr inbounds float* %tmp2250, i64 1
+ %tmp2252 = getelementptr inbounds float* %tmp2251, i64 1
+ %tmp2253 = getelementptr inbounds float* %tmp2252, i64 1
+ %tmp2254 = getelementptr inbounds float* %tmp2253, i64 1
+ %tmp2255 = getelementptr inbounds float* %tmp2254, i64 1
+ %tmp2256 = getelementptr inbounds float* %tmp2255, i64 1
+ %tmp2257 = getelementptr inbounds float* %tmp2256, i64 1
+ %tmp2258 = getelementptr inbounds float* %tmp2257, i64 1
+ %tmp2259 = getelementptr inbounds float* %tmp2258, i64 1
+ %tmp2260 = getelementptr inbounds float* %tmp2259, i64 1
+ %tmp2261 = getelementptr inbounds float* %tmp2260, i64 1
+ %tmp2262 = getelementptr inbounds float* %tmp2261, i64 1
+ %tmp2263 = getelementptr inbounds float* %tmp2262, i64 1
+ %tmp2264 = getelementptr inbounds float* %tmp2263, i64 1
+ %tmp2265 = getelementptr inbounds float* %tmp2264, i64 1
+ %tmp2266 = getelementptr inbounds float* %tmp2265, i64 1
+ %tmp2267 = getelementptr inbounds float* %tmp2266, i64 1
+ %tmp2268 = getelementptr inbounds float* %tmp2267, i64 1
+ %tmp2269 = getelementptr inbounds float* %tmp2268, i64 1
+ %tmp2270 = getelementptr inbounds float* %tmp2269, i64 1
+ %tmp2271 = getelementptr inbounds float* %tmp2270, i64 1
+ %tmp2272 = getelementptr inbounds float* %tmp2271, i64 1
+ %tmp2273 = getelementptr inbounds float* %tmp2272, i64 1
+ %tmp2274 = getelementptr inbounds float* %tmp2273, i64 1
+ %tmp2275 = getelementptr inbounds float* %tmp2274, i64 1
+ %tmp2276 = getelementptr inbounds float* %tmp2275, i64 1
+ %tmp2277 = getelementptr inbounds float* %tmp2276, i64 1
+ %tmp2278 = getelementptr inbounds float* %tmp2277, i64 1
+ %tmp2279 = getelementptr inbounds float* %tmp2278, i64 1
+ %tmp2280 = getelementptr inbounds float* %tmp2279, i64 1
+ %tmp2281 = getelementptr inbounds float* %tmp2280, i64 1
+ %tmp2282 = getelementptr inbounds float* %tmp2281, i64 1
+ %tmp2283 = getelementptr inbounds float* %tmp2282, i64 1
+ %tmp2284 = getelementptr inbounds float* %tmp2283, i64 1
+ %tmp2285 = getelementptr inbounds float* %tmp2284, i64 1
+ %tmp2286 = getelementptr inbounds float* %tmp2285, i64 1
+ %tmp2287 = getelementptr inbounds float* %tmp2286, i64 1
+ %tmp2288 = getelementptr inbounds float* %tmp2287, i64 1
+ %tmp2289 = getelementptr inbounds float* %tmp2288, i64 1
+ %tmp2290 = getelementptr inbounds float* %tmp2289, i64 1
+ %tmp2291 = getelementptr inbounds float* %tmp2290, i64 1
+ %tmp2292 = getelementptr inbounds float* %tmp2291, i64 1
+ %tmp2293 = getelementptr inbounds float* %tmp2292, i64 1
+ %tmp2294 = getelementptr inbounds float* %tmp2293, i64 1
+ %tmp2295 = getelementptr inbounds float* %tmp2294, i64 1
+ %tmp2296 = getelementptr inbounds float* %tmp2295, i64 1
+ %tmp2297 = getelementptr inbounds float* %tmp2296, i64 1
+ %tmp2298 = getelementptr inbounds float* %tmp2297, i64 1
+ %tmp2299 = getelementptr inbounds float* %tmp2298, i64 1
+ %tmp2300 = getelementptr inbounds float* %tmp2299, i64 1
+ %tmp2301 = getelementptr inbounds float* %tmp2300, i64 1
+ %tmp2302 = getelementptr inbounds float* %tmp2301, i64 1
+ %tmp2303 = getelementptr inbounds float* %tmp2302, i64 1
+ %tmp2304 = getelementptr inbounds float* %tmp2303, i64 1
+ %tmp2305 = getelementptr inbounds float* %tmp2304, i64 1
+ %tmp2306 = getelementptr inbounds float* %tmp2305, i64 1
+ %tmp2307 = getelementptr inbounds float* %tmp2306, i64 1
+ %tmp2308 = getelementptr inbounds float* %tmp2307, i64 1
+ %tmp2309 = getelementptr inbounds float* %tmp2308, i64 1
+ %tmp2310 = getelementptr inbounds float* %tmp2309, i64 1
+ %tmp2311 = getelementptr inbounds float* %tmp2310, i64 1
+ %tmp2312 = getelementptr inbounds float* %tmp2311, i64 1
+ %tmp2313 = getelementptr inbounds float* %tmp2312, i64 1
+ %tmp2314 = getelementptr inbounds float* %tmp2313, i64 1
+ %tmp2315 = getelementptr inbounds float* %tmp2314, i64 1
+ %tmp2316 = getelementptr inbounds float* %tmp2315, i64 1
+ %tmp2317 = getelementptr inbounds float* %tmp2316, i64 1
+ %tmp2318 = getelementptr inbounds float* %tmp2317, i64 1
+ %tmp2319 = getelementptr inbounds float* %tmp2318, i64 1
+ %tmp2320 = getelementptr inbounds float* %tmp2319, i64 1
+ %tmp2321 = getelementptr inbounds float* %tmp2320, i64 1
+ %tmp2322 = getelementptr inbounds float* %tmp2321, i64 1
+ %tmp2323 = getelementptr inbounds float* %tmp2322, i64 1
+ %tmp2324 = getelementptr inbounds float* %tmp2323, i64 1
+ %tmp2325 = getelementptr inbounds float* %tmp2324, i64 1
+ %tmp2326 = getelementptr inbounds float* %tmp2325, i64 1
+ %tmp2327 = getelementptr inbounds float* %tmp2326, i64 1
+ %tmp2328 = getelementptr inbounds float* %tmp2327, i64 1
+ %tmp2329 = getelementptr inbounds float* %tmp2328, i64 1
+ %tmp2330 = getelementptr inbounds float* %tmp2329, i64 1
+ %tmp2331 = getelementptr inbounds float* %tmp2330, i64 1
+ %tmp2332 = getelementptr inbounds float* %tmp2331, i64 1
+ %tmp2333 = getelementptr inbounds float* %tmp2332, i64 1
+ %tmp2334 = getelementptr inbounds float* %tmp2333, i64 1
+ %tmp2335 = getelementptr inbounds float* %tmp2334, i64 1
+ %tmp2336 = getelementptr inbounds float* %tmp2335, i64 1
+ %tmp2337 = getelementptr inbounds float* %tmp2336, i64 1
+ %tmp2338 = getelementptr inbounds float* %tmp2337, i64 1
+ %tmp2339 = getelementptr inbounds float* %tmp2338, i64 1
+ %tmp2340 = getelementptr inbounds float* %tmp2339, i64 1
+ %tmp2341 = getelementptr inbounds float* %tmp2340, i64 1
+ %tmp2342 = getelementptr inbounds float* %tmp2341, i64 1
+ %tmp2343 = getelementptr inbounds float* %tmp2342, i64 1
+ %tmp2344 = getelementptr inbounds float* %tmp2343, i64 1
+ %tmp2345 = getelementptr inbounds float* %tmp2344, i64 1
+ %tmp2346 = getelementptr inbounds float* %tmp2345, i64 1
+ %tmp2347 = getelementptr inbounds float* %tmp2346, i64 1
+ %tmp2348 = getelementptr inbounds float* %tmp2347, i64 1
+ %tmp2349 = getelementptr inbounds float* %tmp2348, i64 1
+ %tmp2350 = getelementptr inbounds float* %tmp2349, i64 1
+ %tmp2351 = getelementptr inbounds float* %tmp2350, i64 1
+ %tmp2352 = getelementptr inbounds float* %tmp2351, i64 1
+ %tmp2353 = getelementptr inbounds float* %tmp2352, i64 1
+ %tmp2354 = getelementptr inbounds float* %tmp2353, i64 1
+ %tmp2355 = getelementptr inbounds float* %tmp2354, i64 1
+ %tmp2356 = getelementptr inbounds float* %tmp2355, i64 1
+ %tmp2357 = getelementptr inbounds float* %tmp2356, i64 1
+ %tmp2358 = getelementptr inbounds float* %tmp2357, i64 1
+ %tmp2359 = getelementptr inbounds float* %tmp2358, i64 1
+ %tmp2360 = getelementptr inbounds float* %tmp2359, i64 1
+ %tmp2361 = getelementptr inbounds float* %tmp2360, i64 1
+ %tmp2362 = getelementptr inbounds float* %tmp2361, i64 1
+ %tmp2363 = getelementptr inbounds float* %tmp2362, i64 1
+ %tmp2364 = getelementptr inbounds float* %tmp2363, i64 1
+ %tmp2365 = getelementptr inbounds float* %tmp2364, i64 1
+ %tmp2366 = getelementptr inbounds float* %tmp2365, i64 1
+ %tmp2367 = getelementptr inbounds float* %tmp2366, i64 1
+ %tmp2368 = getelementptr inbounds float* %tmp2367, i64 1
+ %tmp2369 = getelementptr inbounds float* %tmp2368, i64 1
+ %tmp2370 = getelementptr inbounds float* %tmp2369, i64 1
+ %tmp2371 = getelementptr inbounds float* %tmp2370, i64 1
+ %tmp2372 = getelementptr inbounds float* %tmp2371, i64 1
+ %tmp2373 = getelementptr inbounds float* %tmp2372, i64 1
+ %tmp2374 = getelementptr inbounds float* %tmp2373, i64 1
+ %tmp2375 = getelementptr inbounds float* %tmp2374, i64 1
+ %tmp2376 = getelementptr inbounds float* %tmp2375, i64 1
+ %tmp2377 = getelementptr inbounds float* %tmp2376, i64 1
+ %tmp2378 = getelementptr inbounds float* %tmp2377, i64 1
+ %tmp2379 = getelementptr inbounds float* %tmp2378, i64 1
+ %tmp2380 = getelementptr inbounds float* %tmp2379, i64 1
+ %tmp2381 = getelementptr inbounds float* %tmp2380, i64 1
+ %tmp2382 = getelementptr inbounds float* %tmp2381, i64 1
+ %tmp2383 = getelementptr inbounds float* %tmp2382, i64 1
+ %tmp2384 = getelementptr inbounds float* %tmp2383, i64 1
+ %tmp2385 = getelementptr inbounds float* %tmp2384, i64 1
+ %tmp2386 = getelementptr inbounds float* %tmp2385, i64 1
+ %tmp2387 = getelementptr inbounds float* %tmp2386, i64 1
+ %tmp2388 = getelementptr inbounds float* %tmp2387, i64 1
+ %tmp2389 = getelementptr inbounds float* %tmp2388, i64 1
+ %tmp2390 = getelementptr inbounds float* %tmp2389, i64 1
+ %tmp2391 = getelementptr inbounds float* %tmp2390, i64 1
+ %tmp2392 = getelementptr inbounds float* %tmp2391, i64 1
+ %tmp2393 = getelementptr inbounds float* %tmp2392, i64 1
+ %tmp2394 = getelementptr inbounds float* %tmp2393, i64 1
+ %tmp2395 = getelementptr inbounds float* %tmp2394, i64 1
+ %tmp2396 = getelementptr inbounds float* %tmp2395, i64 1
+ %tmp2397 = getelementptr inbounds float* %tmp2396, i64 1
+ %tmp2398 = getelementptr inbounds float* %tmp2397, i64 1
+ %tmp2399 = getelementptr inbounds float* %tmp2398, i64 1
+ %tmp2400 = getelementptr inbounds float* %tmp2399, i64 1
+ %tmp2401 = getelementptr inbounds float* %tmp2400, i64 1
+ %tmp2402 = getelementptr inbounds float* %tmp2401, i64 1
+ %tmp2403 = getelementptr inbounds float* %tmp2402, i64 1
+ %tmp2404 = getelementptr inbounds float* %tmp2403, i64 1
+ %tmp2405 = getelementptr inbounds float* %tmp2404, i64 1
+ %tmp2406 = getelementptr inbounds float* %tmp2405, i64 1
+ %tmp2407 = getelementptr inbounds float* %tmp2406, i64 1
+ %tmp2408 = getelementptr inbounds float* %tmp2407, i64 1
+ %tmp2409 = getelementptr inbounds float* %tmp2408, i64 1
+ %tmp2410 = getelementptr inbounds float* %tmp2409, i64 1
+ %tmp2411 = getelementptr inbounds float* %tmp2410, i64 1
+ %tmp2412 = getelementptr inbounds float* %tmp2411, i64 1
+ %tmp2413 = getelementptr inbounds float* %tmp2412, i64 1
+ %tmp2414 = getelementptr inbounds float* %tmp2413, i64 1
+ %tmp2415 = getelementptr inbounds float* %tmp2414, i64 1
+ %tmp2416 = getelementptr inbounds float* %tmp2415, i64 1
+ %tmp2417 = getelementptr inbounds float* %tmp2416, i64 1
+ %tmp2418 = getelementptr inbounds float* %tmp2417, i64 1
+ %tmp2419 = getelementptr inbounds float* %tmp2418, i64 1
+ %tmp2420 = getelementptr inbounds float* %tmp2419, i64 1
+ %tmp2421 = getelementptr inbounds float* %tmp2420, i64 1
+ %tmp2422 = getelementptr inbounds float* %tmp2421, i64 1
+ %tmp2423 = getelementptr inbounds float* %tmp2422, i64 1
+ %tmp2424 = getelementptr inbounds float* %tmp2423, i64 1
+ %tmp2425 = getelementptr inbounds float* %tmp2424, i64 1
+ %tmp2426 = getelementptr inbounds float* %tmp2425, i64 1
+ %tmp2427 = getelementptr inbounds float* %tmp2426, i64 1
+ %tmp2428 = getelementptr inbounds float* %tmp2427, i64 1
+ %tmp2429 = getelementptr inbounds float* %tmp2428, i64 1
+ %tmp2430 = getelementptr inbounds float* %tmp2429, i64 1
+ %tmp2431 = getelementptr inbounds float* %tmp2430, i64 1
+ %tmp2432 = getelementptr inbounds float* %tmp2431, i64 1
+ %tmp2433 = getelementptr inbounds float* %tmp2432, i64 1
+ %tmp2434 = getelementptr inbounds float* %tmp2433, i64 1
+ %tmp2435 = getelementptr inbounds float* %tmp2434, i64 1
+ %tmp2436 = getelementptr inbounds float* %tmp2435, i64 1
+ %tmp2437 = getelementptr inbounds float* %tmp2436, i64 1
+ %tmp2438 = getelementptr inbounds float* %tmp2437, i64 1
+ %tmp2439 = getelementptr inbounds float* %tmp2438, i64 1
+ %tmp2440 = getelementptr inbounds float* %tmp2439, i64 1
+ %tmp2441 = getelementptr inbounds float* %tmp2440, i64 1
+ %tmp2442 = getelementptr inbounds float* %tmp2441, i64 1
+ %tmp2443 = getelementptr inbounds float* %tmp2442, i64 1
+ %tmp2444 = getelementptr inbounds float* %tmp2443, i64 1
+ %tmp2445 = getelementptr inbounds float* %tmp2444, i64 1
+ %tmp2446 = getelementptr inbounds float* %tmp2445, i64 1
+ %tmp2447 = getelementptr inbounds float* %tmp2446, i64 1
+ %tmp2448 = getelementptr inbounds float* %tmp2447, i64 1
+ %tmp2449 = getelementptr inbounds float* %tmp2448, i64 1
+ %tmp2450 = getelementptr inbounds float* %tmp2449, i64 1
+ %tmp2451 = getelementptr inbounds float* %tmp2450, i64 1
+ %tmp2452 = getelementptr inbounds float* %tmp2451, i64 1
+ %tmp2453 = getelementptr inbounds float* %tmp2452, i64 1
+ %tmp2454 = getelementptr inbounds float* %tmp2453, i64 1
+ %tmp2455 = getelementptr inbounds float* %tmp2454, i64 1
+ %tmp2456 = getelementptr inbounds float* %tmp2455, i64 1
+ %tmp2457 = getelementptr inbounds float* %tmp2456, i64 1
+ %tmp2458 = getelementptr inbounds float* %tmp2457, i64 1
+ %tmp2459 = getelementptr inbounds float* %tmp2458, i64 1
+ %tmp2460 = getelementptr inbounds float* %tmp2459, i64 1
+ %tmp2461 = getelementptr inbounds float* %tmp2460, i64 1
+ %tmp2462 = getelementptr inbounds float* %tmp2461, i64 1
+ %tmp2463 = getelementptr inbounds float* %tmp2462, i64 1
+ %tmp2464 = getelementptr inbounds float* %tmp2463, i64 1
+ %tmp2465 = getelementptr inbounds float* %tmp2464, i64 1
+ %tmp2466 = getelementptr inbounds float* %tmp2465, i64 1
+ %tmp2467 = getelementptr inbounds float* %tmp2466, i64 1
+ %tmp2468 = getelementptr inbounds float* %tmp2467, i64 1
+ %tmp2469 = getelementptr inbounds float* %tmp2468, i64 1
+ %tmp2470 = getelementptr inbounds float* %tmp2469, i64 1
+ %tmp2471 = getelementptr inbounds float* %tmp2470, i64 1
+ %tmp2472 = getelementptr inbounds float* %tmp2471, i64 1
+ %tmp2473 = getelementptr inbounds float* %tmp2472, i64 1
+ %tmp2474 = getelementptr inbounds float* %tmp2473, i64 1
+ %tmp2475 = getelementptr inbounds float* %tmp2474, i64 1
+ %tmp2476 = getelementptr inbounds float* %tmp2475, i64 1
+ %tmp2477 = getelementptr inbounds float* %tmp2476, i64 1
+ %tmp2478 = getelementptr inbounds float* %tmp2477, i64 1
+ %tmp2479 = getelementptr inbounds float* %tmp2478, i64 1
+ %tmp2480 = getelementptr inbounds float* %tmp2479, i64 1
+ %tmp2481 = getelementptr inbounds float* %tmp2480, i64 1
+ %tmp2482 = getelementptr inbounds float* %tmp2481, i64 1
+ %tmp2483 = getelementptr inbounds float* %tmp2482, i64 1
+ %tmp2484 = getelementptr inbounds float* %tmp2483, i64 1
+ %tmp2485 = getelementptr inbounds float* %tmp2484, i64 1
+ %tmp2486 = getelementptr inbounds float* %tmp2485, i64 1
+ %tmp2487 = getelementptr inbounds float* %tmp2486, i64 1
+ %tmp2488 = getelementptr inbounds float* %tmp2487, i64 1
+ %tmp2489 = getelementptr inbounds float* %tmp2488, i64 1
+ %tmp2490 = getelementptr inbounds float* %tmp2489, i64 1
+ %tmp2491 = getelementptr inbounds float* %tmp2490, i64 1
+ %tmp2492 = getelementptr inbounds float* %tmp2491, i64 1
+ %tmp2493 = getelementptr inbounds float* %tmp2492, i64 1
+ %tmp2494 = getelementptr inbounds float* %tmp2493, i64 1
+ %tmp2495 = getelementptr inbounds float* %tmp2494, i64 1
+ %tmp2496 = getelementptr inbounds float* %tmp2495, i64 1
+ %tmp2497 = getelementptr inbounds float* %tmp2496, i64 1
+ %tmp2498 = getelementptr inbounds float* %tmp2497, i64 1
+ %tmp2499 = getelementptr inbounds float* %tmp2498, i64 1
+ %tmp2500 = getelementptr inbounds float* %tmp2499, i64 1
+ %tmp2501 = getelementptr inbounds float* %tmp2500, i64 1
+ %tmp2502 = getelementptr inbounds float* %tmp2501, i64 1
+ %tmp2503 = getelementptr inbounds float* %tmp2502, i64 1
+ %tmp2504 = getelementptr inbounds float* %tmp2503, i64 1
+ %tmp2505 = getelementptr inbounds float* %tmp2504, i64 1
+ %tmp2506 = getelementptr inbounds float* %tmp2505, i64 1
+ %tmp2507 = getelementptr inbounds float* %tmp2506, i64 1
+ %tmp2508 = getelementptr inbounds float* %tmp2507, i64 1
+ %tmp2509 = getelementptr inbounds float* %tmp2508, i64 1
+ %tmp2510 = getelementptr inbounds float* %tmp2509, i64 1
+ %tmp2511 = getelementptr inbounds float* %tmp2510, i64 1
+ %tmp2512 = getelementptr inbounds float* %tmp2511, i64 1
+ %tmp2513 = getelementptr inbounds float* %tmp2512, i64 1
+ %tmp2514 = getelementptr inbounds float* %tmp2513, i64 1
+ %tmp2515 = getelementptr inbounds float* %tmp2514, i64 1
+ %tmp2516 = getelementptr inbounds float* %tmp2515, i64 1
+ %tmp2517 = getelementptr inbounds float* %tmp2516, i64 1
+ %tmp2518 = getelementptr inbounds float* %tmp2517, i64 1
+ %tmp2519 = getelementptr inbounds float* %tmp2518, i64 1
+ %tmp2520 = getelementptr inbounds float* %tmp2519, i64 1
+ %tmp2521 = getelementptr inbounds float* %tmp2520, i64 1
+ %tmp2522 = getelementptr inbounds float* %tmp2521, i64 1
+ %tmp2523 = getelementptr inbounds float* %tmp2522, i64 1
+ %tmp2524 = getelementptr inbounds float* %tmp2523, i64 1
+ %tmp2525 = getelementptr inbounds float* %tmp2524, i64 1
+ %tmp2526 = getelementptr inbounds float* %tmp2525, i64 1
+ %tmp2527 = getelementptr inbounds float* %tmp2526, i64 1
+ %tmp2528 = getelementptr inbounds float* %tmp2527, i64 1
+ %tmp2529 = getelementptr inbounds float* %tmp2528, i64 1
+ %tmp2530 = getelementptr inbounds float* %tmp2529, i64 1
+ %tmp2531 = getelementptr inbounds float* %tmp2530, i64 1
+ %tmp2532 = getelementptr inbounds float* %tmp2531, i64 1
+ %tmp2533 = getelementptr inbounds float* %tmp2532, i64 1
+ %tmp2534 = getelementptr inbounds float* %tmp2533, i64 1
+ %tmp2535 = getelementptr inbounds float* %tmp2534, i64 1
+ %tmp2536 = getelementptr inbounds float* %tmp2535, i64 1
+ %tmp2537 = getelementptr inbounds float* %tmp2536, i64 1
+ %tmp2538 = getelementptr inbounds float* %tmp2537, i64 1
+ %tmp2539 = getelementptr inbounds float* %tmp2538, i64 1
+ %tmp2540 = getelementptr inbounds float* %tmp2539, i64 1
+ %tmp2541 = getelementptr inbounds float* %tmp2540, i64 1
+ %tmp2542 = getelementptr inbounds float* %tmp2541, i64 1
+ %tmp2543 = getelementptr inbounds float* %tmp2542, i64 1
+ %tmp2544 = getelementptr inbounds float* %tmp2543, i64 1
+ %tmp2545 = getelementptr inbounds float* %tmp2544, i64 1
+ %tmp2546 = getelementptr inbounds float* %tmp2545, i64 1
+ %tmp2547 = getelementptr inbounds float* %tmp2546, i64 1
+ %tmp2548 = getelementptr inbounds float* %tmp2547, i64 1
+ %tmp2549 = getelementptr inbounds float* %tmp2548, i64 1
+ %tmp2550 = getelementptr inbounds float* %tmp2549, i64 1
+ %tmp2551 = getelementptr inbounds float* %tmp2550, i64 1
+ %tmp2552 = getelementptr inbounds float* %tmp2551, i64 1
+ %tmp2553 = getelementptr inbounds float* %tmp2552, i64 1
+ %tmp2554 = getelementptr inbounds float* %tmp2553, i64 1
+ %tmp2555 = getelementptr inbounds float* %tmp2554, i64 1
+ %tmp2556 = getelementptr inbounds float* %tmp2555, i64 1
+ %tmp2557 = getelementptr inbounds float* %tmp2556, i64 1
+ %tmp2558 = getelementptr inbounds float* %tmp2557, i64 1
+ %tmp2559 = getelementptr inbounds float* %tmp2558, i64 1
+ %tmp2560 = getelementptr inbounds float* %tmp2559, i64 1
+ %tmp2561 = getelementptr inbounds float* %tmp2560, i64 1
+ %tmp2562 = getelementptr inbounds float* %tmp2561, i64 1
+ %tmp2563 = getelementptr inbounds float* %tmp2562, i64 1
+ %tmp2564 = getelementptr inbounds float* %tmp2563, i64 1
+ %tmp2565 = getelementptr inbounds float* %tmp2564, i64 1
+ %tmp2566 = getelementptr inbounds float* %tmp2565, i64 1
+ %tmp2567 = getelementptr inbounds float* %tmp2566, i64 1
+ %tmp2568 = getelementptr inbounds float* %tmp2567, i64 1
+ %tmp2569 = getelementptr inbounds float* %tmp2568, i64 1
+ %tmp2570 = getelementptr inbounds float* %tmp2569, i64 1
+ %tmp2571 = getelementptr inbounds float* %tmp2570, i64 1
+ %tmp2572 = getelementptr inbounds float* %tmp2571, i64 1
+ %tmp2573 = getelementptr inbounds float* %tmp2572, i64 1
+ %tmp2574 = getelementptr inbounds float* %tmp2573, i64 1
+ %tmp2575 = getelementptr inbounds float* %tmp2574, i64 1
+ %tmp2576 = getelementptr inbounds float* %tmp2575, i64 1
+ %tmp2577 = getelementptr inbounds float* %tmp2576, i64 1
+ %tmp2578 = getelementptr inbounds float* %tmp2577, i64 1
+ %tmp2579 = getelementptr inbounds float* %tmp2578, i64 1
+ %tmp2580 = getelementptr inbounds float* %tmp2579, i64 1
+ %tmp2581 = getelementptr inbounds float* %tmp2580, i64 1
+ %tmp2582 = getelementptr inbounds float* %tmp2581, i64 1
+ %tmp2583 = getelementptr inbounds float* %tmp2582, i64 1
+ %tmp2584 = getelementptr inbounds float* %tmp2583, i64 1
+ %tmp2585 = getelementptr inbounds float* %tmp2584, i64 1
+ %tmp2586 = getelementptr inbounds float* %tmp2585, i64 1
+ %tmp2587 = getelementptr inbounds float* %tmp2586, i64 1
+ %tmp2588 = getelementptr inbounds float* %tmp2587, i64 1
+ %tmp2589 = getelementptr inbounds float* %tmp2588, i64 1
+ %tmp2590 = getelementptr inbounds float* %tmp2589, i64 1
+ %tmp2591 = getelementptr inbounds float* %tmp2590, i64 1
+ %tmp2592 = getelementptr inbounds float* %tmp2591, i64 1
+ %tmp2593 = getelementptr inbounds float* %tmp2592, i64 1
+ %tmp2594 = getelementptr inbounds float* %tmp2593, i64 1
+ %tmp2595 = getelementptr inbounds float* %tmp2594, i64 1
+ %tmp2596 = getelementptr inbounds float* %tmp2595, i64 1
+ %tmp2597 = getelementptr inbounds float* %tmp2596, i64 1
+ %tmp2598 = getelementptr inbounds float* %tmp2597, i64 1
+ %tmp2599 = getelementptr inbounds float* %tmp2598, i64 1
+ %tmp2600 = getelementptr inbounds float* %tmp2599, i64 1
+ %tmp2601 = getelementptr inbounds float* %tmp2600, i64 1
+ %tmp2602 = getelementptr inbounds float* %tmp2601, i64 1
+ %tmp2603 = getelementptr inbounds float* %tmp2602, i64 1
+ %tmp2604 = getelementptr inbounds float* %tmp2603, i64 1
+ %tmp2605 = getelementptr inbounds float* %tmp2604, i64 1
+ %tmp2606 = getelementptr inbounds float* %tmp2605, i64 1
+ %tmp2607 = getelementptr inbounds float* %tmp2606, i64 1
+ %tmp2608 = getelementptr inbounds float* %tmp2607, i64 1
+ %tmp2609 = getelementptr inbounds float* %tmp2608, i64 1
+ %tmp2610 = getelementptr inbounds float* %tmp2609, i64 1
+ %tmp2611 = getelementptr inbounds float* %tmp2610, i64 1
+ %tmp2612 = getelementptr inbounds float* %tmp2611, i64 1
+ %tmp2613 = getelementptr inbounds float* %tmp2612, i64 1
+ %tmp2614 = getelementptr inbounds float* %tmp2613, i64 1
+ %tmp2615 = getelementptr inbounds float* %tmp2614, i64 1
+ %tmp2616 = getelementptr inbounds float* %tmp2615, i64 1
+ %tmp2617 = getelementptr inbounds float* %tmp2616, i64 1
+ %tmp2618 = getelementptr inbounds float* %tmp2617, i64 1
+ %tmp2619 = getelementptr inbounds float* %tmp2618, i64 1
+ %tmp2620 = getelementptr inbounds float* %tmp2619, i64 1
+ %tmp2621 = getelementptr inbounds float* %tmp2620, i64 1
+ %tmp2622 = getelementptr inbounds float* %tmp2621, i64 1
+ %tmp2623 = getelementptr inbounds float* %tmp2622, i64 1
+ %tmp2624 = getelementptr inbounds float* %tmp2623, i64 1
+ %tmp2625 = getelementptr inbounds float* %tmp2624, i64 1
+ %tmp2626 = getelementptr inbounds float* %tmp2625, i64 1
+ %tmp2627 = getelementptr inbounds float* %tmp2626, i64 1
+ %tmp2628 = getelementptr inbounds float* %tmp2627, i64 1
+ %tmp2629 = getelementptr inbounds float* %tmp2628, i64 1
+ %tmp2630 = getelementptr inbounds float* %tmp2629, i64 1
+ %tmp2631 = getelementptr inbounds float* %tmp2630, i64 1
+ %tmp2632 = getelementptr inbounds float* %tmp2631, i64 1
+ %tmp2633 = getelementptr inbounds float* %tmp2632, i64 1
+ %tmp2634 = getelementptr inbounds float* %tmp2633, i64 1
+ %tmp2635 = getelementptr inbounds float* %tmp2634, i64 1
+ %tmp2636 = getelementptr inbounds float* %tmp2635, i64 1
+ %tmp2637 = getelementptr inbounds float* %tmp2636, i64 1
+ %tmp2638 = getelementptr inbounds float* %tmp2637, i64 1
+ %tmp2639 = getelementptr inbounds float* %tmp2638, i64 1
+ %tmp2640 = getelementptr inbounds float* %tmp2639, i64 1
+ %tmp2641 = getelementptr inbounds float* %tmp2640, i64 1
+ %tmp2642 = getelementptr inbounds float* %tmp2641, i64 1
+ %tmp2643 = getelementptr inbounds float* %tmp2642, i64 1
+ %tmp2644 = getelementptr inbounds float* %tmp2643, i64 1
+ %tmp2645 = getelementptr inbounds float* %tmp2644, i64 1
+ %tmp2646 = getelementptr inbounds float* %tmp2645, i64 1
+ %tmp2647 = getelementptr inbounds float* %tmp2646, i64 1
+ %tmp2648 = getelementptr inbounds float* %tmp2647, i64 1
+ %tmp2649 = getelementptr inbounds float* %tmp2648, i64 1
+ %tmp2650 = getelementptr inbounds float* %tmp2649, i64 1
+ %tmp2651 = getelementptr inbounds float* %tmp2650, i64 1
+ %tmp2652 = getelementptr inbounds float* %tmp2651, i64 1
+ %tmp2653 = getelementptr inbounds float* %tmp2652, i64 1
+ %tmp2654 = getelementptr inbounds float* %tmp2653, i64 1
+ %tmp2655 = getelementptr inbounds float* %tmp2654, i64 1
+ %tmp2656 = getelementptr inbounds float* %tmp2655, i64 1
+ %tmp2657 = getelementptr inbounds float* %tmp2656, i64 1
+ %tmp2658 = getelementptr inbounds float* %tmp2657, i64 1
+ %tmp2659 = getelementptr inbounds float* %tmp2658, i64 1
+ %tmp2660 = getelementptr inbounds float* %tmp2659, i64 1
+ %tmp2661 = getelementptr inbounds float* %tmp2660, i64 1
+ %tmp2662 = getelementptr inbounds float* %tmp2661, i64 1
+ %tmp2663 = getelementptr inbounds float* %tmp2662, i64 1
+ %tmp2664 = getelementptr inbounds float* %tmp2663, i64 1
+ %tmp2665 = getelementptr inbounds float* %tmp2664, i64 1
+ %tmp2666 = getelementptr inbounds float* %tmp2665, i64 1
+ %tmp2667 = getelementptr inbounds float* %tmp2666, i64 1
+ %tmp2668 = getelementptr inbounds float* %tmp2667, i64 1
+ %tmp2669 = getelementptr inbounds float* %tmp2668, i64 1
+ %tmp2670 = getelementptr inbounds float* %tmp2669, i64 1
+ %tmp2671 = getelementptr inbounds float* %tmp2670, i64 1
+ %tmp2672 = getelementptr inbounds float* %tmp2671, i64 1
+ %tmp2673 = getelementptr inbounds float* %tmp2672, i64 1
+ %tmp2674 = getelementptr inbounds float* %tmp2673, i64 1
+ %tmp2675 = getelementptr inbounds float* %tmp2674, i64 1
+ %tmp2676 = getelementptr inbounds float* %tmp2675, i64 1
+ %tmp2677 = getelementptr inbounds float* %tmp2676, i64 1
+ %tmp2678 = getelementptr inbounds float* %tmp2677, i64 1
+ %tmp2679 = getelementptr inbounds float* %tmp2678, i64 1
+ %tmp2680 = getelementptr inbounds float* %tmp2679, i64 1
+ %tmp2681 = getelementptr inbounds float* %tmp2680, i64 1
+ %tmp2682 = getelementptr inbounds float* %tmp2681, i64 1
+ %tmp2683 = getelementptr inbounds float* %tmp2682, i64 1
+ %tmp2684 = getelementptr inbounds float* %tmp2683, i64 1
+ %tmp2685 = getelementptr inbounds float* %tmp2684, i64 1
+ %tmp2686 = getelementptr inbounds float* %tmp2685, i64 1
+ %tmp2687 = getelementptr inbounds float* %tmp2686, i64 1
+ %tmp2688 = getelementptr inbounds float* %tmp2687, i64 1
+ %tmp2689 = getelementptr inbounds float* %tmp2688, i64 1
+ %tmp2690 = getelementptr inbounds float* %tmp2689, i64 1
+ %tmp2691 = getelementptr inbounds float* %tmp2690, i64 1
+ %tmp2692 = getelementptr inbounds float* %tmp2691, i64 1
+ %tmp2693 = getelementptr inbounds float* %tmp2692, i64 1
+ %tmp2694 = getelementptr inbounds float* %tmp2693, i64 1
+ %tmp2695 = getelementptr inbounds float* %tmp2694, i64 1
+ %tmp2696 = getelementptr inbounds float* %tmp2695, i64 1
+ %tmp2697 = getelementptr inbounds float* %tmp2696, i64 1
+ %tmp2698 = getelementptr inbounds float* %tmp2697, i64 1
+ %tmp2699 = getelementptr inbounds float* %tmp2698, i64 1
+ %tmp2700 = getelementptr inbounds float* %tmp2699, i64 1
+ %tmp2701 = getelementptr inbounds float* %tmp2700, i64 1
+ %tmp2702 = getelementptr inbounds float* %tmp2701, i64 1
+ %tmp2703 = getelementptr inbounds float* %tmp2702, i64 1
+ %tmp2704 = getelementptr inbounds float* %tmp2703, i64 1
+ %tmp2705 = getelementptr inbounds float* %tmp2704, i64 1
+ %tmp2706 = getelementptr inbounds float* %tmp2705, i64 1
+ %tmp2707 = getelementptr inbounds float* %tmp2706, i64 1
+ %tmp2708 = getelementptr inbounds float* %tmp2707, i64 1
+ %tmp2709 = getelementptr inbounds float* %tmp2708, i64 1
+ %tmp2710 = getelementptr inbounds float* %tmp2709, i64 1
+ %tmp2711 = getelementptr inbounds float* %tmp2710, i64 1
+ %tmp2712 = getelementptr inbounds float* %tmp2711, i64 1
+ %tmp2713 = getelementptr inbounds float* %tmp2712, i64 1
+ %tmp2714 = getelementptr inbounds float* %tmp2713, i64 1
+ %tmp2715 = getelementptr inbounds float* %tmp2714, i64 1
+ %tmp2716 = getelementptr inbounds float* %tmp2715, i64 1
+ %tmp2717 = getelementptr inbounds float* %tmp2716, i64 1
+ %tmp2718 = getelementptr inbounds float* %tmp2717, i64 1
+ %tmp2719 = getelementptr inbounds float* %tmp2718, i64 1
+ %tmp2720 = getelementptr inbounds float* %tmp2719, i64 1
+ %tmp2721 = getelementptr inbounds float* %tmp2720, i64 1
+ %tmp2722 = getelementptr inbounds float* %tmp2721, i64 1
+ %tmp2723 = getelementptr inbounds float* %tmp2722, i64 1
+ %tmp2724 = getelementptr inbounds float* %tmp2723, i64 1
+ %tmp2725 = getelementptr inbounds float* %tmp2724, i64 1
+ %tmp2726 = getelementptr inbounds float* %tmp2725, i64 1
+ %tmp2727 = getelementptr inbounds float* %tmp2726, i64 1
+ %tmp2728 = getelementptr inbounds float* %tmp2727, i64 1
+ %tmp2729 = getelementptr inbounds float* %tmp2728, i64 1
+ %tmp2730 = getelementptr inbounds float* %tmp2729, i64 1
+ %tmp2731 = getelementptr inbounds float* %tmp2730, i64 1
+ %tmp2732 = getelementptr inbounds float* %tmp2731, i64 1
+ %tmp2733 = getelementptr inbounds float* %tmp2732, i64 1
+ %tmp2734 = getelementptr inbounds float* %tmp2733, i64 1
+ %tmp2735 = getelementptr inbounds float* %tmp2734, i64 1
+ %tmp2736 = getelementptr inbounds float* %tmp2735, i64 1
+ %tmp2737 = getelementptr inbounds float* %tmp2736, i64 1
+ %tmp2738 = getelementptr inbounds float* %tmp2737, i64 1
+ %tmp2739 = getelementptr inbounds float* %tmp2738, i64 1
+ %tmp2740 = getelementptr inbounds float* %tmp2739, i64 1
+ %tmp2741 = getelementptr inbounds float* %tmp2740, i64 1
+ %tmp2742 = getelementptr inbounds float* %tmp2741, i64 1
+ %tmp2743 = getelementptr inbounds float* %tmp2742, i64 1
+ %tmp2744 = getelementptr inbounds float* %tmp2743, i64 1
+ %tmp2745 = getelementptr inbounds float* %tmp2744, i64 1
+ %tmp2746 = getelementptr inbounds float* %tmp2745, i64 1
+ %tmp2747 = getelementptr inbounds float* %tmp2746, i64 1
+ %tmp2748 = getelementptr inbounds float* %tmp2747, i64 1
+ %tmp2749 = getelementptr inbounds float* %tmp2748, i64 1
+ %tmp2750 = getelementptr inbounds float* %tmp2749, i64 1
+ %tmp2751 = getelementptr inbounds float* %tmp2750, i64 1
+ %tmp2752 = getelementptr inbounds float* %tmp2751, i64 1
+ %tmp2753 = getelementptr inbounds float* %tmp2752, i64 1
+ %tmp2754 = getelementptr inbounds float* %tmp2753, i64 1
+ %tmp2755 = getelementptr inbounds float* %tmp2754, i64 1
+ %tmp2756 = getelementptr inbounds float* %tmp2755, i64 1
+ %tmp2757 = getelementptr inbounds float* %tmp2756, i64 1
+ %tmp2758 = getelementptr inbounds float* %tmp2757, i64 1
+ %tmp2759 = getelementptr inbounds float* %tmp2758, i64 1
+ %tmp2760 = getelementptr inbounds float* %tmp2759, i64 1
+ %tmp2761 = getelementptr inbounds float* %tmp2760, i64 1
+ %tmp2762 = getelementptr inbounds float* %tmp2761, i64 1
+ %tmp2763 = getelementptr inbounds float* %tmp2762, i64 1
+ %tmp2764 = getelementptr inbounds float* %tmp2763, i64 1
+ %tmp2765 = getelementptr inbounds float* %tmp2764, i64 1
+ %tmp2766 = getelementptr inbounds float* %tmp2765, i64 1
+ %tmp2767 = getelementptr inbounds float* %tmp2766, i64 1
+ %tmp2768 = getelementptr inbounds float* %tmp2767, i64 1
+ %tmp2769 = getelementptr inbounds float* %tmp2768, i64 1
+ %tmp2770 = getelementptr inbounds float* %tmp2769, i64 1
+ %tmp2771 = getelementptr inbounds float* %tmp2770, i64 1
+ %tmp2772 = getelementptr inbounds float* %tmp2771, i64 1
+ %tmp2773 = getelementptr inbounds float* %tmp2772, i64 1
+ %tmp2774 = getelementptr inbounds float* %tmp2773, i64 1
+ %tmp2775 = getelementptr inbounds float* %tmp2774, i64 1
+ %tmp2776 = getelementptr inbounds float* %tmp2775, i64 1
+ %tmp2777 = getelementptr inbounds float* %tmp2776, i64 1
+ %tmp2778 = getelementptr inbounds float* %tmp2777, i64 1
+ %tmp2779 = getelementptr inbounds float* %tmp2778, i64 1
+ %tmp2780 = getelementptr inbounds float* %tmp2779, i64 1
+ %tmp2781 = getelementptr inbounds float* %tmp2780, i64 1
+ %tmp2782 = getelementptr inbounds float* %tmp2781, i64 1
+ %tmp2783 = getelementptr inbounds float* %tmp2782, i64 1
+ %tmp2784 = getelementptr inbounds float* %tmp2783, i64 1
+ %tmp2785 = getelementptr inbounds float* %tmp2784, i64 1
+ %tmp2786 = getelementptr inbounds float* %tmp2785, i64 1
+ %tmp2787 = getelementptr inbounds float* %tmp2786, i64 1
+ %tmp2788 = getelementptr inbounds float* %tmp2787, i64 1
+ %tmp2789 = getelementptr inbounds float* %tmp2788, i64 1
+ %tmp2790 = getelementptr inbounds float* %tmp2789, i64 1
+ %tmp2791 = getelementptr inbounds float* %tmp2790, i64 1
+ %tmp2792 = getelementptr inbounds float* %tmp2791, i64 1
+ %tmp2793 = getelementptr inbounds float* %tmp2792, i64 1
+ %tmp2794 = getelementptr inbounds float* %tmp2793, i64 1
+ %tmp2795 = getelementptr inbounds float* %tmp2794, i64 1
+ %tmp2796 = getelementptr inbounds float* %tmp2795, i64 1
+ %tmp2797 = getelementptr inbounds float* %tmp2796, i64 1
+ %tmp2798 = getelementptr inbounds float* %tmp2797, i64 1
+ %tmp2799 = getelementptr inbounds float* %tmp2798, i64 1
+ %tmp2800 = getelementptr inbounds float* %tmp2799, i64 1
+ %tmp2801 = getelementptr inbounds float* %tmp2800, i64 1
+ %tmp2802 = getelementptr inbounds float* %tmp2801, i64 1
+ %tmp2803 = getelementptr inbounds float* %tmp2802, i64 1
+ %tmp2804 = getelementptr inbounds float* %tmp2803, i64 1
+ %tmp2805 = getelementptr inbounds float* %tmp2804, i64 1
+ %tmp2806 = getelementptr inbounds float* %tmp2805, i64 1
+ %tmp2807 = getelementptr inbounds float* %tmp2806, i64 1
+ %tmp2808 = getelementptr inbounds float* %tmp2807, i64 1
+ %tmp2809 = getelementptr inbounds float* %tmp2808, i64 1
+ %tmp2810 = getelementptr inbounds float* %tmp2809, i64 1
+ %tmp2811 = getelementptr inbounds float* %tmp2810, i64 1
+ %tmp2812 = getelementptr inbounds float* %tmp2811, i64 1
+ %tmp2813 = getelementptr inbounds float* %tmp2812, i64 1
+ %tmp2814 = getelementptr inbounds float* %tmp2813, i64 1
+ %tmp2815 = getelementptr inbounds float* %tmp2814, i64 1
+ %tmp2816 = getelementptr inbounds float* %tmp2815, i64 1
+ %tmp2817 = getelementptr inbounds float* %tmp2816, i64 1
+ %tmp2818 = getelementptr inbounds float* %tmp2817, i64 1
+ %tmp2819 = getelementptr inbounds float* %tmp2818, i64 1
+ %tmp2820 = getelementptr inbounds float* %tmp2819, i64 1
+ %tmp2821 = getelementptr inbounds float* %tmp2820, i64 1
+ %tmp2822 = getelementptr inbounds float* %tmp2821, i64 1
+ %tmp2823 = getelementptr inbounds float* %tmp2822, i64 1
+ %tmp2824 = getelementptr inbounds float* %tmp2823, i64 1
+ %tmp2825 = getelementptr inbounds float* %tmp2824, i64 1
+ %tmp2826 = getelementptr inbounds float* %tmp2825, i64 1
+ %tmp2827 = getelementptr inbounds float* %tmp2826, i64 1
+ %tmp2828 = getelementptr inbounds float* %tmp2827, i64 1
+ %tmp2829 = getelementptr inbounds float* %tmp2828, i64 1
+ %tmp2830 = getelementptr inbounds float* %tmp2829, i64 1
+ %tmp2831 = getelementptr inbounds float* %tmp2830, i64 1
+ %tmp2832 = getelementptr inbounds float* %tmp2831, i64 1
+ %tmp2833 = getelementptr inbounds float* %tmp2832, i64 1
+ %tmp2834 = getelementptr inbounds float* %tmp2833, i64 1
+ %tmp2835 = getelementptr inbounds float* %tmp2834, i64 1
+ %tmp2836 = getelementptr inbounds float* %tmp2835, i64 1
+ %tmp2837 = getelementptr inbounds float* %tmp2836, i64 1
+ %tmp2838 = getelementptr inbounds float* %tmp2837, i64 1
+ %tmp2839 = getelementptr inbounds float* %tmp2838, i64 1
+ %tmp2840 = getelementptr inbounds float* %tmp2839, i64 1
+ %tmp2841 = getelementptr inbounds float* %tmp2840, i64 1
+ %tmp2842 = getelementptr inbounds float* %tmp2841, i64 1
+ %tmp2843 = getelementptr inbounds float* %tmp2842, i64 1
+ %tmp2844 = getelementptr inbounds float* %tmp2843, i64 1
+ %tmp2845 = getelementptr inbounds float* %tmp2844, i64 1
+ %tmp2846 = getelementptr inbounds float* %tmp2845, i64 1
+ %tmp2847 = getelementptr inbounds float* %tmp2846, i64 1
+ %tmp2848 = getelementptr inbounds float* %tmp2847, i64 1
+ %tmp2849 = getelementptr inbounds float* %tmp2848, i64 1
+ %tmp2850 = getelementptr inbounds float* %tmp2849, i64 1
+ %tmp2851 = getelementptr inbounds float* %tmp2850, i64 1
+ %tmp2852 = getelementptr inbounds float* %tmp2851, i64 1
+ %tmp2853 = getelementptr inbounds float* %tmp2852, i64 1
+ %tmp2854 = getelementptr inbounds float* %tmp2853, i64 1
+ %tmp2855 = getelementptr inbounds float* %tmp2854, i64 1
+ %tmp2856 = getelementptr inbounds float* %tmp2855, i64 1
+ %tmp2857 = getelementptr inbounds float* %tmp2856, i64 1
+ %tmp2858 = getelementptr inbounds float* %tmp2857, i64 1
+ %tmp2859 = getelementptr inbounds float* %tmp2858, i64 1
+ %tmp2860 = getelementptr inbounds float* %tmp2859, i64 1
+ %tmp2861 = getelementptr inbounds float* %tmp2860, i64 1
+ %tmp2862 = getelementptr inbounds float* %tmp2861, i64 1
+ %tmp2863 = getelementptr inbounds float* %tmp2862, i64 1
+ %tmp2864 = getelementptr inbounds float* %tmp2863, i64 1
+ %tmp2865 = getelementptr inbounds float* %tmp2864, i64 1
+ %tmp2866 = getelementptr inbounds float* %tmp2865, i64 1
+ %tmp2867 = getelementptr inbounds float* %tmp2866, i64 1
+ %tmp2868 = getelementptr inbounds float* %tmp2867, i64 1
+ %tmp2869 = getelementptr inbounds float* %tmp2868, i64 1
+ %tmp2870 = getelementptr inbounds float* %tmp2869, i64 1
+ %tmp2871 = getelementptr inbounds float* %tmp2870, i64 1
+ %tmp2872 = getelementptr inbounds float* %tmp2871, i64 1
+ %tmp2873 = getelementptr inbounds float* %tmp2872, i64 1
+ %tmp2874 = getelementptr inbounds float* %tmp2873, i64 1
+ %tmp2875 = getelementptr inbounds float* %tmp2874, i64 1
+ %tmp2876 = getelementptr inbounds float* %tmp2875, i64 1
+ %tmp2877 = getelementptr inbounds float* %tmp2876, i64 1
+ %tmp2878 = getelementptr inbounds float* %tmp2877, i64 1
+ %tmp2879 = getelementptr inbounds float* %tmp2878, i64 1
+ %tmp2880 = getelementptr inbounds float* %tmp2879, i64 1
+ %tmp2881 = getelementptr inbounds float* %tmp2880, i64 1
+ %tmp2882 = getelementptr inbounds float* %tmp2881, i64 1
+ %tmp2883 = getelementptr inbounds float* %tmp2882, i64 1
+ %tmp2884 = getelementptr inbounds float* %tmp2883, i64 1
+ %tmp2885 = getelementptr inbounds float* %tmp2884, i64 1
+ %tmp2886 = getelementptr inbounds float* %tmp2885, i64 1
+ %tmp2887 = getelementptr inbounds float* %tmp2886, i64 1
+ %tmp2888 = getelementptr inbounds float* %tmp2887, i64 1
+ %tmp2889 = getelementptr inbounds float* %tmp2888, i64 1
+ %tmp2890 = getelementptr inbounds float* %tmp2889, i64 1
+ %tmp2891 = getelementptr inbounds float* %tmp2890, i64 1
+ %tmp2892 = getelementptr inbounds float* %tmp2891, i64 1
+ %tmp2893 = getelementptr inbounds float* %tmp2892, i64 1
+ %tmp2894 = getelementptr inbounds float* %tmp2893, i64 1
+ %tmp2895 = getelementptr inbounds float* %tmp2894, i64 1
+ %tmp2896 = getelementptr inbounds float* %tmp2895, i64 1
+ %tmp2897 = getelementptr inbounds float* %tmp2896, i64 1
+ %tmp2898 = getelementptr inbounds float* %tmp2897, i64 1
+ %tmp2899 = getelementptr inbounds float* %tmp2898, i64 1
+ %tmp2900 = getelementptr inbounds float* %tmp2899, i64 1
+ %tmp2901 = getelementptr inbounds float* %tmp2900, i64 1
+ %tmp2902 = getelementptr inbounds float* %tmp2901, i64 1
+ %tmp2903 = getelementptr inbounds float* %tmp2902, i64 1
+ %tmp2904 = getelementptr inbounds float* %tmp2903, i64 1
+ %tmp2905 = getelementptr inbounds float* %tmp2904, i64 1
+ %tmp2906 = getelementptr inbounds float* %tmp2905, i64 1
+ %tmp2907 = getelementptr inbounds float* %tmp2906, i64 1
+ %tmp2908 = getelementptr inbounds float* %tmp2907, i64 1
+ %tmp2909 = getelementptr inbounds float* %tmp2908, i64 1
+ %tmp2910 = getelementptr inbounds float* %tmp2909, i64 1
+ %tmp2911 = getelementptr inbounds float* %tmp2910, i64 1
+ %tmp2912 = getelementptr inbounds float* %tmp2911, i64 1
+ %tmp2913 = getelementptr inbounds float* %tmp2912, i64 1
+ %tmp2914 = getelementptr inbounds float* %tmp2913, i64 1
+ %tmp2915 = getelementptr inbounds float* %tmp2914, i64 1
+ %tmp2916 = getelementptr inbounds float* %tmp2915, i64 1
+ %tmp2917 = getelementptr inbounds float* %tmp2916, i64 1
+ %tmp2918 = getelementptr inbounds float* %tmp2917, i64 1
+ %tmp2919 = getelementptr inbounds float* %tmp2918, i64 1
+ %tmp2920 = getelementptr inbounds float* %tmp2919, i64 1
+ %tmp2921 = getelementptr inbounds float* %tmp2920, i64 1
+ %tmp2922 = getelementptr inbounds float* %tmp2921, i64 1
+ %tmp2923 = getelementptr inbounds float* %tmp2922, i64 1
+ %tmp2924 = getelementptr inbounds float* %tmp2923, i64 1
+ %tmp2925 = getelementptr inbounds float* %tmp2924, i64 1
+ %tmp2926 = getelementptr inbounds float* %tmp2925, i64 1
+ %tmp2927 = getelementptr inbounds float* %tmp2926, i64 1
+ %tmp2928 = getelementptr inbounds float* %tmp2927, i64 1
+ %tmp2929 = getelementptr inbounds float* %tmp2928, i64 1
+ %tmp2930 = getelementptr inbounds float* %tmp2929, i64 1
+ %tmp2931 = getelementptr inbounds float* %tmp2930, i64 1
+ %tmp2932 = getelementptr inbounds float* %tmp2931, i64 1
+ %tmp2933 = getelementptr inbounds float* %tmp2932, i64 1
+ %tmp2934 = getelementptr inbounds float* %tmp2933, i64 1
+ %tmp2935 = getelementptr inbounds float* %tmp2934, i64 1
+ %tmp2936 = getelementptr inbounds float* %tmp2935, i64 1
+ %tmp2937 = getelementptr inbounds float* %tmp2936, i64 1
+ %tmp2938 = getelementptr inbounds float* %tmp2937, i64 1
+ %tmp2939 = getelementptr inbounds float* %tmp2938, i64 1
+ %tmp2940 = getelementptr inbounds float* %tmp2939, i64 1
+ %tmp2941 = getelementptr inbounds float* %tmp2940, i64 1
+ %tmp2942 = getelementptr inbounds float* %tmp2941, i64 1
+ %tmp2943 = getelementptr inbounds float* %tmp2942, i64 1
+ %tmp2944 = getelementptr inbounds float* %tmp2943, i64 1
+ %tmp2945 = getelementptr inbounds float* %tmp2944, i64 1
+ %tmp2946 = getelementptr inbounds float* %tmp2945, i64 1
+ %tmp2947 = getelementptr inbounds float* %tmp2946, i64 1
+ %tmp2948 = getelementptr inbounds float* %tmp2947, i64 1
+ %tmp2949 = getelementptr inbounds float* %tmp2948, i64 1
+ %tmp2950 = getelementptr inbounds float* %tmp2949, i64 1
+ %tmp2951 = getelementptr inbounds float* %tmp2950, i64 1
+ %tmp2952 = getelementptr inbounds float* %tmp2951, i64 1
+ %tmp2953 = getelementptr inbounds float* %tmp2952, i64 1
+ %tmp2954 = getelementptr inbounds float* %tmp2953, i64 1
+ %tmp2955 = getelementptr inbounds float* %tmp2954, i64 1
+ %tmp2956 = getelementptr inbounds float* %tmp2955, i64 1
+ %tmp2957 = getelementptr inbounds float* %tmp2956, i64 1
+ %tmp2958 = getelementptr inbounds float* %tmp2957, i64 1
+ %tmp2959 = getelementptr inbounds float* %tmp2958, i64 1
+ %tmp2960 = getelementptr inbounds float* %tmp2959, i64 1
+ %tmp2961 = getelementptr inbounds float* %tmp2960, i64 1
+ %tmp2962 = getelementptr inbounds float* %tmp2961, i64 1
+ %tmp2963 = getelementptr inbounds float* %tmp2962, i64 1
+ %tmp2964 = getelementptr inbounds float* %tmp2963, i64 1
+ %tmp2965 = getelementptr inbounds float* %tmp2964, i64 1
+ %tmp2966 = getelementptr inbounds float* %tmp2965, i64 1
+ %tmp2967 = getelementptr inbounds float* %tmp2966, i64 1
+ %tmp2968 = getelementptr inbounds float* %tmp2967, i64 1
+ %tmp2969 = getelementptr inbounds float* %tmp2968, i64 1
+ %tmp2970 = getelementptr inbounds float* %tmp2969, i64 1
+ %tmp2971 = getelementptr inbounds float* %tmp2970, i64 1
+ %tmp2972 = getelementptr inbounds float* %tmp2971, i64 1
+ %tmp2973 = getelementptr inbounds float* %tmp2972, i64 1
+ %tmp2974 = getelementptr inbounds float* %tmp2973, i64 1
+ %tmp2975 = getelementptr inbounds float* %tmp2974, i64 1
+ %tmp2976 = getelementptr inbounds float* %tmp2975, i64 1
+ %tmp2977 = getelementptr inbounds float* %tmp2976, i64 1
+ %tmp2978 = getelementptr inbounds float* %tmp2977, i64 1
+ %tmp2979 = getelementptr inbounds float* %tmp2978, i64 1
+ %tmp2980 = getelementptr inbounds float* %tmp2979, i64 1
+ %tmp2981 = getelementptr inbounds float* %tmp2980, i64 1
+ %tmp2982 = getelementptr inbounds float* %tmp2981, i64 1
+ %tmp2983 = getelementptr inbounds float* %tmp2982, i64 1
+ %tmp2984 = getelementptr inbounds float* %tmp2983, i64 1
+ %tmp2985 = getelementptr inbounds float* %tmp2984, i64 1
+ %tmp2986 = getelementptr inbounds float* %tmp2985, i64 1
+ %tmp2987 = getelementptr inbounds float* %tmp2986, i64 1
+ %tmp2988 = getelementptr inbounds float* %tmp2987, i64 1
+ %tmp2989 = getelementptr inbounds float* %tmp2988, i64 1
+ %tmp2990 = getelementptr inbounds float* %tmp2989, i64 1
+ %tmp2991 = getelementptr inbounds float* %tmp2990, i64 1
+ %tmp2992 = getelementptr inbounds float* %tmp2991, i64 1
+ %tmp2993 = getelementptr inbounds float* %tmp2992, i64 1
+ %tmp2994 = getelementptr inbounds float* %tmp2993, i64 1
+ %tmp2995 = getelementptr inbounds float* %tmp2994, i64 1
+ %tmp2996 = getelementptr inbounds float* %tmp2995, i64 1
+ %tmp2997 = getelementptr inbounds float* %tmp2996, i64 1
+ %tmp2998 = getelementptr inbounds float* %tmp2997, i64 1
+ %tmp2999 = getelementptr inbounds float* %tmp2998, i64 1
+ %tmp3000 = getelementptr inbounds float* %tmp2999, i64 1
+ %tmp3001 = getelementptr inbounds float* %tmp3000, i64 1
+ %tmp3002 = getelementptr inbounds float* %tmp3001, i64 1
+ %tmp3003 = getelementptr inbounds float* %tmp3002, i64 1
+ %tmp3004 = getelementptr inbounds float* %tmp3003, i64 1
+ %tmp3005 = getelementptr inbounds float* %tmp3004, i64 1
+ %tmp3006 = getelementptr inbounds float* %tmp3005, i64 1
+ %tmp3007 = getelementptr inbounds float* %tmp3006, i64 1
+ %tmp3008 = getelementptr inbounds float* %tmp3007, i64 1
+ %tmp3009 = getelementptr inbounds float* %tmp3008, i64 1
+ %tmp3010 = getelementptr inbounds float* %tmp3009, i64 1
+ %tmp3011 = getelementptr inbounds float* %tmp3010, i64 1
+ %tmp3012 = getelementptr inbounds float* %tmp3011, i64 1
+ %tmp3013 = getelementptr inbounds float* %tmp3012, i64 1
+ %tmp3014 = getelementptr inbounds float* %tmp3013, i64 1
+ %tmp3015 = getelementptr inbounds float* %tmp3014, i64 1
+ %tmp3016 = getelementptr inbounds float* %tmp3015, i64 1
+ %tmp3017 = getelementptr inbounds float* %tmp3016, i64 1
+ %tmp3018 = getelementptr inbounds float* %tmp3017, i64 1
+ %tmp3019 = getelementptr inbounds float* %tmp3018, i64 1
+ %tmp3020 = getelementptr inbounds float* %tmp3019, i64 1
+ %tmp3021 = getelementptr inbounds float* %tmp3020, i64 1
+ %tmp3022 = getelementptr inbounds float* %tmp3021, i64 1
+ %tmp3023 = getelementptr inbounds float* %tmp3022, i64 1
+ %tmp3024 = getelementptr inbounds float* %tmp3023, i64 1
+ %tmp3025 = getelementptr inbounds float* %tmp3024, i64 1
+ %tmp3026 = getelementptr inbounds float* %tmp3025, i64 1
+ %tmp3027 = getelementptr inbounds float* %tmp3026, i64 1
+ %tmp3028 = getelementptr inbounds float* %tmp3027, i64 1
+ %tmp3029 = getelementptr inbounds float* %tmp3028, i64 1
+ %tmp3030 = getelementptr inbounds float* %tmp3029, i64 1
+ %tmp3031 = getelementptr inbounds float* %tmp3030, i64 1
+ %tmp3032 = getelementptr inbounds float* %tmp3031, i64 1
+ %tmp3033 = getelementptr inbounds float* %tmp3032, i64 1
+ %tmp3034 = getelementptr inbounds float* %tmp3033, i64 1
+ %tmp3035 = getelementptr inbounds float* %tmp3034, i64 1
+ %tmp3036 = getelementptr inbounds float* %tmp3035, i64 1
+ %tmp3037 = getelementptr inbounds float* %tmp3036, i64 1
+ %tmp3038 = getelementptr inbounds float* %tmp3037, i64 1
+ %tmp3039 = getelementptr inbounds float* %tmp3038, i64 1
+ %tmp3040 = getelementptr inbounds float* %tmp3039, i64 1
+ %tmp3041 = getelementptr inbounds float* %tmp3040, i64 1
+ %tmp3042 = getelementptr inbounds float* %tmp3041, i64 1
+ %tmp3043 = getelementptr inbounds float* %tmp3042, i64 1
+ %tmp3044 = getelementptr inbounds float* %tmp3043, i64 1
+ %tmp3045 = getelementptr inbounds float* %tmp3044, i64 1
+ %tmp3046 = getelementptr inbounds float* %tmp3045, i64 1
+ %tmp3047 = getelementptr inbounds float* %tmp3046, i64 1
+ %tmp3048 = getelementptr inbounds float* %tmp3047, i64 1
+ %tmp3049 = getelementptr inbounds float* %tmp3048, i64 1
+ %tmp3050 = getelementptr inbounds float* %tmp3049, i64 1
+ %tmp3051 = getelementptr inbounds float* %tmp3050, i64 1
+ %tmp3052 = getelementptr inbounds float* %tmp3051, i64 1
+ %tmp3053 = getelementptr inbounds float* %tmp3052, i64 1
+ %tmp3054 = getelementptr inbounds float* %tmp3053, i64 1
+ %tmp3055 = getelementptr inbounds float* %tmp3054, i64 1
+ %tmp3056 = getelementptr inbounds float* %tmp3055, i64 1
+ %tmp3057 = getelementptr inbounds float* %tmp3056, i64 1
+ %tmp3058 = getelementptr inbounds float* %tmp3057, i64 1
+ %tmp3059 = getelementptr inbounds float* %tmp3058, i64 1
+ %tmp3060 = getelementptr inbounds float* %tmp3059, i64 1
+ %tmp3061 = getelementptr inbounds float* %tmp3060, i64 1
+ %tmp3062 = getelementptr inbounds float* %tmp3061, i64 1
+ %tmp3063 = getelementptr inbounds float* %tmp3062, i64 1
+ %tmp3064 = getelementptr inbounds float* %tmp3063, i64 1
+ %tmp3065 = getelementptr inbounds float* %tmp3064, i64 1
+ %tmp3066 = getelementptr inbounds float* %tmp3065, i64 1
+ %tmp3067 = getelementptr inbounds float* %tmp3066, i64 1
+ %tmp3068 = getelementptr inbounds float* %tmp3067, i64 1
+ %tmp3069 = getelementptr inbounds float* %tmp3068, i64 1
+ %tmp3070 = getelementptr inbounds float* %tmp3069, i64 1
+ %tmp3071 = getelementptr inbounds float* %tmp3070, i64 1
+ %tmp3072 = getelementptr inbounds float* %tmp3071, i64 1
+ %tmp3073 = getelementptr inbounds float* %tmp3072, i64 1
+ %tmp3074 = getelementptr inbounds float* %tmp3073, i64 1
+ %tmp3075 = getelementptr inbounds float* %tmp3074, i64 1
+ %tmp3076 = getelementptr inbounds float* %tmp3075, i64 1
+ %tmp3077 = getelementptr inbounds float* %tmp3076, i64 1
+ %tmp3078 = getelementptr inbounds float* %tmp3077, i64 1
+ %tmp3079 = getelementptr inbounds float* %tmp3078, i64 1
+ %tmp3080 = getelementptr inbounds float* %tmp3079, i64 1
+ %tmp3081 = getelementptr inbounds float* %tmp3080, i64 1
+ %tmp3082 = getelementptr inbounds float* %tmp3081, i64 1
+ %tmp3083 = getelementptr inbounds float* %tmp3082, i64 1
+ %tmp3084 = getelementptr inbounds float* %tmp3083, i64 1
+ %tmp3085 = getelementptr inbounds float* %tmp3084, i64 1
+ %tmp3086 = getelementptr inbounds float* %tmp3085, i64 1
+ %tmp3087 = getelementptr inbounds float* %tmp3086, i64 1
+ %tmp3088 = getelementptr inbounds float* %tmp3087, i64 1
+ %tmp3089 = getelementptr inbounds float* %tmp3088, i64 1
+ %tmp3090 = getelementptr inbounds float* %tmp3089, i64 1
+ %tmp3091 = getelementptr inbounds float* %tmp3090, i64 1
+ %tmp3092 = getelementptr inbounds float* %tmp3091, i64 1
+ %tmp3093 = getelementptr inbounds float* %tmp3092, i64 1
+ %tmp3094 = getelementptr inbounds float* %tmp3093, i64 1
+ %tmp3095 = getelementptr inbounds float* %tmp3094, i64 1
+ %tmp3096 = getelementptr inbounds float* %tmp3095, i64 1
+ %tmp3097 = getelementptr inbounds float* %tmp3096, i64 1
+ %tmp3098 = getelementptr inbounds float* %tmp3097, i64 1
+ %tmp3099 = getelementptr inbounds float* %tmp3098, i64 1
+ %tmp3100 = getelementptr inbounds float* %tmp3099, i64 1
+ %tmp3101 = getelementptr inbounds float* %tmp3100, i64 1
+ %tmp3102 = getelementptr inbounds float* %tmp3101, i64 1
+ %tmp3103 = getelementptr inbounds float* %tmp3102, i64 1
+ %tmp3104 = getelementptr inbounds float* %tmp3103, i64 1
+ %tmp3105 = getelementptr inbounds float* %tmp3104, i64 1
+ %tmp3106 = getelementptr inbounds float* %tmp3105, i64 1
+ %tmp3107 = getelementptr inbounds float* %tmp3106, i64 1
+ %tmp3108 = getelementptr inbounds float* %tmp3107, i64 1
+ %tmp3109 = getelementptr inbounds float* %tmp3108, i64 1
+ %tmp3110 = getelementptr inbounds float* %tmp3109, i64 1
+ %tmp3111 = getelementptr inbounds float* %tmp3110, i64 1
+ %tmp3112 = getelementptr inbounds float* %tmp3111, i64 1
+ %tmp3113 = getelementptr inbounds float* %tmp3112, i64 1
+ %tmp3114 = getelementptr inbounds float* %tmp3113, i64 1
+ %tmp3115 = getelementptr inbounds float* %tmp3114, i64 1
+ %tmp3116 = getelementptr inbounds float* %tmp3115, i64 1
+ %tmp3117 = getelementptr inbounds float* %tmp3116, i64 1
+ %tmp3118 = getelementptr inbounds float* %tmp3117, i64 1
+ %tmp3119 = getelementptr inbounds float* %tmp3118, i64 1
+ %tmp3120 = getelementptr inbounds float* %tmp3119, i64 1
+ %tmp3121 = getelementptr inbounds float* %tmp3120, i64 1
+ %tmp3122 = getelementptr inbounds float* %tmp3121, i64 1
+ %tmp3123 = getelementptr inbounds float* %tmp3122, i64 1
+ %tmp3124 = getelementptr inbounds float* %tmp3123, i64 1
+ %tmp3125 = getelementptr inbounds float* %tmp3124, i64 1
+ %tmp3126 = getelementptr inbounds float* %tmp3125, i64 1
+ %tmp3127 = getelementptr inbounds float* %tmp3126, i64 1
+ %tmp3128 = getelementptr inbounds float* %tmp3127, i64 1
+ %tmp3129 = getelementptr inbounds float* %tmp3128, i64 1
+ %tmp3130 = getelementptr inbounds float* %tmp3129, i64 1
+ %tmp3131 = getelementptr inbounds float* %tmp3130, i64 1
+ %tmp3132 = getelementptr inbounds float* %tmp3131, i64 1
+ %tmp3133 = getelementptr inbounds float* %tmp3132, i64 1
+ %tmp3134 = getelementptr inbounds float* %tmp3133, i64 1
+ %tmp3135 = getelementptr inbounds float* %tmp3134, i64 1
+ %tmp3136 = getelementptr inbounds float* %tmp3135, i64 1
+ %tmp3137 = getelementptr inbounds float* %tmp3136, i64 1
+ %tmp3138 = getelementptr inbounds float* %tmp3137, i64 1
+ %tmp3139 = getelementptr inbounds float* %tmp3138, i64 1
+ %tmp3140 = getelementptr inbounds float* %tmp3139, i64 1
+ %tmp3141 = getelementptr inbounds float* %tmp3140, i64 1
+ %tmp3142 = getelementptr inbounds float* %tmp3141, i64 1
+ %tmp3143 = getelementptr inbounds float* %tmp3142, i64 1
+ %tmp3144 = getelementptr inbounds float* %tmp3143, i64 1
+ %tmp3145 = getelementptr inbounds float* %tmp3144, i64 1
+ %tmp3146 = getelementptr inbounds float* %tmp3145, i64 1
+ %tmp3147 = getelementptr inbounds float* %tmp3146, i64 1
+ %tmp3148 = getelementptr inbounds float* %tmp3147, i64 1
+ %tmp3149 = getelementptr inbounds float* %tmp3148, i64 1
+ %tmp3150 = getelementptr inbounds float* %tmp3149, i64 1
+ %tmp3151 = getelementptr inbounds float* %tmp3150, i64 1
+ %tmp3152 = getelementptr inbounds float* %tmp3151, i64 1
+ %tmp3153 = getelementptr inbounds float* %tmp3152, i64 1
+ %tmp3154 = getelementptr inbounds float* %tmp3153, i64 1
+ %tmp3155 = getelementptr inbounds float* %tmp3154, i64 1
+ %tmp3156 = getelementptr inbounds float* %tmp3155, i64 1
+ %tmp3157 = getelementptr inbounds float* %tmp3156, i64 1
+ %tmp3158 = getelementptr inbounds float* %tmp3157, i64 1
+ %tmp3159 = getelementptr inbounds float* %tmp3158, i64 1
+ %tmp3160 = getelementptr inbounds float* %tmp3159, i64 1
+ %tmp3161 = getelementptr inbounds float* %tmp3160, i64 1
+ %tmp3162 = getelementptr inbounds float* %tmp3161, i64 1
+ %tmp3163 = getelementptr inbounds float* %tmp3162, i64 1
+ %tmp3164 = getelementptr inbounds float* %tmp3163, i64 1
+ %tmp3165 = getelementptr inbounds float* %tmp3164, i64 1
+ %tmp3166 = getelementptr inbounds float* %tmp3165, i64 1
+ %tmp3167 = getelementptr inbounds float* %tmp3166, i64 1
+ %tmp3168 = getelementptr inbounds float* %tmp3167, i64 1
+ %tmp3169 = getelementptr inbounds float* %tmp3168, i64 1
+ %tmp3170 = getelementptr inbounds float* %tmp3169, i64 1
+ %tmp3171 = getelementptr inbounds float* %tmp3170, i64 1
+ %tmp3172 = getelementptr inbounds float* %tmp3171, i64 1
+ %tmp3173 = getelementptr inbounds float* %tmp3172, i64 1
+ %tmp3174 = getelementptr inbounds float* %tmp3173, i64 1
+ %tmp3175 = getelementptr inbounds float* %tmp3174, i64 1
+ %tmp3176 = getelementptr inbounds float* %tmp3175, i64 1
+ %tmp3177 = getelementptr inbounds float* %tmp3176, i64 1
+ %tmp3178 = getelementptr inbounds float* %tmp3177, i64 1
+ %tmp3179 = getelementptr inbounds float* %tmp3178, i64 1
+ %tmp3180 = getelementptr inbounds float* %tmp3179, i64 1
+ %tmp3181 = getelementptr inbounds float* %tmp3180, i64 1
+ %tmp3182 = getelementptr inbounds float* %tmp3181, i64 1
+ %tmp3183 = getelementptr inbounds float* %tmp3182, i64 1
+ %tmp3184 = getelementptr inbounds float* %tmp3183, i64 1
+ %tmp3185 = getelementptr inbounds float* %tmp3184, i64 1
+ %tmp3186 = getelementptr inbounds float* %tmp3185, i64 1
+ %tmp3187 = getelementptr inbounds float* %tmp3186, i64 1
+ %tmp3188 = getelementptr inbounds float* %tmp3187, i64 1
+ %tmp3189 = getelementptr inbounds float* %tmp3188, i64 1
+ %tmp3190 = getelementptr inbounds float* %tmp3189, i64 1
+ %tmp3191 = getelementptr inbounds float* %tmp3190, i64 1
+ %tmp3192 = getelementptr inbounds float* %tmp3191, i64 1
+ %tmp3193 = getelementptr inbounds float* %tmp3192, i64 1
+ %tmp3194 = getelementptr inbounds float* %tmp3193, i64 1
+ %tmp3195 = getelementptr inbounds float* %tmp3194, i64 1
+ %tmp3196 = getelementptr inbounds float* %tmp3195, i64 1
+ %tmp3197 = getelementptr inbounds float* %tmp3196, i64 1
+ %tmp3198 = getelementptr inbounds float* %tmp3197, i64 1
+ %tmp3199 = getelementptr inbounds float* %tmp3198, i64 1
+ %tmp3200 = getelementptr inbounds float* %tmp3199, i64 1
+ %tmp3201 = getelementptr inbounds float* %tmp3200, i64 1
+ %tmp3202 = getelementptr inbounds float* %tmp3201, i64 1
+ %tmp3203 = getelementptr inbounds float* %tmp3202, i64 1
+ %tmp3204 = getelementptr inbounds float* %tmp3203, i64 1
+ %tmp3205 = getelementptr inbounds float* %tmp3204, i64 1
+ %tmp3206 = getelementptr inbounds float* %tmp3205, i64 1
+ %tmp3207 = getelementptr inbounds float* %tmp3206, i64 1
+ %tmp3208 = getelementptr inbounds float* %tmp3207, i64 1
+ %tmp3209 = getelementptr inbounds float* %tmp3208, i64 1
+ %tmp3210 = getelementptr inbounds float* %tmp3209, i64 1
+ %tmp3211 = getelementptr inbounds float* %tmp3210, i64 1
+ %tmp3212 = getelementptr inbounds float* %tmp3211, i64 1
+ %tmp3213 = getelementptr inbounds float* %tmp3212, i64 1
+ %tmp3214 = getelementptr inbounds float* %tmp3213, i64 1
+ %tmp3215 = getelementptr inbounds float* %tmp3214, i64 1
+ %tmp3216 = getelementptr inbounds float* %tmp3215, i64 1
+ %tmp3217 = getelementptr inbounds float* %tmp3216, i64 1
+ %tmp3218 = getelementptr inbounds float* %tmp3217, i64 1
+ %tmp3219 = getelementptr inbounds float* %tmp3218, i64 1
+ %tmp3220 = getelementptr inbounds float* %tmp3219, i64 1
+ %tmp3221 = getelementptr inbounds float* %tmp3220, i64 1
+ %tmp3222 = getelementptr inbounds float* %tmp3221, i64 1
+ %tmp3223 = getelementptr inbounds float* %tmp3222, i64 1
+ %tmp3224 = getelementptr inbounds float* %tmp3223, i64 1
+ %tmp3225 = getelementptr inbounds float* %tmp3224, i64 1
+ %tmp3226 = getelementptr inbounds float* %tmp3225, i64 1
+ %tmp3227 = getelementptr inbounds float* %tmp3226, i64 1
+ %tmp3228 = getelementptr inbounds float* %tmp3227, i64 1
+ %tmp3229 = getelementptr inbounds float* %tmp3228, i64 1
+ %tmp3230 = getelementptr inbounds float* %tmp3229, i64 1
+ %tmp3231 = getelementptr inbounds float* %tmp3230, i64 1
+ %tmp3232 = getelementptr inbounds float* %tmp3231, i64 1
+ %tmp3233 = getelementptr inbounds float* %tmp3232, i64 1
+ %tmp3234 = getelementptr inbounds float* %tmp3233, i64 1
+ %tmp3235 = getelementptr inbounds float* %tmp3234, i64 1
+ %tmp3236 = getelementptr inbounds float* %tmp3235, i64 1
+ %tmp3237 = getelementptr inbounds float* %tmp3236, i64 1
+ %tmp3238 = getelementptr inbounds float* %tmp3237, i64 1
+ %tmp3239 = getelementptr inbounds float* %tmp3238, i64 1
+ %tmp3240 = getelementptr inbounds float* %tmp3239, i64 1
+ %tmp3241 = getelementptr inbounds float* %tmp3240, i64 1
+ %tmp3242 = getelementptr inbounds float* %tmp3241, i64 1
+ %tmp3243 = getelementptr inbounds float* %tmp3242, i64 1
+ %tmp3244 = getelementptr inbounds float* %tmp3243, i64 1
+ %tmp3245 = getelementptr inbounds float* %tmp3244, i64 1
+ %tmp3246 = getelementptr inbounds float* %tmp3245, i64 1
+ %tmp3247 = getelementptr inbounds float* %tmp3246, i64 1
+ %tmp3248 = getelementptr inbounds float* %tmp3247, i64 1
+ %tmp3249 = getelementptr inbounds float* %tmp3248, i64 1
+ %tmp3250 = getelementptr inbounds float* %tmp3249, i64 1
+ %tmp3251 = getelementptr inbounds float* %tmp3250, i64 1
+ %tmp3252 = getelementptr inbounds float* %tmp3251, i64 1
+ %tmp3253 = getelementptr inbounds float* %tmp3252, i64 1
+ %tmp3254 = getelementptr inbounds float* %tmp3253, i64 1
+ %tmp3255 = getelementptr inbounds float* %tmp3254, i64 1
+ %tmp3256 = getelementptr inbounds float* %tmp3255, i64 1
+ %tmp3257 = getelementptr inbounds float* %tmp3256, i64 1
+ %tmp3258 = getelementptr inbounds float* %tmp3257, i64 1
+ %tmp3259 = getelementptr inbounds float* %tmp3258, i64 1
+ %tmp3260 = getelementptr inbounds float* %tmp3259, i64 1
+ %tmp3261 = getelementptr inbounds float* %tmp3260, i64 1
+ %tmp3262 = getelementptr inbounds float* %tmp3261, i64 1
+ %tmp3263 = getelementptr inbounds float* %tmp3262, i64 1
+ %tmp3264 = getelementptr inbounds float* %tmp3263, i64 1
+ %tmp3265 = getelementptr inbounds float* %tmp3264, i64 1
+ %tmp3266 = getelementptr inbounds float* %tmp3265, i64 1
+ %tmp3267 = getelementptr inbounds float* %tmp3266, i64 1
+ %tmp3268 = getelementptr inbounds float* %tmp3267, i64 1
+ %tmp3269 = getelementptr inbounds float* %tmp3268, i64 1
+ %tmp3270 = getelementptr inbounds float* %tmp3269, i64 1
+ %tmp3271 = getelementptr inbounds float* %tmp3270, i64 1
+ %tmp3272 = getelementptr inbounds float* %tmp3271, i64 1
+ %tmp3273 = getelementptr inbounds float* %tmp3272, i64 1
+ %tmp3274 = getelementptr inbounds float* %tmp3273, i64 1
+ %tmp3275 = getelementptr inbounds float* %tmp3274, i64 1
+ %tmp3276 = getelementptr inbounds float* %tmp3275, i64 1
+ %tmp3277 = getelementptr inbounds float* %tmp3276, i64 1
+ %tmp3278 = getelementptr inbounds float* %tmp3277, i64 1
+ %tmp3279 = getelementptr inbounds float* %tmp3278, i64 1
+ %tmp3280 = getelementptr inbounds float* %tmp3279, i64 1
+ %tmp3281 = getelementptr inbounds float* %tmp3280, i64 1
+ %tmp3282 = getelementptr inbounds float* %tmp3281, i64 1
+ %tmp3283 = getelementptr inbounds float* %tmp3282, i64 1
+ %tmp3284 = getelementptr inbounds float* %tmp3283, i64 1
+ %tmp3285 = getelementptr inbounds float* %tmp3284, i64 1
+ %tmp3286 = getelementptr inbounds float* %tmp3285, i64 1
+ %tmp3287 = getelementptr inbounds float* %tmp3286, i64 1
+ %tmp3288 = getelementptr inbounds float* %tmp3287, i64 1
+ %tmp3289 = getelementptr inbounds float* %tmp3288, i64 1
+ %tmp3290 = getelementptr inbounds float* %tmp3289, i64 1
+ %tmp3291 = getelementptr inbounds float* %tmp3290, i64 1
+ %tmp3292 = getelementptr inbounds float* %tmp3291, i64 1
+ %tmp3293 = getelementptr inbounds float* %tmp3292, i64 1
+ %tmp3294 = getelementptr inbounds float* %tmp3293, i64 1
+ %tmp3295 = getelementptr inbounds float* %tmp3294, i64 1
+ %tmp3296 = getelementptr inbounds float* %tmp3295, i64 1
+ %tmp3297 = getelementptr inbounds float* %tmp3296, i64 1
+ %tmp3298 = getelementptr inbounds float* %tmp3297, i64 1
+ %tmp3299 = getelementptr inbounds float* %tmp3298, i64 1
+ %tmp3300 = getelementptr inbounds float* %tmp3299, i64 1
+ %tmp3301 = getelementptr inbounds float* %tmp3300, i64 1
+ %tmp3302 = getelementptr inbounds float* %tmp3301, i64 1
+ %tmp3303 = getelementptr inbounds float* %tmp3302, i64 1
+ %tmp3304 = getelementptr inbounds float* %tmp3303, i64 1
+ %tmp3305 = getelementptr inbounds float* %tmp3304, i64 1
+ %tmp3306 = getelementptr inbounds float* %tmp3305, i64 1
+ %tmp3307 = getelementptr inbounds float* %tmp3306, i64 1
+ %tmp3308 = getelementptr inbounds float* %tmp3307, i64 1
+ %tmp3309 = getelementptr inbounds float* %tmp3308, i64 1
+ %tmp3310 = getelementptr inbounds float* %tmp3309, i64 1
+ %tmp3311 = getelementptr inbounds float* %tmp3310, i64 1
+ %tmp3312 = getelementptr inbounds float* %tmp3311, i64 1
+ %tmp3313 = getelementptr inbounds float* %tmp3312, i64 1
+ %tmp3314 = getelementptr inbounds float* %tmp3313, i64 1
+ %tmp3315 = getelementptr inbounds float* %tmp3314, i64 1
+ %tmp3316 = getelementptr inbounds float* %tmp3315, i64 1
+ %tmp3317 = getelementptr inbounds float* %tmp3316, i64 1
+ %tmp3318 = getelementptr inbounds float* %tmp3317, i64 1
+ %tmp3319 = getelementptr inbounds float* %tmp3318, i64 1
+ %tmp3320 = getelementptr inbounds float* %tmp3319, i64 1
+ %tmp3321 = getelementptr inbounds float* %tmp3320, i64 1
+ %tmp3322 = getelementptr inbounds float* %tmp3321, i64 1
+ %tmp3323 = getelementptr inbounds float* %tmp3322, i64 1
+ %tmp3324 = getelementptr inbounds float* %tmp3323, i64 1
+ %tmp3325 = getelementptr inbounds float* %tmp3324, i64 1
+ %tmp3326 = getelementptr inbounds float* %tmp3325, i64 1
+ %tmp3327 = getelementptr inbounds float* %tmp3326, i64 1
+ %tmp3328 = getelementptr inbounds float* %tmp3327, i64 1
+ %tmp3329 = getelementptr inbounds float* %tmp3328, i64 1
+ %tmp3330 = getelementptr inbounds float* %tmp3329, i64 1
+ %tmp3331 = getelementptr inbounds float* %tmp3330, i64 1
+ %tmp3332 = getelementptr inbounds float* %tmp3331, i64 1
+ %tmp3333 = getelementptr inbounds float* %tmp3332, i64 1
+ %tmp3334 = getelementptr inbounds float* %tmp3333, i64 1
+ %tmp3335 = getelementptr inbounds float* %tmp3334, i64 1
+ %tmp3336 = getelementptr inbounds float* %tmp3335, i64 1
+ %tmp3337 = getelementptr inbounds float* %tmp3336, i64 1
+ %tmp3338 = getelementptr inbounds float* %tmp3337, i64 1
+ %tmp3339 = getelementptr inbounds float* %tmp3338, i64 1
+ %tmp3340 = getelementptr inbounds float* %tmp3339, i64 1
+ %tmp3341 = getelementptr inbounds float* %tmp3340, i64 1
+ %tmp3342 = getelementptr inbounds float* %tmp3341, i64 1
+ %tmp3343 = getelementptr inbounds float* %tmp3342, i64 1
+ %tmp3344 = getelementptr inbounds float* %tmp3343, i64 1
+ %tmp3345 = getelementptr inbounds float* %tmp3344, i64 1
+ %tmp3346 = getelementptr inbounds float* %tmp3345, i64 1
+ %tmp3347 = getelementptr inbounds float* %tmp3346, i64 1
+ %tmp3348 = getelementptr inbounds float* %tmp3347, i64 1
+ %tmp3349 = getelementptr inbounds float* %tmp3348, i64 1
+ %tmp3350 = getelementptr inbounds float* %tmp3349, i64 1
+ %tmp3351 = getelementptr inbounds float* %tmp3350, i64 1
+ %tmp3352 = getelementptr inbounds float* %tmp3351, i64 1
+ %tmp3353 = getelementptr inbounds float* %tmp3352, i64 1
+ %tmp3354 = getelementptr inbounds float* %tmp3353, i64 1
+ %tmp3355 = getelementptr inbounds float* %tmp3354, i64 1
+ %tmp3356 = getelementptr inbounds float* %tmp3355, i64 1
+ %tmp3357 = getelementptr inbounds float* %tmp3356, i64 1
+ %tmp3358 = getelementptr inbounds float* %tmp3357, i64 1
+ %tmp3359 = getelementptr inbounds float* %tmp3358, i64 1
+ %tmp3360 = getelementptr inbounds float* %tmp3359, i64 1
+ %tmp3361 = getelementptr inbounds float* %tmp3360, i64 1
+ %tmp3362 = getelementptr inbounds float* %tmp3361, i64 1
+ %tmp3363 = getelementptr inbounds float* %tmp3362, i64 1
+ %tmp3364 = getelementptr inbounds float* %tmp3363, i64 1
+ %tmp3365 = getelementptr inbounds float* %tmp3364, i64 1
+ %tmp3366 = getelementptr inbounds float* %tmp3365, i64 1
+ %tmp3367 = getelementptr inbounds float* %tmp3366, i64 1
+ %tmp3368 = getelementptr inbounds float* %tmp3367, i64 1
+ %tmp3369 = getelementptr inbounds float* %tmp3368, i64 1
+ %tmp3370 = getelementptr inbounds float* %tmp3369, i64 1
+ %tmp3371 = getelementptr inbounds float* %tmp3370, i64 1
+ %tmp3372 = getelementptr inbounds float* %tmp3371, i64 1
+ %tmp3373 = getelementptr inbounds float* %tmp3372, i64 1
+ %tmp3374 = getelementptr inbounds float* %tmp3373, i64 1
+ %tmp3375 = getelementptr inbounds float* %tmp3374, i64 1
+ %tmp3376 = getelementptr inbounds float* %tmp3375, i64 1
+ %tmp3377 = getelementptr inbounds float* %tmp3376, i64 1
+ %tmp3378 = getelementptr inbounds float* %tmp3377, i64 1
+ %tmp3379 = getelementptr inbounds float* %tmp3378, i64 1
+ %tmp3380 = getelementptr inbounds float* %tmp3379, i64 1
+ %tmp3381 = getelementptr inbounds float* %tmp3380, i64 1
+ %tmp3382 = getelementptr inbounds float* %tmp3381, i64 1
+ %tmp3383 = getelementptr inbounds float* %tmp3382, i64 1
+ %tmp3384 = getelementptr inbounds float* %tmp3383, i64 1
+ %tmp3385 = getelementptr inbounds float* %tmp3384, i64 1
+ %tmp3386 = getelementptr inbounds float* %tmp3385, i64 1
+ %tmp3387 = getelementptr inbounds float* %tmp3386, i64 1
+ %tmp3388 = getelementptr inbounds float* %tmp3387, i64 1
+ %tmp3389 = getelementptr inbounds float* %tmp3388, i64 1
+ %tmp3390 = getelementptr inbounds float* %tmp3389, i64 1
+ %tmp3391 = getelementptr inbounds float* %tmp3390, i64 1
+ %tmp3392 = getelementptr inbounds float* %tmp3391, i64 1
+ %tmp3393 = getelementptr inbounds float* %tmp3392, i64 1
+ %tmp3394 = getelementptr inbounds float* %tmp3393, i64 1
+ %tmp3395 = getelementptr inbounds float* %tmp3394, i64 1
+ %tmp3396 = getelementptr inbounds float* %tmp3395, i64 1
+ %tmp3397 = getelementptr inbounds float* %tmp3396, i64 1
+ %tmp3398 = getelementptr inbounds float* %tmp3397, i64 1
+ %tmp3399 = getelementptr inbounds float* %tmp3398, i64 1
+ %tmp3400 = getelementptr inbounds float* %tmp3399, i64 1
+ %tmp3401 = getelementptr inbounds float* %tmp3400, i64 1
+ %tmp3402 = getelementptr inbounds float* %tmp3401, i64 1
+ %tmp3403 = getelementptr inbounds float* %tmp3402, i64 1
+ %tmp3404 = getelementptr inbounds float* %tmp3403, i64 1
+ %tmp3405 = getelementptr inbounds float* %tmp3404, i64 1
+ %tmp3406 = getelementptr inbounds float* %tmp3405, i64 1
+ %tmp3407 = getelementptr inbounds float* %tmp3406, i64 1
+ %tmp3408 = getelementptr inbounds float* %tmp3407, i64 1
+ %tmp3409 = getelementptr inbounds float* %tmp3408, i64 1
+ %tmp3410 = getelementptr inbounds float* %tmp3409, i64 1
+ %tmp3411 = getelementptr inbounds float* %tmp3410, i64 1
+ %tmp3412 = getelementptr inbounds float* %tmp3411, i64 1
+ %tmp3413 = getelementptr inbounds float* %tmp3412, i64 1
+ %tmp3414 = getelementptr inbounds float* %tmp3413, i64 1
+ %tmp3415 = getelementptr inbounds float* %tmp3414, i64 1
+ %tmp3416 = getelementptr inbounds float* %tmp3415, i64 1
+ %tmp3417 = getelementptr inbounds float* %tmp3416, i64 1
+ %tmp3418 = getelementptr inbounds float* %tmp3417, i64 1
+ %tmp3419 = getelementptr inbounds float* %tmp3418, i64 1
+ %tmp3420 = getelementptr inbounds float* %tmp3419, i64 1
+ %tmp3421 = getelementptr inbounds float* %tmp3420, i64 1
+ %tmp3422 = getelementptr inbounds float* %tmp3421, i64 1
+ %tmp3423 = getelementptr inbounds float* %tmp3422, i64 1
+ %tmp3424 = getelementptr inbounds float* %tmp3423, i64 1
+ %tmp3425 = getelementptr inbounds float* %tmp3424, i64 1
+ %tmp3426 = getelementptr inbounds float* %tmp3425, i64 1
+ %tmp3427 = getelementptr inbounds float* %tmp3426, i64 1
+ %tmp3428 = getelementptr inbounds float* %tmp3427, i64 1
+ %tmp3429 = getelementptr inbounds float* %tmp3428, i64 1
+ %tmp3430 = getelementptr inbounds float* %tmp3429, i64 1
+ %tmp3431 = getelementptr inbounds float* %tmp3430, i64 1
+ %tmp3432 = getelementptr inbounds float* %tmp3431, i64 1
+ %tmp3433 = getelementptr inbounds float* %tmp3432, i64 1
+ %tmp3434 = getelementptr inbounds float* %tmp3433, i64 1
+ %tmp3435 = getelementptr inbounds float* %tmp3434, i64 1
+ %tmp3436 = getelementptr inbounds float* %tmp3435, i64 1
+ %tmp3437 = getelementptr inbounds float* %tmp3436, i64 1
+ %tmp3438 = getelementptr inbounds float* %tmp3437, i64 1
+ %tmp3439 = getelementptr inbounds float* %tmp3438, i64 1
+ %tmp3440 = getelementptr inbounds float* %tmp3439, i64 1
+ %tmp3441 = getelementptr inbounds float* %tmp3440, i64 1
+ %tmp3442 = getelementptr inbounds float* %tmp3441, i64 1
+ %tmp3443 = getelementptr inbounds float* %tmp3442, i64 1
+ %tmp3444 = getelementptr inbounds float* %tmp3443, i64 1
+ %tmp3445 = getelementptr inbounds float* %tmp3444, i64 1
+ %tmp3446 = getelementptr inbounds float* %tmp3445, i64 1
+ %tmp3447 = getelementptr inbounds float* %tmp3446, i64 1
+ %tmp3448 = getelementptr inbounds float* %tmp3447, i64 1
+ %tmp3449 = getelementptr inbounds float* %tmp3448, i64 1
+ %tmp3450 = getelementptr inbounds float* %tmp3449, i64 1
+ %tmp3451 = getelementptr inbounds float* %tmp3450, i64 1
+ %tmp3452 = getelementptr inbounds float* %tmp3451, i64 1
+ %tmp3453 = getelementptr inbounds float* %tmp3452, i64 1
+ %tmp3454 = getelementptr inbounds float* %tmp3453, i64 1
+ %tmp3455 = getelementptr inbounds float* %tmp3454, i64 1
+ %tmp3456 = getelementptr inbounds float* %tmp3455, i64 1
+ %tmp3457 = getelementptr inbounds float* %tmp3456, i64 1
+ %tmp3458 = getelementptr inbounds float* %tmp3457, i64 1
+ %tmp3459 = getelementptr inbounds float* %tmp3458, i64 1
+ %tmp3460 = getelementptr inbounds float* %tmp3459, i64 1
+ %tmp3461 = getelementptr inbounds float* %tmp3460, i64 1
+ %tmp3462 = getelementptr inbounds float* %tmp3461, i64 1
+ %tmp3463 = getelementptr inbounds float* %tmp3462, i64 1
+ %tmp3464 = getelementptr inbounds float* %tmp3463, i64 1
+ %tmp3465 = getelementptr inbounds float* %tmp3464, i64 1
+ %tmp3466 = getelementptr inbounds float* %tmp3465, i64 1
+ %tmp3467 = getelementptr inbounds float* %tmp3466, i64 1
+ %tmp3468 = getelementptr inbounds float* %tmp3467, i64 1
+ %tmp3469 = getelementptr inbounds float* %tmp3468, i64 1
+ %tmp3470 = getelementptr inbounds float* %tmp3469, i64 1
+ %tmp3471 = getelementptr inbounds float* %tmp3470, i64 1
+ %tmp3472 = getelementptr inbounds float* %tmp3471, i64 1
+ %tmp3473 = getelementptr inbounds float* %tmp3472, i64 1
+ %tmp3474 = getelementptr inbounds float* %tmp3473, i64 1
+ %tmp3475 = getelementptr inbounds float* %tmp3474, i64 1
+ %tmp3476 = getelementptr inbounds float* %tmp3475, i64 1
+ %tmp3477 = getelementptr inbounds float* %tmp3476, i64 1
+ %tmp3478 = getelementptr inbounds float* %tmp3477, i64 1
+ %tmp3479 = getelementptr inbounds float* %tmp3478, i64 1
+ %tmp3480 = getelementptr inbounds float* %tmp3479, i64 1
+ %tmp3481 = getelementptr inbounds float* %tmp3480, i64 1
+ %tmp3482 = getelementptr inbounds float* %tmp3481, i64 1
+ %tmp3483 = getelementptr inbounds float* %tmp3482, i64 1
+ %tmp3484 = getelementptr inbounds float* %tmp3483, i64 1
+ %tmp3485 = getelementptr inbounds float* %tmp3484, i64 1
+ %tmp3486 = getelementptr inbounds float* %tmp3485, i64 1
+ %tmp3487 = getelementptr inbounds float* %tmp3486, i64 1
+ %tmp3488 = getelementptr inbounds float* %tmp3487, i64 1
+ %tmp3489 = getelementptr inbounds float* %tmp3488, i64 1
+ %tmp3490 = getelementptr inbounds float* %tmp3489, i64 1
+ %tmp3491 = getelementptr inbounds float* %tmp3490, i64 1
+ %tmp3492 = getelementptr inbounds float* %tmp3491, i64 1
+ %tmp3493 = getelementptr inbounds float* %tmp3492, i64 1
+ %tmp3494 = getelementptr inbounds float* %tmp3493, i64 1
+ %tmp3495 = getelementptr inbounds float* %tmp3494, i64 1
+ %tmp3496 = getelementptr inbounds float* %tmp3495, i64 1
+ %tmp3497 = getelementptr inbounds float* %tmp3496, i64 1
+ %tmp3498 = getelementptr inbounds float* %tmp3497, i64 1
+ %tmp3499 = getelementptr inbounds float* %tmp3498, i64 1
+ %tmp3500 = getelementptr inbounds float* %tmp3499, i64 1
+ %tmp3501 = getelementptr inbounds float* %tmp3500, i64 1
+ %tmp3502 = getelementptr inbounds float* %tmp3501, i64 1
+ %tmp3503 = getelementptr inbounds float* %tmp3502, i64 1
+ %tmp3504 = getelementptr inbounds float* %tmp3503, i64 1
+ %tmp3505 = getelementptr inbounds float* %tmp3504, i64 1
+ %tmp3506 = getelementptr inbounds float* %tmp3505, i64 1
+ %tmp3507 = getelementptr inbounds float* %tmp3506, i64 1
+ %tmp3508 = getelementptr inbounds float* %tmp3507, i64 1
+ %tmp3509 = getelementptr inbounds float* %tmp3508, i64 1
+ %tmp3510 = getelementptr inbounds float* %tmp3509, i64 1
+ %tmp3511 = getelementptr inbounds float* %tmp3510, i64 1
+ %tmp3512 = getelementptr inbounds float* %tmp3511, i64 1
+ %tmp3513 = getelementptr inbounds float* %tmp3512, i64 1
+ %tmp3514 = getelementptr inbounds float* %tmp3513, i64 1
+ %tmp3515 = getelementptr inbounds float* %tmp3514, i64 1
+ %tmp3516 = getelementptr inbounds float* %tmp3515, i64 1
+ %tmp3517 = getelementptr inbounds float* %tmp3516, i64 1
+ %tmp3518 = getelementptr inbounds float* %tmp3517, i64 1
+ %tmp3519 = getelementptr inbounds float* %tmp3518, i64 1
+ %tmp3520 = getelementptr inbounds float* %tmp3519, i64 1
+ %tmp3521 = getelementptr inbounds float* %tmp3520, i64 1
+ %tmp3522 = getelementptr inbounds float* %tmp3521, i64 1
+ %tmp3523 = getelementptr inbounds float* %tmp3522, i64 1
+ %tmp3524 = getelementptr inbounds float* %tmp3523, i64 1
+ %tmp3525 = getelementptr inbounds float* %tmp3524, i64 1
+ %tmp3526 = getelementptr inbounds float* %tmp3525, i64 1
+ %tmp3527 = getelementptr inbounds float* %tmp3526, i64 1
+ %tmp3528 = getelementptr inbounds float* %tmp3527, i64 1
+ %tmp3529 = getelementptr inbounds float* %tmp3528, i64 1
+ %tmp3530 = getelementptr inbounds float* %tmp3529, i64 1
+ %tmp3531 = getelementptr inbounds float* %tmp3530, i64 1
+ %tmp3532 = getelementptr inbounds float* %tmp3531, i64 1
+ %tmp3533 = getelementptr inbounds float* %tmp3532, i64 1
+ %tmp3534 = getelementptr inbounds float* %tmp3533, i64 1
+ %tmp3535 = getelementptr inbounds float* %tmp3534, i64 1
+ %tmp3536 = getelementptr inbounds float* %tmp3535, i64 1
+ %tmp3537 = getelementptr inbounds float* %tmp3536, i64 1
+ %tmp3538 = getelementptr inbounds float* %tmp3537, i64 1
+ %tmp3539 = getelementptr inbounds float* %tmp3538, i64 1
+ %tmp3540 = getelementptr inbounds float* %tmp3539, i64 1
+ %tmp3541 = getelementptr inbounds float* %tmp3540, i64 1
+ %tmp3542 = getelementptr inbounds float* %tmp3541, i64 1
+ %tmp3543 = getelementptr inbounds float* %tmp3542, i64 1
+ %tmp3544 = getelementptr inbounds float* %tmp3543, i64 1
+ %tmp3545 = getelementptr inbounds float* %tmp3544, i64 1
+ %tmp3546 = getelementptr inbounds float* %tmp3545, i64 1
+ %tmp3547 = getelementptr inbounds float* %tmp3546, i64 1
+ %tmp3548 = getelementptr inbounds float* %tmp3547, i64 1
+ %tmp3549 = getelementptr inbounds float* %tmp3548, i64 1
+ %tmp3550 = getelementptr inbounds float* %tmp3549, i64 1
+ %tmp3551 = getelementptr inbounds float* %tmp3550, i64 1
+ %tmp3552 = getelementptr inbounds float* %tmp3551, i64 1
+ %tmp3553 = getelementptr inbounds float* %tmp3552, i64 1
+ %tmp3554 = getelementptr inbounds float* %tmp3553, i64 1
+ %tmp3555 = getelementptr inbounds float* %tmp3554, i64 1
+ %tmp3556 = getelementptr inbounds float* %tmp3555, i64 1
+ %tmp3557 = getelementptr inbounds float* %tmp3556, i64 1
+ %tmp3558 = getelementptr inbounds float* %tmp3557, i64 1
+ %tmp3559 = getelementptr inbounds float* %tmp3558, i64 1
+ %tmp3560 = getelementptr inbounds float* %tmp3559, i64 1
+ %tmp3561 = getelementptr inbounds float* %tmp3560, i64 1
+ %tmp3562 = getelementptr inbounds float* %tmp3561, i64 1
+ %tmp3563 = getelementptr inbounds float* %tmp3562, i64 1
+ %tmp3564 = getelementptr inbounds float* %tmp3563, i64 1
+ %tmp3565 = getelementptr inbounds float* %tmp3564, i64 1
+ %tmp3566 = getelementptr inbounds float* %tmp3565, i64 1
+ %tmp3567 = getelementptr inbounds float* %tmp3566, i64 1
+ %tmp3568 = getelementptr inbounds float* %tmp3567, i64 1
+ %tmp3569 = getelementptr inbounds float* %tmp3568, i64 1
+ %tmp3570 = getelementptr inbounds float* %tmp3569, i64 1
+ %tmp3571 = getelementptr inbounds float* %tmp3570, i64 1
+ %tmp3572 = getelementptr inbounds float* %tmp3571, i64 1
+ %tmp3573 = getelementptr inbounds float* %tmp3572, i64 1
+ %tmp3574 = getelementptr inbounds float* %tmp3573, i64 1
+ %tmp3575 = getelementptr inbounds float* %tmp3574, i64 1
+ %tmp3576 = getelementptr inbounds float* %tmp3575, i64 1
+ %tmp3577 = getelementptr inbounds float* %tmp3576, i64 1
+ %tmp3578 = getelementptr inbounds float* %tmp3577, i64 1
+ %tmp3579 = getelementptr inbounds float* %tmp3578, i64 1
+ %tmp3580 = getelementptr inbounds float* %tmp3579, i64 1
+ %tmp3581 = getelementptr inbounds float* %tmp3580, i64 1
+ %tmp3582 = getelementptr inbounds float* %tmp3581, i64 1
+ %tmp3583 = getelementptr inbounds float* %tmp3582, i64 1
+ %tmp3584 = getelementptr inbounds float* %tmp3583, i64 1
+ %tmp3585 = getelementptr inbounds float* %tmp3584, i64 1
+ %tmp3586 = getelementptr inbounds float* %tmp3585, i64 1
+ %tmp3587 = getelementptr inbounds float* %tmp3586, i64 1
+ %tmp3588 = getelementptr inbounds float* %tmp3587, i64 1
+ %tmp3589 = getelementptr inbounds float* %tmp3588, i64 1
+ %tmp3590 = getelementptr inbounds float* %tmp3589, i64 1
+ %tmp3591 = getelementptr inbounds float* %tmp3590, i64 1
+ %tmp3592 = getelementptr inbounds float* %tmp3591, i64 1
+ %tmp3593 = getelementptr inbounds float* %tmp3592, i64 1
+ %tmp3594 = getelementptr inbounds float* %tmp3593, i64 1
+ %tmp3595 = getelementptr inbounds float* %tmp3594, i64 1
+ %tmp3596 = getelementptr inbounds float* %tmp3595, i64 1
+ %tmp3597 = getelementptr inbounds float* %tmp3596, i64 1
+ %tmp3598 = getelementptr inbounds float* %tmp3597, i64 1
+ %tmp3599 = getelementptr inbounds float* %tmp3598, i64 1
+ %tmp3600 = getelementptr inbounds float* %tmp3599, i64 1
+ %tmp3601 = getelementptr inbounds float* %tmp3600, i64 1
+ %tmp3602 = getelementptr inbounds float* %tmp3601, i64 1
+ %tmp3603 = getelementptr inbounds float* %tmp3602, i64 1
+ %tmp3604 = getelementptr inbounds float* %tmp3603, i64 1
+ %tmp3605 = getelementptr inbounds float* %tmp3604, i64 1
+ %tmp3606 = getelementptr inbounds float* %tmp3605, i64 1
+ %tmp3607 = getelementptr inbounds float* %tmp3606, i64 1
+ %tmp3608 = getelementptr inbounds float* %tmp3607, i64 1
+ %tmp3609 = getelementptr inbounds float* %tmp3608, i64 1
+ %tmp3610 = getelementptr inbounds float* %tmp3609, i64 1
+ %tmp3611 = getelementptr inbounds float* %tmp3610, i64 1
+ %tmp3612 = getelementptr inbounds float* %tmp3611, i64 1
+ %tmp3613 = getelementptr inbounds float* %tmp3612, i64 1
+ %tmp3614 = getelementptr inbounds float* %tmp3613, i64 1
+ %tmp3615 = getelementptr inbounds float* %tmp3614, i64 1
+ %tmp3616 = getelementptr inbounds float* %tmp3615, i64 1
+ %tmp3617 = getelementptr inbounds float* %tmp3616, i64 1
+ %tmp3618 = getelementptr inbounds float* %tmp3617, i64 1
+ %tmp3619 = getelementptr inbounds float* %tmp3618, i64 1
+ %tmp3620 = getelementptr inbounds float* %tmp3619, i64 1
+ %tmp3621 = getelementptr inbounds float* %tmp3620, i64 1
+ %tmp3622 = getelementptr inbounds float* %tmp3621, i64 1
+ %tmp3623 = getelementptr inbounds float* %tmp3622, i64 1
+ %tmp3624 = getelementptr inbounds float* %tmp3623, i64 1
+ %tmp3625 = getelementptr inbounds float* %tmp3624, i64 1
+ %tmp3626 = getelementptr inbounds float* %tmp3625, i64 1
+ %tmp3627 = getelementptr inbounds float* %tmp3626, i64 1
+ %tmp3628 = getelementptr inbounds float* %tmp3627, i64 1
+ %tmp3629 = getelementptr inbounds float* %tmp3628, i64 1
+ %tmp3630 = getelementptr inbounds float* %tmp3629, i64 1
+ %tmp3631 = getelementptr inbounds float* %tmp3630, i64 1
+ %tmp3632 = getelementptr inbounds float* %tmp3631, i64 1
+ %tmp3633 = getelementptr inbounds float* %tmp3632, i64 1
+ %tmp3634 = getelementptr inbounds float* %tmp3633, i64 1
+ %tmp3635 = getelementptr inbounds float* %tmp3634, i64 1
+ %tmp3636 = getelementptr inbounds float* %tmp3635, i64 1
+ %tmp3637 = getelementptr inbounds float* %tmp3636, i64 1
+ %tmp3638 = getelementptr inbounds float* %tmp3637, i64 1
+ %tmp3639 = getelementptr inbounds float* %tmp3638, i64 1
+ %tmp3640 = getelementptr inbounds float* %tmp3639, i64 1
+ %tmp3641 = getelementptr inbounds float* %tmp3640, i64 1
+ %tmp3642 = getelementptr inbounds float* %tmp3641, i64 1
+ %tmp3643 = getelementptr inbounds float* %tmp3642, i64 1
+ %tmp3644 = getelementptr inbounds float* %tmp3643, i64 1
+ %tmp3645 = getelementptr inbounds float* %tmp3644, i64 1
+ %tmp3646 = getelementptr inbounds float* %tmp3645, i64 1
+ %tmp3647 = getelementptr inbounds float* %tmp3646, i64 1
+ %tmp3648 = getelementptr inbounds float* %tmp3647, i64 1
+ %tmp3649 = getelementptr inbounds float* %tmp3648, i64 1
+ %tmp3650 = getelementptr inbounds float* %tmp3649, i64 1
+ %tmp3651 = getelementptr inbounds float* %tmp3650, i64 1
+ %tmp3652 = getelementptr inbounds float* %tmp3651, i64 1
+ %tmp3653 = getelementptr inbounds float* %tmp3652, i64 1
+ %tmp3654 = getelementptr inbounds float* %tmp3653, i64 1
+ %tmp3655 = getelementptr inbounds float* %tmp3654, i64 1
+ %tmp3656 = getelementptr inbounds float* %tmp3655, i64 1
+ %tmp3657 = getelementptr inbounds float* %tmp3656, i64 1
+ %tmp3658 = getelementptr inbounds float* %tmp3657, i64 1
+ %tmp3659 = getelementptr inbounds float* %tmp3658, i64 1
+ %tmp3660 = getelementptr inbounds float* %tmp3659, i64 1
+ %tmp3661 = getelementptr inbounds float* %tmp3660, i64 1
+ %tmp3662 = getelementptr inbounds float* %tmp3661, i64 1
+ %tmp3663 = getelementptr inbounds float* %tmp3662, i64 1
+ %tmp3664 = getelementptr inbounds float* %tmp3663, i64 1
+ %tmp3665 = getelementptr inbounds float* %tmp3664, i64 1
+ %tmp3666 = getelementptr inbounds float* %tmp3665, i64 1
+ %tmp3667 = getelementptr inbounds float* %tmp3666, i64 1
+ %tmp3668 = getelementptr inbounds float* %tmp3667, i64 1
+ %tmp3669 = getelementptr inbounds float* %tmp3668, i64 1
+ %tmp3670 = getelementptr inbounds float* %tmp3669, i64 1
+ %tmp3671 = getelementptr inbounds float* %tmp3670, i64 1
+ %tmp3672 = getelementptr inbounds float* %tmp3671, i64 1
+ %tmp3673 = getelementptr inbounds float* %tmp3672, i64 1
+ %tmp3674 = getelementptr inbounds float* %tmp3673, i64 1
+ %tmp3675 = getelementptr inbounds float* %tmp3674, i64 1
+ %tmp3676 = getelementptr inbounds float* %tmp3675, i64 1
+ %tmp3677 = getelementptr inbounds float* %tmp3676, i64 1
+ %tmp3678 = getelementptr inbounds float* %tmp3677, i64 1
+ %tmp3679 = getelementptr inbounds float* %tmp3678, i64 1
+ %tmp3680 = getelementptr inbounds float* %tmp3679, i64 1
+ %tmp3681 = getelementptr inbounds float* %tmp3680, i64 1
+ %tmp3682 = getelementptr inbounds float* %tmp3681, i64 1
+ %tmp3683 = getelementptr inbounds float* %tmp3682, i64 1
+ %tmp3684 = getelementptr inbounds float* %tmp3683, i64 1
+ %tmp3685 = getelementptr inbounds float* %tmp3684, i64 1
+ %tmp3686 = getelementptr inbounds float* %tmp3685, i64 1
+ %tmp3687 = getelementptr inbounds float* %tmp3686, i64 1
+ %tmp3688 = getelementptr inbounds float* %tmp3687, i64 1
+ %tmp3689 = getelementptr inbounds float* %tmp3688, i64 1
+ %tmp3690 = getelementptr inbounds float* %tmp3689, i64 1
+ %tmp3691 = getelementptr inbounds float* %tmp3690, i64 1
+ %tmp3692 = getelementptr inbounds float* %tmp3691, i64 1
+ %tmp3693 = getelementptr inbounds float* %tmp3692, i64 1
+ %tmp3694 = getelementptr inbounds float* %tmp3693, i64 1
+ %tmp3695 = getelementptr inbounds float* %tmp3694, i64 1
+ %tmp3696 = getelementptr inbounds float* %tmp3695, i64 1
+ %tmp3697 = getelementptr inbounds float* %tmp3696, i64 1
+ %tmp3698 = getelementptr inbounds float* %tmp3697, i64 1
+ %tmp3699 = getelementptr inbounds float* %tmp3698, i64 1
+ %tmp3700 = getelementptr inbounds float* %tmp3699, i64 1
+ %tmp3701 = getelementptr inbounds float* %tmp3700, i64 1
+ %tmp3702 = getelementptr inbounds float* %tmp3701, i64 1
+ %tmp3703 = getelementptr inbounds float* %tmp3702, i64 1
+ %tmp3704 = getelementptr inbounds float* %tmp3703, i64 1
+ %tmp3705 = getelementptr inbounds float* %tmp3704, i64 1
+ %tmp3706 = getelementptr inbounds float* %tmp3705, i64 1
+ %tmp3707 = getelementptr inbounds float* %tmp3706, i64 1
+ %tmp3708 = getelementptr inbounds float* %tmp3707, i64 1
+ %tmp3709 = getelementptr inbounds float* %tmp3708, i64 1
+ %tmp3710 = getelementptr inbounds float* %tmp3709, i64 1
+ %tmp3711 = getelementptr inbounds float* %tmp3710, i64 1
+ %tmp3712 = getelementptr inbounds float* %tmp3711, i64 1
+ %tmp3713 = getelementptr inbounds float* %tmp3712, i64 1
+ %tmp3714 = getelementptr inbounds float* %tmp3713, i64 1
+ %tmp3715 = getelementptr inbounds float* %tmp3714, i64 1
+ %tmp3716 = getelementptr inbounds float* %tmp3715, i64 1
+ %tmp3717 = getelementptr inbounds float* %tmp3716, i64 1
+ %tmp3718 = getelementptr inbounds float* %tmp3717, i64 1
+ %tmp3719 = getelementptr inbounds float* %tmp3718, i64 1
+ %tmp3720 = getelementptr inbounds float* %tmp3719, i64 1
+ %tmp3721 = getelementptr inbounds float* %tmp3720, i64 1
+ %tmp3722 = getelementptr inbounds float* %tmp3721, i64 1
+ %tmp3723 = getelementptr inbounds float* %tmp3722, i64 1
+ %tmp3724 = getelementptr inbounds float* %tmp3723, i64 1
+ %tmp3725 = getelementptr inbounds float* %tmp3724, i64 1
+ %tmp3726 = getelementptr inbounds float* %tmp3725, i64 1
+ %tmp3727 = getelementptr inbounds float* %tmp3726, i64 1
+ %tmp3728 = getelementptr inbounds float* %tmp3727, i64 1
+ %tmp3729 = getelementptr inbounds float* %tmp3728, i64 1
+ %tmp3730 = getelementptr inbounds float* %tmp3729, i64 1
+ %tmp3731 = getelementptr inbounds float* %tmp3730, i64 1
+ %tmp3732 = getelementptr inbounds float* %tmp3731, i64 1
+ %tmp3733 = getelementptr inbounds float* %tmp3732, i64 1
+ %tmp3734 = getelementptr inbounds float* %tmp3733, i64 1
+ %tmp3735 = getelementptr inbounds float* %tmp3734, i64 1
+ %tmp3736 = getelementptr inbounds float* %tmp3735, i64 1
+ %tmp3737 = getelementptr inbounds float* %tmp3736, i64 1
+ %tmp3738 = getelementptr inbounds float* %tmp3737, i64 1
+ %tmp3739 = getelementptr inbounds float* %tmp3738, i64 1
+ %tmp3740 = getelementptr inbounds float* %tmp3739, i64 1
+ %tmp3741 = getelementptr inbounds float* %tmp3740, i64 1
+ %tmp3742 = getelementptr inbounds float* %tmp3741, i64 1
+ %tmp3743 = getelementptr inbounds float* %tmp3742, i64 1
+ %tmp3744 = getelementptr inbounds float* %tmp3743, i64 1
+ %tmp3745 = getelementptr inbounds float* %tmp3744, i64 1
+ %tmp3746 = getelementptr inbounds float* %tmp3745, i64 1
+ %tmp3747 = getelementptr inbounds float* %tmp3746, i64 1
+ %tmp3748 = getelementptr inbounds float* %tmp3747, i64 1
+ %tmp3749 = getelementptr inbounds float* %tmp3748, i64 1
+ %tmp3750 = getelementptr inbounds float* %tmp3749, i64 1
+ %tmp3751 = getelementptr inbounds float* %tmp3750, i64 1
+ %tmp3752 = getelementptr inbounds float* %tmp3751, i64 1
+ %tmp3753 = getelementptr inbounds float* %tmp3752, i64 1
+ %tmp3754 = getelementptr inbounds float* %tmp3753, i64 1
+ %tmp3755 = getelementptr inbounds float* %tmp3754, i64 1
+ %tmp3756 = getelementptr inbounds float* %tmp3755, i64 1
+ %tmp3757 = getelementptr inbounds float* %tmp3756, i64 1
+ %tmp3758 = getelementptr inbounds float* %tmp3757, i64 1
+ %tmp3759 = getelementptr inbounds float* %tmp3758, i64 1
+ %tmp3760 = getelementptr inbounds float* %tmp3759, i64 1
+ %tmp3761 = getelementptr inbounds float* %tmp3760, i64 1
+ %tmp3762 = getelementptr inbounds float* %tmp3761, i64 1
+ %tmp3763 = getelementptr inbounds float* %tmp3762, i64 1
+ %tmp3764 = getelementptr inbounds float* %tmp3763, i64 1
+ %tmp3765 = getelementptr inbounds float* %tmp3764, i64 1
+ %tmp3766 = getelementptr inbounds float* %tmp3765, i64 1
+ %tmp3767 = getelementptr inbounds float* %tmp3766, i64 1
+ %tmp3768 = getelementptr inbounds float* %tmp3767, i64 1
+ %tmp3769 = getelementptr inbounds float* %tmp3768, i64 1
+ %tmp3770 = getelementptr inbounds float* %tmp3769, i64 1
+ %tmp3771 = getelementptr inbounds float* %tmp3770, i64 1
+ %tmp3772 = getelementptr inbounds float* %tmp3771, i64 1
+ %tmp3773 = getelementptr inbounds float* %tmp3772, i64 1
+ %tmp3774 = getelementptr inbounds float* %tmp3773, i64 1
+ %tmp3775 = getelementptr inbounds float* %tmp3774, i64 1
+ %tmp3776 = getelementptr inbounds float* %tmp3775, i64 1
+ %tmp3777 = getelementptr inbounds float* %tmp3776, i64 1
+ %tmp3778 = getelementptr inbounds float* %tmp3777, i64 1
+ %tmp3779 = getelementptr inbounds float* %tmp3778, i64 1
+ %tmp3780 = getelementptr inbounds float* %tmp3779, i64 1
+ %tmp3781 = getelementptr inbounds float* %tmp3780, i64 1
+ %tmp3782 = getelementptr inbounds float* %tmp3781, i64 1
+ %tmp3783 = getelementptr inbounds float* %tmp3782, i64 1
+ %tmp3784 = getelementptr inbounds float* %tmp3783, i64 1
+ %tmp3785 = getelementptr inbounds float* %tmp3784, i64 1
+ %tmp3786 = getelementptr inbounds float* %tmp3785, i64 1
+ %tmp3787 = getelementptr inbounds float* %tmp3786, i64 1
+ %tmp3788 = getelementptr inbounds float* %tmp3787, i64 1
+ %tmp3789 = getelementptr inbounds float* %tmp3788, i64 1
+ %tmp3790 = getelementptr inbounds float* %tmp3789, i64 1
+ %tmp3791 = getelementptr inbounds float* %tmp3790, i64 1
+ %tmp3792 = getelementptr inbounds float* %tmp3791, i64 1
+ %tmp3793 = getelementptr inbounds float* %tmp3792, i64 1
+ %tmp3794 = getelementptr inbounds float* %tmp3793, i64 1
+ %tmp3795 = getelementptr inbounds float* %tmp3794, i64 1
+ %tmp3796 = getelementptr inbounds float* %tmp3795, i64 1
+ %tmp3797 = getelementptr inbounds float* %tmp3796, i64 1
+ %tmp3798 = getelementptr inbounds float* %tmp3797, i64 1
+ %tmp3799 = getelementptr inbounds float* %tmp3798, i64 1
+ %tmp3800 = getelementptr inbounds float* %tmp3799, i64 1
+ %tmp3801 = getelementptr inbounds float* %tmp3800, i64 1
+ %tmp3802 = getelementptr inbounds float* %tmp3801, i64 1
+ %tmp3803 = getelementptr inbounds float* %tmp3802, i64 1
+ %tmp3804 = getelementptr inbounds float* %tmp3803, i64 1
+ %tmp3805 = getelementptr inbounds float* %tmp3804, i64 1
+ %tmp3806 = getelementptr inbounds float* %tmp3805, i64 1
+ %tmp3807 = getelementptr inbounds float* %tmp3806, i64 1
+ %tmp3808 = getelementptr inbounds float* %tmp3807, i64 1
+ %tmp3809 = getelementptr inbounds float* %tmp3808, i64 1
+ %tmp3810 = getelementptr inbounds float* %tmp3809, i64 1
+ %tmp3811 = getelementptr inbounds float* %tmp3810, i64 1
+ %tmp3812 = getelementptr inbounds float* %tmp3811, i64 1
+ %tmp3813 = getelementptr inbounds float* %tmp3812, i64 1
+ %tmp3814 = getelementptr inbounds float* %tmp3813, i64 1
+ %tmp3815 = getelementptr inbounds float* %tmp3814, i64 1
+ %tmp3816 = getelementptr inbounds float* %tmp3815, i64 1
+ %tmp3817 = getelementptr inbounds float* %tmp3816, i64 1
+ %tmp3818 = getelementptr inbounds float* %tmp3817, i64 1
+ %tmp3819 = getelementptr inbounds float* %tmp3818, i64 1
+ %tmp3820 = getelementptr inbounds float* %tmp3819, i64 1
+ %tmp3821 = getelementptr inbounds float* %tmp3820, i64 1
+ %tmp3822 = getelementptr inbounds float* %tmp3821, i64 1
+ %tmp3823 = getelementptr inbounds float* %tmp3822, i64 1
+ %tmp3824 = getelementptr inbounds float* %tmp3823, i64 1
+ %tmp3825 = getelementptr inbounds float* %tmp3824, i64 1
+ %tmp3826 = getelementptr inbounds float* %tmp3825, i64 1
+ %tmp3827 = getelementptr inbounds float* %tmp3826, i64 1
+ %tmp3828 = getelementptr inbounds float* %tmp3827, i64 1
+ %tmp3829 = getelementptr inbounds float* %tmp3828, i64 1
+ %tmp3830 = getelementptr inbounds float* %tmp3829, i64 1
+ %tmp3831 = getelementptr inbounds float* %tmp3830, i64 1
+ %tmp3832 = getelementptr inbounds float* %tmp3831, i64 1
+ %tmp3833 = getelementptr inbounds float* %tmp3832, i64 1
+ %tmp3834 = getelementptr inbounds float* %tmp3833, i64 1
+ %tmp3835 = getelementptr inbounds float* %tmp3834, i64 1
+ %tmp3836 = getelementptr inbounds float* %tmp3835, i64 1
+ %tmp3837 = getelementptr inbounds float* %tmp3836, i64 1
+ %tmp3838 = getelementptr inbounds float* %tmp3837, i64 1
+ %tmp3839 = getelementptr inbounds float* %tmp3838, i64 1
+ %tmp3840 = getelementptr inbounds float* %tmp3839, i64 1
+ %tmp3841 = getelementptr inbounds float* %tmp3840, i64 1
+ %tmp3842 = getelementptr inbounds float* %tmp3841, i64 1
+ %tmp3843 = getelementptr inbounds float* %tmp3842, i64 1
+ %tmp3844 = getelementptr inbounds float* %tmp3843, i64 1
+ %tmp3845 = getelementptr inbounds float* %tmp3844, i64 1
+ %tmp3846 = getelementptr inbounds float* %tmp3845, i64 1
+ %tmp3847 = getelementptr inbounds float* %tmp3846, i64 1
+ %tmp3848 = getelementptr inbounds float* %tmp3847, i64 1
+ %tmp3849 = getelementptr inbounds float* %tmp3848, i64 1
+ %tmp3850 = getelementptr inbounds float* %tmp3849, i64 1
+ %tmp3851 = getelementptr inbounds float* %tmp3850, i64 1
+ %tmp3852 = getelementptr inbounds float* %tmp3851, i64 1
+ %tmp3853 = getelementptr inbounds float* %tmp3852, i64 1
+ %tmp3854 = getelementptr inbounds float* %tmp3853, i64 1
+ %tmp3855 = getelementptr inbounds float* %tmp3854, i64 1
+ %tmp3856 = getelementptr inbounds float* %tmp3855, i64 1
+ %tmp3857 = getelementptr inbounds float* %tmp3856, i64 1
+ %tmp3858 = getelementptr inbounds float* %tmp3857, i64 1
+ %tmp3859 = getelementptr inbounds float* %tmp3858, i64 1
+ %tmp3860 = getelementptr inbounds float* %tmp3859, i64 1
+ %tmp3861 = getelementptr inbounds float* %tmp3860, i64 1
+ %tmp3862 = getelementptr inbounds float* %tmp3861, i64 1
+ %tmp3863 = getelementptr inbounds float* %tmp3862, i64 1
+ %tmp3864 = getelementptr inbounds float* %tmp3863, i64 1
+ %tmp3865 = getelementptr inbounds float* %tmp3864, i64 1
+ %tmp3866 = getelementptr inbounds float* %tmp3865, i64 1
+ %tmp3867 = getelementptr inbounds float* %tmp3866, i64 1
+ %tmp3868 = getelementptr inbounds float* %tmp3867, i64 1
+ %tmp3869 = getelementptr inbounds float* %tmp3868, i64 1
+ %tmp3870 = getelementptr inbounds float* %tmp3869, i64 1
+ %tmp3871 = getelementptr inbounds float* %tmp3870, i64 1
+ %tmp3872 = getelementptr inbounds float* %tmp3871, i64 1
+ %tmp3873 = getelementptr inbounds float* %tmp3872, i64 1
+ %tmp3874 = getelementptr inbounds float* %tmp3873, i64 1
+ %tmp3875 = getelementptr inbounds float* %tmp3874, i64 1
+ %tmp3876 = getelementptr inbounds float* %tmp3875, i64 1
+ %tmp3877 = getelementptr inbounds float* %tmp3876, i64 1
+ %tmp3878 = getelementptr inbounds float* %tmp3877, i64 1
+ %tmp3879 = getelementptr inbounds float* %tmp3878, i64 1
+ %tmp3880 = getelementptr inbounds float* %tmp3879, i64 1
+ %tmp3881 = getelementptr inbounds float* %tmp3880, i64 1
+ %tmp3882 = getelementptr inbounds float* %tmp3881, i64 1
+ %tmp3883 = getelementptr inbounds float* %tmp3882, i64 1
+ %tmp3884 = getelementptr inbounds float* %tmp3883, i64 1
+ %tmp3885 = getelementptr inbounds float* %tmp3884, i64 1
+ %tmp3886 = getelementptr inbounds float* %tmp3885, i64 1
+ %tmp3887 = getelementptr inbounds float* %tmp3886, i64 1
+ %tmp3888 = getelementptr inbounds float* %tmp3887, i64 1
+ %tmp3889 = getelementptr inbounds float* %tmp3888, i64 1
+ %tmp3890 = getelementptr inbounds float* %tmp3889, i64 1
+ %tmp3891 = getelementptr inbounds float* %tmp3890, i64 1
+ %tmp3892 = getelementptr inbounds float* %tmp3891, i64 1
+ %tmp3893 = getelementptr inbounds float* %tmp3892, i64 1
+ %tmp3894 = getelementptr inbounds float* %tmp3893, i64 1
+ %tmp3895 = getelementptr inbounds float* %tmp3894, i64 1
+ %tmp3896 = getelementptr inbounds float* %tmp3895, i64 1
+ %tmp3897 = getelementptr inbounds float* %tmp3896, i64 1
+ %tmp3898 = getelementptr inbounds float* %tmp3897, i64 1
+ %tmp3899 = getelementptr inbounds float* %tmp3898, i64 1
+ %tmp3900 = getelementptr inbounds float* %tmp3899, i64 1
+ %tmp3901 = getelementptr inbounds float* %tmp3900, i64 1
+ %tmp3902 = getelementptr inbounds float* %tmp3901, i64 1
+ %tmp3903 = getelementptr inbounds float* %tmp3902, i64 1
+ %tmp3904 = getelementptr inbounds float* %tmp3903, i64 1
+ %tmp3905 = getelementptr inbounds float* %tmp3904, i64 1
+ %tmp3906 = getelementptr inbounds float* %tmp3905, i64 1
+ %tmp3907 = getelementptr inbounds float* %tmp3906, i64 1
+ %tmp3908 = getelementptr inbounds float* %tmp3907, i64 1
+ %tmp3909 = getelementptr inbounds float* %tmp3908, i64 1
+ %tmp3910 = getelementptr inbounds float* %tmp3909, i64 1
+ %tmp3911 = getelementptr inbounds float* %tmp3910, i64 1
+ %tmp3912 = getelementptr inbounds float* %tmp3911, i64 1
+ %tmp3913 = getelementptr inbounds float* %tmp3912, i64 1
+ %tmp3914 = getelementptr inbounds float* %tmp3913, i64 1
+ %tmp3915 = getelementptr inbounds float* %tmp3914, i64 1
+ %tmp3916 = getelementptr inbounds float* %tmp3915, i64 1
+ %tmp3917 = getelementptr inbounds float* %tmp3916, i64 1
+ %tmp3918 = getelementptr inbounds float* %tmp3917, i64 1
+ %tmp3919 = getelementptr inbounds float* %tmp3918, i64 1
+ %tmp3920 = getelementptr inbounds float* %tmp3919, i64 1
+ %tmp3921 = getelementptr inbounds float* %tmp3920, i64 1
+ %tmp3922 = getelementptr inbounds float* %tmp3921, i64 1
+ %tmp3923 = getelementptr inbounds float* %tmp3922, i64 1
+ %tmp3924 = getelementptr inbounds float* %tmp3923, i64 1
+ %tmp3925 = getelementptr inbounds float* %tmp3924, i64 1
+ %tmp3926 = getelementptr inbounds float* %tmp3925, i64 1
+ %tmp3927 = getelementptr inbounds float* %tmp3926, i64 1
+ %tmp3928 = getelementptr inbounds float* %tmp3927, i64 1
+ %tmp3929 = getelementptr inbounds float* %tmp3928, i64 1
+ %tmp3930 = getelementptr inbounds float* %tmp3929, i64 1
+ %tmp3931 = getelementptr inbounds float* %tmp3930, i64 1
+ %tmp3932 = getelementptr inbounds float* %tmp3931, i64 1
+ %tmp3933 = getelementptr inbounds float* %tmp3932, i64 1
+ %tmp3934 = getelementptr inbounds float* %tmp3933, i64 1
+ %tmp3935 = getelementptr inbounds float* %tmp3934, i64 1
+ %tmp3936 = getelementptr inbounds float* %tmp3935, i64 1
+ %tmp3937 = getelementptr inbounds float* %tmp3936, i64 1
+ %tmp3938 = getelementptr inbounds float* %tmp3937, i64 1
+ %tmp3939 = getelementptr inbounds float* %tmp3938, i64 1
+ %tmp3940 = getelementptr inbounds float* %tmp3939, i64 1
+ %tmp3941 = getelementptr inbounds float* %tmp3940, i64 1
+ %tmp3942 = getelementptr inbounds float* %tmp3941, i64 1
+ %tmp3943 = getelementptr inbounds float* %tmp3942, i64 1
+ %tmp3944 = getelementptr inbounds float* %tmp3943, i64 1
+ %tmp3945 = getelementptr inbounds float* %tmp3944, i64 1
+ %tmp3946 = getelementptr inbounds float* %tmp3945, i64 1
+ %tmp3947 = getelementptr inbounds float* %tmp3946, i64 1
+ %tmp3948 = getelementptr inbounds float* %tmp3947, i64 1
+ %tmp3949 = getelementptr inbounds float* %tmp3948, i64 1
+ %tmp3950 = getelementptr inbounds float* %tmp3949, i64 1
+ %tmp3951 = getelementptr inbounds float* %tmp3950, i64 1
+ %tmp3952 = getelementptr inbounds float* %tmp3951, i64 1
+ %tmp3953 = getelementptr inbounds float* %tmp3952, i64 1
+ %tmp3954 = getelementptr inbounds float* %tmp3953, i64 1
+ %tmp3955 = getelementptr inbounds float* %tmp3954, i64 1
+ %tmp3956 = getelementptr inbounds float* %tmp3955, i64 1
+ %tmp3957 = getelementptr inbounds float* %tmp3956, i64 1
+ %tmp3958 = getelementptr inbounds float* %tmp3957, i64 1
+ %tmp3959 = getelementptr inbounds float* %tmp3958, i64 1
+ %tmp3960 = getelementptr inbounds float* %tmp3959, i64 1
+ %tmp3961 = getelementptr inbounds float* %tmp3960, i64 1
+ %tmp3962 = getelementptr inbounds float* %tmp3961, i64 1
+ %tmp3963 = getelementptr inbounds float* %tmp3962, i64 1
+ %tmp3964 = getelementptr inbounds float* %tmp3963, i64 1
+ %tmp3965 = getelementptr inbounds float* %tmp3964, i64 1
+ %tmp3966 = getelementptr inbounds float* %tmp3965, i64 1
+ %tmp3967 = getelementptr inbounds float* %tmp3966, i64 1
+ %tmp3968 = getelementptr inbounds float* %tmp3967, i64 1
+ %tmp3969 = getelementptr inbounds float* %tmp3968, i64 1
+ %tmp3970 = getelementptr inbounds float* %tmp3969, i64 1
+ %tmp3971 = getelementptr inbounds float* %tmp3970, i64 1
+ %tmp3972 = getelementptr inbounds float* %tmp3971, i64 1
+ %tmp3973 = getelementptr inbounds float* %tmp3972, i64 1
+ %tmp3974 = getelementptr inbounds float* %tmp3973, i64 1
+ %tmp3975 = getelementptr inbounds float* %tmp3974, i64 1
+ %tmp3976 = getelementptr inbounds float* %tmp3975, i64 1
+ %tmp3977 = getelementptr inbounds float* %tmp3976, i64 1
+ %tmp3978 = getelementptr inbounds float* %tmp3977, i64 1
+ %tmp3979 = getelementptr inbounds float* %tmp3978, i64 1
+ %tmp3980 = getelementptr inbounds float* %tmp3979, i64 1
+ %tmp3981 = getelementptr inbounds float* %tmp3980, i64 1
+ %tmp3982 = getelementptr inbounds float* %tmp3981, i64 1
+ %tmp3983 = getelementptr inbounds float* %tmp3982, i64 1
+ %tmp3984 = getelementptr inbounds float* %tmp3983, i64 1
+ %tmp3985 = getelementptr inbounds float* %tmp3984, i64 1
+ %tmp3986 = getelementptr inbounds float* %tmp3985, i64 1
+ %tmp3987 = getelementptr inbounds float* %tmp3986, i64 1
+ %tmp3988 = getelementptr inbounds float* %tmp3987, i64 1
+ %tmp3989 = getelementptr inbounds float* %tmp3988, i64 1
+ %tmp3990 = getelementptr inbounds float* %tmp3989, i64 1
+ %tmp3991 = getelementptr inbounds float* %tmp3990, i64 1
+ %tmp3992 = getelementptr inbounds float* %tmp3991, i64 1
+ %tmp3993 = getelementptr inbounds float* %tmp3992, i64 1
+ %tmp3994 = getelementptr inbounds float* %tmp3993, i64 1
+ %tmp3995 = getelementptr inbounds float* %tmp3994, i64 1
+ %tmp3996 = getelementptr inbounds float* %tmp3995, i64 1
+ %tmp3997 = getelementptr inbounds float* %tmp3996, i64 1
+ %tmp3998 = getelementptr inbounds float* %tmp3997, i64 1
+ %tmp3999 = getelementptr inbounds float* %tmp3998, i64 1
+ %tmp4000 = getelementptr inbounds float* %tmp3999, i64 1
+ %tmp4001 = getelementptr inbounds float* %tmp4000, i64 1
+ %tmp4002 = getelementptr inbounds float* %tmp4001, i64 1
+ %tmp4003 = getelementptr inbounds float* %tmp4002, i64 1
+ %tmp4004 = getelementptr inbounds float* %tmp4003, i64 1
+ %tmp4005 = getelementptr inbounds float* %tmp4004, i64 1
+ %tmp4006 = getelementptr inbounds float* %tmp4005, i64 1
+ %tmp4007 = getelementptr inbounds float* %tmp4006, i64 1
+ %tmp4008 = getelementptr inbounds float* %tmp4007, i64 1
+ %tmp4009 = getelementptr inbounds float* %tmp4008, i64 1
+ %tmp4010 = getelementptr inbounds float* %tmp4009, i64 1
+ %tmp4011 = getelementptr inbounds float* %tmp4010, i64 1
+ %tmp4012 = getelementptr inbounds float* %tmp4011, i64 1
+ %tmp4013 = getelementptr inbounds float* %tmp4012, i64 1
+ %tmp4014 = getelementptr inbounds float* %tmp4013, i64 1
+ %tmp4015 = getelementptr inbounds float* %tmp4014, i64 1
+ %tmp4016 = getelementptr inbounds float* %tmp4015, i64 1
+ %tmp4017 = getelementptr inbounds float* %tmp4016, i64 1
+ %tmp4018 = getelementptr inbounds float* %tmp4017, i64 1
+ %tmp4019 = getelementptr inbounds float* %tmp4018, i64 1
+ %tmp4020 = getelementptr inbounds float* %tmp4019, i64 1
+ %tmp4021 = getelementptr inbounds float* %tmp4020, i64 1
+ %tmp4022 = getelementptr inbounds float* %tmp4021, i64 1
+ %tmp4023 = getelementptr inbounds float* %tmp4022, i64 1
+ %tmp4024 = getelementptr inbounds float* %tmp4023, i64 1
+ %tmp4025 = getelementptr inbounds float* %tmp4024, i64 1
+ %tmp4026 = getelementptr inbounds float* %tmp4025, i64 1
+ %tmp4027 = getelementptr inbounds float* %tmp4026, i64 1
+ %tmp4028 = getelementptr inbounds float* %tmp4027, i64 1
+ %tmp4029 = getelementptr inbounds float* %tmp4028, i64 1
+ %tmp4030 = getelementptr inbounds float* %tmp4029, i64 1
+ %tmp4031 = getelementptr inbounds float* %tmp4030, i64 1
+ %tmp4032 = getelementptr inbounds float* %tmp4031, i64 1
+ %tmp4033 = getelementptr inbounds float* %tmp4032, i64 1
+ %tmp4034 = getelementptr inbounds float* %tmp4033, i64 1
+ %tmp4035 = getelementptr inbounds float* %tmp4034, i64 1
+ %tmp4036 = getelementptr inbounds float* %tmp4035, i64 1
+ %tmp4037 = getelementptr inbounds float* %tmp4036, i64 1
+ %tmp4038 = getelementptr inbounds float* %tmp4037, i64 1
+ %tmp4039 = getelementptr inbounds float* %tmp4038, i64 1
+ %tmp4040 = getelementptr inbounds float* %tmp4039, i64 1
+ %tmp4041 = getelementptr inbounds float* %tmp4040, i64 1
+ %tmp4042 = getelementptr inbounds float* %tmp4041, i64 1
+ %tmp4043 = getelementptr inbounds float* %tmp4042, i64 1
+ %tmp4044 = getelementptr inbounds float* %tmp4043, i64 1
+ %tmp4045 = getelementptr inbounds float* %tmp4044, i64 1
+ %tmp4046 = getelementptr inbounds float* %tmp4045, i64 1
+ %tmp4047 = getelementptr inbounds float* %tmp4046, i64 1
+ %tmp4048 = getelementptr inbounds float* %tmp4047, i64 1
+ %tmp4049 = getelementptr inbounds float* %tmp4048, i64 1
+ %tmp4050 = getelementptr inbounds float* %tmp4049, i64 1
+ %tmp4051 = getelementptr inbounds float* %tmp4050, i64 1
+ %tmp4052 = getelementptr inbounds float* %tmp4051, i64 1
+ %tmp4053 = getelementptr inbounds float* %tmp4052, i64 1
+ %tmp4054 = getelementptr inbounds float* %tmp4053, i64 1
+ %tmp4055 = getelementptr inbounds float* %tmp4054, i64 1
+ %tmp4056 = getelementptr inbounds float* %tmp4055, i64 1
+ %tmp4057 = getelementptr inbounds float* %tmp4056, i64 1
+ %tmp4058 = getelementptr inbounds float* %tmp4057, i64 1
+ %tmp4059 = getelementptr inbounds float* %tmp4058, i64 1
+ %tmp4060 = getelementptr inbounds float* %tmp4059, i64 1
+ %tmp4061 = getelementptr inbounds float* %tmp4060, i64 1
+ %tmp4062 = getelementptr inbounds float* %tmp4061, i64 1
+ %tmp4063 = getelementptr inbounds float* %tmp4062, i64 1
+ %tmp4064 = getelementptr inbounds float* %tmp4063, i64 1
+ %tmp4065 = getelementptr inbounds float* %tmp4064, i64 1
+ %tmp4066 = getelementptr inbounds float* %tmp4065, i64 1
+ %tmp4067 = getelementptr inbounds float* %tmp4066, i64 1
+ %tmp4068 = getelementptr inbounds float* %tmp4067, i64 1
+ %tmp4069 = getelementptr inbounds float* %tmp4068, i64 1
+ %tmp4070 = getelementptr inbounds float* %tmp4069, i64 1
+ %tmp4071 = getelementptr inbounds float* %tmp4070, i64 1
+ %tmp4072 = getelementptr inbounds float* %tmp4071, i64 1
+ %tmp4073 = getelementptr inbounds float* %tmp4072, i64 1
+ %tmp4074 = getelementptr inbounds float* %tmp4073, i64 1
+ %tmp4075 = getelementptr inbounds float* %tmp4074, i64 1
+ %tmp4076 = getelementptr inbounds float* %tmp4075, i64 1
+ %tmp4077 = getelementptr inbounds float* %tmp4076, i64 1
+ %tmp4078 = getelementptr inbounds float* %tmp4077, i64 1
+ %tmp4079 = getelementptr inbounds float* %tmp4078, i64 1
+ %tmp4080 = getelementptr inbounds float* %tmp4079, i64 1
+ %tmp4081 = getelementptr inbounds float* %tmp4080, i64 1
+ %tmp4082 = getelementptr inbounds float* %tmp4081, i64 1
+ %tmp4083 = getelementptr inbounds float* %tmp4082, i64 1
+ %tmp4084 = getelementptr inbounds float* %tmp4083, i64 1
+ %tmp4085 = getelementptr inbounds float* %tmp4084, i64 1
+ %tmp4086 = getelementptr inbounds float* %tmp4085, i64 1
+ %tmp4087 = getelementptr inbounds float* %tmp4086, i64 1
+ %tmp4088 = getelementptr inbounds float* %tmp4087, i64 1
+ %tmp4089 = getelementptr inbounds float* %tmp4088, i64 1
+ %tmp4090 = getelementptr inbounds float* %tmp4089, i64 1
+ %tmp4091 = getelementptr inbounds float* %tmp4090, i64 1
+ %tmp4092 = getelementptr inbounds float* %tmp4091, i64 1
+ %tmp4093 = getelementptr inbounds float* %tmp4092, i64 1
+ %tmp4094 = getelementptr inbounds float* %tmp4093, i64 1
+ %tmp4095 = getelementptr inbounds float* %tmp4094, i64 1
+ %tmp4096 = getelementptr inbounds float* %tmp4095, i64 1
+ %tmp4097 = getelementptr inbounds float* %tmp4096, i64 1
+ %tmp4098 = getelementptr inbounds float* %tmp4097, i64 1
+ %tmp4099 = getelementptr inbounds float* %tmp4098, i64 1
+ %tmp4100 = getelementptr inbounds float* %tmp4099, i64 1
+ %tmp4101 = getelementptr inbounds float* %tmp4100, i64 1
+ %tmp4102 = getelementptr inbounds float* %tmp4101, i64 1
+ %tmp4103 = getelementptr inbounds float* %tmp4102, i64 1
+ %tmp4104 = getelementptr inbounds float* %tmp4103, i64 1
+ %tmp4105 = getelementptr inbounds float* %tmp4104, i64 1
+ %tmp4106 = getelementptr inbounds float* %tmp4105, i64 1
+ %tmp4107 = getelementptr inbounds float* %tmp4106, i64 1
+ %tmp4108 = getelementptr inbounds float* %tmp4107, i64 1
+ %tmp4109 = getelementptr inbounds float* %tmp4108, i64 1
+ %tmp4110 = getelementptr inbounds float* %tmp4109, i64 1
+ %tmp4111 = getelementptr inbounds float* %tmp4110, i64 1
+ %tmp4112 = getelementptr inbounds float* %tmp4111, i64 1
+ %tmp4113 = getelementptr inbounds float* %tmp4112, i64 1
+ %tmp4114 = getelementptr inbounds float* %tmp4113, i64 1
+ %tmp4115 = getelementptr inbounds float* %tmp4114, i64 1
+ %tmp4116 = getelementptr inbounds float* %tmp4115, i64 1
+ %tmp4117 = getelementptr inbounds float* %tmp4116, i64 1
+ %tmp4118 = getelementptr inbounds float* %tmp4117, i64 1
+ %tmp4119 = getelementptr inbounds float* %tmp4118, i64 1
+ %tmp4120 = getelementptr inbounds float* %tmp4119, i64 1
+ %tmp4121 = getelementptr inbounds float* %tmp4120, i64 1
+ %tmp4122 = getelementptr inbounds float* %tmp4121, i64 1
+ %tmp4123 = getelementptr inbounds float* %tmp4122, i64 1
+ %tmp4124 = getelementptr inbounds float* %tmp4123, i64 1
+ %tmp4125 = getelementptr inbounds float* %tmp4124, i64 1
+ %tmp4126 = getelementptr inbounds float* %tmp4125, i64 1
+ %tmp4127 = getelementptr inbounds float* %tmp4126, i64 1
+ %tmp4128 = getelementptr inbounds float* %tmp4127, i64 1
+ %tmp4129 = getelementptr inbounds float* %tmp4128, i64 1
+ %tmp4130 = getelementptr inbounds float* %tmp4129, i64 1
+ %tmp4131 = getelementptr inbounds float* %tmp4130, i64 1
+ %tmp4132 = getelementptr inbounds float* %tmp4131, i64 1
+ %tmp4133 = getelementptr inbounds float* %tmp4132, i64 1
+ %tmp4134 = getelementptr inbounds float* %tmp4133, i64 1
+ %tmp4135 = getelementptr inbounds float* %tmp4134, i64 1
+ %tmp4136 = getelementptr inbounds float* %tmp4135, i64 1
+ %tmp4137 = getelementptr inbounds float* %tmp4136, i64 1
+ %tmp4138 = getelementptr inbounds float* %tmp4137, i64 1
+ %tmp4139 = getelementptr inbounds float* %tmp4138, i64 1
+ %tmp4140 = getelementptr inbounds float* %tmp4139, i64 1
+ %tmp4141 = getelementptr inbounds float* %tmp4140, i64 1
+ %tmp4142 = getelementptr inbounds float* %tmp4141, i64 1
+ %tmp4143 = getelementptr inbounds float* %tmp4142, i64 1
+ %tmp4144 = getelementptr inbounds float* %tmp4143, i64 1
+ %tmp4145 = getelementptr inbounds float* %tmp4144, i64 1
+ %tmp4146 = getelementptr inbounds float* %tmp4145, i64 1
+ %tmp4147 = getelementptr inbounds float* %tmp4146, i64 1
+ %tmp4148 = getelementptr inbounds float* %tmp4147, i64 1
+ %tmp4149 = getelementptr inbounds float* %tmp4148, i64 1
+ %tmp4150 = getelementptr inbounds float* %tmp4149, i64 1
+ %tmp4151 = getelementptr inbounds float* %tmp4150, i64 1
+ %tmp4152 = getelementptr inbounds float* %tmp4151, i64 1
+ %tmp4153 = getelementptr inbounds float* %tmp4152, i64 1
+ %tmp4154 = getelementptr inbounds float* %tmp4153, i64 1
+ %tmp4155 = getelementptr inbounds float* %tmp4154, i64 1
+ %tmp4156 = getelementptr inbounds float* %tmp4155, i64 1
+ %tmp4157 = getelementptr inbounds float* %tmp4156, i64 1
+ %tmp4158 = getelementptr inbounds float* %tmp4157, i64 1
+ %tmp4159 = getelementptr inbounds float* %tmp4158, i64 1
+ %tmp4160 = getelementptr inbounds float* %tmp4159, i64 1
+ %tmp4161 = getelementptr inbounds float* %tmp4160, i64 1
+ %tmp4162 = getelementptr inbounds float* %tmp4161, i64 1
+ %tmp4163 = getelementptr inbounds float* %tmp4162, i64 1
+ %tmp4164 = getelementptr inbounds float* %tmp4163, i64 1
+ %tmp4165 = getelementptr inbounds float* %tmp4164, i64 1
+ %tmp4166 = getelementptr inbounds float* %tmp4165, i64 1
+ %tmp4167 = getelementptr inbounds float* %tmp4166, i64 1
+ %tmp4168 = getelementptr inbounds float* %tmp4167, i64 1
+ %tmp4169 = getelementptr inbounds float* %tmp4168, i64 1
+ %tmp4170 = getelementptr inbounds float* %tmp4169, i64 1
+ %tmp4171 = getelementptr inbounds float* %tmp4170, i64 1
+ %tmp4172 = getelementptr inbounds float* %tmp4171, i64 1
+ %tmp4173 = getelementptr inbounds float* %tmp4172, i64 1
+ %tmp4174 = getelementptr inbounds float* %tmp4173, i64 1
+ %tmp4175 = getelementptr inbounds float* %tmp4174, i64 1
+ %tmp4176 = getelementptr inbounds float* %tmp4175, i64 1
+ %tmp4177 = getelementptr inbounds float* %tmp4176, i64 1
+ %tmp4178 = getelementptr inbounds float* %tmp4177, i64 1
+ %tmp4179 = getelementptr inbounds float* %tmp4178, i64 1
+ %tmp4180 = getelementptr inbounds float* %tmp4179, i64 1
+ %tmp4181 = getelementptr inbounds float* %tmp4180, i64 1
+ %tmp4182 = getelementptr inbounds float* %tmp4181, i64 1
+ %tmp4183 = getelementptr inbounds float* %tmp4182, i64 1
+ %tmp4184 = getelementptr inbounds float* %tmp4183, i64 1
+ %tmp4185 = getelementptr inbounds float* %tmp4184, i64 1
+ %tmp4186 = getelementptr inbounds float* %tmp4185, i64 1
+ %tmp4187 = getelementptr inbounds float* %tmp4186, i64 1
+ %tmp4188 = getelementptr inbounds float* %tmp4187, i64 1
+ %tmp4189 = getelementptr inbounds float* %tmp4188, i64 1
+ %tmp4190 = getelementptr inbounds float* %tmp4189, i64 1
+ %tmp4191 = getelementptr inbounds float* %tmp4190, i64 1
+ %tmp4192 = getelementptr inbounds float* %tmp4191, i64 1
+ %tmp4193 = getelementptr inbounds float* %tmp4192, i64 1
+ %tmp4194 = getelementptr inbounds float* %tmp4193, i64 1
+ %tmp4195 = getelementptr inbounds float* %tmp4194, i64 1
+ %tmp4196 = getelementptr inbounds float* %tmp4195, i64 1
+ %tmp4197 = getelementptr inbounds float* %tmp4196, i64 1
+ %tmp4198 = getelementptr inbounds float* %tmp4197, i64 1
+ %tmp4199 = getelementptr inbounds float* %tmp4198, i64 1
+ %tmp4200 = getelementptr inbounds float* %tmp4199, i64 1
+ %tmp4201 = getelementptr inbounds float* %tmp4200, i64 1
+ %tmp4202 = getelementptr inbounds float* %tmp4201, i64 1
+ %tmp4203 = getelementptr inbounds float* %tmp4202, i64 1
+ %tmp4204 = getelementptr inbounds float* %tmp4203, i64 1
+ %tmp4205 = getelementptr inbounds float* %tmp4204, i64 1
+ %tmp4206 = getelementptr inbounds float* %tmp4205, i64 1
+ %tmp4207 = getelementptr inbounds float* %tmp4206, i64 1
+ %tmp4208 = getelementptr inbounds float* %tmp4207, i64 1
+ %tmp4209 = getelementptr inbounds float* %tmp4208, i64 1
+ %tmp4210 = getelementptr inbounds float* %tmp4209, i64 1
+ %tmp4211 = getelementptr inbounds float* %tmp4210, i64 1
+ %tmp4212 = getelementptr inbounds float* %tmp4211, i64 1
+ %tmp4213 = getelementptr inbounds float* %tmp4212, i64 1
+ %tmp4214 = getelementptr inbounds float* %tmp4213, i64 1
+ %tmp4215 = getelementptr inbounds float* %tmp4214, i64 1
+ %tmp4216 = getelementptr inbounds float* %tmp4215, i64 1
+ %tmp4217 = getelementptr inbounds float* %tmp4216, i64 1
+ %tmp4218 = getelementptr inbounds float* %tmp4217, i64 1
+ %tmp4219 = getelementptr inbounds float* %tmp4218, i64 1
+ %tmp4220 = getelementptr inbounds float* %tmp4219, i64 1
+ %tmp4221 = getelementptr inbounds float* %tmp4220, i64 1
+ %tmp4222 = getelementptr inbounds float* %tmp4221, i64 1
+ %tmp4223 = getelementptr inbounds float* %tmp4222, i64 1
+ %tmp4224 = getelementptr inbounds float* %tmp4223, i64 1
+ %tmp4225 = getelementptr inbounds float* %tmp4224, i64 1
+ %tmp4226 = getelementptr inbounds float* %tmp4225, i64 1
+ %tmp4227 = getelementptr inbounds float* %tmp4226, i64 1
+ %tmp4228 = getelementptr inbounds float* %tmp4227, i64 1
+ %tmp4229 = getelementptr inbounds float* %tmp4228, i64 1
+ %tmp4230 = getelementptr inbounds float* %tmp4229, i64 1
+ %tmp4231 = getelementptr inbounds float* %tmp4230, i64 1
+ %tmp4232 = getelementptr inbounds float* %tmp4231, i64 1
+ %tmp4233 = getelementptr inbounds float* %tmp4232, i64 1
+ %tmp4234 = getelementptr inbounds float* %tmp4233, i64 1
+ %tmp4235 = getelementptr inbounds float* %tmp4234, i64 1
+ %tmp4236 = getelementptr inbounds float* %tmp4235, i64 1
+ %tmp4237 = getelementptr inbounds float* %tmp4236, i64 1
+ %tmp4238 = getelementptr inbounds float* %tmp4237, i64 1
+ %tmp4239 = getelementptr inbounds float* %tmp4238, i64 1
+ %tmp4240 = getelementptr inbounds float* %tmp4239, i64 1
+ %tmp4241 = getelementptr inbounds float* %tmp4240, i64 1
+ %tmp4242 = getelementptr inbounds float* %tmp4241, i64 1
+ %tmp4243 = getelementptr inbounds float* %tmp4242, i64 1
+ %tmp4244 = getelementptr inbounds float* %tmp4243, i64 1
+ %tmp4245 = getelementptr inbounds float* %tmp4244, i64 1
+ %tmp4246 = getelementptr inbounds float* %tmp4245, i64 1
+ %tmp4247 = getelementptr inbounds float* %tmp4246, i64 1
+ %tmp4248 = getelementptr inbounds float* %tmp4247, i64 1
+ %tmp4249 = getelementptr inbounds float* %tmp4248, i64 1
+ %tmp4250 = getelementptr inbounds float* %tmp4249, i64 1
+ %tmp4251 = getelementptr inbounds float* %tmp4250, i64 1
+ %tmp4252 = getelementptr inbounds float* %tmp4251, i64 1
+ %tmp4253 = getelementptr inbounds float* %tmp4252, i64 1
+ %tmp4254 = getelementptr inbounds float* %tmp4253, i64 1
+ %tmp4255 = getelementptr inbounds float* %tmp4254, i64 1
+ %tmp4256 = getelementptr inbounds float* %tmp4255, i64 1
+ %tmp4257 = getelementptr inbounds float* %tmp4256, i64 1
+ %tmp4258 = getelementptr inbounds float* %tmp4257, i64 1
+ %tmp4259 = getelementptr inbounds float* %tmp4258, i64 1
+ %tmp4260 = getelementptr inbounds float* %tmp4259, i64 1
+ %tmp4261 = getelementptr inbounds float* %tmp4260, i64 1
+ %tmp4262 = getelementptr inbounds float* %tmp4261, i64 1
+ %tmp4263 = getelementptr inbounds float* %tmp4262, i64 1
+ %tmp4264 = getelementptr inbounds float* %tmp4263, i64 1
+ %tmp4265 = getelementptr inbounds float* %tmp4264, i64 1
+ %tmp4266 = getelementptr inbounds float* %tmp4265, i64 1
+ %tmp4267 = getelementptr inbounds float* %tmp4266, i64 1
+ %tmp4268 = getelementptr inbounds float* %tmp4267, i64 1
+ %tmp4269 = getelementptr inbounds float* %tmp4268, i64 1
+ %tmp4270 = getelementptr inbounds float* %tmp4269, i64 1
+ %tmp4271 = getelementptr inbounds float* %tmp4270, i64 1
+ %tmp4272 = getelementptr inbounds float* %tmp4271, i64 1
+ %tmp4273 = getelementptr inbounds float* %tmp4272, i64 1
+ %tmp4274 = getelementptr inbounds float* %tmp4273, i64 1
+ %tmp4275 = getelementptr inbounds float* %tmp4274, i64 1
+ %tmp4276 = getelementptr inbounds float* %tmp4275, i64 1
+ %tmp4277 = getelementptr inbounds float* %tmp4276, i64 1
+ %tmp4278 = getelementptr inbounds float* %tmp4277, i64 1
+ %tmp4279 = getelementptr inbounds float* %tmp4278, i64 1
+ %tmp4280 = getelementptr inbounds float* %tmp4279, i64 1
+ %tmp4281 = getelementptr inbounds float* %tmp4280, i64 1
+ %tmp4282 = getelementptr inbounds float* %tmp4281, i64 1
+ %tmp4283 = getelementptr inbounds float* %tmp4282, i64 1
+ %tmp4284 = getelementptr inbounds float* %tmp4283, i64 1
+ %tmp4285 = getelementptr inbounds float* %tmp4284, i64 1
+ %tmp4286 = getelementptr inbounds float* %tmp4285, i64 1
+ %tmp4287 = getelementptr inbounds float* %tmp4286, i64 1
+ %tmp4288 = getelementptr inbounds float* %tmp4287, i64 1
+ %tmp4289 = getelementptr inbounds float* %tmp4288, i64 1
+ %tmp4290 = getelementptr inbounds float* %tmp4289, i64 1
+ %tmp4291 = getelementptr inbounds float* %tmp4290, i64 1
+ %tmp4292 = getelementptr inbounds float* %tmp4291, i64 1
+ %tmp4293 = getelementptr inbounds float* %tmp4292, i64 1
+ %tmp4294 = getelementptr inbounds float* %tmp4293, i64 1
+ %tmp4295 = getelementptr inbounds float* %tmp4294, i64 1
+ %tmp4296 = getelementptr inbounds float* %tmp4295, i64 1
+ %tmp4297 = getelementptr inbounds float* %tmp4296, i64 1
+ %tmp4298 = getelementptr inbounds float* %tmp4297, i64 1
+ %tmp4299 = getelementptr inbounds float* %tmp4298, i64 1
+ %tmp4300 = getelementptr inbounds float* %tmp4299, i64 1
+ %tmp4301 = getelementptr inbounds float* %tmp4300, i64 1
+ %tmp4302 = getelementptr inbounds float* %tmp4301, i64 1
+ %tmp4303 = getelementptr inbounds float* %tmp4302, i64 1
+ %tmp4304 = getelementptr inbounds float* %tmp4303, i64 1
+ %tmp4305 = getelementptr inbounds float* %tmp4304, i64 1
+ %tmp4306 = getelementptr inbounds float* %tmp4305, i64 1
+ %tmp4307 = getelementptr inbounds float* %tmp4306, i64 1
+ %tmp4308 = getelementptr inbounds float* %tmp4307, i64 1
+ %tmp4309 = getelementptr inbounds float* %tmp4308, i64 1
+ %tmp4310 = getelementptr inbounds float* %tmp4309, i64 1
+ %tmp4311 = getelementptr inbounds float* %tmp4310, i64 1
+ %tmp4312 = getelementptr inbounds float* %tmp4311, i64 1
+ %tmp4313 = getelementptr inbounds float* %tmp4312, i64 1
+ %tmp4314 = getelementptr inbounds float* %tmp4313, i64 1
+ %tmp4315 = getelementptr inbounds float* %tmp4314, i64 1
+ %tmp4316 = getelementptr inbounds float* %tmp4315, i64 1
+ %tmp4317 = getelementptr inbounds float* %tmp4316, i64 1
+ %tmp4318 = getelementptr inbounds float* %tmp4317, i64 1
+ %tmp4319 = getelementptr inbounds float* %tmp4318, i64 1
+ %tmp4320 = getelementptr inbounds float* %tmp4319, i64 1
+ %tmp4321 = getelementptr inbounds float* %tmp4320, i64 1
+ %tmp4322 = getelementptr inbounds float* %tmp4321, i64 1
+ %tmp4323 = getelementptr inbounds float* %tmp4322, i64 1
+ %tmp4324 = getelementptr inbounds float* %tmp4323, i64 1
+ %tmp4325 = getelementptr inbounds float* %tmp4324, i64 1
+ %tmp4326 = getelementptr inbounds float* %tmp4325, i64 1
+ %tmp4327 = getelementptr inbounds float* %tmp4326, i64 1
+ %tmp4328 = getelementptr inbounds float* %tmp4327, i64 1
+ %tmp4329 = getelementptr inbounds float* %tmp4328, i64 1
+ %tmp4330 = getelementptr inbounds float* %tmp4329, i64 1
+ %tmp4331 = getelementptr inbounds float* %tmp4330, i64 1
+ %tmp4332 = getelementptr inbounds float* %tmp4331, i64 1
+ %tmp4333 = getelementptr inbounds float* %tmp4332, i64 1
+ %tmp4334 = getelementptr inbounds float* %tmp4333, i64 1
+ %tmp4335 = getelementptr inbounds float* %tmp4334, i64 1
+ %tmp4336 = getelementptr inbounds float* %tmp4335, i64 1
+ %tmp4337 = getelementptr inbounds float* %tmp4336, i64 1
+ %tmp4338 = getelementptr inbounds float* %tmp4337, i64 1
+ %tmp4339 = getelementptr inbounds float* %tmp4338, i64 1
+ %tmp4340 = getelementptr inbounds float* %tmp4339, i64 1
+ %tmp4341 = getelementptr inbounds float* %tmp4340, i64 1
+ %tmp4342 = getelementptr inbounds float* %tmp4341, i64 1
+ %tmp4343 = getelementptr inbounds float* %tmp4342, i64 1
+ %tmp4344 = getelementptr inbounds float* %tmp4343, i64 1
+ %tmp4345 = getelementptr inbounds float* %tmp4344, i64 1
+ %tmp4346 = getelementptr inbounds float* %tmp4345, i64 1
+ %tmp4347 = getelementptr inbounds float* %tmp4346, i64 1
+ %tmp4348 = getelementptr inbounds float* %tmp4347, i64 1
+ %tmp4349 = getelementptr inbounds float* %tmp4348, i64 1
+ %tmp4350 = getelementptr inbounds float* %tmp4349, i64 1
+ %tmp4351 = getelementptr inbounds float* %tmp4350, i64 1
+ %tmp4352 = getelementptr inbounds float* %tmp4351, i64 1
+ %tmp4353 = getelementptr inbounds float* %tmp4352, i64 1
+ %tmp4354 = getelementptr inbounds float* %tmp4353, i64 1
+ %tmp4355 = getelementptr inbounds float* %tmp4354, i64 1
+ %tmp4356 = getelementptr inbounds float* %tmp4355, i64 1
+ %tmp4357 = getelementptr inbounds float* %tmp4356, i64 1
+ %tmp4358 = getelementptr inbounds float* %tmp4357, i64 1
+ %tmp4359 = getelementptr inbounds float* %tmp4358, i64 1
+ %tmp4360 = getelementptr inbounds float* %tmp4359, i64 1
+ %tmp4361 = getelementptr inbounds float* %tmp4360, i64 1
+ %tmp4362 = getelementptr inbounds float* %tmp4361, i64 1
+ %tmp4363 = getelementptr inbounds float* %tmp4362, i64 1
+ %tmp4364 = getelementptr inbounds float* %tmp4363, i64 1
+ %tmp4365 = getelementptr inbounds float* %tmp4364, i64 1
+ %tmp4366 = getelementptr inbounds float* %tmp4365, i64 1
+ %tmp4367 = getelementptr inbounds float* %tmp4366, i64 1
+ %tmp4368 = getelementptr inbounds float* %tmp4367, i64 1
+ %tmp4369 = getelementptr inbounds float* %tmp4368, i64 1
+ %tmp4370 = getelementptr inbounds float* %tmp4369, i64 1
+ %tmp4371 = getelementptr inbounds float* %tmp4370, i64 1
+ %tmp4372 = getelementptr inbounds float* %tmp4371, i64 1
+ %tmp4373 = getelementptr inbounds float* %tmp4372, i64 1
+ %tmp4374 = getelementptr inbounds float* %tmp4373, i64 1
+ %tmp4375 = getelementptr inbounds float* %tmp4374, i64 1
+ %tmp4376 = getelementptr inbounds float* %tmp4375, i64 1
+ %tmp4377 = getelementptr inbounds float* %tmp4376, i64 1
+ %tmp4378 = getelementptr inbounds float* %tmp4377, i64 1
+ %tmp4379 = getelementptr inbounds float* %tmp4378, i64 1
+ %tmp4380 = getelementptr inbounds float* %tmp4379, i64 1
+ %tmp4381 = getelementptr inbounds float* %tmp4380, i64 1
+ %tmp4382 = getelementptr inbounds float* %tmp4381, i64 1
+ %tmp4383 = getelementptr inbounds float* %tmp4382, i64 1
+ %tmp4384 = getelementptr inbounds float* %tmp4383, i64 1
+ %tmp4385 = getelementptr inbounds float* %tmp4384, i64 1
+ %tmp4386 = getelementptr inbounds float* %tmp4385, i64 1
+ %tmp4387 = getelementptr inbounds float* %tmp4386, i64 1
+ %tmp4388 = getelementptr inbounds float* %tmp4387, i64 1
+ %tmp4389 = getelementptr inbounds float* %tmp4388, i64 1
+ %tmp4390 = getelementptr inbounds float* %tmp4389, i64 1
+ %tmp4391 = getelementptr inbounds float* %tmp4390, i64 1
+ %tmp4392 = getelementptr inbounds float* %tmp4391, i64 1
+ %tmp4393 = getelementptr inbounds float* %tmp4392, i64 1
+ %tmp4394 = getelementptr inbounds float* %tmp4393, i64 1
+ %tmp4395 = getelementptr inbounds float* %tmp4394, i64 1
+ %tmp4396 = getelementptr inbounds float* %tmp4395, i64 1
+ %tmp4397 = getelementptr inbounds float* %tmp4396, i64 1
+ %tmp4398 = getelementptr inbounds float* %tmp4397, i64 1
+ %tmp4399 = getelementptr inbounds float* %tmp4398, i64 1
+ %tmp4400 = getelementptr inbounds float* %tmp4399, i64 1
+ %tmp4401 = getelementptr inbounds float* %tmp4400, i64 1
+ %tmp4402 = getelementptr inbounds float* %tmp4401, i64 1
+ %tmp4403 = getelementptr inbounds float* %tmp4402, i64 1
+ %tmp4404 = getelementptr inbounds float* %tmp4403, i64 1
+ %tmp4405 = getelementptr inbounds float* %tmp4404, i64 1
+ %tmp4406 = getelementptr inbounds float* %tmp4405, i64 1
+ %tmp4407 = getelementptr inbounds float* %tmp4406, i64 1
+ %tmp4408 = getelementptr inbounds float* %tmp4407, i64 1
+ %tmp4409 = getelementptr inbounds float* %tmp4408, i64 1
+ %tmp4410 = getelementptr inbounds float* %tmp4409, i64 1
+ %tmp4411 = getelementptr inbounds float* %tmp4410, i64 1
+ %tmp4412 = getelementptr inbounds float* %tmp4411, i64 1
+ %tmp4413 = getelementptr inbounds float* %tmp4412, i64 1
+ %tmp4414 = getelementptr inbounds float* %tmp4413, i64 1
+ %tmp4415 = getelementptr inbounds float* %tmp4414, i64 1
+ %tmp4416 = getelementptr inbounds float* %tmp4415, i64 1
+ %tmp4417 = getelementptr inbounds float* %tmp4416, i64 1
+ %tmp4418 = getelementptr inbounds float* %tmp4417, i64 1
+ %tmp4419 = getelementptr inbounds float* %tmp4418, i64 1
+ %tmp4420 = getelementptr inbounds float* %tmp4419, i64 1
+ %tmp4421 = getelementptr inbounds float* %tmp4420, i64 1
+ %tmp4422 = getelementptr inbounds float* %tmp4421, i64 1
+ %tmp4423 = getelementptr inbounds float* %tmp4422, i64 1
+ %tmp4424 = getelementptr inbounds float* %tmp4423, i64 1
+ %tmp4425 = getelementptr inbounds float* %tmp4424, i64 1
+ %tmp4426 = getelementptr inbounds float* %tmp4425, i64 1
+ %tmp4427 = getelementptr inbounds float* %tmp4426, i64 1
+ %tmp4428 = getelementptr inbounds float* %tmp4427, i64 1
+ %tmp4429 = getelementptr inbounds float* %tmp4428, i64 1
+ %tmp4430 = getelementptr inbounds float* %tmp4429, i64 1
+ %tmp4431 = getelementptr inbounds float* %tmp4430, i64 1
+ %tmp4432 = getelementptr inbounds float* %tmp4431, i64 1
+ %tmp4433 = getelementptr inbounds float* %tmp4432, i64 1
+ %tmp4434 = getelementptr inbounds float* %tmp4433, i64 1
+ %tmp4435 = getelementptr inbounds float* %tmp4434, i64 1
+ %tmp4436 = getelementptr inbounds float* %tmp4435, i64 1
+ %tmp4437 = getelementptr inbounds float* %tmp4436, i64 1
+ %tmp4438 = getelementptr inbounds float* %tmp4437, i64 1
+ %tmp4439 = getelementptr inbounds float* %tmp4438, i64 1
+ %tmp4440 = getelementptr inbounds float* %tmp4439, i64 1
+ %tmp4441 = getelementptr inbounds float* %tmp4440, i64 1
+ %tmp4442 = getelementptr inbounds float* %tmp4441, i64 1
+ %tmp4443 = getelementptr inbounds float* %tmp4442, i64 1
+ %tmp4444 = getelementptr inbounds float* %tmp4443, i64 1
+ %tmp4445 = getelementptr inbounds float* %tmp4444, i64 1
+ %tmp4446 = getelementptr inbounds float* %tmp4445, i64 1
+ %tmp4447 = getelementptr inbounds float* %tmp4446, i64 1
+ %tmp4448 = getelementptr inbounds float* %tmp4447, i64 1
+ %tmp4449 = getelementptr inbounds float* %tmp4448, i64 1
+ %tmp4450 = getelementptr inbounds float* %tmp4449, i64 1
+ %tmp4451 = getelementptr inbounds float* %tmp4450, i64 1
+ %tmp4452 = getelementptr inbounds float* %tmp4451, i64 1
+ %tmp4453 = getelementptr inbounds float* %tmp4452, i64 1
+ %tmp4454 = getelementptr inbounds float* %tmp4453, i64 1
+ %tmp4455 = getelementptr inbounds float* %tmp4454, i64 1
+ %tmp4456 = getelementptr inbounds float* %tmp4455, i64 1
+ %tmp4457 = getelementptr inbounds float* %tmp4456, i64 1
+ %tmp4458 = getelementptr inbounds float* %tmp4457, i64 1
+ %tmp4459 = getelementptr inbounds float* %tmp4458, i64 1
+ %tmp4460 = getelementptr inbounds float* %tmp4459, i64 1
+ %tmp4461 = getelementptr inbounds float* %tmp4460, i64 1
+ %tmp4462 = getelementptr inbounds float* %tmp4461, i64 1
+ %tmp4463 = getelementptr inbounds float* %tmp4462, i64 1
+ %tmp4464 = getelementptr inbounds float* %tmp4463, i64 1
+ %tmp4465 = getelementptr inbounds float* %tmp4464, i64 1
+ %tmp4466 = getelementptr inbounds float* %tmp4465, i64 1
+ %tmp4467 = getelementptr inbounds float* %tmp4466, i64 1
+ %tmp4468 = getelementptr inbounds float* %tmp4467, i64 1
+ %tmp4469 = getelementptr inbounds float* %tmp4468, i64 1
+ %tmp4470 = getelementptr inbounds float* %tmp4469, i64 1
+ %tmp4471 = getelementptr inbounds float* %tmp4470, i64 1
+ %tmp4472 = getelementptr inbounds float* %tmp4471, i64 1
+ %tmp4473 = getelementptr inbounds float* %tmp4472, i64 1
+ %tmp4474 = getelementptr inbounds float* %tmp4473, i64 1
+ %tmp4475 = getelementptr inbounds float* %tmp4474, i64 1
+ %tmp4476 = getelementptr inbounds float* %tmp4475, i64 1
+ %tmp4477 = getelementptr inbounds float* %tmp4476, i64 1
+ %tmp4478 = getelementptr inbounds float* %tmp4477, i64 1
+ %tmp4479 = getelementptr inbounds float* %tmp4478, i64 1
+ %tmp4480 = getelementptr inbounds float* %tmp4479, i64 1
+ %tmp4481 = getelementptr inbounds float* %tmp4480, i64 1
+ %tmp4482 = getelementptr inbounds float* %tmp4481, i64 1
+ %tmp4483 = getelementptr inbounds float* %tmp4482, i64 1
+ %tmp4484 = getelementptr inbounds float* %tmp4483, i64 1
+ %tmp4485 = getelementptr inbounds float* %tmp4484, i64 1
+ %tmp4486 = getelementptr inbounds float* %tmp4485, i64 1
+ %tmp4487 = getelementptr inbounds float* %tmp4486, i64 1
+ %tmp4488 = getelementptr inbounds float* %tmp4487, i64 1
+ %tmp4489 = getelementptr inbounds float* %tmp4488, i64 1
+ %tmp4490 = getelementptr inbounds float* %tmp4489, i64 1
+ %tmp4491 = getelementptr inbounds float* %tmp4490, i64 1
+ %tmp4492 = getelementptr inbounds float* %tmp4491, i64 1
+ %tmp4493 = getelementptr inbounds float* %tmp4492, i64 1
+ %tmp4494 = getelementptr inbounds float* %tmp4493, i64 1
+ %tmp4495 = getelementptr inbounds float* %tmp4494, i64 1
+ %tmp4496 = getelementptr inbounds float* %tmp4495, i64 1
+ %tmp4497 = getelementptr inbounds float* %tmp4496, i64 1
+ %tmp4498 = getelementptr inbounds float* %tmp4497, i64 1
+ %tmp4499 = getelementptr inbounds float* %tmp4498, i64 1
+ %tmp4500 = getelementptr inbounds float* %tmp4499, i64 1
+ %tmp4501 = getelementptr inbounds float* %tmp4500, i64 1
+ %tmp4502 = getelementptr inbounds float* %tmp4501, i64 1
+ %tmp4503 = getelementptr inbounds float* %tmp4502, i64 1
+ %tmp4504 = getelementptr inbounds float* %tmp4503, i64 1
+ %tmp4505 = getelementptr inbounds float* %tmp4504, i64 1
+ %tmp4506 = getelementptr inbounds float* %tmp4505, i64 1
+ %tmp4507 = getelementptr inbounds float* %tmp4506, i64 1
+ %tmp4508 = getelementptr inbounds float* %tmp4507, i64 1
+ %tmp4509 = getelementptr inbounds float* %tmp4508, i64 1
+ %tmp4510 = getelementptr inbounds float* %tmp4509, i64 1
+ %tmp4511 = getelementptr inbounds float* %tmp4510, i64 1
+ %tmp4512 = getelementptr inbounds float* %tmp4511, i64 1
+ %tmp4513 = getelementptr inbounds float* %tmp4512, i64 1
+ %tmp4514 = getelementptr inbounds float* %tmp4513, i64 1
+ %tmp4515 = getelementptr inbounds float* %tmp4514, i64 1
+ %tmp4516 = getelementptr inbounds float* %tmp4515, i64 1
+ %tmp4517 = getelementptr inbounds float* %tmp4516, i64 1
+ %tmp4518 = getelementptr inbounds float* %tmp4517, i64 1
+ %tmp4519 = getelementptr inbounds float* %tmp4518, i64 1
+ %tmp4520 = getelementptr inbounds float* %tmp4519, i64 1
+ %tmp4521 = getelementptr inbounds float* %tmp4520, i64 1
+ %tmp4522 = getelementptr inbounds float* %tmp4521, i64 1
+ %tmp4523 = getelementptr inbounds float* %tmp4522, i64 1
+ %tmp4524 = getelementptr inbounds float* %tmp4523, i64 1
+ %tmp4525 = getelementptr inbounds float* %tmp4524, i64 1
+ %tmp4526 = getelementptr inbounds float* %tmp4525, i64 1
+ %tmp4527 = getelementptr inbounds float* %tmp4526, i64 1
+ %tmp4528 = getelementptr inbounds float* %tmp4527, i64 1
+ %tmp4529 = getelementptr inbounds float* %tmp4528, i64 1
+ %tmp4530 = getelementptr inbounds float* %tmp4529, i64 1
+ %tmp4531 = getelementptr inbounds float* %tmp4530, i64 1
+ %tmp4532 = getelementptr inbounds float* %tmp4531, i64 1
+ %tmp4533 = getelementptr inbounds float* %tmp4532, i64 1
+ %tmp4534 = getelementptr inbounds float* %tmp4533, i64 1
+ %tmp4535 = getelementptr inbounds float* %tmp4534, i64 1
+ %tmp4536 = getelementptr inbounds float* %tmp4535, i64 1
+ %tmp4537 = getelementptr inbounds float* %tmp4536, i64 1
+ %tmp4538 = getelementptr inbounds float* %tmp4537, i64 1
+ %tmp4539 = getelementptr inbounds float* %tmp4538, i64 1
+ %tmp4540 = getelementptr inbounds float* %tmp4539, i64 1
+ %tmp4541 = getelementptr inbounds float* %tmp4540, i64 1
+ %tmp4542 = getelementptr inbounds float* %tmp4541, i64 1
+ %tmp4543 = getelementptr inbounds float* %tmp4542, i64 1
+ %tmp4544 = getelementptr inbounds float* %tmp4543, i64 1
+ %tmp4545 = getelementptr inbounds float* %tmp4544, i64 1
+ %tmp4546 = getelementptr inbounds float* %tmp4545, i64 1
+ %tmp4547 = getelementptr inbounds float* %tmp4546, i64 1
+ %tmp4548 = getelementptr inbounds float* %tmp4547, i64 1
+ %tmp4549 = getelementptr inbounds float* %tmp4548, i64 1
+ %tmp4550 = getelementptr inbounds float* %tmp4549, i64 1
+ %tmp4551 = getelementptr inbounds float* %tmp4550, i64 1
+ %tmp4552 = getelementptr inbounds float* %tmp4551, i64 1
+ %tmp4553 = getelementptr inbounds float* %tmp4552, i64 1
+ %tmp4554 = getelementptr inbounds float* %tmp4553, i64 1
+ %tmp4555 = getelementptr inbounds float* %tmp4554, i64 1
+ %tmp4556 = getelementptr inbounds float* %tmp4555, i64 1
+ %tmp4557 = getelementptr inbounds float* %tmp4556, i64 1
+ %tmp4558 = getelementptr inbounds float* %tmp4557, i64 1
+ %tmp4559 = getelementptr inbounds float* %tmp4558, i64 1
+ %tmp4560 = getelementptr inbounds float* %tmp4559, i64 1
+ %tmp4561 = getelementptr inbounds float* %tmp4560, i64 1
+ %tmp4562 = getelementptr inbounds float* %tmp4561, i64 1
+ %tmp4563 = getelementptr inbounds float* %tmp4562, i64 1
+ %tmp4564 = getelementptr inbounds float* %tmp4563, i64 1
+ %tmp4565 = getelementptr inbounds float* %tmp4564, i64 1
+ %tmp4566 = getelementptr inbounds float* %tmp4565, i64 1
+ %tmp4567 = getelementptr inbounds float* %tmp4566, i64 1
+ %tmp4568 = getelementptr inbounds float* %tmp4567, i64 1
+ %tmp4569 = getelementptr inbounds float* %tmp4568, i64 1
+ %tmp4570 = getelementptr inbounds float* %tmp4569, i64 1
+ %tmp4571 = getelementptr inbounds float* %tmp4570, i64 1
+ %tmp4572 = getelementptr inbounds float* %tmp4571, i64 1
+ %tmp4573 = getelementptr inbounds float* %tmp4572, i64 1
+ %tmp4574 = getelementptr inbounds float* %tmp4573, i64 1
+ %tmp4575 = getelementptr inbounds float* %tmp4574, i64 1
+ %tmp4576 = getelementptr inbounds float* %tmp4575, i64 1
+ %tmp4577 = getelementptr inbounds float* %tmp4576, i64 1
+ %tmp4578 = getelementptr inbounds float* %tmp4577, i64 1
+ %tmp4579 = getelementptr inbounds float* %tmp4578, i64 1
+ %tmp4580 = getelementptr inbounds float* %tmp4579, i64 1
+ %tmp4581 = getelementptr inbounds float* %tmp4580, i64 1
+ %tmp4582 = getelementptr inbounds float* %tmp4581, i64 1
+ %tmp4583 = getelementptr inbounds float* %tmp4582, i64 1
+ %tmp4584 = getelementptr inbounds float* %tmp4583, i64 1
+ %tmp4585 = getelementptr inbounds float* %tmp4584, i64 1
+ %tmp4586 = getelementptr inbounds float* %tmp4585, i64 1
+ %tmp4587 = getelementptr inbounds float* %tmp4586, i64 1
+ %tmp4588 = getelementptr inbounds float* %tmp4587, i64 1
+ %tmp4589 = getelementptr inbounds float* %tmp4588, i64 1
+ %tmp4590 = getelementptr inbounds float* %tmp4589, i64 1
+ %tmp4591 = getelementptr inbounds float* %tmp4590, i64 1
+ %tmp4592 = getelementptr inbounds float* %tmp4591, i64 1
+ %tmp4593 = getelementptr inbounds float* %tmp4592, i64 1
+ %tmp4594 = getelementptr inbounds float* %tmp4593, i64 1
+ %tmp4595 = getelementptr inbounds float* %tmp4594, i64 1
+ %tmp4596 = getelementptr inbounds float* %tmp4595, i64 1
+ %tmp4597 = getelementptr inbounds float* %tmp4596, i64 1
+ %tmp4598 = getelementptr inbounds float* %tmp4597, i64 1
+ %tmp4599 = getelementptr inbounds float* %tmp4598, i64 1
+ %tmp4600 = getelementptr inbounds float* %tmp4599, i64 1
+ %tmp4601 = getelementptr inbounds float* %tmp4600, i64 1
+ %tmp4602 = getelementptr inbounds float* %tmp4601, i64 1
+ %tmp4603 = getelementptr inbounds float* %tmp4602, i64 1
+ %tmp4604 = getelementptr inbounds float* %tmp4603, i64 1
+ %tmp4605 = getelementptr inbounds float* %tmp4604, i64 1
+ %tmp4606 = getelementptr inbounds float* %tmp4605, i64 1
+ %tmp4607 = getelementptr inbounds float* %tmp4606, i64 1
+ %tmp4608 = getelementptr inbounds float* %tmp4607, i64 1
+ %tmp4609 = getelementptr inbounds float* %tmp4608, i64 1
+ %tmp4610 = getelementptr inbounds float* %tmp4609, i64 1
+ %tmp4611 = getelementptr inbounds float* %tmp4610, i64 1
+ %tmp4612 = getelementptr inbounds float* %tmp4611, i64 1
+ %tmp4613 = getelementptr inbounds float* %tmp4612, i64 1
+ %tmp4614 = getelementptr inbounds float* %tmp4613, i64 1
+ %tmp4615 = getelementptr inbounds float* %tmp4614, i64 1
+ %tmp4616 = getelementptr inbounds float* %tmp4615, i64 1
+ %tmp4617 = getelementptr inbounds float* %tmp4616, i64 1
+ %tmp4618 = getelementptr inbounds float* %tmp4617, i64 1
+ %tmp4619 = getelementptr inbounds float* %tmp4618, i64 1
+ %tmp4620 = getelementptr inbounds float* %tmp4619, i64 1
+ %tmp4621 = getelementptr inbounds float* %tmp4620, i64 1
+ %tmp4622 = getelementptr inbounds float* %tmp4621, i64 1
+ %tmp4623 = getelementptr inbounds float* %tmp4622, i64 1
+ %tmp4624 = getelementptr inbounds float* %tmp4623, i64 1
+ %tmp4625 = getelementptr inbounds float* %tmp4624, i64 1
+ %tmp4626 = getelementptr inbounds float* %tmp4625, i64 1
+ %tmp4627 = getelementptr inbounds float* %tmp4626, i64 1
+ %tmp4628 = getelementptr inbounds float* %tmp4627, i64 1
+ %tmp4629 = getelementptr inbounds float* %tmp4628, i64 1
+ %tmp4630 = getelementptr inbounds float* %tmp4629, i64 1
+ %tmp4631 = getelementptr inbounds float* %tmp4630, i64 1
+ %tmp4632 = getelementptr inbounds float* %tmp4631, i64 1
+ %tmp4633 = getelementptr inbounds float* %tmp4632, i64 1
+ %tmp4634 = getelementptr inbounds float* %tmp4633, i64 1
+ %tmp4635 = getelementptr inbounds float* %tmp4634, i64 1
+ %tmp4636 = getelementptr inbounds float* %tmp4635, i64 1
+ %tmp4637 = getelementptr inbounds float* %tmp4636, i64 1
+ %tmp4638 = getelementptr inbounds float* %tmp4637, i64 1
+ %tmp4639 = getelementptr inbounds float* %tmp4638, i64 1
+ %tmp4640 = getelementptr inbounds float* %tmp4639, i64 1
+ %tmp4641 = getelementptr inbounds float* %tmp4640, i64 1
+ %tmp4642 = getelementptr inbounds float* %tmp4641, i64 1
+ %tmp4643 = getelementptr inbounds float* %tmp4642, i64 1
+ %tmp4644 = getelementptr inbounds float* %tmp4643, i64 1
+ %tmp4645 = getelementptr inbounds float* %tmp4644, i64 1
+ %tmp4646 = getelementptr inbounds float* %tmp4645, i64 1
+ %tmp4647 = getelementptr inbounds float* %tmp4646, i64 1
+ %tmp4648 = getelementptr inbounds float* %tmp4647, i64 1
+ %tmp4649 = getelementptr inbounds float* %tmp4648, i64 1
+ %tmp4650 = getelementptr inbounds float* %tmp4649, i64 1
+ %tmp4651 = getelementptr inbounds float* %tmp4650, i64 1
+ %tmp4652 = getelementptr inbounds float* %tmp4651, i64 1
+ %tmp4653 = getelementptr inbounds float* %tmp4652, i64 1
+ %tmp4654 = getelementptr inbounds float* %tmp4653, i64 1
+ %tmp4655 = getelementptr inbounds float* %tmp4654, i64 1
+ %tmp4656 = getelementptr inbounds float* %tmp4655, i64 1
+ %tmp4657 = getelementptr inbounds float* %tmp4656, i64 1
+ %tmp4658 = getelementptr inbounds float* %tmp4657, i64 1
+ %tmp4659 = getelementptr inbounds float* %tmp4658, i64 1
+ %tmp4660 = getelementptr inbounds float* %tmp4659, i64 1
+ %tmp4661 = getelementptr inbounds float* %tmp4660, i64 1
+ %tmp4662 = getelementptr inbounds float* %tmp4661, i64 1
+ %tmp4663 = getelementptr inbounds float* %tmp4662, i64 1
+ %tmp4664 = getelementptr inbounds float* %tmp4663, i64 1
+ %tmp4665 = getelementptr inbounds float* %tmp4664, i64 1
+ %tmp4666 = getelementptr inbounds float* %tmp4665, i64 1
+ %tmp4667 = getelementptr inbounds float* %tmp4666, i64 1
+ %tmp4668 = getelementptr inbounds float* %tmp4667, i64 1
+ %tmp4669 = getelementptr inbounds float* %tmp4668, i64 1
+ %tmp4670 = getelementptr inbounds float* %tmp4669, i64 1
+ %tmp4671 = getelementptr inbounds float* %tmp4670, i64 1
+ %tmp4672 = getelementptr inbounds float* %tmp4671, i64 1
+ %tmp4673 = getelementptr inbounds float* %tmp4672, i64 1
+ %tmp4674 = getelementptr inbounds float* %tmp4673, i64 1
+ %tmp4675 = getelementptr inbounds float* %tmp4674, i64 1
+ %tmp4676 = getelementptr inbounds float* %tmp4675, i64 1
+ %tmp4677 = getelementptr inbounds float* %tmp4676, i64 1
+ %tmp4678 = getelementptr inbounds float* %tmp4677, i64 1
+ %tmp4679 = getelementptr inbounds float* %tmp4678, i64 1
+ %tmp4680 = getelementptr inbounds float* %tmp4679, i64 1
+ %tmp4681 = getelementptr inbounds float* %tmp4680, i64 1
+ %tmp4682 = getelementptr inbounds float* %tmp4681, i64 1
+ %tmp4683 = getelementptr inbounds float* %tmp4682, i64 1
+ %tmp4684 = getelementptr inbounds float* %tmp4683, i64 1
+ %tmp4685 = getelementptr inbounds float* %tmp4684, i64 1
+ %tmp4686 = getelementptr inbounds float* %tmp4685, i64 1
+ %tmp4687 = getelementptr inbounds float* %tmp4686, i64 1
+ %tmp4688 = getelementptr inbounds float* %tmp4687, i64 1
+ %tmp4689 = getelementptr inbounds float* %tmp4688, i64 1
+ %tmp4690 = getelementptr inbounds float* %tmp4689, i64 1
+ %tmp4691 = getelementptr inbounds float* %tmp4690, i64 1
+ %tmp4692 = getelementptr inbounds float* %tmp4691, i64 1
+ %tmp4693 = getelementptr inbounds float* %tmp4692, i64 1
+ %tmp4694 = getelementptr inbounds float* %tmp4693, i64 1
+ %tmp4695 = getelementptr inbounds float* %tmp4694, i64 1
+ %tmp4696 = getelementptr inbounds float* %tmp4695, i64 1
+ %tmp4697 = getelementptr inbounds float* %tmp4696, i64 1
+ %tmp4698 = getelementptr inbounds float* %tmp4697, i64 1
+ %tmp4699 = getelementptr inbounds float* %tmp4698, i64 1
+ %tmp4700 = getelementptr inbounds float* %tmp4699, i64 1
+ %tmp4701 = getelementptr inbounds float* %tmp4700, i64 1
+ %tmp4702 = getelementptr inbounds float* %tmp4701, i64 1
+ %tmp4703 = getelementptr inbounds float* %tmp4702, i64 1
+ %tmp4704 = getelementptr inbounds float* %tmp4703, i64 1
+ %tmp4705 = getelementptr inbounds float* %tmp4704, i64 1
+ %tmp4706 = getelementptr inbounds float* %tmp4705, i64 1
+ %tmp4707 = getelementptr inbounds float* %tmp4706, i64 1
+ %tmp4708 = getelementptr inbounds float* %tmp4707, i64 1
+ %tmp4709 = getelementptr inbounds float* %tmp4708, i64 1
+ %tmp4710 = getelementptr inbounds float* %tmp4709, i64 1
+ %tmp4711 = getelementptr inbounds float* %tmp4710, i64 1
+ %tmp4712 = getelementptr inbounds float* %tmp4711, i64 1
+ %tmp4713 = getelementptr inbounds float* %tmp4712, i64 1
+ %tmp4714 = getelementptr inbounds float* %tmp4713, i64 1
+ %tmp4715 = getelementptr inbounds float* %tmp4714, i64 1
+ %tmp4716 = getelementptr inbounds float* %tmp4715, i64 1
+ %tmp4717 = getelementptr inbounds float* %tmp4716, i64 1
+ %tmp4718 = getelementptr inbounds float* %tmp4717, i64 1
+ %tmp4719 = getelementptr inbounds float* %tmp4718, i64 1
+ %tmp4720 = getelementptr inbounds float* %tmp4719, i64 1
+ %tmp4721 = getelementptr inbounds float* %tmp4720, i64 1
+ %tmp4722 = getelementptr inbounds float* %tmp4721, i64 1
+ %tmp4723 = getelementptr inbounds float* %tmp4722, i64 1
+ %tmp4724 = getelementptr inbounds float* %tmp4723, i64 1
+ %tmp4725 = getelementptr inbounds float* %tmp4724, i64 1
+ %tmp4726 = getelementptr inbounds float* %tmp4725, i64 1
+ %tmp4727 = getelementptr inbounds float* %tmp4726, i64 1
+ %tmp4728 = getelementptr inbounds float* %tmp4727, i64 1
+ %tmp4729 = getelementptr inbounds float* %tmp4728, i64 1
+ %tmp4730 = getelementptr inbounds float* %tmp4729, i64 1
+ %tmp4731 = getelementptr inbounds float* %tmp4730, i64 1
+ %tmp4732 = getelementptr inbounds float* %tmp4731, i64 1
+ %tmp4733 = getelementptr inbounds float* %tmp4732, i64 1
+ %tmp4734 = getelementptr inbounds float* %tmp4733, i64 1
+ %tmp4735 = getelementptr inbounds float* %tmp4734, i64 1
+ %tmp4736 = getelementptr inbounds float* %tmp4735, i64 1
+ %tmp4737 = getelementptr inbounds float* %tmp4736, i64 1
+ %tmp4738 = getelementptr inbounds float* %tmp4737, i64 1
+ %tmp4739 = getelementptr inbounds float* %tmp4738, i64 1
+ %tmp4740 = getelementptr inbounds float* %tmp4739, i64 1
+ %tmp4741 = getelementptr inbounds float* %tmp4740, i64 1
+ %tmp4742 = getelementptr inbounds float* %tmp4741, i64 1
+ %tmp4743 = getelementptr inbounds float* %tmp4742, i64 1
+ %tmp4744 = getelementptr inbounds float* %tmp4743, i64 1
+ %tmp4745 = getelementptr inbounds float* %tmp4744, i64 1
+ %tmp4746 = getelementptr inbounds float* %tmp4745, i64 1
+ %tmp4747 = getelementptr inbounds float* %tmp4746, i64 1
+ %tmp4748 = getelementptr inbounds float* %tmp4747, i64 1
+ %tmp4749 = getelementptr inbounds float* %tmp4748, i64 1
+ %tmp4750 = getelementptr inbounds float* %tmp4749, i64 1
+ %tmp4751 = getelementptr inbounds float* %tmp4750, i64 1
+ %tmp4752 = getelementptr inbounds float* %tmp4751, i64 1
+ %tmp4753 = getelementptr inbounds float* %tmp4752, i64 1
+ %tmp4754 = getelementptr inbounds float* %tmp4753, i64 1
+ %tmp4755 = getelementptr inbounds float* %tmp4754, i64 1
+ %tmp4756 = getelementptr inbounds float* %tmp4755, i64 1
+ %tmp4757 = getelementptr inbounds float* %tmp4756, i64 1
+ %tmp4758 = getelementptr inbounds float* %tmp4757, i64 1
+ %tmp4759 = getelementptr inbounds float* %tmp4758, i64 1
+ %tmp4760 = getelementptr inbounds float* %tmp4759, i64 1
+ %tmp4761 = getelementptr inbounds float* %tmp4760, i64 1
+ %tmp4762 = getelementptr inbounds float* %tmp4761, i64 1
+ %tmp4763 = getelementptr inbounds float* %tmp4762, i64 1
+ %tmp4764 = getelementptr inbounds float* %tmp4763, i64 1
+ %tmp4765 = getelementptr inbounds float* %tmp4764, i64 1
+ %tmp4766 = getelementptr inbounds float* %tmp4765, i64 1
+ %tmp4767 = getelementptr inbounds float* %tmp4766, i64 1
+ %tmp4768 = getelementptr inbounds float* %tmp4767, i64 1
+ %tmp4769 = getelementptr inbounds float* %tmp4768, i64 1
+ %tmp4770 = getelementptr inbounds float* %tmp4769, i64 1
+ %tmp4771 = getelementptr inbounds float* %tmp4770, i64 1
+ %tmp4772 = getelementptr inbounds float* %tmp4771, i64 1
+ %tmp4773 = getelementptr inbounds float* %tmp4772, i64 1
+ %tmp4774 = getelementptr inbounds float* %tmp4773, i64 1
+ %tmp4775 = getelementptr inbounds float* %tmp4774, i64 1
+ %tmp4776 = getelementptr inbounds float* %tmp4775, i64 1
+ %tmp4777 = getelementptr inbounds float* %tmp4776, i64 1
+ %tmp4778 = getelementptr inbounds float* %tmp4777, i64 1
+ %tmp4779 = getelementptr inbounds float* %tmp4778, i64 1
+ %tmp4780 = getelementptr inbounds float* %tmp4779, i64 1
+ %tmp4781 = getelementptr inbounds float* %tmp4780, i64 1
+ %tmp4782 = getelementptr inbounds float* %tmp4781, i64 1
+ %tmp4783 = getelementptr inbounds float* %tmp4782, i64 1
+ %tmp4784 = getelementptr inbounds float* %tmp4783, i64 1
+ %tmp4785 = getelementptr inbounds float* %tmp4784, i64 1
+ %tmp4786 = getelementptr inbounds float* %tmp4785, i64 1
+ %tmp4787 = getelementptr inbounds float* %tmp4786, i64 1
+ %tmp4788 = getelementptr inbounds float* %tmp4787, i64 1
+ %tmp4789 = getelementptr inbounds float* %tmp4788, i64 1
+ %tmp4790 = getelementptr inbounds float* %tmp4789, i64 1
+ %tmp4791 = getelementptr inbounds float* %tmp4790, i64 1
+ %tmp4792 = getelementptr inbounds float* %tmp4791, i64 1
+ %tmp4793 = getelementptr inbounds float* %tmp4792, i64 1
+ %tmp4794 = getelementptr inbounds float* %tmp4793, i64 1
+ %tmp4795 = getelementptr inbounds float* %tmp4794, i64 1
+ %tmp4796 = getelementptr inbounds float* %tmp4795, i64 1
+ %tmp4797 = getelementptr inbounds float* %tmp4796, i64 1
+ %tmp4798 = getelementptr inbounds float* %tmp4797, i64 1
+ %tmp4799 = getelementptr inbounds float* %tmp4798, i64 1
+ %tmp4800 = getelementptr inbounds float* %tmp4799, i64 1
+ %tmp4801 = getelementptr inbounds float* %tmp4800, i64 1
+ %tmp4802 = getelementptr inbounds float* %tmp4801, i64 1
+ %tmp4803 = getelementptr inbounds float* %tmp4802, i64 1
+ %tmp4804 = getelementptr inbounds float* %tmp4803, i64 1
+ %tmp4805 = getelementptr inbounds float* %tmp4804, i64 1
+ %tmp4806 = getelementptr inbounds float* %tmp4805, i64 1
+ %tmp4807 = getelementptr inbounds float* %tmp4806, i64 1
+ %tmp4808 = getelementptr inbounds float* %tmp4807, i64 1
+ %tmp4809 = getelementptr inbounds float* %tmp4808, i64 1
+ %tmp4810 = getelementptr inbounds float* %tmp4809, i64 1
+ %tmp4811 = getelementptr inbounds float* %tmp4810, i64 1
+ %tmp4812 = getelementptr inbounds float* %tmp4811, i64 1
+ %tmp4813 = getelementptr inbounds float* %tmp4812, i64 1
+ %tmp4814 = getelementptr inbounds float* %tmp4813, i64 1
+ %tmp4815 = getelementptr inbounds float* %tmp4814, i64 1
+ %tmp4816 = getelementptr inbounds float* %tmp4815, i64 1
+ %tmp4817 = getelementptr inbounds float* %tmp4816, i64 1
+ %tmp4818 = getelementptr inbounds float* %tmp4817, i64 1
+ %tmp4819 = getelementptr inbounds float* %tmp4818, i64 1
+ %tmp4820 = getelementptr inbounds float* %tmp4819, i64 1
+ %tmp4821 = getelementptr inbounds float* %tmp4820, i64 1
+ %tmp4822 = getelementptr inbounds float* %tmp4821, i64 1
+ %tmp4823 = getelementptr inbounds float* %tmp4822, i64 1
+ %tmp4824 = getelementptr inbounds float* %tmp4823, i64 1
+ %tmp4825 = getelementptr inbounds float* %tmp4824, i64 1
+ %tmp4826 = getelementptr inbounds float* %tmp4825, i64 1
+ %tmp4827 = getelementptr inbounds float* %tmp4826, i64 1
+ %tmp4828 = getelementptr inbounds float* %tmp4827, i64 1
+ %tmp4829 = getelementptr inbounds float* %tmp4828, i64 1
+ %tmp4830 = getelementptr inbounds float* %tmp4829, i64 1
+ %tmp4831 = getelementptr inbounds float* %tmp4830, i64 1
+ %tmp4832 = getelementptr inbounds float* %tmp4831, i64 1
+ %tmp4833 = getelementptr inbounds float* %tmp4832, i64 1
+ %tmp4834 = getelementptr inbounds float* %tmp4833, i64 1
+ %tmp4835 = getelementptr inbounds float* %tmp4834, i64 1
+ %tmp4836 = getelementptr inbounds float* %tmp4835, i64 1
+ %tmp4837 = getelementptr inbounds float* %tmp4836, i64 1
+ %tmp4838 = getelementptr inbounds float* %tmp4837, i64 1
+ %tmp4839 = getelementptr inbounds float* %tmp4838, i64 1
+ %tmp4840 = getelementptr inbounds float* %tmp4839, i64 1
+ %tmp4841 = getelementptr inbounds float* %tmp4840, i64 1
+ %tmp4842 = getelementptr inbounds float* %tmp4841, i64 1
+ %tmp4843 = getelementptr inbounds float* %tmp4842, i64 1
+ %tmp4844 = getelementptr inbounds float* %tmp4843, i64 1
+ %tmp4845 = getelementptr inbounds float* %tmp4844, i64 1
+ %tmp4846 = getelementptr inbounds float* %tmp4845, i64 1
+ %tmp4847 = getelementptr inbounds float* %tmp4846, i64 1
+ %tmp4848 = getelementptr inbounds float* %tmp4847, i64 1
+ %tmp4849 = getelementptr inbounds float* %tmp4848, i64 1
+ %tmp4850 = getelementptr inbounds float* %tmp4849, i64 1
+ %tmp4851 = getelementptr inbounds float* %tmp4850, i64 1
+ %tmp4852 = getelementptr inbounds float* %tmp4851, i64 1
+ %tmp4853 = getelementptr inbounds float* %tmp4852, i64 1
+ %tmp4854 = getelementptr inbounds float* %tmp4853, i64 1
+ %tmp4855 = getelementptr inbounds float* %tmp4854, i64 1
+ %tmp4856 = getelementptr inbounds float* %tmp4855, i64 1
+ %tmp4857 = getelementptr inbounds float* %tmp4856, i64 1
+ %tmp4858 = getelementptr inbounds float* %tmp4857, i64 1
+ %tmp4859 = getelementptr inbounds float* %tmp4858, i64 1
+ %tmp4860 = getelementptr inbounds float* %tmp4859, i64 1
+ %tmp4861 = getelementptr inbounds float* %tmp4860, i64 1
+ %tmp4862 = getelementptr inbounds float* %tmp4861, i64 1
+ %tmp4863 = getelementptr inbounds float* %tmp4862, i64 1
+ %tmp4864 = getelementptr inbounds float* %tmp4863, i64 1
+ %tmp4865 = getelementptr inbounds float* %tmp4864, i64 1
+ %tmp4866 = getelementptr inbounds float* %tmp4865, i64 1
+ %tmp4867 = getelementptr inbounds float* %tmp4866, i64 1
+ %tmp4868 = getelementptr inbounds float* %tmp4867, i64 1
+ %tmp4869 = getelementptr inbounds float* %tmp4868, i64 1
+ %tmp4870 = getelementptr inbounds float* %tmp4869, i64 1
+ %tmp4871 = getelementptr inbounds float* %tmp4870, i64 1
+ %tmp4872 = getelementptr inbounds float* %tmp4871, i64 1
+ %tmp4873 = getelementptr inbounds float* %tmp4872, i64 1
+ %tmp4874 = getelementptr inbounds float* %tmp4873, i64 1
+ %tmp4875 = getelementptr inbounds float* %tmp4874, i64 1
+ %tmp4876 = getelementptr inbounds float* %tmp4875, i64 1
+ %tmp4877 = getelementptr inbounds float* %tmp4876, i64 1
+ %tmp4878 = getelementptr inbounds float* %tmp4877, i64 1
+ %tmp4879 = getelementptr inbounds float* %tmp4878, i64 1
+ %tmp4880 = getelementptr inbounds float* %tmp4879, i64 1
+ %tmp4881 = getelementptr inbounds float* %tmp4880, i64 1
+ %tmp4882 = getelementptr inbounds float* %tmp4881, i64 1
+ %tmp4883 = getelementptr inbounds float* %tmp4882, i64 1
+ %tmp4884 = getelementptr inbounds float* %tmp4883, i64 1
+ %tmp4885 = getelementptr inbounds float* %tmp4884, i64 1
+ %tmp4886 = getelementptr inbounds float* %tmp4885, i64 1
+ %tmp4887 = getelementptr inbounds float* %tmp4886, i64 1
+ %tmp4888 = getelementptr inbounds float* %tmp4887, i64 1
+ %tmp4889 = getelementptr inbounds float* %tmp4888, i64 1
+ %tmp4890 = getelementptr inbounds float* %tmp4889, i64 1
+ %tmp4891 = getelementptr inbounds float* %tmp4890, i64 1
+ %tmp4892 = getelementptr inbounds float* %tmp4891, i64 1
+ %tmp4893 = getelementptr inbounds float* %tmp4892, i64 1
+ %tmp4894 = getelementptr inbounds float* %tmp4893, i64 1
+ %tmp4895 = getelementptr inbounds float* %tmp4894, i64 1
+ %tmp4896 = getelementptr inbounds float* %tmp4895, i64 1
+ %tmp4897 = getelementptr inbounds float* %tmp4896, i64 1
+ %tmp4898 = getelementptr inbounds float* %tmp4897, i64 1
+ %tmp4899 = getelementptr inbounds float* %tmp4898, i64 1
+ %tmp4900 = getelementptr inbounds float* %tmp4899, i64 1
+ %tmp4901 = getelementptr inbounds float* %tmp4900, i64 1
+ %tmp4902 = getelementptr inbounds float* %tmp4901, i64 1
+ %tmp4903 = getelementptr inbounds float* %tmp4902, i64 1
+ %tmp4904 = getelementptr inbounds float* %tmp4903, i64 1
+ %tmp4905 = getelementptr inbounds float* %tmp4904, i64 1
+ %tmp4906 = getelementptr inbounds float* %tmp4905, i64 1
+ %tmp4907 = getelementptr inbounds float* %tmp4906, i64 1
+ %tmp4908 = getelementptr inbounds float* %tmp4907, i64 1
+ %tmp4909 = getelementptr inbounds float* %tmp4908, i64 1
+ %tmp4910 = getelementptr inbounds float* %tmp4909, i64 1
+ %tmp4911 = getelementptr inbounds float* %tmp4910, i64 1
+ %tmp4912 = getelementptr inbounds float* %tmp4911, i64 1
+ %tmp4913 = getelementptr inbounds float* %tmp4912, i64 1
+ %tmp4914 = getelementptr inbounds float* %tmp4913, i64 1
+ %tmp4915 = getelementptr inbounds float* %tmp4914, i64 1
+ %tmp4916 = getelementptr inbounds float* %tmp4915, i64 1
+ %tmp4917 = getelementptr inbounds float* %tmp4916, i64 1
+ %tmp4918 = getelementptr inbounds float* %tmp4917, i64 1
+ %tmp4919 = getelementptr inbounds float* %tmp4918, i64 1
+ %tmp4920 = getelementptr inbounds float* %tmp4919, i64 1
+ %tmp4921 = getelementptr inbounds float* %tmp4920, i64 1
+ %tmp4922 = getelementptr inbounds float* %tmp4921, i64 1
+ %tmp4923 = getelementptr inbounds float* %tmp4922, i64 1
+ %tmp4924 = getelementptr inbounds float* %tmp4923, i64 1
+ %tmp4925 = getelementptr inbounds float* %tmp4924, i64 1
+ %tmp4926 = getelementptr inbounds float* %tmp4925, i64 1
+ %tmp4927 = getelementptr inbounds float* %tmp4926, i64 1
+ %tmp4928 = getelementptr inbounds float* %tmp4927, i64 1
+ %tmp4929 = getelementptr inbounds float* %tmp4928, i64 1
+ %tmp4930 = getelementptr inbounds float* %tmp4929, i64 1
+ %tmp4931 = getelementptr inbounds float* %tmp4930, i64 1
+ %tmp4932 = getelementptr inbounds float* %tmp4931, i64 1
+ %tmp4933 = getelementptr inbounds float* %tmp4932, i64 1
+ %tmp4934 = getelementptr inbounds float* %tmp4933, i64 1
+ %tmp4935 = getelementptr inbounds float* %tmp4934, i64 1
+ %tmp4936 = getelementptr inbounds float* %tmp4935, i64 1
+ %tmp4937 = getelementptr inbounds float* %tmp4936, i64 1
+ %tmp4938 = getelementptr inbounds float* %tmp4937, i64 1
+ %tmp4939 = getelementptr inbounds float* %tmp4938, i64 1
+ %tmp4940 = getelementptr inbounds float* %tmp4939, i64 1
+ %tmp4941 = getelementptr inbounds float* %tmp4940, i64 1
+ %tmp4942 = getelementptr inbounds float* %tmp4941, i64 1
+ %tmp4943 = getelementptr inbounds float* %tmp4942, i64 1
+ %tmp4944 = getelementptr inbounds float* %tmp4943, i64 1
+ %tmp4945 = getelementptr inbounds float* %tmp4944, i64 1
+ %tmp4946 = getelementptr inbounds float* %tmp4945, i64 1
+ %tmp4947 = getelementptr inbounds float* %tmp4946, i64 1
+ %tmp4948 = getelementptr inbounds float* %tmp4947, i64 1
+ %tmp4949 = getelementptr inbounds float* %tmp4948, i64 1
+ %tmp4950 = getelementptr inbounds float* %tmp4949, i64 1
+ %tmp4951 = getelementptr inbounds float* %tmp4950, i64 1
+ %tmp4952 = getelementptr inbounds float* %tmp4951, i64 1
+ %tmp4953 = getelementptr inbounds float* %tmp4952, i64 1
+ %tmp4954 = getelementptr inbounds float* %tmp4953, i64 1
+ %tmp4955 = getelementptr inbounds float* %tmp4954, i64 1
+ %tmp4956 = getelementptr inbounds float* %tmp4955, i64 1
+ %tmp4957 = getelementptr inbounds float* %tmp4956, i64 1
+ %tmp4958 = getelementptr inbounds float* %tmp4957, i64 1
+ %tmp4959 = getelementptr inbounds float* %tmp4958, i64 1
+ %tmp4960 = getelementptr inbounds float* %tmp4959, i64 1
+ %tmp4961 = getelementptr inbounds float* %tmp4960, i64 1
+ %tmp4962 = getelementptr inbounds float* %tmp4961, i64 1
+ %tmp4963 = getelementptr inbounds float* %tmp4962, i64 1
+ %tmp4964 = getelementptr inbounds float* %tmp4963, i64 1
+ %tmp4965 = getelementptr inbounds float* %tmp4964, i64 1
+ %tmp4966 = getelementptr inbounds float* %tmp4965, i64 1
+ %tmp4967 = getelementptr inbounds float* %tmp4966, i64 1
+ %tmp4968 = getelementptr inbounds float* %tmp4967, i64 1
+ %tmp4969 = getelementptr inbounds float* %tmp4968, i64 1
+ %tmp4970 = getelementptr inbounds float* %tmp4969, i64 1
+ %tmp4971 = getelementptr inbounds float* %tmp4970, i64 1
+ %tmp4972 = getelementptr inbounds float* %tmp4971, i64 1
+ %tmp4973 = getelementptr inbounds float* %tmp4972, i64 1
+ %tmp4974 = getelementptr inbounds float* %tmp4973, i64 1
+ %tmp4975 = getelementptr inbounds float* %tmp4974, i64 1
+ %tmp4976 = getelementptr inbounds float* %tmp4975, i64 1
+ %tmp4977 = getelementptr inbounds float* %tmp4976, i64 1
+ %tmp4978 = getelementptr inbounds float* %tmp4977, i64 1
+ %tmp4979 = getelementptr inbounds float* %tmp4978, i64 1
+ %tmp4980 = getelementptr inbounds float* %tmp4979, i64 1
+ %tmp4981 = getelementptr inbounds float* %tmp4980, i64 1
+ %tmp4982 = getelementptr inbounds float* %tmp4981, i64 1
+ %tmp4983 = getelementptr inbounds float* %tmp4982, i64 1
+ %tmp4984 = getelementptr inbounds float* %tmp4983, i64 1
+ %tmp4985 = getelementptr inbounds float* %tmp4984, i64 1
+ %tmp4986 = getelementptr inbounds float* %tmp4985, i64 1
+ %tmp4987 = getelementptr inbounds float* %tmp4986, i64 1
+ %tmp4988 = getelementptr inbounds float* %tmp4987, i64 1
+ %tmp4989 = getelementptr inbounds float* %tmp4988, i64 1
+ %tmp4990 = getelementptr inbounds float* %tmp4989, i64 1
+ %tmp4991 = getelementptr inbounds float* %tmp4990, i64 1
+ %tmp4992 = getelementptr inbounds float* %tmp4991, i64 1
+ %tmp4993 = getelementptr inbounds float* %tmp4992, i64 1
+ %tmp4994 = getelementptr inbounds float* %tmp4993, i64 1
+ %tmp4995 = getelementptr inbounds float* %tmp4994, i64 1
+ %tmp4996 = getelementptr inbounds float* %tmp4995, i64 1
+ %tmp4997 = getelementptr inbounds float* %tmp4996, i64 1
+ %tmp4998 = getelementptr inbounds float* %tmp4997, i64 1
+ %tmp4999 = getelementptr inbounds float* %tmp4998, i64 1
+ %tmp5000 = getelementptr inbounds float* %tmp4999, i64 1
+ %tmp5001 = getelementptr inbounds float* %tmp5000, i64 1
+ %tmp5002 = getelementptr inbounds float* %tmp5001, i64 1
+ %tmp5003 = getelementptr inbounds float* %tmp5002, i64 1
+ %tmp5004 = getelementptr inbounds float* %tmp5003, i64 1
+ %tmp5005 = getelementptr inbounds float* %tmp5004, i64 1
+ %tmp5006 = getelementptr inbounds float* %tmp5005, i64 1
+ %tmp5007 = getelementptr inbounds float* %tmp5006, i64 1
+ %tmp5008 = getelementptr inbounds float* %tmp5007, i64 1
+ %tmp5009 = getelementptr inbounds float* %tmp5008, i64 1
+ %tmp5010 = getelementptr inbounds float* %tmp5009, i64 1
+ %tmp5011 = getelementptr inbounds float* %tmp5010, i64 1
+ %tmp5012 = getelementptr inbounds float* %tmp5011, i64 1
+ %tmp5013 = getelementptr inbounds float* %tmp5012, i64 1
+ %tmp5014 = getelementptr inbounds float* %tmp5013, i64 1
+ %tmp5015 = getelementptr inbounds float* %tmp5014, i64 1
+ %tmp5016 = getelementptr inbounds float* %tmp5015, i64 1
+ %tmp5017 = getelementptr inbounds float* %tmp5016, i64 1
+ %tmp5018 = getelementptr inbounds float* %tmp5017, i64 1
+ %tmp5019 = getelementptr inbounds float* %tmp5018, i64 1
+ %tmp5020 = getelementptr inbounds float* %tmp5019, i64 1
+ %tmp5021 = getelementptr inbounds float* %tmp5020, i64 1
+ %tmp5022 = getelementptr inbounds float* %tmp5021, i64 1
+ %tmp5023 = getelementptr inbounds float* %tmp5022, i64 1
+ %tmp5024 = getelementptr inbounds float* %tmp5023, i64 1
+ %tmp5025 = getelementptr inbounds float* %tmp5024, i64 1
+ %tmp5026 = getelementptr inbounds float* %tmp5025, i64 1
+ %tmp5027 = getelementptr inbounds float* %tmp5026, i64 1
+ %tmp5028 = getelementptr inbounds float* %tmp5027, i64 1
+ %tmp5029 = getelementptr inbounds float* %tmp5028, i64 1
+ %tmp5030 = getelementptr inbounds float* %tmp5029, i64 1
+ %tmp5031 = getelementptr inbounds float* %tmp5030, i64 1
+ %tmp5032 = getelementptr inbounds float* %tmp5031, i64 1
+ %tmp5033 = getelementptr inbounds float* %tmp5032, i64 1
+ %tmp5034 = getelementptr inbounds float* %tmp5033, i64 1
+ %tmp5035 = getelementptr inbounds float* %tmp5034, i64 1
+ %tmp5036 = getelementptr inbounds float* %tmp5035, i64 1
+ %tmp5037 = getelementptr inbounds float* %tmp5036, i64 1
+ %tmp5038 = getelementptr inbounds float* %tmp5037, i64 1
+ %tmp5039 = getelementptr inbounds float* %tmp5038, i64 1
+ %tmp5040 = getelementptr inbounds float* %tmp5039, i64 1
+ %tmp5041 = getelementptr inbounds float* %tmp5040, i64 1
+ %tmp5042 = getelementptr inbounds float* %tmp5041, i64 1
+ %tmp5043 = getelementptr inbounds float* %tmp5042, i64 1
+ %tmp5044 = getelementptr inbounds float* %tmp5043, i64 1
+ %tmp5045 = getelementptr inbounds float* %tmp5044, i64 1
+ %tmp5046 = getelementptr inbounds float* %tmp5045, i64 1
+ %tmp5047 = getelementptr inbounds float* %tmp5046, i64 1
+ %tmp5048 = getelementptr inbounds float* %tmp5047, i64 1
+ %tmp5049 = getelementptr inbounds float* %tmp5048, i64 1
+ %tmp5050 = getelementptr inbounds float* %tmp5049, i64 1
+ %tmp5051 = getelementptr inbounds float* %tmp5050, i64 1
+ %tmp5052 = getelementptr inbounds float* %tmp5051, i64 1
+ %tmp5053 = getelementptr inbounds float* %tmp5052, i64 1
+ %tmp5054 = getelementptr inbounds float* %tmp5053, i64 1
+ %tmp5055 = getelementptr inbounds float* %tmp5054, i64 1
+ %tmp5056 = getelementptr inbounds float* %tmp5055, i64 1
+ %tmp5057 = getelementptr inbounds float* %tmp5056, i64 1
+ %tmp5058 = getelementptr inbounds float* %tmp5057, i64 1
+ %tmp5059 = getelementptr inbounds float* %tmp5058, i64 1
+ %tmp5060 = getelementptr inbounds float* %tmp5059, i64 1
+ %tmp5061 = getelementptr inbounds float* %tmp5060, i64 1
+ %tmp5062 = getelementptr inbounds float* %tmp5061, i64 1
+ %tmp5063 = getelementptr inbounds float* %tmp5062, i64 1
+ %tmp5064 = getelementptr inbounds float* %tmp5063, i64 1
+ %tmp5065 = getelementptr inbounds float* %tmp5064, i64 1
+ %tmp5066 = getelementptr inbounds float* %tmp5065, i64 1
+ %tmp5067 = getelementptr inbounds float* %tmp5066, i64 1
+ %tmp5068 = getelementptr inbounds float* %tmp5067, i64 1
+ %tmp5069 = getelementptr inbounds float* %tmp5068, i64 1
+ %tmp5070 = getelementptr inbounds float* %tmp5069, i64 1
+ %tmp5071 = getelementptr inbounds float* %tmp5070, i64 1
+ %tmp5072 = getelementptr inbounds float* %tmp5071, i64 1
+ %tmp5073 = getelementptr inbounds float* %tmp5072, i64 1
+ %tmp5074 = getelementptr inbounds float* %tmp5073, i64 1
+ %tmp5075 = getelementptr inbounds float* %tmp5074, i64 1
+ %tmp5076 = getelementptr inbounds float* %tmp5075, i64 1
+ %tmp5077 = getelementptr inbounds float* %tmp5076, i64 1
+ %tmp5078 = getelementptr inbounds float* %tmp5077, i64 1
+ %tmp5079 = getelementptr inbounds float* %tmp5078, i64 1
+ %tmp5080 = getelementptr inbounds float* %tmp5079, i64 1
+ %tmp5081 = getelementptr inbounds float* %tmp5080, i64 1
+ %tmp5082 = getelementptr inbounds float* %tmp5081, i64 1
+ %tmp5083 = getelementptr inbounds float* %tmp5082, i64 1
+ %tmp5084 = getelementptr inbounds float* %tmp5083, i64 1
+ %tmp5085 = getelementptr inbounds float* %tmp5084, i64 1
+ %tmp5086 = getelementptr inbounds float* %tmp5085, i64 1
+ %tmp5087 = getelementptr inbounds float* %tmp5086, i64 1
+ %tmp5088 = getelementptr inbounds float* %tmp5087, i64 1
+ %tmp5089 = getelementptr inbounds float* %tmp5088, i64 1
+ %tmp5090 = getelementptr inbounds float* %tmp5089, i64 1
+ %tmp5091 = getelementptr inbounds float* %tmp5090, i64 1
+ %tmp5092 = getelementptr inbounds float* %tmp5091, i64 1
+ %tmp5093 = getelementptr inbounds float* %tmp5092, i64 1
+ %tmp5094 = getelementptr inbounds float* %tmp5093, i64 1
+ %tmp5095 = getelementptr inbounds float* %tmp5094, i64 1
+ %tmp5096 = getelementptr inbounds float* %tmp5095, i64 1
+ %tmp5097 = getelementptr inbounds float* %tmp5096, i64 1
+ %tmp5098 = getelementptr inbounds float* %tmp5097, i64 1
+ %tmp5099 = getelementptr inbounds float* %tmp5098, i64 1
+ %tmp5100 = getelementptr inbounds float* %tmp5099, i64 1
+ %tmp5101 = getelementptr inbounds float* %tmp5100, i64 1
+ %tmp5102 = getelementptr inbounds float* %tmp5101, i64 1
+ %tmp5103 = getelementptr inbounds float* %tmp5102, i64 1
+ %tmp5104 = getelementptr inbounds float* %tmp5103, i64 1
+ %tmp5105 = getelementptr inbounds float* %tmp5104, i64 1
+ %tmp5106 = getelementptr inbounds float* %tmp5105, i64 1
+ %tmp5107 = getelementptr inbounds float* %tmp5106, i64 1
+ %tmp5108 = getelementptr inbounds float* %tmp5107, i64 1
+ %tmp5109 = getelementptr inbounds float* %tmp5108, i64 1
+ %tmp5110 = getelementptr inbounds float* %tmp5109, i64 1
+ %tmp5111 = getelementptr inbounds float* %tmp5110, i64 1
+ %tmp5112 = getelementptr inbounds float* %tmp5111, i64 1
+ %tmp5113 = getelementptr inbounds float* %tmp5112, i64 1
+ %tmp5114 = getelementptr inbounds float* %tmp5113, i64 1
+ %tmp5115 = getelementptr inbounds float* %tmp5114, i64 1
+ %tmp5116 = getelementptr inbounds float* %tmp5115, i64 1
+ %tmp5117 = getelementptr inbounds float* %tmp5116, i64 1
+ %tmp5118 = getelementptr inbounds float* %tmp5117, i64 1
+ %tmp5119 = getelementptr inbounds float* %tmp5118, i64 1
+ %tmp5120 = getelementptr inbounds float* %tmp5119, i64 1
+ %tmp5121 = getelementptr inbounds float* %tmp5120, i64 1
+ %tmp5122 = getelementptr inbounds float* %tmp5121, i64 1
+ %tmp5123 = getelementptr inbounds float* %tmp5122, i64 1
+ %tmp5124 = getelementptr inbounds float* %tmp5123, i64 1
+ %tmp5125 = getelementptr inbounds float* %tmp5124, i64 1
+ %tmp5126 = getelementptr inbounds float* %tmp5125, i64 1
+ %tmp5127 = getelementptr inbounds float* %tmp5126, i64 1
+ %tmp5128 = getelementptr inbounds float* %tmp5127, i64 1
+ %tmp5129 = getelementptr inbounds float* %tmp5128, i64 1
+ %tmp5130 = getelementptr inbounds float* %tmp5129, i64 1
+ %tmp5131 = getelementptr inbounds float* %tmp5130, i64 1
+ %tmp5132 = getelementptr inbounds float* %tmp5131, i64 1
+ %tmp5133 = getelementptr inbounds float* %tmp5132, i64 1
+ %tmp5134 = getelementptr inbounds float* %tmp5133, i64 1
+ %tmp5135 = getelementptr inbounds float* %tmp5134, i64 1
+ %tmp5136 = getelementptr inbounds float* %tmp5135, i64 1
+ %tmp5137 = getelementptr inbounds float* %tmp5136, i64 1
+ %tmp5138 = getelementptr inbounds float* %tmp5137, i64 1
+ %tmp5139 = getelementptr inbounds float* %tmp5138, i64 1
+ %tmp5140 = getelementptr inbounds float* %tmp5139, i64 1
+ %tmp5141 = getelementptr inbounds float* %tmp5140, i64 1
+ %tmp5142 = getelementptr inbounds float* %tmp5141, i64 1
+ %tmp5143 = getelementptr inbounds float* %tmp5142, i64 1
+ %tmp5144 = getelementptr inbounds float* %tmp5143, i64 1
+ %tmp5145 = getelementptr inbounds float* %tmp5144, i64 1
+ %tmp5146 = getelementptr inbounds float* %tmp5145, i64 1
+ %tmp5147 = getelementptr inbounds float* %tmp5146, i64 1
+ %tmp5148 = getelementptr inbounds float* %tmp5147, i64 1
+ %tmp5149 = getelementptr inbounds float* %tmp5148, i64 1
+ %tmp5150 = getelementptr inbounds float* %tmp5149, i64 1
+ %tmp5151 = getelementptr inbounds float* %tmp5150, i64 1
+ %tmp5152 = getelementptr inbounds float* %tmp5151, i64 1
+ %tmp5153 = getelementptr inbounds float* %tmp5152, i64 1
+ %tmp5154 = getelementptr inbounds float* %tmp5153, i64 1
+ %tmp5155 = getelementptr inbounds float* %tmp5154, i64 1
+ %tmp5156 = getelementptr inbounds float* %tmp5155, i64 1
+ %tmp5157 = getelementptr inbounds float* %tmp5156, i64 1
+ %tmp5158 = getelementptr inbounds float* %tmp5157, i64 1
+ %tmp5159 = getelementptr inbounds float* %tmp5158, i64 1
+ %tmp5160 = getelementptr inbounds float* %tmp5159, i64 1
+ %tmp5161 = getelementptr inbounds float* %tmp5160, i64 1
+ %tmp5162 = getelementptr inbounds float* %tmp5161, i64 1
+ %tmp5163 = getelementptr inbounds float* %tmp5162, i64 1
+ %tmp5164 = getelementptr inbounds float* %tmp5163, i64 1
+ %tmp5165 = getelementptr inbounds float* %tmp5164, i64 1
+ %tmp5166 = getelementptr inbounds float* %tmp5165, i64 1
+ %tmp5167 = getelementptr inbounds float* %tmp5166, i64 1
+ %tmp5168 = getelementptr inbounds float* %tmp5167, i64 1
+ %tmp5169 = getelementptr inbounds float* %tmp5168, i64 1
+ %tmp5170 = getelementptr inbounds float* %tmp5169, i64 1
+ %tmp5171 = getelementptr inbounds float* %tmp5170, i64 1
+ %tmp5172 = getelementptr inbounds float* %tmp5171, i64 1
+ %tmp5173 = getelementptr inbounds float* %tmp5172, i64 1
+ %tmp5174 = getelementptr inbounds float* %tmp5173, i64 1
+ %tmp5175 = getelementptr inbounds float* %tmp5174, i64 1
+ %tmp5176 = getelementptr inbounds float* %tmp5175, i64 1
+ %tmp5177 = getelementptr inbounds float* %tmp5176, i64 1
+ %tmp5178 = getelementptr inbounds float* %tmp5177, i64 1
+ %tmp5179 = getelementptr inbounds float* %tmp5178, i64 1
+ %tmp5180 = getelementptr inbounds float* %tmp5179, i64 1
+ %tmp5181 = getelementptr inbounds float* %tmp5180, i64 1
+ %tmp5182 = getelementptr inbounds float* %tmp5181, i64 1
+ %tmp5183 = getelementptr inbounds float* %tmp5182, i64 1
+ %tmp5184 = getelementptr inbounds float* %tmp5183, i64 1
+ %tmp5185 = getelementptr inbounds float* %tmp5184, i64 1
+ %tmp5186 = getelementptr inbounds float* %tmp5185, i64 1
+ %tmp5187 = getelementptr inbounds float* %tmp5186, i64 1
+ %tmp5188 = getelementptr inbounds float* %tmp5187, i64 1
+ %tmp5189 = getelementptr inbounds float* %tmp5188, i64 1
+ %tmp5190 = getelementptr inbounds float* %tmp5189, i64 1
+ %tmp5191 = getelementptr inbounds float* %tmp5190, i64 1
+ %tmp5192 = getelementptr inbounds float* %tmp5191, i64 1
+ %tmp5193 = getelementptr inbounds float* %tmp5192, i64 1
+ %tmp5194 = getelementptr inbounds float* %tmp5193, i64 1
+ %tmp5195 = getelementptr inbounds float* %tmp5194, i64 1
+ %tmp5196 = getelementptr inbounds float* %tmp5195, i64 1
+ %tmp5197 = getelementptr inbounds float* %tmp5196, i64 1
+ %tmp5198 = getelementptr inbounds float* %tmp5197, i64 1
+ %tmp5199 = getelementptr inbounds float* %tmp5198, i64 1
+ %tmp5200 = getelementptr inbounds float* %tmp5199, i64 1
+ %tmp5201 = getelementptr inbounds float* %tmp5200, i64 1
+ %tmp5202 = getelementptr inbounds float* %tmp5201, i64 1
+ %tmp5203 = getelementptr inbounds float* %tmp5202, i64 1
+ %tmp5204 = getelementptr inbounds float* %tmp5203, i64 1
+ %tmp5205 = getelementptr inbounds float* %tmp5204, i64 1
+ %tmp5206 = getelementptr inbounds float* %tmp5205, i64 1
+ %tmp5207 = getelementptr inbounds float* %tmp5206, i64 1
+ %tmp5208 = getelementptr inbounds float* %tmp5207, i64 1
+ %tmp5209 = getelementptr inbounds float* %tmp5208, i64 1
+ %tmp5210 = getelementptr inbounds float* %tmp5209, i64 1
+ %tmp5211 = getelementptr inbounds float* %tmp5210, i64 1
+ %tmp5212 = getelementptr inbounds float* %tmp5211, i64 1
+ %tmp5213 = getelementptr inbounds float* %tmp5212, i64 1
+ %tmp5214 = getelementptr inbounds float* %tmp5213, i64 1
+ %tmp5215 = getelementptr inbounds float* %tmp5214, i64 1
+ %tmp5216 = getelementptr inbounds float* %tmp5215, i64 1
+ %tmp5217 = getelementptr inbounds float* %tmp5216, i64 1
+ %tmp5218 = getelementptr inbounds float* %tmp5217, i64 1
+ %tmp5219 = getelementptr inbounds float* %tmp5218, i64 1
+ %tmp5220 = getelementptr inbounds float* %tmp5219, i64 1
+ %tmp5221 = getelementptr inbounds float* %tmp5220, i64 1
+ %tmp5222 = getelementptr inbounds float* %tmp5221, i64 1
+ %tmp5223 = getelementptr inbounds float* %tmp5222, i64 1
+ %tmp5224 = getelementptr inbounds float* %tmp5223, i64 1
+ %tmp5225 = getelementptr inbounds float* %tmp5224, i64 1
+ %tmp5226 = getelementptr inbounds float* %tmp5225, i64 1
+ %tmp5227 = getelementptr inbounds float* %tmp5226, i64 1
+ %tmp5228 = getelementptr inbounds float* %tmp5227, i64 1
+ %tmp5229 = getelementptr inbounds float* %tmp5228, i64 1
+ %tmp5230 = getelementptr inbounds float* %tmp5229, i64 1
+ %tmp5231 = getelementptr inbounds float* %tmp5230, i64 1
+ %tmp5232 = getelementptr inbounds float* %tmp5231, i64 1
+ %tmp5233 = getelementptr inbounds float* %tmp5232, i64 1
+ %tmp5234 = getelementptr inbounds float* %tmp5233, i64 1
+ %tmp5235 = getelementptr inbounds float* %tmp5234, i64 1
+ %tmp5236 = getelementptr inbounds float* %tmp5235, i64 1
+ %tmp5237 = getelementptr inbounds float* %tmp5236, i64 1
+ %tmp5238 = getelementptr inbounds float* %tmp5237, i64 1
+ %tmp5239 = getelementptr inbounds float* %tmp5238, i64 1
+ %tmp5240 = getelementptr inbounds float* %tmp5239, i64 1
+ %tmp5241 = getelementptr inbounds float* %tmp5240, i64 1
+ %tmp5242 = getelementptr inbounds float* %tmp5241, i64 1
+ %tmp5243 = getelementptr inbounds float* %tmp5242, i64 1
+ %tmp5244 = getelementptr inbounds float* %tmp5243, i64 1
+ %tmp5245 = getelementptr inbounds float* %tmp5244, i64 1
+ %tmp5246 = getelementptr inbounds float* %tmp5245, i64 1
+ %tmp5247 = getelementptr inbounds float* %tmp5246, i64 1
+ %tmp5248 = getelementptr inbounds float* %tmp5247, i64 1
+ %tmp5249 = getelementptr inbounds float* %tmp5248, i64 1
+ %tmp5250 = getelementptr inbounds float* %tmp5249, i64 1
+ %tmp5251 = getelementptr inbounds float* %tmp5250, i64 1
+ %tmp5252 = getelementptr inbounds float* %tmp5251, i64 1
+ %tmp5253 = getelementptr inbounds float* %tmp5252, i64 1
+ %tmp5254 = getelementptr inbounds float* %tmp5253, i64 1
+ %tmp5255 = getelementptr inbounds float* %tmp5254, i64 1
+ %tmp5256 = getelementptr inbounds float* %tmp5255, i64 1
+ %tmp5257 = getelementptr inbounds float* %tmp5256, i64 1
+ %tmp5258 = getelementptr inbounds float* %tmp5257, i64 1
+ %tmp5259 = getelementptr inbounds float* %tmp5258, i64 1
+ %tmp5260 = getelementptr inbounds float* %tmp5259, i64 1
+ %tmp5261 = getelementptr inbounds float* %tmp5260, i64 1
+ %tmp5262 = getelementptr inbounds float* %tmp5261, i64 1
+ %tmp5263 = getelementptr inbounds float* %tmp5262, i64 1
+ %tmp5264 = getelementptr inbounds float* %tmp5263, i64 1
+ %tmp5265 = getelementptr inbounds float* %tmp5264, i64 1
+ %tmp5266 = getelementptr inbounds float* %tmp5265, i64 1
+ %tmp5267 = getelementptr inbounds float* %tmp5266, i64 1
+ %tmp5268 = getelementptr inbounds float* %tmp5267, i64 1
+ %tmp5269 = getelementptr inbounds float* %tmp5268, i64 1
+ %tmp5270 = getelementptr inbounds float* %tmp5269, i64 1
+ %tmp5271 = getelementptr inbounds float* %tmp5270, i64 1
+ %tmp5272 = getelementptr inbounds float* %tmp5271, i64 1
+ %tmp5273 = getelementptr inbounds float* %tmp5272, i64 1
+ %tmp5274 = getelementptr inbounds float* %tmp5273, i64 1
+ %tmp5275 = getelementptr inbounds float* %tmp5274, i64 1
+ %tmp5276 = getelementptr inbounds float* %tmp5275, i64 1
+ %tmp5277 = getelementptr inbounds float* %tmp5276, i64 1
+ %tmp5278 = getelementptr inbounds float* %tmp5277, i64 1
+ %tmp5279 = getelementptr inbounds float* %tmp5278, i64 1
+ %tmp5280 = getelementptr inbounds float* %tmp5279, i64 1
+ %tmp5281 = getelementptr inbounds float* %tmp5280, i64 1
+ %tmp5282 = getelementptr inbounds float* %tmp5281, i64 1
+ %tmp5283 = getelementptr inbounds float* %tmp5282, i64 1
+ %tmp5284 = getelementptr inbounds float* %tmp5283, i64 1
+ %tmp5285 = getelementptr inbounds float* %tmp5284, i64 1
+ %tmp5286 = getelementptr inbounds float* %tmp5285, i64 1
+ %tmp5287 = getelementptr inbounds float* %tmp5286, i64 1
+ %tmp5288 = getelementptr inbounds float* %tmp5287, i64 1
+ %tmp5289 = getelementptr inbounds float* %tmp5288, i64 1
+ %tmp5290 = getelementptr inbounds float* %tmp5289, i64 1
+ %tmp5291 = getelementptr inbounds float* %tmp5290, i64 1
+ %tmp5292 = getelementptr inbounds float* %tmp5291, i64 1
+ %tmp5293 = getelementptr inbounds float* %tmp5292, i64 1
+ %tmp5294 = getelementptr inbounds float* %tmp5293, i64 1
+ %tmp5295 = getelementptr inbounds float* %tmp5294, i64 1
+ %tmp5296 = getelementptr inbounds float* %tmp5295, i64 1
+ %tmp5297 = getelementptr inbounds float* %tmp5296, i64 1
+ %tmp5298 = getelementptr inbounds float* %tmp5297, i64 1
+ %tmp5299 = getelementptr inbounds float* %tmp5298, i64 1
+ %tmp5300 = getelementptr inbounds float* %tmp5299, i64 1
+ %tmp5301 = getelementptr inbounds float* %tmp5300, i64 1
+ %tmp5302 = getelementptr inbounds float* %tmp5301, i64 1
+ %tmp5303 = getelementptr inbounds float* %tmp5302, i64 1
+ %tmp5304 = getelementptr inbounds float* %tmp5303, i64 1
+ %tmp5305 = getelementptr inbounds float* %tmp5304, i64 1
+ %tmp5306 = getelementptr inbounds float* %tmp5305, i64 1
+ %tmp5307 = getelementptr inbounds float* %tmp5306, i64 1
+ %tmp5308 = getelementptr inbounds float* %tmp5307, i64 1
+ %tmp5309 = getelementptr inbounds float* %tmp5308, i64 1
+ %tmp5310 = getelementptr inbounds float* %tmp5309, i64 1
+ %tmp5311 = getelementptr inbounds float* %tmp5310, i64 1
+ %tmp5312 = getelementptr inbounds float* %tmp5311, i64 1
+ %tmp5313 = getelementptr inbounds float* %tmp5312, i64 1
+ %tmp5314 = getelementptr inbounds float* %tmp5313, i64 1
+ %tmp5315 = getelementptr inbounds float* %tmp5314, i64 1
+ %tmp5316 = getelementptr inbounds float* %tmp5315, i64 1
+ %tmp5317 = getelementptr inbounds float* %tmp5316, i64 1
+ %tmp5318 = getelementptr inbounds float* %tmp5317, i64 1
+ %tmp5319 = getelementptr inbounds float* %tmp5318, i64 1
+ %tmp5320 = getelementptr inbounds float* %tmp5319, i64 1
+ %tmp5321 = getelementptr inbounds float* %tmp5320, i64 1
+ %tmp5322 = getelementptr inbounds float* %tmp5321, i64 1
+ %tmp5323 = getelementptr inbounds float* %tmp5322, i64 1
+ %tmp5324 = getelementptr inbounds float* %tmp5323, i64 1
+ %tmp5325 = getelementptr inbounds float* %tmp5324, i64 1
+ %tmp5326 = getelementptr inbounds float* %tmp5325, i64 1
+ %tmp5327 = getelementptr inbounds float* %tmp5326, i64 1
+ %tmp5328 = getelementptr inbounds float* %tmp5327, i64 1
+ %tmp5329 = getelementptr inbounds float* %tmp5328, i64 1
+ %tmp5330 = getelementptr inbounds float* %tmp5329, i64 1
+ %tmp5331 = getelementptr inbounds float* %tmp5330, i64 1
+ %tmp5332 = getelementptr inbounds float* %tmp5331, i64 1
+ %tmp5333 = getelementptr inbounds float* %tmp5332, i64 1
+ %tmp5334 = getelementptr inbounds float* %tmp5333, i64 1
+ %tmp5335 = getelementptr inbounds float* %tmp5334, i64 1
+ %tmp5336 = getelementptr inbounds float* %tmp5335, i64 1
+ %tmp5337 = getelementptr inbounds float* %tmp5336, i64 1
+ %tmp5338 = getelementptr inbounds float* %tmp5337, i64 1
+ %tmp5339 = getelementptr inbounds float* %tmp5338, i64 1
+ %tmp5340 = getelementptr inbounds float* %tmp5339, i64 1
+ %tmp5341 = getelementptr inbounds float* %tmp5340, i64 1
+ %tmp5342 = getelementptr inbounds float* %tmp5341, i64 1
+ %tmp5343 = getelementptr inbounds float* %tmp5342, i64 1
+ %tmp5344 = getelementptr inbounds float* %tmp5343, i64 1
+ %tmp5345 = getelementptr inbounds float* %tmp5344, i64 1
+ %tmp5346 = getelementptr inbounds float* %tmp5345, i64 1
+ %tmp5347 = getelementptr inbounds float* %tmp5346, i64 1
+ %tmp5348 = getelementptr inbounds float* %tmp5347, i64 1
+ %tmp5349 = getelementptr inbounds float* %tmp5348, i64 1
+ %tmp5350 = getelementptr inbounds float* %tmp5349, i64 1
+ %tmp5351 = getelementptr inbounds float* %tmp5350, i64 1
+ %tmp5352 = getelementptr inbounds float* %tmp5351, i64 1
+ %tmp5353 = getelementptr inbounds float* %tmp5352, i64 1
+ %tmp5354 = getelementptr inbounds float* %tmp5353, i64 1
+ %tmp5355 = getelementptr inbounds float* %tmp5354, i64 1
+ %tmp5356 = getelementptr inbounds float* %tmp5355, i64 1
+ %tmp5357 = getelementptr inbounds float* %tmp5356, i64 1
+ %tmp5358 = getelementptr inbounds float* %tmp5357, i64 1
+ %tmp5359 = getelementptr inbounds float* %tmp5358, i64 1
+ %tmp5360 = getelementptr inbounds float* %tmp5359, i64 1
+ %tmp5361 = getelementptr inbounds float* %tmp5360, i64 1
+ %tmp5362 = getelementptr inbounds float* %tmp5361, i64 1
+ %tmp5363 = getelementptr inbounds float* %tmp5362, i64 1
+ %tmp5364 = getelementptr inbounds float* %tmp5363, i64 1
+ %tmp5365 = getelementptr inbounds float* %tmp5364, i64 1
+ %tmp5366 = getelementptr inbounds float* %tmp5365, i64 1
+ %tmp5367 = getelementptr inbounds float* %tmp5366, i64 1
+ %tmp5368 = getelementptr inbounds float* %tmp5367, i64 1
+ %tmp5369 = getelementptr inbounds float* %tmp5368, i64 1
+ %tmp5370 = getelementptr inbounds float* %tmp5369, i64 1
+ %tmp5371 = getelementptr inbounds float* %tmp5370, i64 1
+ %tmp5372 = getelementptr inbounds float* %tmp5371, i64 1
+ %tmp5373 = getelementptr inbounds float* %tmp5372, i64 1
+ %tmp5374 = getelementptr inbounds float* %tmp5373, i64 1
+ %tmp5375 = getelementptr inbounds float* %tmp5374, i64 1
+ %tmp5376 = getelementptr inbounds float* %tmp5375, i64 1
+ %tmp5377 = getelementptr inbounds float* %tmp5376, i64 1
+ %tmp5378 = getelementptr inbounds float* %tmp5377, i64 1
+ %tmp5379 = getelementptr inbounds float* %tmp5378, i64 1
+ %tmp5380 = getelementptr inbounds float* %tmp5379, i64 1
+ %tmp5381 = getelementptr inbounds float* %tmp5380, i64 1
+ %tmp5382 = getelementptr inbounds float* %tmp5381, i64 1
+ %tmp5383 = getelementptr inbounds float* %tmp5382, i64 1
+ %tmp5384 = getelementptr inbounds float* %tmp5383, i64 1
+ %tmp5385 = getelementptr inbounds float* %tmp5384, i64 1
+ %tmp5386 = getelementptr inbounds float* %tmp5385, i64 1
+ %tmp5387 = getelementptr inbounds float* %tmp5386, i64 1
+ %tmp5388 = getelementptr inbounds float* %tmp5387, i64 1
+ %tmp5389 = getelementptr inbounds float* %tmp5388, i64 1
+ %tmp5390 = getelementptr inbounds float* %tmp5389, i64 1
+ %tmp5391 = getelementptr inbounds float* %tmp5390, i64 1
+ %tmp5392 = getelementptr inbounds float* %tmp5391, i64 1
+ %tmp5393 = getelementptr inbounds float* %tmp5392, i64 1
+ %tmp5394 = getelementptr inbounds float* %tmp5393, i64 1
+ %tmp5395 = getelementptr inbounds float* %tmp5394, i64 1
+ %tmp5396 = getelementptr inbounds float* %tmp5395, i64 1
+ %tmp5397 = getelementptr inbounds float* %tmp5396, i64 1
+ %tmp5398 = getelementptr inbounds float* %tmp5397, i64 1
+ %tmp5399 = getelementptr inbounds float* %tmp5398, i64 1
+ %tmp5400 = getelementptr inbounds float* %tmp5399, i64 1
+ %tmp5401 = getelementptr inbounds float* %tmp5400, i64 1
+ %tmp5402 = getelementptr inbounds float* %tmp5401, i64 1
+ %tmp5403 = getelementptr inbounds float* %tmp5402, i64 1
+ %tmp5404 = getelementptr inbounds float* %tmp5403, i64 1
+ %tmp5405 = getelementptr inbounds float* %tmp5404, i64 1
+ %tmp5406 = getelementptr inbounds float* %tmp5405, i64 1
+ %tmp5407 = getelementptr inbounds float* %tmp5406, i64 1
+ %tmp5408 = getelementptr inbounds float* %tmp5407, i64 1
+ %tmp5409 = getelementptr inbounds float* %tmp5408, i64 1
+ %tmp5410 = getelementptr inbounds float* %tmp5409, i64 1
+ %tmp5411 = getelementptr inbounds float* %tmp5410, i64 1
+ %tmp5412 = getelementptr inbounds float* %tmp5411, i64 1
+ %tmp5413 = getelementptr inbounds float* %tmp5412, i64 1
+ %tmp5414 = getelementptr inbounds float* %tmp5413, i64 1
+ %tmp5415 = getelementptr inbounds float* %tmp5414, i64 1
+ %tmp5416 = getelementptr inbounds float* %tmp5415, i64 1
+ %tmp5417 = getelementptr inbounds float* %tmp5416, i64 1
+ %tmp5418 = getelementptr inbounds float* %tmp5417, i64 1
+ %tmp5419 = getelementptr inbounds float* %tmp5418, i64 1
+ %tmp5420 = getelementptr inbounds float* %tmp5419, i64 1
+ %tmp5421 = getelementptr inbounds float* %tmp5420, i64 1
+ %tmp5422 = getelementptr inbounds float* %tmp5421, i64 1
+ %tmp5423 = getelementptr inbounds float* %tmp5422, i64 1
+ %tmp5424 = getelementptr inbounds float* %tmp5423, i64 1
+ %tmp5425 = getelementptr inbounds float* %tmp5424, i64 1
+ %tmp5426 = getelementptr inbounds float* %tmp5425, i64 1
+ %tmp5427 = getelementptr inbounds float* %tmp5426, i64 1
+ %tmp5428 = getelementptr inbounds float* %tmp5427, i64 1
+ %tmp5429 = getelementptr inbounds float* %tmp5428, i64 1
+ %tmp5430 = getelementptr inbounds float* %tmp5429, i64 1
+ %tmp5431 = getelementptr inbounds float* %tmp5430, i64 1
+ %tmp5432 = getelementptr inbounds float* %tmp5431, i64 1
+ %tmp5433 = getelementptr inbounds float* %tmp5432, i64 1
+ %tmp5434 = getelementptr inbounds float* %tmp5433, i64 1
+ %tmp5435 = getelementptr inbounds float* %tmp5434, i64 1
+ %tmp5436 = getelementptr inbounds float* %tmp5435, i64 1
+ %tmp5437 = getelementptr inbounds float* %tmp5436, i64 1
+ %tmp5438 = getelementptr inbounds float* %tmp5437, i64 1
+ %tmp5439 = getelementptr inbounds float* %tmp5438, i64 1
+ %tmp5440 = getelementptr inbounds float* %tmp5439, i64 1
+ %tmp5441 = getelementptr inbounds float* %tmp5440, i64 1
+ %tmp5442 = getelementptr inbounds float* %tmp5441, i64 1
+ %tmp5443 = getelementptr inbounds float* %tmp5442, i64 1
+ %tmp5444 = getelementptr inbounds float* %tmp5443, i64 1
+ %tmp5445 = getelementptr inbounds float* %tmp5444, i64 1
+ %tmp5446 = getelementptr inbounds float* %tmp5445, i64 1
+ %tmp5447 = getelementptr inbounds float* %tmp5446, i64 1
+ %tmp5448 = getelementptr inbounds float* %tmp5447, i64 1
+ %tmp5449 = getelementptr inbounds float* %tmp5448, i64 1
+ %tmp5450 = getelementptr inbounds float* %tmp5449, i64 1
+ %tmp5451 = getelementptr inbounds float* %tmp5450, i64 1
+ %tmp5452 = getelementptr inbounds float* %tmp5451, i64 1
+ %tmp5453 = getelementptr inbounds float* %tmp5452, i64 1
+ %tmp5454 = getelementptr inbounds float* %tmp5453, i64 1
+ %tmp5455 = getelementptr inbounds float* %tmp5454, i64 1
+ %tmp5456 = getelementptr inbounds float* %tmp5455, i64 1
+ %tmp5457 = getelementptr inbounds float* %tmp5456, i64 1
+ %tmp5458 = getelementptr inbounds float* %tmp5457, i64 1
+ %tmp5459 = getelementptr inbounds float* %tmp5458, i64 1
+ %tmp5460 = getelementptr inbounds float* %tmp5459, i64 1
+ %tmp5461 = getelementptr inbounds float* %tmp5460, i64 1
+ %tmp5462 = getelementptr inbounds float* %tmp5461, i64 1
+ %tmp5463 = getelementptr inbounds float* %tmp5462, i64 1
+ %tmp5464 = getelementptr inbounds float* %tmp5463, i64 1
+ %tmp5465 = getelementptr inbounds float* %tmp5464, i64 1
+ %tmp5466 = getelementptr inbounds float* %tmp5465, i64 1
+ %tmp5467 = getelementptr inbounds float* %tmp5466, i64 1
+ %tmp5468 = getelementptr inbounds float* %tmp5467, i64 1
+ %tmp5469 = getelementptr inbounds float* %tmp5468, i64 1
+ %tmp5470 = getelementptr inbounds float* %tmp5469, i64 1
+ %tmp5471 = getelementptr inbounds float* %tmp5470, i64 1
+ %tmp5472 = getelementptr inbounds float* %tmp5471, i64 1
+ %tmp5473 = getelementptr inbounds float* %tmp5472, i64 1
+ %tmp5474 = getelementptr inbounds float* %tmp5473, i64 1
+ %tmp5475 = getelementptr inbounds float* %tmp5474, i64 1
+ %tmp5476 = getelementptr inbounds float* %tmp5475, i64 1
+ %tmp5477 = getelementptr inbounds float* %tmp5476, i64 1
+ %tmp5478 = getelementptr inbounds float* %tmp5477, i64 1
+ %tmp5479 = getelementptr inbounds float* %tmp5478, i64 1
+ %tmp5480 = getelementptr inbounds float* %tmp5479, i64 1
+ %tmp5481 = getelementptr inbounds float* %tmp5480, i64 1
+ %tmp5482 = getelementptr inbounds float* %tmp5481, i64 1
+ %tmp5483 = getelementptr inbounds float* %tmp5482, i64 1
+ %tmp5484 = getelementptr inbounds float* %tmp5483, i64 1
+ %tmp5485 = getelementptr inbounds float* %tmp5484, i64 1
+ %tmp5486 = getelementptr inbounds float* %tmp5485, i64 1
+ %tmp5487 = getelementptr inbounds float* %tmp5486, i64 1
+ %tmp5488 = getelementptr inbounds float* %tmp5487, i64 1
+ %tmp5489 = getelementptr inbounds float* %tmp5488, i64 1
+ %tmp5490 = getelementptr inbounds float* %tmp5489, i64 1
+ %tmp5491 = getelementptr inbounds float* %tmp5490, i64 1
+ %tmp5492 = getelementptr inbounds float* %tmp5491, i64 1
+ %tmp5493 = getelementptr inbounds float* %tmp5492, i64 1
+ %tmp5494 = getelementptr inbounds float* %tmp5493, i64 1
+ %tmp5495 = getelementptr inbounds float* %tmp5494, i64 1
+ %tmp5496 = getelementptr inbounds float* %tmp5495, i64 1
+ %tmp5497 = getelementptr inbounds float* %tmp5496, i64 1
+ %tmp5498 = getelementptr inbounds float* %tmp5497, i64 1
+ %tmp5499 = getelementptr inbounds float* %tmp5498, i64 1
+ %tmp5500 = getelementptr inbounds float* %tmp5499, i64 1
+ %tmp5501 = getelementptr inbounds float* %tmp5500, i64 1
+ %tmp5502 = getelementptr inbounds float* %tmp5501, i64 1
+ %tmp5503 = getelementptr inbounds float* %tmp5502, i64 1
+ %tmp5504 = getelementptr inbounds float* %tmp5503, i64 1
+ %tmp5505 = getelementptr inbounds float* %tmp5504, i64 1
+ %tmp5506 = getelementptr inbounds float* %tmp5505, i64 1
+ %tmp5507 = getelementptr inbounds float* %tmp5506, i64 1
+ %tmp5508 = getelementptr inbounds float* %tmp5507, i64 1
+ %tmp5509 = getelementptr inbounds float* %tmp5508, i64 1
+ %tmp5510 = getelementptr inbounds float* %tmp5509, i64 1
+ %tmp5511 = getelementptr inbounds float* %tmp5510, i64 1
+ %tmp5512 = getelementptr inbounds float* %tmp5511, i64 1
+ %tmp5513 = getelementptr inbounds float* %tmp5512, i64 1
+ %tmp5514 = getelementptr inbounds float* %tmp5513, i64 1
+ %tmp5515 = getelementptr inbounds float* %tmp5514, i64 1
+ %tmp5516 = getelementptr inbounds float* %tmp5515, i64 1
+ %tmp5517 = getelementptr inbounds float* %tmp5516, i64 1
+ %tmp5518 = getelementptr inbounds float* %tmp5517, i64 1
+ %tmp5519 = getelementptr inbounds float* %tmp5518, i64 1
+ %tmp5520 = getelementptr inbounds float* %tmp5519, i64 1
+ %tmp5521 = getelementptr inbounds float* %tmp5520, i64 1
+ %tmp5522 = getelementptr inbounds float* %tmp5521, i64 1
+ %tmp5523 = getelementptr inbounds float* %tmp5522, i64 1
+ %tmp5524 = getelementptr inbounds float* %tmp5523, i64 1
+ %tmp5525 = getelementptr inbounds float* %tmp5524, i64 1
+ %tmp5526 = getelementptr inbounds float* %tmp5525, i64 1
+ %tmp5527 = getelementptr inbounds float* %tmp5526, i64 1
+ %tmp5528 = getelementptr inbounds float* %tmp5527, i64 1
+ %tmp5529 = getelementptr inbounds float* %tmp5528, i64 1
+ %tmp5530 = getelementptr inbounds float* %tmp5529, i64 1
+ %tmp5531 = getelementptr inbounds float* %tmp5530, i64 1
+ %tmp5532 = getelementptr inbounds float* %tmp5531, i64 1
+ %tmp5533 = getelementptr inbounds float* %tmp5532, i64 1
+ %tmp5534 = getelementptr inbounds float* %tmp5533, i64 1
+ %tmp5535 = getelementptr inbounds float* %tmp5534, i64 1
+ %tmp5536 = getelementptr inbounds float* %tmp5535, i64 1
+ %tmp5537 = getelementptr inbounds float* %tmp5536, i64 1
+ %tmp5538 = getelementptr inbounds float* %tmp5537, i64 1
+ %tmp5539 = getelementptr inbounds float* %tmp5538, i64 1
+ %tmp5540 = getelementptr inbounds float* %tmp5539, i64 1
+ %tmp5541 = getelementptr inbounds float* %tmp5540, i64 1
+ %tmp5542 = getelementptr inbounds float* %tmp5541, i64 1
+ %tmp5543 = getelementptr inbounds float* %tmp5542, i64 1
+ %tmp5544 = getelementptr inbounds float* %tmp5543, i64 1
+ %tmp5545 = getelementptr inbounds float* %tmp5544, i64 1
+ %tmp5546 = getelementptr inbounds float* %tmp5545, i64 1
+ %tmp5547 = getelementptr inbounds float* %tmp5546, i64 1
+ %tmp5548 = getelementptr inbounds float* %tmp5547, i64 1
+ %tmp5549 = getelementptr inbounds float* %tmp5548, i64 1
+ %tmp5550 = getelementptr inbounds float* %tmp5549, i64 1
+ %tmp5551 = getelementptr inbounds float* %tmp5550, i64 1
+ %tmp5552 = getelementptr inbounds float* %tmp5551, i64 1
+ %tmp5553 = getelementptr inbounds float* %tmp5552, i64 1
+ %tmp5554 = getelementptr inbounds float* %tmp5553, i64 1
+ %tmp5555 = getelementptr inbounds float* %tmp5554, i64 1
+ %tmp5556 = getelementptr inbounds float* %tmp5555, i64 1
+ %tmp5557 = getelementptr inbounds float* %tmp5556, i64 1
+ %tmp5558 = getelementptr inbounds float* %tmp5557, i64 1
+ %tmp5559 = getelementptr inbounds float* %tmp5558, i64 1
+ %tmp5560 = getelementptr inbounds float* %tmp5559, i64 1
+ %tmp5561 = getelementptr inbounds float* %tmp5560, i64 1
+ %tmp5562 = getelementptr inbounds float* %tmp5561, i64 1
+ %tmp5563 = getelementptr inbounds float* %tmp5562, i64 1
+ %tmp5564 = getelementptr inbounds float* %tmp5563, i64 1
+ %tmp5565 = getelementptr inbounds float* %tmp5564, i64 1
+ %tmp5566 = getelementptr inbounds float* %tmp5565, i64 1
+ %tmp5567 = getelementptr inbounds float* %tmp5566, i64 1
+ %tmp5568 = getelementptr inbounds float* %tmp5567, i64 1
+ %tmp5569 = getelementptr inbounds float* %tmp5568, i64 1
+ %tmp5570 = getelementptr inbounds float* %tmp5569, i64 1
+ %tmp5571 = getelementptr inbounds float* %tmp5570, i64 1
+ %tmp5572 = getelementptr inbounds float* %tmp5571, i64 1
+ %tmp5573 = getelementptr inbounds float* %tmp5572, i64 1
+ %tmp5574 = getelementptr inbounds float* %tmp5573, i64 1
+ %tmp5575 = getelementptr inbounds float* %tmp5574, i64 1
+ %tmp5576 = getelementptr inbounds float* %tmp5575, i64 1
+ %tmp5577 = getelementptr inbounds float* %tmp5576, i64 1
+ %tmp5578 = getelementptr inbounds float* %tmp5577, i64 1
+ %tmp5579 = getelementptr inbounds float* %tmp5578, i64 1
+ %tmp5580 = getelementptr inbounds float* %tmp5579, i64 1
+ %tmp5581 = getelementptr inbounds float* %tmp5580, i64 1
+ %tmp5582 = getelementptr inbounds float* %tmp5581, i64 1
+ %tmp5583 = getelementptr inbounds float* %tmp5582, i64 1
+ %tmp5584 = getelementptr inbounds float* %tmp5583, i64 1
+ %tmp5585 = getelementptr inbounds float* %tmp5584, i64 1
+ %tmp5586 = getelementptr inbounds float* %tmp5585, i64 1
+ %tmp5587 = getelementptr inbounds float* %tmp5586, i64 1
+ %tmp5588 = getelementptr inbounds float* %tmp5587, i64 1
+ %tmp5589 = getelementptr inbounds float* %tmp5588, i64 1
+ %tmp5590 = getelementptr inbounds float* %tmp5589, i64 1
+ %tmp5591 = getelementptr inbounds float* %tmp5590, i64 1
+ %tmp5592 = getelementptr inbounds float* %tmp5591, i64 1
+ %tmp5593 = getelementptr inbounds float* %tmp5592, i64 1
+ %tmp5594 = getelementptr inbounds float* %tmp5593, i64 1
+ %tmp5595 = getelementptr inbounds float* %tmp5594, i64 1
+ %tmp5596 = getelementptr inbounds float* %tmp5595, i64 1
+ %tmp5597 = getelementptr inbounds float* %tmp5596, i64 1
+ %tmp5598 = getelementptr inbounds float* %tmp5597, i64 1
+ %tmp5599 = getelementptr inbounds float* %tmp5598, i64 1
+ %tmp5600 = getelementptr inbounds float* %tmp5599, i64 1
+ %tmp5601 = getelementptr inbounds float* %tmp5600, i64 1
+ %tmp5602 = getelementptr inbounds float* %tmp5601, i64 1
+ %tmp5603 = getelementptr inbounds float* %tmp5602, i64 1
+ %tmp5604 = getelementptr inbounds float* %tmp5603, i64 1
+ %tmp5605 = getelementptr inbounds float* %tmp5604, i64 1
+ %tmp5606 = getelementptr inbounds float* %tmp5605, i64 1
+ %tmp5607 = getelementptr inbounds float* %tmp5606, i64 1
+ %tmp5608 = getelementptr inbounds float* %tmp5607, i64 1
+ %tmp5609 = getelementptr inbounds float* %tmp5608, i64 1
+ %tmp5610 = getelementptr inbounds float* %tmp5609, i64 1
+ %tmp5611 = getelementptr inbounds float* %tmp5610, i64 1
+ %tmp5612 = getelementptr inbounds float* %tmp5611, i64 1
+ %tmp5613 = getelementptr inbounds float* %tmp5612, i64 1
+ %tmp5614 = getelementptr inbounds float* %tmp5613, i64 1
+ %tmp5615 = getelementptr inbounds float* %tmp5614, i64 1
+ %tmp5616 = getelementptr inbounds float* %tmp5615, i64 1
+ %tmp5617 = getelementptr inbounds float* %tmp5616, i64 1
+ %tmp5618 = getelementptr inbounds float* %tmp5617, i64 1
+ %tmp5619 = getelementptr inbounds float* %tmp5618, i64 1
+ %tmp5620 = getelementptr inbounds float* %tmp5619, i64 1
+ %tmp5621 = getelementptr inbounds float* %tmp5620, i64 1
+ %tmp5622 = getelementptr inbounds float* %tmp5621, i64 1
+ %tmp5623 = getelementptr inbounds float* %tmp5622, i64 1
+ %tmp5624 = getelementptr inbounds float* %tmp5623, i64 1
+ %tmp5625 = getelementptr inbounds float* %tmp5624, i64 1
+ %tmp5626 = getelementptr inbounds float* %tmp5625, i64 1
+ %tmp5627 = getelementptr inbounds float* %tmp5626, i64 1
+ %tmp5628 = getelementptr inbounds float* %tmp5627, i64 1
+ %tmp5629 = getelementptr inbounds float* %tmp5628, i64 1
+ %tmp5630 = getelementptr inbounds float* %tmp5629, i64 1
+ %tmp5631 = getelementptr inbounds float* %tmp5630, i64 1
+ %tmp5632 = getelementptr inbounds float* %tmp5631, i64 1
+ %tmp5633 = getelementptr inbounds float* %tmp5632, i64 1
+ %tmp5634 = getelementptr inbounds float* %tmp5633, i64 1
+ %tmp5635 = getelementptr inbounds float* %tmp5634, i64 1
+ %tmp5636 = getelementptr inbounds float* %tmp5635, i64 1
+ %tmp5637 = getelementptr inbounds float* %tmp5636, i64 1
+ %tmp5638 = getelementptr inbounds float* %tmp5637, i64 1
+ %tmp5639 = getelementptr inbounds float* %tmp5638, i64 1
+ %tmp5640 = getelementptr inbounds float* %tmp5639, i64 1
+ %tmp5641 = getelementptr inbounds float* %tmp5640, i64 1
+ %tmp5642 = getelementptr inbounds float* %tmp5641, i64 1
+ %tmp5643 = getelementptr inbounds float* %tmp5642, i64 1
+ %tmp5644 = getelementptr inbounds float* %tmp5643, i64 1
+ %tmp5645 = getelementptr inbounds float* %tmp5644, i64 1
+ %tmp5646 = getelementptr inbounds float* %tmp5645, i64 1
+ %tmp5647 = getelementptr inbounds float* %tmp5646, i64 1
+ %tmp5648 = getelementptr inbounds float* %tmp5647, i64 1
+ %tmp5649 = getelementptr inbounds float* %tmp5648, i64 1
+ %tmp5650 = getelementptr inbounds float* %tmp5649, i64 1
+ %tmp5651 = getelementptr inbounds float* %tmp5650, i64 1
+ %tmp5652 = getelementptr inbounds float* %tmp5651, i64 1
+ %tmp5653 = getelementptr inbounds float* %tmp5652, i64 1
+ %tmp5654 = getelementptr inbounds float* %tmp5653, i64 1
+ %tmp5655 = getelementptr inbounds float* %tmp5654, i64 1
+ %tmp5656 = getelementptr inbounds float* %tmp5655, i64 1
+ %tmp5657 = getelementptr inbounds float* %tmp5656, i64 1
+ %tmp5658 = getelementptr inbounds float* %tmp5657, i64 1
+ %tmp5659 = getelementptr inbounds float* %tmp5658, i64 1
+ %tmp5660 = getelementptr inbounds float* %tmp5659, i64 1
+ %tmp5661 = getelementptr inbounds float* %tmp5660, i64 1
+ %tmp5662 = getelementptr inbounds float* %tmp5661, i64 1
+ %tmp5663 = getelementptr inbounds float* %tmp5662, i64 1
+ %tmp5664 = getelementptr inbounds float* %tmp5663, i64 1
+ %tmp5665 = getelementptr inbounds float* %tmp5664, i64 1
+ %tmp5666 = getelementptr inbounds float* %tmp5665, i64 1
+ %tmp5667 = getelementptr inbounds float* %tmp5666, i64 1
+ %tmp5668 = getelementptr inbounds float* %tmp5667, i64 1
+ %tmp5669 = getelementptr inbounds float* %tmp5668, i64 1
+ %tmp5670 = getelementptr inbounds float* %tmp5669, i64 1
+ %tmp5671 = getelementptr inbounds float* %tmp5670, i64 1
+ %tmp5672 = getelementptr inbounds float* %tmp5671, i64 1
+ %tmp5673 = getelementptr inbounds float* %tmp5672, i64 1
+ %tmp5674 = getelementptr inbounds float* %tmp5673, i64 1
+ %tmp5675 = getelementptr inbounds float* %tmp5674, i64 1
+ %tmp5676 = getelementptr inbounds float* %tmp5675, i64 1
+ %tmp5677 = getelementptr inbounds float* %tmp5676, i64 1
+ %tmp5678 = getelementptr inbounds float* %tmp5677, i64 1
+ %tmp5679 = getelementptr inbounds float* %tmp5678, i64 1
+ %tmp5680 = getelementptr inbounds float* %tmp5679, i64 1
+ %tmp5681 = getelementptr inbounds float* %tmp5680, i64 1
+ %tmp5682 = getelementptr inbounds float* %tmp5681, i64 1
+ %tmp5683 = getelementptr inbounds float* %tmp5682, i64 1
+ %tmp5684 = getelementptr inbounds float* %tmp5683, i64 1
+ %tmp5685 = getelementptr inbounds float* %tmp5684, i64 1
+ %tmp5686 = getelementptr inbounds float* %tmp5685, i64 1
+ %tmp5687 = getelementptr inbounds float* %tmp5686, i64 1
+ %tmp5688 = getelementptr inbounds float* %tmp5687, i64 1
+ %tmp5689 = getelementptr inbounds float* %tmp5688, i64 1
+ %tmp5690 = getelementptr inbounds float* %tmp5689, i64 1
+ %tmp5691 = getelementptr inbounds float* %tmp5690, i64 1
+ %tmp5692 = getelementptr inbounds float* %tmp5691, i64 1
+ %tmp5693 = getelementptr inbounds float* %tmp5692, i64 1
+ %tmp5694 = getelementptr inbounds float* %tmp5693, i64 1
+ %tmp5695 = getelementptr inbounds float* %tmp5694, i64 1
+ %tmp5696 = getelementptr inbounds float* %tmp5695, i64 1
+ %tmp5697 = getelementptr inbounds float* %tmp5696, i64 1
+ %tmp5698 = getelementptr inbounds float* %tmp5697, i64 1
+ %tmp5699 = getelementptr inbounds float* %tmp5698, i64 1
+ %tmp5700 = getelementptr inbounds float* %tmp5699, i64 1
+ %tmp5701 = getelementptr inbounds float* %tmp5700, i64 1
+ %tmp5702 = getelementptr inbounds float* %tmp5701, i64 1
+ %tmp5703 = getelementptr inbounds float* %tmp5702, i64 1
+ %tmp5704 = getelementptr inbounds float* %tmp5703, i64 1
+ %tmp5705 = getelementptr inbounds float* %tmp5704, i64 1
+ %tmp5706 = getelementptr inbounds float* %tmp5705, i64 1
+ %tmp5707 = getelementptr inbounds float* %tmp5706, i64 1
+ %tmp5708 = getelementptr inbounds float* %tmp5707, i64 1
+ %tmp5709 = getelementptr inbounds float* %tmp5708, i64 1
+ %tmp5710 = getelementptr inbounds float* %tmp5709, i64 1
+ %tmp5711 = getelementptr inbounds float* %tmp5710, i64 1
+ %tmp5712 = getelementptr inbounds float* %tmp5711, i64 1
+ %tmp5713 = getelementptr inbounds float* %tmp5712, i64 1
+ %tmp5714 = getelementptr inbounds float* %tmp5713, i64 1
+ %tmp5715 = getelementptr inbounds float* %tmp5714, i64 1
+ %tmp5716 = getelementptr inbounds float* %tmp5715, i64 1
+ %tmp5717 = getelementptr inbounds float* %tmp5716, i64 1
+ %tmp5718 = getelementptr inbounds float* %tmp5717, i64 1
+ %tmp5719 = getelementptr inbounds float* %tmp5718, i64 1
+ %tmp5720 = getelementptr inbounds float* %tmp5719, i64 1
+ %tmp5721 = getelementptr inbounds float* %tmp5720, i64 1
+ %tmp5722 = getelementptr inbounds float* %tmp5721, i64 1
+ %tmp5723 = getelementptr inbounds float* %tmp5722, i64 1
+ %tmp5724 = getelementptr inbounds float* %tmp5723, i64 1
+ %tmp5725 = getelementptr inbounds float* %tmp5724, i64 1
+ %tmp5726 = getelementptr inbounds float* %tmp5725, i64 1
+ %tmp5727 = getelementptr inbounds float* %tmp5726, i64 1
+ %tmp5728 = getelementptr inbounds float* %tmp5727, i64 1
+ %tmp5729 = getelementptr inbounds float* %tmp5728, i64 1
+ %tmp5730 = getelementptr inbounds float* %tmp5729, i64 1
+ %tmp5731 = getelementptr inbounds float* %tmp5730, i64 1
+ %tmp5732 = getelementptr inbounds float* %tmp5731, i64 1
+ %tmp5733 = getelementptr inbounds float* %tmp5732, i64 1
+ %tmp5734 = getelementptr inbounds float* %tmp5733, i64 1
+ %tmp5735 = getelementptr inbounds float* %tmp5734, i64 1
+ %tmp5736 = getelementptr inbounds float* %tmp5735, i64 1
+ %tmp5737 = getelementptr inbounds float* %tmp5736, i64 1
+ %tmp5738 = getelementptr inbounds float* %tmp5737, i64 1
+ %tmp5739 = getelementptr inbounds float* %tmp5738, i64 1
+ %tmp5740 = getelementptr inbounds float* %tmp5739, i64 1
+ %tmp5741 = getelementptr inbounds float* %tmp5740, i64 1
+ %tmp5742 = getelementptr inbounds float* %tmp5741, i64 1
+ %tmp5743 = getelementptr inbounds float* %tmp5742, i64 1
+ %tmp5744 = getelementptr inbounds float* %tmp5743, i64 1
+ %tmp5745 = getelementptr inbounds float* %tmp5744, i64 1
+ %tmp5746 = getelementptr inbounds float* %tmp5745, i64 1
+ %tmp5747 = getelementptr inbounds float* %tmp5746, i64 1
+ %tmp5748 = getelementptr inbounds float* %tmp5747, i64 1
+ %tmp5749 = getelementptr inbounds float* %tmp5748, i64 1
+ %tmp5750 = getelementptr inbounds float* %tmp5749, i64 1
+ %tmp5751 = getelementptr inbounds float* %tmp5750, i64 1
+ %tmp5752 = getelementptr inbounds float* %tmp5751, i64 1
+ %tmp5753 = getelementptr inbounds float* %tmp5752, i64 1
+ %tmp5754 = getelementptr inbounds float* %tmp5753, i64 1
+ %tmp5755 = getelementptr inbounds float* %tmp5754, i64 1
+ %tmp5756 = getelementptr inbounds float* %tmp5755, i64 1
+ %tmp5757 = getelementptr inbounds float* %tmp5756, i64 1
+ %tmp5758 = getelementptr inbounds float* %tmp5757, i64 1
+ %tmp5759 = getelementptr inbounds float* %tmp5758, i64 1
+ %tmp5760 = getelementptr inbounds float* %tmp5759, i64 1
+ %tmp5761 = getelementptr inbounds float* %tmp5760, i64 1
+ %tmp5762 = getelementptr inbounds float* %tmp5761, i64 1
+ %tmp5763 = getelementptr inbounds float* %tmp5762, i64 1
+ %tmp5764 = getelementptr inbounds float* %tmp5763, i64 1
+ %tmp5765 = getelementptr inbounds float* %tmp5764, i64 1
+ %tmp5766 = getelementptr inbounds float* %tmp5765, i64 1
+ %tmp5767 = getelementptr inbounds float* %tmp5766, i64 1
+ %tmp5768 = getelementptr inbounds float* %tmp5767, i64 1
+ %tmp5769 = getelementptr inbounds float* %tmp5768, i64 1
+ %tmp5770 = getelementptr inbounds float* %tmp5769, i64 1
+ %tmp5771 = getelementptr inbounds float* %tmp5770, i64 1
+ %tmp5772 = getelementptr inbounds float* %tmp5771, i64 1
+ %tmp5773 = getelementptr inbounds float* %tmp5772, i64 1
+ %tmp5774 = getelementptr inbounds float* %tmp5773, i64 1
+ %tmp5775 = getelementptr inbounds float* %tmp5774, i64 1
+ %tmp5776 = getelementptr inbounds float* %tmp5775, i64 1
+ %tmp5777 = getelementptr inbounds float* %tmp5776, i64 1
+ %tmp5778 = getelementptr inbounds float* %tmp5777, i64 1
+ %tmp5779 = getelementptr inbounds float* %tmp5778, i64 1
+ %tmp5780 = getelementptr inbounds float* %tmp5779, i64 1
+ %tmp5781 = getelementptr inbounds float* %tmp5780, i64 1
+ %tmp5782 = getelementptr inbounds float* %tmp5781, i64 1
+ %tmp5783 = getelementptr inbounds float* %tmp5782, i64 1
+ %tmp5784 = getelementptr inbounds float* %tmp5783, i64 1
+ %tmp5785 = getelementptr inbounds float* %tmp5784, i64 1
+ %tmp5786 = getelementptr inbounds float* %tmp5785, i64 1
+ %tmp5787 = getelementptr inbounds float* %tmp5786, i64 1
+ %tmp5788 = getelementptr inbounds float* %tmp5787, i64 1
+ %tmp5789 = getelementptr inbounds float* %tmp5788, i64 1
+ %tmp5790 = getelementptr inbounds float* %tmp5789, i64 1
+ %tmp5791 = getelementptr inbounds float* %tmp5790, i64 1
+ %tmp5792 = getelementptr inbounds float* %tmp5791, i64 1
+ %tmp5793 = getelementptr inbounds float* %tmp5792, i64 1
+ %tmp5794 = getelementptr inbounds float* %tmp5793, i64 1
+ %tmp5795 = getelementptr inbounds float* %tmp5794, i64 1
+ %tmp5796 = getelementptr inbounds float* %tmp5795, i64 1
+ %tmp5797 = getelementptr inbounds float* %tmp5796, i64 1
+ %tmp5798 = getelementptr inbounds float* %tmp5797, i64 1
+ %tmp5799 = getelementptr inbounds float* %tmp5798, i64 1
+ %tmp5800 = getelementptr inbounds float* %tmp5799, i64 1
+ %tmp5801 = getelementptr inbounds float* %tmp5800, i64 1
+ %tmp5802 = getelementptr inbounds float* %tmp5801, i64 1
+ %tmp5803 = getelementptr inbounds float* %tmp5802, i64 1
+ %tmp5804 = getelementptr inbounds float* %tmp5803, i64 1
+ %tmp5805 = getelementptr inbounds float* %tmp5804, i64 1
+ %tmp5806 = getelementptr inbounds float* %tmp5805, i64 1
+ %tmp5807 = getelementptr inbounds float* %tmp5806, i64 1
+ %tmp5808 = getelementptr inbounds float* %tmp5807, i64 1
+ %tmp5809 = getelementptr inbounds float* %tmp5808, i64 1
+ %tmp5810 = getelementptr inbounds float* %tmp5809, i64 1
+ %tmp5811 = getelementptr inbounds float* %tmp5810, i64 1
+ %tmp5812 = getelementptr inbounds float* %tmp5811, i64 1
+ %tmp5813 = getelementptr inbounds float* %tmp5812, i64 1
+ %tmp5814 = getelementptr inbounds float* %tmp5813, i64 1
+ %tmp5815 = getelementptr inbounds float* %tmp5814, i64 1
+ %tmp5816 = getelementptr inbounds float* %tmp5815, i64 1
+ %tmp5817 = getelementptr inbounds float* %tmp5816, i64 1
+ %tmp5818 = getelementptr inbounds float* %tmp5817, i64 1
+ %tmp5819 = getelementptr inbounds float* %tmp5818, i64 1
+ %tmp5820 = getelementptr inbounds float* %tmp5819, i64 1
+ %tmp5821 = getelementptr inbounds float* %tmp5820, i64 1
+ %tmp5822 = getelementptr inbounds float* %tmp5821, i64 1
+ %tmp5823 = getelementptr inbounds float* %tmp5822, i64 1
+ %tmp5824 = getelementptr inbounds float* %tmp5823, i64 1
+ %tmp5825 = getelementptr inbounds float* %tmp5824, i64 1
+ %tmp5826 = getelementptr inbounds float* %tmp5825, i64 1
+ %tmp5827 = getelementptr inbounds float* %tmp5826, i64 1
+ %tmp5828 = getelementptr inbounds float* %tmp5827, i64 1
+ %tmp5829 = getelementptr inbounds float* %tmp5828, i64 1
+ %tmp5830 = getelementptr inbounds float* %tmp5829, i64 1
+ %tmp5831 = getelementptr inbounds float* %tmp5830, i64 1
+ %tmp5832 = getelementptr inbounds float* %tmp5831, i64 1
+ %tmp5833 = getelementptr inbounds float* %tmp5832, i64 1
+ %tmp5834 = getelementptr inbounds float* %tmp5833, i64 1
+ %tmp5835 = getelementptr inbounds float* %tmp5834, i64 1
+ %tmp5836 = getelementptr inbounds float* %tmp5835, i64 1
+ %tmp5837 = getelementptr inbounds float* %tmp5836, i64 1
+ %tmp5838 = getelementptr inbounds float* %tmp5837, i64 1
+ %tmp5839 = getelementptr inbounds float* %tmp5838, i64 1
+ %tmp5840 = getelementptr inbounds float* %tmp5839, i64 1
+ %tmp5841 = getelementptr inbounds float* %tmp5840, i64 1
+ %tmp5842 = getelementptr inbounds float* %tmp5841, i64 1
+ %tmp5843 = getelementptr inbounds float* %tmp5842, i64 1
+ %tmp5844 = getelementptr inbounds float* %tmp5843, i64 1
+ %tmp5845 = getelementptr inbounds float* %tmp5844, i64 1
+ %tmp5846 = getelementptr inbounds float* %tmp5845, i64 1
+ %tmp5847 = getelementptr inbounds float* %tmp5846, i64 1
+ %tmp5848 = getelementptr inbounds float* %tmp5847, i64 1
+ %tmp5849 = getelementptr inbounds float* %tmp5848, i64 1
+ %tmp5850 = getelementptr inbounds float* %tmp5849, i64 1
+ %tmp5851 = getelementptr inbounds float* %tmp5850, i64 1
+ %tmp5852 = getelementptr inbounds float* %tmp5851, i64 1
+ %tmp5853 = getelementptr inbounds float* %tmp5852, i64 1
+ %tmp5854 = getelementptr inbounds float* %tmp5853, i64 1
+ %tmp5855 = getelementptr inbounds float* %tmp5854, i64 1
+ %tmp5856 = getelementptr inbounds float* %tmp5855, i64 1
+ %tmp5857 = getelementptr inbounds float* %tmp5856, i64 1
+ %tmp5858 = getelementptr inbounds float* %tmp5857, i64 1
+ %tmp5859 = getelementptr inbounds float* %tmp5858, i64 1
+ %tmp5860 = getelementptr inbounds float* %tmp5859, i64 1
+ %tmp5861 = getelementptr inbounds float* %tmp5860, i64 1
+ %tmp5862 = getelementptr inbounds float* %tmp5861, i64 1
+ %tmp5863 = getelementptr inbounds float* %tmp5862, i64 1
+ %tmp5864 = getelementptr inbounds float* %tmp5863, i64 1
+ %tmp5865 = getelementptr inbounds float* %tmp5864, i64 1
+ %tmp5866 = getelementptr inbounds float* %tmp5865, i64 1
+ %tmp5867 = getelementptr inbounds float* %tmp5866, i64 1
+ %tmp5868 = getelementptr inbounds float* %tmp5867, i64 1
+ %tmp5869 = getelementptr inbounds float* %tmp5868, i64 1
+ %tmp5870 = getelementptr inbounds float* %tmp5869, i64 1
+ %tmp5871 = getelementptr inbounds float* %tmp5870, i64 1
+ %tmp5872 = getelementptr inbounds float* %tmp5871, i64 1
+ %tmp5873 = getelementptr inbounds float* %tmp5872, i64 1
+ %tmp5874 = getelementptr inbounds float* %tmp5873, i64 1
+ %tmp5875 = getelementptr inbounds float* %tmp5874, i64 1
+ %tmp5876 = getelementptr inbounds float* %tmp5875, i64 1
+ %tmp5877 = getelementptr inbounds float* %tmp5876, i64 1
+ %tmp5878 = getelementptr inbounds float* %tmp5877, i64 1
+ %tmp5879 = getelementptr inbounds float* %tmp5878, i64 1
+ %tmp5880 = getelementptr inbounds float* %tmp5879, i64 1
+ %tmp5881 = getelementptr inbounds float* %tmp5880, i64 1
+ %tmp5882 = getelementptr inbounds float* %tmp5881, i64 1
+ %tmp5883 = getelementptr inbounds float* %tmp5882, i64 1
+ %tmp5884 = getelementptr inbounds float* %tmp5883, i64 1
+ %tmp5885 = getelementptr inbounds float* %tmp5884, i64 1
+ %tmp5886 = getelementptr inbounds float* %tmp5885, i64 1
+ %tmp5887 = getelementptr inbounds float* %tmp5886, i64 1
+ %tmp5888 = getelementptr inbounds float* %tmp5887, i64 1
+ %tmp5889 = getelementptr inbounds float* %tmp5888, i64 1
+ %tmp5890 = getelementptr inbounds float* %tmp5889, i64 1
+ %tmp5891 = getelementptr inbounds float* %tmp5890, i64 1
+ %tmp5892 = getelementptr inbounds float* %tmp5891, i64 1
+ %tmp5893 = getelementptr inbounds float* %tmp5892, i64 1
+ %tmp5894 = getelementptr inbounds float* %tmp5893, i64 1
+ %tmp5895 = getelementptr inbounds float* %tmp5894, i64 1
+ %tmp5896 = getelementptr inbounds float* %tmp5895, i64 1
+ %tmp5897 = getelementptr inbounds float* %tmp5896, i64 1
+ %tmp5898 = getelementptr inbounds float* %tmp5897, i64 1
+ %tmp5899 = getelementptr inbounds float* %tmp5898, i64 1
+ %tmp5900 = getelementptr inbounds float* %tmp5899, i64 1
+ %tmp5901 = getelementptr inbounds float* %tmp5900, i64 1
+ %tmp5902 = getelementptr inbounds float* %tmp5901, i64 1
+ %tmp5903 = getelementptr inbounds float* %tmp5902, i64 1
+ %tmp5904 = getelementptr inbounds float* %tmp5903, i64 1
+ %tmp5905 = getelementptr inbounds float* %tmp5904, i64 1
+ %tmp5906 = getelementptr inbounds float* %tmp5905, i64 1
+ %tmp5907 = getelementptr inbounds float* %tmp5906, i64 1
+ %tmp5908 = getelementptr inbounds float* %tmp5907, i64 1
+ %tmp5909 = getelementptr inbounds float* %tmp5908, i64 1
+ %tmp5910 = getelementptr inbounds float* %tmp5909, i64 1
+ %tmp5911 = getelementptr inbounds float* %tmp5910, i64 1
+ %tmp5912 = getelementptr inbounds float* %tmp5911, i64 1
+ %tmp5913 = getelementptr inbounds float* %tmp5912, i64 1
+ %tmp5914 = getelementptr inbounds float* %tmp5913, i64 1
+ %tmp5915 = getelementptr inbounds float* %tmp5914, i64 1
+ %tmp5916 = getelementptr inbounds float* %tmp5915, i64 1
+ %tmp5917 = getelementptr inbounds float* %tmp5916, i64 1
+ %tmp5918 = getelementptr inbounds float* %tmp5917, i64 1
+ %tmp5919 = getelementptr inbounds float* %tmp5918, i64 1
+ %tmp5920 = getelementptr inbounds float* %tmp5919, i64 1
+ %tmp5921 = getelementptr inbounds float* %tmp5920, i64 1
+ %tmp5922 = getelementptr inbounds float* %tmp5921, i64 1
+ %tmp5923 = getelementptr inbounds float* %tmp5922, i64 1
+ %tmp5924 = getelementptr inbounds float* %tmp5923, i64 1
+ %tmp5925 = getelementptr inbounds float* %tmp5924, i64 1
+ %tmp5926 = getelementptr inbounds float* %tmp5925, i64 1
+ %tmp5927 = getelementptr inbounds float* %tmp5926, i64 1
+ %tmp5928 = getelementptr inbounds float* %tmp5927, i64 1
+ %tmp5929 = getelementptr inbounds float* %tmp5928, i64 1
+ %tmp5930 = getelementptr inbounds float* %tmp5929, i64 1
+ %tmp5931 = getelementptr inbounds float* %tmp5930, i64 1
+ %tmp5932 = getelementptr inbounds float* %tmp5931, i64 1
+ %tmp5933 = getelementptr inbounds float* %tmp5932, i64 1
+ %tmp5934 = getelementptr inbounds float* %tmp5933, i64 1
+ %tmp5935 = getelementptr inbounds float* %tmp5934, i64 1
+ %tmp5936 = getelementptr inbounds float* %tmp5935, i64 1
+ %tmp5937 = getelementptr inbounds float* %tmp5936, i64 1
+ %tmp5938 = getelementptr inbounds float* %tmp5937, i64 1
+ %tmp5939 = getelementptr inbounds float* %tmp5938, i64 1
+ %tmp5940 = getelementptr inbounds float* %tmp5939, i64 1
+ %tmp5941 = getelementptr inbounds float* %tmp5940, i64 1
+ %tmp5942 = getelementptr inbounds float* %tmp5941, i64 1
+ %tmp5943 = getelementptr inbounds float* %tmp5942, i64 1
+ %tmp5944 = getelementptr inbounds float* %tmp5943, i64 1
+ %tmp5945 = getelementptr inbounds float* %tmp5944, i64 1
+ %tmp5946 = getelementptr inbounds float* %tmp5945, i64 1
+ %tmp5947 = getelementptr inbounds float* %tmp5946, i64 1
+ %tmp5948 = getelementptr inbounds float* %tmp5947, i64 1
+ %tmp5949 = getelementptr inbounds float* %tmp5948, i64 1
+ %tmp5950 = getelementptr inbounds float* %tmp5949, i64 1
+ %tmp5951 = getelementptr inbounds float* %tmp5950, i64 1
+ %tmp5952 = getelementptr inbounds float* %tmp5951, i64 1
+ %tmp5953 = getelementptr inbounds float* %tmp5952, i64 1
+ %tmp5954 = getelementptr inbounds float* %tmp5953, i64 1
+ %tmp5955 = getelementptr inbounds float* %tmp5954, i64 1
+ %tmp5956 = getelementptr inbounds float* %tmp5955, i64 1
+ %tmp5957 = getelementptr inbounds float* %tmp5956, i64 1
+ %tmp5958 = getelementptr inbounds float* %tmp5957, i64 1
+ %tmp5959 = getelementptr inbounds float* %tmp5958, i64 1
+ %tmp5960 = getelementptr inbounds float* %tmp5959, i64 1
+ %tmp5961 = getelementptr inbounds float* %tmp5960, i64 1
+ %tmp5962 = getelementptr inbounds float* %tmp5961, i64 1
+ %tmp5963 = getelementptr inbounds float* %tmp5962, i64 1
+ %tmp5964 = getelementptr inbounds float* %tmp5963, i64 1
+ %tmp5965 = getelementptr inbounds float* %tmp5964, i64 1
+ %tmp5966 = getelementptr inbounds float* %tmp5965, i64 1
+ %tmp5967 = getelementptr inbounds float* %tmp5966, i64 1
+ %tmp5968 = getelementptr inbounds float* %tmp5967, i64 1
+ %tmp5969 = getelementptr inbounds float* %tmp5968, i64 1
+ %tmp5970 = getelementptr inbounds float* %tmp5969, i64 1
+ %tmp5971 = getelementptr inbounds float* %tmp5970, i64 1
+ %tmp5972 = getelementptr inbounds float* %tmp5971, i64 1
+ %tmp5973 = getelementptr inbounds float* %tmp5972, i64 1
+ %tmp5974 = getelementptr inbounds float* %tmp5973, i64 1
+ %tmp5975 = getelementptr inbounds float* %tmp5974, i64 1
+ %tmp5976 = getelementptr inbounds float* %tmp5975, i64 1
+ %tmp5977 = getelementptr inbounds float* %tmp5976, i64 1
+ %tmp5978 = getelementptr inbounds float* %tmp5977, i64 1
+ %tmp5979 = getelementptr inbounds float* %tmp5978, i64 1
+ %tmp5980 = getelementptr inbounds float* %tmp5979, i64 1
+ %tmp5981 = getelementptr inbounds float* %tmp5980, i64 1
+ %tmp5982 = getelementptr inbounds float* %tmp5981, i64 1
+ %tmp5983 = getelementptr inbounds float* %tmp5982, i64 1
+ %tmp5984 = getelementptr inbounds float* %tmp5983, i64 1
+ %tmp5985 = getelementptr inbounds float* %tmp5984, i64 1
+ %tmp5986 = getelementptr inbounds float* %tmp5985, i64 1
+ %tmp5987 = getelementptr inbounds float* %tmp5986, i64 1
+ %tmp5988 = getelementptr inbounds float* %tmp5987, i64 1
+ %tmp5989 = getelementptr inbounds float* %tmp5988, i64 1
+ %tmp5990 = getelementptr inbounds float* %tmp5989, i64 1
+ %tmp5991 = getelementptr inbounds float* %tmp5990, i64 1
+ %tmp5992 = getelementptr inbounds float* %tmp5991, i64 1
+ %tmp5993 = getelementptr inbounds float* %tmp5992, i64 1
+ %tmp5994 = getelementptr inbounds float* %tmp5993, i64 1
+ %tmp5995 = getelementptr inbounds float* %tmp5994, i64 1
+ %tmp5996 = getelementptr inbounds float* %tmp5995, i64 1
+ %tmp5997 = getelementptr inbounds float* %tmp5996, i64 1
+ %tmp5998 = getelementptr inbounds float* %tmp5997, i64 1
+ %tmp5999 = getelementptr inbounds float* %tmp5998, i64 1
+ %tmp6000 = getelementptr inbounds float* %tmp5999, i64 1
+ %tmp6001 = getelementptr inbounds float* %tmp6000, i64 1
+ %tmp6002 = getelementptr inbounds float* %tmp6001, i64 1
+ %tmp6003 = getelementptr inbounds float* %tmp6002, i64 1
+ %tmp6004 = getelementptr inbounds float* %tmp6003, i64 1
+ %tmp6005 = getelementptr inbounds float* %tmp6004, i64 1
+ %tmp6006 = getelementptr inbounds float* %tmp6005, i64 1
+ %tmp6007 = getelementptr inbounds float* %tmp6006, i64 1
+ %tmp6008 = getelementptr inbounds float* %tmp6007, i64 1
+ %tmp6009 = getelementptr inbounds float* %tmp6008, i64 1
+ %tmp6010 = getelementptr inbounds float* %tmp6009, i64 1
+ %tmp6011 = getelementptr inbounds float* %tmp6010, i64 1
+ %tmp6012 = getelementptr inbounds float* %tmp6011, i64 1
+ %tmp6013 = getelementptr inbounds float* %tmp6012, i64 1
+ %tmp6014 = getelementptr inbounds float* %tmp6013, i64 1
+ %tmp6015 = getelementptr inbounds float* %tmp6014, i64 1
+ %tmp6016 = getelementptr inbounds float* %tmp6015, i64 1
+ %tmp6017 = getelementptr inbounds float* %tmp6016, i64 1
+ %tmp6018 = getelementptr inbounds float* %tmp6017, i64 1
+ %tmp6019 = getelementptr inbounds float* %tmp6018, i64 1
+ %tmp6020 = getelementptr inbounds float* %tmp6019, i64 1
+ %tmp6021 = getelementptr inbounds float* %tmp6020, i64 1
+ %tmp6022 = getelementptr inbounds float* %tmp6021, i64 1
+ %tmp6023 = getelementptr inbounds float* %tmp6022, i64 1
+ %tmp6024 = getelementptr inbounds float* %tmp6023, i64 1
+ %tmp6025 = getelementptr inbounds float* %tmp6024, i64 1
+ %tmp6026 = getelementptr inbounds float* %tmp6025, i64 1
+ %tmp6027 = getelementptr inbounds float* %tmp6026, i64 1
+ %tmp6028 = getelementptr inbounds float* %tmp6027, i64 1
+ %tmp6029 = getelementptr inbounds float* %tmp6028, i64 1
+ %tmp6030 = getelementptr inbounds float* %tmp6029, i64 1
+ %tmp6031 = getelementptr inbounds float* %tmp6030, i64 1
+ %tmp6032 = getelementptr inbounds float* %tmp6031, i64 1
+ %tmp6033 = getelementptr inbounds float* %tmp6032, i64 1
+ %tmp6034 = getelementptr inbounds float* %tmp6033, i64 1
+ %tmp6035 = getelementptr inbounds float* %tmp6034, i64 1
+ %tmp6036 = getelementptr inbounds float* %tmp6035, i64 1
+ %tmp6037 = getelementptr inbounds float* %tmp6036, i64 1
+ %tmp6038 = getelementptr inbounds float* %tmp6037, i64 1
+ %tmp6039 = getelementptr inbounds float* %tmp6038, i64 1
+ %tmp6040 = getelementptr inbounds float* %tmp6039, i64 1
+ %tmp6041 = getelementptr inbounds float* %tmp6040, i64 1
+ %tmp6042 = getelementptr inbounds float* %tmp6041, i64 1
+ %tmp6043 = getelementptr inbounds float* %tmp6042, i64 1
+ %tmp6044 = getelementptr inbounds float* %tmp6043, i64 1
+ %tmp6045 = getelementptr inbounds float* %tmp6044, i64 1
+ %tmp6046 = getelementptr inbounds float* %tmp6045, i64 1
+ %tmp6047 = getelementptr inbounds float* %tmp6046, i64 1
+ %tmp6048 = getelementptr inbounds float* %tmp6047, i64 1
+ %tmp6049 = getelementptr inbounds float* %tmp6048, i64 1
+ %tmp6050 = getelementptr inbounds float* %tmp6049, i64 1
+ %tmp6051 = getelementptr inbounds float* %tmp6050, i64 1
+ %tmp6052 = getelementptr inbounds float* %tmp6051, i64 1
+ %tmp6053 = getelementptr inbounds float* %tmp6052, i64 1
+ %tmp6054 = getelementptr inbounds float* %tmp6053, i64 1
+ %tmp6055 = getelementptr inbounds float* %tmp6054, i64 1
+ %tmp6056 = getelementptr inbounds float* %tmp6055, i64 1
+ %tmp6057 = getelementptr inbounds float* %tmp6056, i64 1
+ %tmp6058 = getelementptr inbounds float* %tmp6057, i64 1
+ %tmp6059 = getelementptr inbounds float* %tmp6058, i64 1
+ %tmp6060 = getelementptr inbounds float* %tmp6059, i64 1
+ %tmp6061 = getelementptr inbounds float* %tmp6060, i64 1
+ %tmp6062 = getelementptr inbounds float* %tmp6061, i64 1
+ %tmp6063 = getelementptr inbounds float* %tmp6062, i64 1
+ %tmp6064 = getelementptr inbounds float* %tmp6063, i64 1
+ %tmp6065 = getelementptr inbounds float* %tmp6064, i64 1
+ %tmp6066 = getelementptr inbounds float* %tmp6065, i64 1
+ %tmp6067 = getelementptr inbounds float* %tmp6066, i64 1
+ %tmp6068 = getelementptr inbounds float* %tmp6067, i64 1
+ %tmp6069 = getelementptr inbounds float* %tmp6068, i64 1
+ %tmp6070 = getelementptr inbounds float* %tmp6069, i64 1
+ %tmp6071 = getelementptr inbounds float* %tmp6070, i64 1
+ %tmp6072 = getelementptr inbounds float* %tmp6071, i64 1
+ %tmp6073 = getelementptr inbounds float* %tmp6072, i64 1
+ %tmp6074 = getelementptr inbounds float* %tmp6073, i64 1
+ %tmp6075 = getelementptr inbounds float* %tmp6074, i64 1
+ %tmp6076 = getelementptr inbounds float* %tmp6075, i64 1
+ %tmp6077 = getelementptr inbounds float* %tmp6076, i64 1
+ %tmp6078 = getelementptr inbounds float* %tmp6077, i64 1
+ %tmp6079 = getelementptr inbounds float* %tmp6078, i64 1
+ %tmp6080 = getelementptr inbounds float* %tmp6079, i64 1
+ %tmp6081 = getelementptr inbounds float* %tmp6080, i64 1
+ %tmp6082 = getelementptr inbounds float* %tmp6081, i64 1
+ %tmp6083 = getelementptr inbounds float* %tmp6082, i64 1
+ %tmp6084 = getelementptr inbounds float* %tmp6083, i64 1
+ %tmp6085 = getelementptr inbounds float* %tmp6084, i64 1
+ %tmp6086 = getelementptr inbounds float* %tmp6085, i64 1
+ %tmp6087 = getelementptr inbounds float* %tmp6086, i64 1
+ %tmp6088 = getelementptr inbounds float* %tmp6087, i64 1
+ %tmp6089 = getelementptr inbounds float* %tmp6088, i64 1
+ %tmp6090 = getelementptr inbounds float* %tmp6089, i64 1
+ %tmp6091 = getelementptr inbounds float* %tmp6090, i64 1
+ %tmp6092 = getelementptr inbounds float* %tmp6091, i64 1
+ %tmp6093 = getelementptr inbounds float* %tmp6092, i64 1
+ %tmp6094 = getelementptr inbounds float* %tmp6093, i64 1
+ %tmp6095 = getelementptr inbounds float* %tmp6094, i64 1
+ %tmp6096 = getelementptr inbounds float* %tmp6095, i64 1
+ %tmp6097 = getelementptr inbounds float* %tmp6096, i64 1
+ %tmp6098 = getelementptr inbounds float* %tmp6097, i64 1
+ %tmp6099 = getelementptr inbounds float* %tmp6098, i64 1
+ %tmp6100 = getelementptr inbounds float* %tmp6099, i64 1
+ %tmp6101 = getelementptr inbounds float* %tmp6100, i64 1
+ %tmp6102 = getelementptr inbounds float* %tmp6101, i64 1
+ %tmp6103 = getelementptr inbounds float* %tmp6102, i64 1
+ %tmp6104 = getelementptr inbounds float* %tmp6103, i64 1
+ %tmp6105 = getelementptr inbounds float* %tmp6104, i64 1
+ %tmp6106 = getelementptr inbounds float* %tmp6105, i64 1
+ %tmp6107 = getelementptr inbounds float* %tmp6106, i64 1
+ %tmp6108 = getelementptr inbounds float* %tmp6107, i64 1
+ %tmp6109 = getelementptr inbounds float* %tmp6108, i64 1
+ %tmp6110 = getelementptr inbounds float* %tmp6109, i64 1
+ %tmp6111 = getelementptr inbounds float* %tmp6110, i64 1
+ %tmp6112 = getelementptr inbounds float* %tmp6111, i64 1
+ %tmp6113 = getelementptr inbounds float* %tmp6112, i64 1
+ %tmp6114 = getelementptr inbounds float* %tmp6113, i64 1
+ %tmp6115 = getelementptr inbounds float* %tmp6114, i64 1
+ %tmp6116 = getelementptr inbounds float* %tmp6115, i64 1
+ %tmp6117 = getelementptr inbounds float* %tmp6116, i64 1
+ %tmp6118 = getelementptr inbounds float* %tmp6117, i64 1
+ %tmp6119 = getelementptr inbounds float* %tmp6118, i64 1
+ %tmp6120 = getelementptr inbounds float* %tmp6119, i64 1
+ %tmp6121 = getelementptr inbounds float* %tmp6120, i64 1
+ %tmp6122 = getelementptr inbounds float* %tmp6121, i64 1
+ %tmp6123 = getelementptr inbounds float* %tmp6122, i64 1
+ %tmp6124 = getelementptr inbounds float* %tmp6123, i64 1
+ %tmp6125 = getelementptr inbounds float* %tmp6124, i64 1
+ %tmp6126 = getelementptr inbounds float* %tmp6125, i64 1
+ %tmp6127 = getelementptr inbounds float* %tmp6126, i64 1
+ %tmp6128 = getelementptr inbounds float* %tmp6127, i64 1
+ %tmp6129 = getelementptr inbounds float* %tmp6128, i64 1
+ %tmp6130 = getelementptr inbounds float* %tmp6129, i64 1
+ %tmp6131 = getelementptr inbounds float* %tmp6130, i64 1
+ %tmp6132 = getelementptr inbounds float* %tmp6131, i64 1
+ %tmp6133 = getelementptr inbounds float* %tmp6132, i64 1
+ %tmp6134 = getelementptr inbounds float* %tmp6133, i64 1
+ %tmp6135 = getelementptr inbounds float* %tmp6134, i64 1
+ %tmp6136 = getelementptr inbounds float* %tmp6135, i64 1
+ %tmp6137 = getelementptr inbounds float* %tmp6136, i64 1
+ %tmp6138 = getelementptr inbounds float* %tmp6137, i64 1
+ %tmp6139 = getelementptr inbounds float* %tmp6138, i64 1
+ %tmp6140 = getelementptr inbounds float* %tmp6139, i64 1
+ %tmp6141 = getelementptr inbounds float* %tmp6140, i64 1
+ %tmp6142 = getelementptr inbounds float* %tmp6141, i64 1
+ %tmp6143 = getelementptr inbounds float* %tmp6142, i64 1
+ %tmp6144 = getelementptr inbounds float* %tmp6143, i64 1
+ %tmp6145 = getelementptr inbounds float* %tmp6144, i64 1
+ %tmp6146 = getelementptr inbounds float* %tmp6145, i64 1
+ %tmp6147 = getelementptr inbounds float* %tmp6146, i64 1
+ %tmp6148 = getelementptr inbounds float* %tmp6147, i64 1
+ %tmp6149 = getelementptr inbounds float* %tmp6148, i64 1
+ %tmp6150 = getelementptr inbounds float* %tmp6149, i64 1
+ %tmp6151 = getelementptr inbounds float* %tmp6150, i64 1
+ %tmp6152 = getelementptr inbounds float* %tmp6151, i64 1
+ %tmp6153 = getelementptr inbounds float* %tmp6152, i64 1
+ %tmp6154 = getelementptr inbounds float* %tmp6153, i64 1
+ %tmp6155 = getelementptr inbounds float* %tmp6154, i64 1
+ %tmp6156 = getelementptr inbounds float* %tmp6155, i64 1
+ %tmp6157 = getelementptr inbounds float* %tmp6156, i64 1
+ %tmp6158 = getelementptr inbounds float* %tmp6157, i64 1
+ %tmp6159 = getelementptr inbounds float* %tmp6158, i64 1
+ %tmp6160 = getelementptr inbounds float* %tmp6159, i64 1
+ %tmp6161 = getelementptr inbounds float* %tmp6160, i64 1
+ %tmp6162 = getelementptr inbounds float* %tmp6161, i64 1
+ %tmp6163 = getelementptr inbounds float* %tmp6162, i64 1
+ %tmp6164 = getelementptr inbounds float* %tmp6163, i64 1
+ %tmp6165 = getelementptr inbounds float* %tmp6164, i64 1
+ %tmp6166 = getelementptr inbounds float* %tmp6165, i64 1
+ %tmp6167 = getelementptr inbounds float* %tmp6166, i64 1
+ %tmp6168 = getelementptr inbounds float* %tmp6167, i64 1
+ %tmp6169 = getelementptr inbounds float* %tmp6168, i64 1
+ %tmp6170 = getelementptr inbounds float* %tmp6169, i64 1
+ %tmp6171 = getelementptr inbounds float* %tmp6170, i64 1
+ %tmp6172 = getelementptr inbounds float* %tmp6171, i64 1
+ %tmp6173 = getelementptr inbounds float* %tmp6172, i64 1
+ %tmp6174 = getelementptr inbounds float* %tmp6173, i64 1
+ %tmp6175 = getelementptr inbounds float* %tmp6174, i64 1
+ %tmp6176 = getelementptr inbounds float* %tmp6175, i64 1
+ %tmp6177 = getelementptr inbounds float* %tmp6176, i64 1
+ %tmp6178 = getelementptr inbounds float* %tmp6177, i64 1
+ %tmp6179 = getelementptr inbounds float* %tmp6178, i64 1
+ %tmp6180 = getelementptr inbounds float* %tmp6179, i64 1
+ %tmp6181 = getelementptr inbounds float* %tmp6180, i64 1
+ %tmp6182 = getelementptr inbounds float* %tmp6181, i64 1
+ %tmp6183 = getelementptr inbounds float* %tmp6182, i64 1
+ %tmp6184 = getelementptr inbounds float* %tmp6183, i64 1
+ %tmp6185 = getelementptr inbounds float* %tmp6184, i64 1
+ %tmp6186 = getelementptr inbounds float* %tmp6185, i64 1
+ %tmp6187 = getelementptr inbounds float* %tmp6186, i64 1
+ %tmp6188 = getelementptr inbounds float* %tmp6187, i64 1
+ %tmp6189 = getelementptr inbounds float* %tmp6188, i64 1
+ %tmp6190 = getelementptr inbounds float* %tmp6189, i64 1
+ %tmp6191 = getelementptr inbounds float* %tmp6190, i64 1
+ %tmp6192 = getelementptr inbounds float* %tmp6191, i64 1
+ %tmp6193 = getelementptr inbounds float* %tmp6192, i64 1
+ %tmp6194 = getelementptr inbounds float* %tmp6193, i64 1
+ %tmp6195 = getelementptr inbounds float* %tmp6194, i64 1
+ %tmp6196 = getelementptr inbounds float* %tmp6195, i64 1
+ %tmp6197 = getelementptr inbounds float* %tmp6196, i64 1
+ %tmp6198 = getelementptr inbounds float* %tmp6197, i64 1
+ %tmp6199 = getelementptr inbounds float* %tmp6198, i64 1
+ %tmp6200 = getelementptr inbounds float* %tmp6199, i64 1
+ %tmp6201 = getelementptr inbounds float* %tmp6200, i64 1
+ %tmp6202 = getelementptr inbounds float* %tmp6201, i64 1
+ %tmp6203 = getelementptr inbounds float* %tmp6202, i64 1
+ %tmp6204 = getelementptr inbounds float* %tmp6203, i64 1
+ %tmp6205 = getelementptr inbounds float* %tmp6204, i64 1
+ %tmp6206 = getelementptr inbounds float* %tmp6205, i64 1
+ %tmp6207 = getelementptr inbounds float* %tmp6206, i64 1
+ %tmp6208 = getelementptr inbounds float* %tmp6207, i64 1
+ %tmp6209 = getelementptr inbounds float* %tmp6208, i64 1
+ %tmp6210 = getelementptr inbounds float* %tmp6209, i64 1
+ %tmp6211 = getelementptr inbounds float* %tmp6210, i64 1
+ %tmp6212 = getelementptr inbounds float* %tmp6211, i64 1
+ %tmp6213 = getelementptr inbounds float* %tmp6212, i64 1
+ %tmp6214 = getelementptr inbounds float* %tmp6213, i64 1
+ %tmp6215 = getelementptr inbounds float* %tmp6214, i64 1
+ %tmp6216 = getelementptr inbounds float* %tmp6215, i64 1
+ %tmp6217 = getelementptr inbounds float* %tmp6216, i64 1
+ %tmp6218 = getelementptr inbounds float* %tmp6217, i64 1
+ %tmp6219 = getelementptr inbounds float* %tmp6218, i64 1
+ %tmp6220 = getelementptr inbounds float* %tmp6219, i64 1
+ %tmp6221 = getelementptr inbounds float* %tmp6220, i64 1
+ %tmp6222 = getelementptr inbounds float* %tmp6221, i64 1
+ %tmp6223 = getelementptr inbounds float* %tmp6222, i64 1
+ %tmp6224 = getelementptr inbounds float* %tmp6223, i64 1
+ %tmp6225 = getelementptr inbounds float* %tmp6224, i64 1
+ %tmp6226 = getelementptr inbounds float* %tmp6225, i64 1
+ %tmp6227 = getelementptr inbounds float* %tmp6226, i64 1
+ %tmp6228 = getelementptr inbounds float* %tmp6227, i64 1
+ %tmp6229 = getelementptr inbounds float* %tmp6228, i64 1
+ %tmp6230 = getelementptr inbounds float* %tmp6229, i64 1
+ %tmp6231 = getelementptr inbounds float* %tmp6230, i64 1
+ %tmp6232 = getelementptr inbounds float* %tmp6231, i64 1
+ %tmp6233 = getelementptr inbounds float* %tmp6232, i64 1
+ %tmp6234 = getelementptr inbounds float* %tmp6233, i64 1
+ %tmp6235 = getelementptr inbounds float* %tmp6234, i64 1
+ %tmp6236 = getelementptr inbounds float* %tmp6235, i64 1
+ %tmp6237 = getelementptr inbounds float* %tmp6236, i64 1
+ %tmp6238 = getelementptr inbounds float* %tmp6237, i64 1
+ %tmp6239 = getelementptr inbounds float* %tmp6238, i64 1
+ %tmp6240 = getelementptr inbounds float* %tmp6239, i64 1
+ %tmp6241 = getelementptr inbounds float* %tmp6240, i64 1
+ %tmp6242 = getelementptr inbounds float* %tmp6241, i64 1
+ %tmp6243 = getelementptr inbounds float* %tmp6242, i64 1
+ %tmp6244 = getelementptr inbounds float* %tmp6243, i64 1
+ %tmp6245 = getelementptr inbounds float* %tmp6244, i64 1
+ %tmp6246 = getelementptr inbounds float* %tmp6245, i64 1
+ %tmp6247 = getelementptr inbounds float* %tmp6246, i64 1
+ %tmp6248 = getelementptr inbounds float* %tmp6247, i64 1
+ %tmp6249 = getelementptr inbounds float* %tmp6248, i64 1
+ %tmp6250 = getelementptr inbounds float* %tmp6249, i64 1
+ %tmp6251 = getelementptr inbounds float* %tmp6250, i64 1
+ %tmp6252 = getelementptr inbounds float* %tmp6251, i64 1
+ %tmp6253 = getelementptr inbounds float* %tmp6252, i64 1
+ %tmp6254 = getelementptr inbounds float* %tmp6253, i64 1
+ %tmp6255 = getelementptr inbounds float* %tmp6254, i64 1
+ %tmp6256 = getelementptr inbounds float* %tmp6255, i64 1
+ %tmp6257 = getelementptr inbounds float* %tmp6256, i64 1
+ %tmp6258 = getelementptr inbounds float* %tmp6257, i64 1
+ %tmp6259 = getelementptr inbounds float* %tmp6258, i64 1
+ %tmp6260 = getelementptr inbounds float* %tmp6259, i64 1
+ %tmp6261 = getelementptr inbounds float* %tmp6260, i64 1
+ %tmp6262 = getelementptr inbounds float* %tmp6261, i64 1
+ %tmp6263 = getelementptr inbounds float* %tmp6262, i64 1
+ %tmp6264 = getelementptr inbounds float* %tmp6263, i64 1
+ %tmp6265 = getelementptr inbounds float* %tmp6264, i64 1
+ %tmp6266 = getelementptr inbounds float* %tmp6265, i64 1
+ %tmp6267 = getelementptr inbounds float* %tmp6266, i64 1
+ %tmp6268 = getelementptr inbounds float* %tmp6267, i64 1
+ %tmp6269 = getelementptr inbounds float* %tmp6268, i64 1
+ %tmp6270 = getelementptr inbounds float* %tmp6269, i64 1
+ %tmp6271 = getelementptr inbounds float* %tmp6270, i64 1
+ %tmp6272 = getelementptr inbounds float* %tmp6271, i64 1
+ %tmp6273 = getelementptr inbounds float* %tmp6272, i64 1
+ %tmp6274 = getelementptr inbounds float* %tmp6273, i64 1
+ %tmp6275 = getelementptr inbounds float* %tmp6274, i64 1
+ %tmp6276 = getelementptr inbounds float* %tmp6275, i64 1
+ %tmp6277 = getelementptr inbounds float* %tmp6276, i64 1
+ %tmp6278 = getelementptr inbounds float* %tmp6277, i64 1
+ %tmp6279 = getelementptr inbounds float* %tmp6278, i64 1
+ %tmp6280 = getelementptr inbounds float* %tmp6279, i64 1
+ %tmp6281 = getelementptr inbounds float* %tmp6280, i64 1
+ %tmp6282 = getelementptr inbounds float* %tmp6281, i64 1
+ %tmp6283 = getelementptr inbounds float* %tmp6282, i64 1
+ %tmp6284 = getelementptr inbounds float* %tmp6283, i64 1
+ %tmp6285 = getelementptr inbounds float* %tmp6284, i64 1
+ %tmp6286 = getelementptr inbounds float* %tmp6285, i64 1
+ %tmp6287 = getelementptr inbounds float* %tmp6286, i64 1
+ %tmp6288 = getelementptr inbounds float* %tmp6287, i64 1
+ %tmp6289 = getelementptr inbounds float* %tmp6288, i64 1
+ %tmp6290 = getelementptr inbounds float* %tmp6289, i64 1
+ %tmp6291 = getelementptr inbounds float* %tmp6290, i64 1
+ %tmp6292 = getelementptr inbounds float* %tmp6291, i64 1
+ %tmp6293 = getelementptr inbounds float* %tmp6292, i64 1
+ %tmp6294 = getelementptr inbounds float* %tmp6293, i64 1
+ %tmp6295 = getelementptr inbounds float* %tmp6294, i64 1
+ %tmp6296 = getelementptr inbounds float* %tmp6295, i64 1
+ %tmp6297 = getelementptr inbounds float* %tmp6296, i64 1
+ %tmp6298 = getelementptr inbounds float* %tmp6297, i64 1
+ %tmp6299 = getelementptr inbounds float* %tmp6298, i64 1
+ %tmp6300 = getelementptr inbounds float* %tmp6299, i64 1
+ %tmp6301 = getelementptr inbounds float* %tmp6300, i64 1
+ %tmp6302 = getelementptr inbounds float* %tmp6301, i64 1
+ %tmp6303 = getelementptr inbounds float* %tmp6302, i64 1
+ %tmp6304 = getelementptr inbounds float* %tmp6303, i64 1
+ %tmp6305 = getelementptr inbounds float* %tmp6304, i64 1
+ %tmp6306 = getelementptr inbounds float* %tmp6305, i64 1
+ %tmp6307 = getelementptr inbounds float* %tmp6306, i64 1
+ %tmp6308 = getelementptr inbounds float* %tmp6307, i64 1
+ %tmp6309 = getelementptr inbounds float* %tmp6308, i64 1
+ %tmp6310 = getelementptr inbounds float* %tmp6309, i64 1
+ %tmp6311 = getelementptr inbounds float* %tmp6310, i64 1
+ %tmp6312 = getelementptr inbounds float* %tmp6311, i64 1
+ %tmp6313 = getelementptr inbounds float* %tmp6312, i64 1
+ %tmp6314 = getelementptr inbounds float* %tmp6313, i64 1
+ %tmp6315 = getelementptr inbounds float* %tmp6314, i64 1
+ %tmp6316 = getelementptr inbounds float* %tmp6315, i64 1
+ %tmp6317 = getelementptr inbounds float* %tmp6316, i64 1
+ %tmp6318 = getelementptr inbounds float* %tmp6317, i64 1
+ %tmp6319 = getelementptr inbounds float* %tmp6318, i64 1
+ %tmp6320 = getelementptr inbounds float* %tmp6319, i64 1
+ %tmp6321 = getelementptr inbounds float* %tmp6320, i64 1
+ %tmp6322 = getelementptr inbounds float* %tmp6321, i64 1
+ %tmp6323 = getelementptr inbounds float* %tmp6322, i64 1
+ %tmp6324 = getelementptr inbounds float* %tmp6323, i64 1
+ %tmp6325 = getelementptr inbounds float* %tmp6324, i64 1
+ %tmp6326 = getelementptr inbounds float* %tmp6325, i64 1
+ %tmp6327 = getelementptr inbounds float* %tmp6326, i64 1
+ %tmp6328 = getelementptr inbounds float* %tmp6327, i64 1
+ %tmp6329 = getelementptr inbounds float* %tmp6328, i64 1
+ %tmp6330 = getelementptr inbounds float* %tmp6329, i64 1
+ %tmp6331 = getelementptr inbounds float* %tmp6330, i64 1
+ %tmp6332 = getelementptr inbounds float* %tmp6331, i64 1
+ %tmp6333 = getelementptr inbounds float* %tmp6332, i64 1
+ %tmp6334 = getelementptr inbounds float* %tmp6333, i64 1
+ %tmp6335 = getelementptr inbounds float* %tmp6334, i64 1
+ %tmp6336 = getelementptr inbounds float* %tmp6335, i64 1
+ %tmp6337 = getelementptr inbounds float* %tmp6336, i64 1
+ %tmp6338 = getelementptr inbounds float* %tmp6337, i64 1
+ %tmp6339 = getelementptr inbounds float* %tmp6338, i64 1
+ %tmp6340 = getelementptr inbounds float* %tmp6339, i64 1
+ %tmp6341 = getelementptr inbounds float* %tmp6340, i64 1
+ %tmp6342 = getelementptr inbounds float* %tmp6341, i64 1
+ %tmp6343 = getelementptr inbounds float* %tmp6342, i64 1
+ %tmp6344 = getelementptr inbounds float* %tmp6343, i64 1
+ %tmp6345 = getelementptr inbounds float* %tmp6344, i64 1
+ %tmp6346 = getelementptr inbounds float* %tmp6345, i64 1
+ %tmp6347 = getelementptr inbounds float* %tmp6346, i64 1
+ %tmp6348 = getelementptr inbounds float* %tmp6347, i64 1
+ %tmp6349 = getelementptr inbounds float* %tmp6348, i64 1
+ %tmp6350 = getelementptr inbounds float* %tmp6349, i64 1
+ %tmp6351 = getelementptr inbounds float* %tmp6350, i64 1
+ %tmp6352 = getelementptr inbounds float* %tmp6351, i64 1
+ %tmp6353 = getelementptr inbounds float* %tmp6352, i64 1
+ %tmp6354 = getelementptr inbounds float* %tmp6353, i64 1
+ %tmp6355 = getelementptr inbounds float* %tmp6354, i64 1
+ %tmp6356 = getelementptr inbounds float* %tmp6355, i64 1
+ %tmp6357 = getelementptr inbounds float* %tmp6356, i64 1
+ %tmp6358 = getelementptr inbounds float* %tmp6357, i64 1
+ %tmp6359 = getelementptr inbounds float* %tmp6358, i64 1
+ %tmp6360 = getelementptr inbounds float* %tmp6359, i64 1
+ %tmp6361 = getelementptr inbounds float* %tmp6360, i64 1
+ %tmp6362 = getelementptr inbounds float* %tmp6361, i64 1
+ %tmp6363 = getelementptr inbounds float* %tmp6362, i64 1
+ %tmp6364 = getelementptr inbounds float* %tmp6363, i64 1
+ %tmp6365 = getelementptr inbounds float* %tmp6364, i64 1
+ %tmp6366 = getelementptr inbounds float* %tmp6365, i64 1
+ %tmp6367 = getelementptr inbounds float* %tmp6366, i64 1
+ %tmp6368 = getelementptr inbounds float* %tmp6367, i64 1
+ %tmp6369 = getelementptr inbounds float* %tmp6368, i64 1
+ %tmp6370 = getelementptr inbounds float* %tmp6369, i64 1
+ %tmp6371 = getelementptr inbounds float* %tmp6370, i64 1
+ %tmp6372 = getelementptr inbounds float* %tmp6371, i64 1
+ %tmp6373 = getelementptr inbounds float* %tmp6372, i64 1
+ %tmp6374 = getelementptr inbounds float* %tmp6373, i64 1
+ %tmp6375 = getelementptr inbounds float* %tmp6374, i64 1
+ %tmp6376 = getelementptr inbounds float* %tmp6375, i64 1
+ %tmp6377 = getelementptr inbounds float* %tmp6376, i64 1
+ %tmp6378 = getelementptr inbounds float* %tmp6377, i64 1
+ %tmp6379 = getelementptr inbounds float* %tmp6378, i64 1
+ %tmp6380 = getelementptr inbounds float* %tmp6379, i64 1
+ %tmp6381 = getelementptr inbounds float* %tmp6380, i64 1
+ %tmp6382 = getelementptr inbounds float* %tmp6381, i64 1
+ %tmp6383 = getelementptr inbounds float* %tmp6382, i64 1
+ %tmp6384 = getelementptr inbounds float* %tmp6383, i64 1
+ %tmp6385 = getelementptr inbounds float* %tmp6384, i64 1
+ %tmp6386 = getelementptr inbounds float* %tmp6385, i64 1
+ %tmp6387 = getelementptr inbounds float* %tmp6386, i64 1
+ %tmp6388 = getelementptr inbounds float* %tmp6387, i64 1
+ %tmp6389 = getelementptr inbounds float* %tmp6388, i64 1
+ %tmp6390 = getelementptr inbounds float* %tmp6389, i64 1
+ %tmp6391 = getelementptr inbounds float* %tmp6390, i64 1
+ %tmp6392 = getelementptr inbounds float* %tmp6391, i64 1
+ %tmp6393 = getelementptr inbounds float* %tmp6392, i64 1
+ %tmp6394 = getelementptr inbounds float* %tmp6393, i64 1
+ %tmp6395 = getelementptr inbounds float* %tmp6394, i64 1
+ %tmp6396 = getelementptr inbounds float* %tmp6395, i64 1
+ %tmp6397 = getelementptr inbounds float* %tmp6396, i64 1
+ %tmp6398 = getelementptr inbounds float* %tmp6397, i64 1
+ %tmp6399 = getelementptr inbounds float* %tmp6398, i64 1
+ %tmp6400 = getelementptr inbounds float* %tmp6399, i64 1
+ %tmp6401 = getelementptr inbounds float* %tmp6400, i64 1
+ %tmp6402 = getelementptr inbounds float* %tmp6401, i64 1
+ %tmp6403 = getelementptr inbounds float* %tmp6402, i64 1
+ %tmp6404 = getelementptr inbounds float* %tmp6403, i64 1
+ %tmp6405 = getelementptr inbounds float* %tmp6404, i64 1
+ %tmp6406 = getelementptr inbounds float* %tmp6405, i64 1
+ %tmp6407 = getelementptr inbounds float* %tmp6406, i64 1
+ %tmp6408 = getelementptr inbounds float* %tmp6407, i64 1
+ %tmp6409 = getelementptr inbounds float* %tmp6408, i64 1
+ %tmp6410 = getelementptr inbounds float* %tmp6409, i64 1
+ %tmp6411 = getelementptr inbounds float* %tmp6410, i64 1
+ %tmp6412 = getelementptr inbounds float* %tmp6411, i64 1
+ %tmp6413 = getelementptr inbounds float* %tmp6412, i64 1
+ %tmp6414 = getelementptr inbounds float* %tmp6413, i64 1
+ %tmp6415 = getelementptr inbounds float* %tmp6414, i64 1
+ %tmp6416 = getelementptr inbounds float* %tmp6415, i64 1
+ %tmp6417 = getelementptr inbounds float* %tmp6416, i64 1
+ %tmp6418 = getelementptr inbounds float* %tmp6417, i64 1
+ %tmp6419 = getelementptr inbounds float* %tmp6418, i64 1
+ %tmp6420 = getelementptr inbounds float* %tmp6419, i64 1
+ %tmp6421 = getelementptr inbounds float* %tmp6420, i64 1
+ %tmp6422 = getelementptr inbounds float* %tmp6421, i64 1
+ %tmp6423 = getelementptr inbounds float* %tmp6422, i64 1
+ %tmp6424 = getelementptr inbounds float* %tmp6423, i64 1
+ %tmp6425 = getelementptr inbounds float* %tmp6424, i64 1
+ %tmp6426 = getelementptr inbounds float* %tmp6425, i64 1
+ %tmp6427 = getelementptr inbounds float* %tmp6426, i64 1
+ %tmp6428 = getelementptr inbounds float* %tmp6427, i64 1
+ %tmp6429 = getelementptr inbounds float* %tmp6428, i64 1
+ %tmp6430 = getelementptr inbounds float* %tmp6429, i64 1
+ %tmp6431 = getelementptr inbounds float* %tmp6430, i64 1
+ %tmp6432 = getelementptr inbounds float* %tmp6431, i64 1
+ %tmp6433 = getelementptr inbounds float* %tmp6432, i64 1
+ %tmp6434 = getelementptr inbounds float* %tmp6433, i64 1
+ %tmp6435 = getelementptr inbounds float* %tmp6434, i64 1
+ %tmp6436 = getelementptr inbounds float* %tmp6435, i64 1
+ %tmp6437 = getelementptr inbounds float* %tmp6436, i64 1
+ %tmp6438 = getelementptr inbounds float* %tmp6437, i64 1
+ %tmp6439 = getelementptr inbounds float* %tmp6438, i64 1
+ %tmp6440 = getelementptr inbounds float* %tmp6439, i64 1
+ %tmp6441 = getelementptr inbounds float* %tmp6440, i64 1
+ %tmp6442 = getelementptr inbounds float* %tmp6441, i64 1
+ %tmp6443 = getelementptr inbounds float* %tmp6442, i64 1
+ %tmp6444 = getelementptr inbounds float* %tmp6443, i64 1
+ %tmp6445 = getelementptr inbounds float* %tmp6444, i64 1
+ %tmp6446 = getelementptr inbounds float* %tmp6445, i64 1
+ %tmp6447 = getelementptr inbounds float* %tmp6446, i64 1
+ %tmp6448 = getelementptr inbounds float* %tmp6447, i64 1
+ %tmp6449 = getelementptr inbounds float* %tmp6448, i64 1
+ %tmp6450 = getelementptr inbounds float* %tmp6449, i64 1
+ %tmp6451 = getelementptr inbounds float* %tmp6450, i64 1
+ %tmp6452 = getelementptr inbounds float* %tmp6451, i64 1
+ %tmp6453 = getelementptr inbounds float* %tmp6452, i64 1
+ %tmp6454 = getelementptr inbounds float* %tmp6453, i64 1
+ %tmp6455 = getelementptr inbounds float* %tmp6454, i64 1
+ %tmp6456 = getelementptr inbounds float* %tmp6455, i64 1
+ %tmp6457 = getelementptr inbounds float* %tmp6456, i64 1
+ %tmp6458 = getelementptr inbounds float* %tmp6457, i64 1
+ %tmp6459 = getelementptr inbounds float* %tmp6458, i64 1
+ %tmp6460 = getelementptr inbounds float* %tmp6459, i64 1
+ %tmp6461 = getelementptr inbounds float* %tmp6460, i64 1
+ %tmp6462 = getelementptr inbounds float* %tmp6461, i64 1
+ %tmp6463 = getelementptr inbounds float* %tmp6462, i64 1
+ %tmp6464 = getelementptr inbounds float* %tmp6463, i64 1
+ %tmp6465 = getelementptr inbounds float* %tmp6464, i64 1
+ %tmp6466 = getelementptr inbounds float* %tmp6465, i64 1
+ %tmp6467 = getelementptr inbounds float* %tmp6466, i64 1
+ %tmp6468 = getelementptr inbounds float* %tmp6467, i64 1
+ %tmp6469 = getelementptr inbounds float* %tmp6468, i64 1
+ %tmp6470 = getelementptr inbounds float* %tmp6469, i64 1
+ %tmp6471 = getelementptr inbounds float* %tmp6470, i64 1
+ %tmp6472 = getelementptr inbounds float* %tmp6471, i64 1
+ %tmp6473 = getelementptr inbounds float* %tmp6472, i64 1
+ %tmp6474 = getelementptr inbounds float* %tmp6473, i64 1
+ %tmp6475 = getelementptr inbounds float* %tmp6474, i64 1
+ %tmp6476 = getelementptr inbounds float* %tmp6475, i64 1
+ %tmp6477 = getelementptr inbounds float* %tmp6476, i64 1
+ %tmp6478 = getelementptr inbounds float* %tmp6477, i64 1
+ %tmp6479 = getelementptr inbounds float* %tmp6478, i64 1
+ %tmp6480 = getelementptr inbounds float* %tmp6479, i64 1
+ %tmp6481 = getelementptr inbounds float* %tmp6480, i64 1
+ %tmp6482 = getelementptr inbounds float* %tmp6481, i64 1
+ %tmp6483 = getelementptr inbounds float* %tmp6482, i64 1
+ %tmp6484 = getelementptr inbounds float* %tmp6483, i64 1
+ %tmp6485 = getelementptr inbounds float* %tmp6484, i64 1
+ %tmp6486 = getelementptr inbounds float* %tmp6485, i64 1
+ %tmp6487 = getelementptr inbounds float* %tmp6486, i64 1
+ %tmp6488 = getelementptr inbounds float* %tmp6487, i64 1
+ %tmp6489 = getelementptr inbounds float* %tmp6488, i64 1
+ %tmp6490 = getelementptr inbounds float* %tmp6489, i64 1
+ %tmp6491 = getelementptr inbounds float* %tmp6490, i64 1
+ %tmp6492 = getelementptr inbounds float* %tmp6491, i64 1
+ %tmp6493 = getelementptr inbounds float* %tmp6492, i64 1
+ %tmp6494 = getelementptr inbounds float* %tmp6493, i64 1
+ %tmp6495 = getelementptr inbounds float* %tmp6494, i64 1
+ %tmp6496 = getelementptr inbounds float* %tmp6495, i64 1
+ %tmp6497 = getelementptr inbounds float* %tmp6496, i64 1
+ %tmp6498 = getelementptr inbounds float* %tmp6497, i64 1
+ %tmp6499 = getelementptr inbounds float* %tmp6498, i64 1
+ %tmp6500 = getelementptr inbounds float* %tmp6499, i64 1
+ %tmp6501 = getelementptr inbounds float* %tmp6500, i64 1
+ %tmp6502 = getelementptr inbounds float* %tmp6501, i64 1
+ %tmp6503 = getelementptr inbounds float* %tmp6502, i64 1
+ %tmp6504 = getelementptr inbounds float* %tmp6503, i64 1
+ %tmp6505 = getelementptr inbounds float* %tmp6504, i64 1
+ %tmp6506 = getelementptr inbounds float* %tmp6505, i64 1
+ %tmp6507 = getelementptr inbounds float* %tmp6506, i64 1
+ %tmp6508 = getelementptr inbounds float* %tmp6507, i64 1
+ %tmp6509 = getelementptr inbounds float* %tmp6508, i64 1
+ %tmp6510 = getelementptr inbounds float* %tmp6509, i64 1
+ %tmp6511 = getelementptr inbounds float* %tmp6510, i64 1
+ %tmp6512 = getelementptr inbounds float* %tmp6511, i64 1
+ %tmp6513 = getelementptr inbounds float* %tmp6512, i64 1
+ %tmp6514 = getelementptr inbounds float* %tmp6513, i64 1
+ %tmp6515 = getelementptr inbounds float* %tmp6514, i64 1
+ %tmp6516 = getelementptr inbounds float* %tmp6515, i64 1
+ %tmp6517 = getelementptr inbounds float* %tmp6516, i64 1
+ %tmp6518 = getelementptr inbounds float* %tmp6517, i64 1
+ %tmp6519 = getelementptr inbounds float* %tmp6518, i64 1
+ %tmp6520 = getelementptr inbounds float* %tmp6519, i64 1
+ %tmp6521 = getelementptr inbounds float* %tmp6520, i64 1
+ %tmp6522 = getelementptr inbounds float* %tmp6521, i64 1
+ %tmp6523 = getelementptr inbounds float* %tmp6522, i64 1
+ %tmp6524 = getelementptr inbounds float* %tmp6523, i64 1
+ %tmp6525 = getelementptr inbounds float* %tmp6524, i64 1
+ %tmp6526 = getelementptr inbounds float* %tmp6525, i64 1
+ %tmp6527 = getelementptr inbounds float* %tmp6526, i64 1
+ %tmp6528 = getelementptr inbounds float* %tmp6527, i64 1
+ %tmp6529 = getelementptr inbounds float* %tmp6528, i64 1
+ %tmp6530 = getelementptr inbounds float* %tmp6529, i64 1
+ %tmp6531 = getelementptr inbounds float* %tmp6530, i64 1
+ %tmp6532 = getelementptr inbounds float* %tmp6531, i64 1
+ %tmp6533 = getelementptr inbounds float* %tmp6532, i64 1
+ %tmp6534 = getelementptr inbounds float* %tmp6533, i64 1
+ %tmp6535 = getelementptr inbounds float* %tmp6534, i64 1
+ %tmp6536 = getelementptr inbounds float* %tmp6535, i64 1
+ %tmp6537 = getelementptr inbounds float* %tmp6536, i64 1
+ %tmp6538 = getelementptr inbounds float* %tmp6537, i64 1
+ %tmp6539 = getelementptr inbounds float* %tmp6538, i64 1
+ %tmp6540 = getelementptr inbounds float* %tmp6539, i64 1
+ %tmp6541 = getelementptr inbounds float* %tmp6540, i64 1
+ %tmp6542 = getelementptr inbounds float* %tmp6541, i64 1
+ %tmp6543 = getelementptr inbounds float* %tmp6542, i64 1
+ %tmp6544 = getelementptr inbounds float* %tmp6543, i64 1
+ %tmp6545 = getelementptr inbounds float* %tmp6544, i64 1
+ %tmp6546 = getelementptr inbounds float* %tmp6545, i64 1
+ %tmp6547 = getelementptr inbounds float* %tmp6546, i64 1
+ %tmp6548 = getelementptr inbounds float* %tmp6547, i64 1
+ %tmp6549 = getelementptr inbounds float* %tmp6548, i64 1
+ %tmp6550 = getelementptr inbounds float* %tmp6549, i64 1
+ %tmp6551 = getelementptr inbounds float* %tmp6550, i64 1
+ %tmp6552 = getelementptr inbounds float* %tmp6551, i64 1
+ %tmp6553 = getelementptr inbounds float* %tmp6552, i64 1
+ %tmp6554 = getelementptr inbounds float* %tmp6553, i64 1
+ %tmp6555 = getelementptr inbounds float* %tmp6554, i64 1
+ %tmp6556 = getelementptr inbounds float* %tmp6555, i64 1
+ %tmp6557 = getelementptr inbounds float* %tmp6556, i64 1
+ %tmp6558 = getelementptr inbounds float* %tmp6557, i64 1
+ %tmp6559 = getelementptr inbounds float* %tmp6558, i64 1
+ %tmp6560 = getelementptr inbounds float* %tmp6559, i64 1
+ %tmp6561 = getelementptr inbounds float* %tmp6560, i64 1
+ %tmp6562 = getelementptr inbounds float* %tmp6561, i64 1
+ %tmp6563 = getelementptr inbounds float* %tmp6562, i64 1
+ %tmp6564 = getelementptr inbounds float* %tmp6563, i64 1
+ %tmp6565 = getelementptr inbounds float* %tmp6564, i64 1
+ %tmp6566 = getelementptr inbounds float* %tmp6565, i64 1
+ %tmp6567 = getelementptr inbounds float* %tmp6566, i64 1
+ %tmp6568 = getelementptr inbounds float* %tmp6567, i64 1
+ %tmp6569 = getelementptr inbounds float* %tmp6568, i64 1
+ %tmp6570 = getelementptr inbounds float* %tmp6569, i64 1
+ %tmp6571 = getelementptr inbounds float* %tmp6570, i64 1
+ %tmp6572 = getelementptr inbounds float* %tmp6571, i64 1
+ %tmp6573 = getelementptr inbounds float* %tmp6572, i64 1
+ %tmp6574 = getelementptr inbounds float* %tmp6573, i64 1
+ %tmp6575 = getelementptr inbounds float* %tmp6574, i64 1
+ %tmp6576 = getelementptr inbounds float* %tmp6575, i64 1
+ %tmp6577 = getelementptr inbounds float* %tmp6576, i64 1
+ %tmp6578 = getelementptr inbounds float* %tmp6577, i64 1
+ %tmp6579 = getelementptr inbounds float* %tmp6578, i64 1
+ %tmp6580 = getelementptr inbounds float* %tmp6579, i64 1
+ %tmp6581 = getelementptr inbounds float* %tmp6580, i64 1
+ %tmp6582 = getelementptr inbounds float* %tmp6581, i64 1
+ %tmp6583 = getelementptr inbounds float* %tmp6582, i64 1
+ %tmp6584 = getelementptr inbounds float* %tmp6583, i64 1
+ %tmp6585 = getelementptr inbounds float* %tmp6584, i64 1
+ %tmp6586 = getelementptr inbounds float* %tmp6585, i64 1
+ %tmp6587 = getelementptr inbounds float* %tmp6586, i64 1
+ %tmp6588 = getelementptr inbounds float* %tmp6587, i64 1
+ %tmp6589 = getelementptr inbounds float* %tmp6588, i64 1
+ %tmp6590 = getelementptr inbounds float* %tmp6589, i64 1
+ %tmp6591 = getelementptr inbounds float* %tmp6590, i64 1
+ %tmp6592 = getelementptr inbounds float* %tmp6591, i64 1
+ %tmp6593 = getelementptr inbounds float* %tmp6592, i64 1
+ %tmp6594 = getelementptr inbounds float* %tmp6593, i64 1
+ %tmp6595 = getelementptr inbounds float* %tmp6594, i64 1
+ %tmp6596 = getelementptr inbounds float* %tmp6595, i64 1
+ %tmp6597 = getelementptr inbounds float* %tmp6596, i64 1
+ %tmp6598 = getelementptr inbounds float* %tmp6597, i64 1
+ %tmp6599 = getelementptr inbounds float* %tmp6598, i64 1
+ %tmp6600 = getelementptr inbounds float* %tmp6599, i64 1
+ %tmp6601 = getelementptr inbounds float* %tmp6600, i64 1
+ %tmp6602 = getelementptr inbounds float* %tmp6601, i64 1
+ %tmp6603 = getelementptr inbounds float* %tmp6602, i64 1
+ %tmp6604 = getelementptr inbounds float* %tmp6603, i64 1
+ %tmp6605 = getelementptr inbounds float* %tmp6604, i64 1
+ %tmp6606 = getelementptr inbounds float* %tmp6605, i64 1
+ %tmp6607 = getelementptr inbounds float* %tmp6606, i64 1
+ %tmp6608 = getelementptr inbounds float* %tmp6607, i64 1
+ %tmp6609 = getelementptr inbounds float* %tmp6608, i64 1
+ %tmp6610 = getelementptr inbounds float* %tmp6609, i64 1
+ %tmp6611 = getelementptr inbounds float* %tmp6610, i64 1
+ %tmp6612 = getelementptr inbounds float* %tmp6611, i64 1
+ %tmp6613 = getelementptr inbounds float* %tmp6612, i64 1
+ %tmp6614 = getelementptr inbounds float* %tmp6613, i64 1
+ %tmp6615 = getelementptr inbounds float* %tmp6614, i64 1
+ %tmp6616 = getelementptr inbounds float* %tmp6615, i64 1
+ %tmp6617 = getelementptr inbounds float* %tmp6616, i64 1
+ %tmp6618 = getelementptr inbounds float* %tmp6617, i64 1
+ %tmp6619 = getelementptr inbounds float* %tmp6618, i64 1
+ %tmp6620 = getelementptr inbounds float* %tmp6619, i64 1
+ %tmp6621 = getelementptr inbounds float* %tmp6620, i64 1
+ %tmp6622 = getelementptr inbounds float* %tmp6621, i64 1
+ %tmp6623 = getelementptr inbounds float* %tmp6622, i64 1
+ %tmp6624 = getelementptr inbounds float* %tmp6623, i64 1
+ %tmp6625 = getelementptr inbounds float* %tmp6624, i64 1
+ %tmp6626 = getelementptr inbounds float* %tmp6625, i64 1
+ %tmp6627 = getelementptr inbounds float* %tmp6626, i64 1
+ %tmp6628 = getelementptr inbounds float* %tmp6627, i64 1
+ %tmp6629 = getelementptr inbounds float* %tmp6628, i64 1
+ %tmp6630 = getelementptr inbounds float* %tmp6629, i64 1
+ %tmp6631 = getelementptr inbounds float* %tmp6630, i64 1
+ %tmp6632 = getelementptr inbounds float* %tmp6631, i64 1
+ %tmp6633 = getelementptr inbounds float* %tmp6632, i64 1
+ %tmp6634 = getelementptr inbounds float* %tmp6633, i64 1
+ %tmp6635 = getelementptr inbounds float* %tmp6634, i64 1
+ %tmp6636 = getelementptr inbounds float* %tmp6635, i64 1
+ %tmp6637 = getelementptr inbounds float* %tmp6636, i64 1
+ %tmp6638 = getelementptr inbounds float* %tmp6637, i64 1
+ %tmp6639 = getelementptr inbounds float* %tmp6638, i64 1
+ %tmp6640 = getelementptr inbounds float* %tmp6639, i64 1
+ %tmp6641 = getelementptr inbounds float* %tmp6640, i64 1
+ %tmp6642 = getelementptr inbounds float* %tmp6641, i64 1
+ %tmp6643 = getelementptr inbounds float* %tmp6642, i64 1
+ %tmp6644 = getelementptr inbounds float* %tmp6643, i64 1
+ %tmp6645 = getelementptr inbounds float* %tmp6644, i64 1
+ %tmp6646 = getelementptr inbounds float* %tmp6645, i64 1
+ %tmp6647 = getelementptr inbounds float* %tmp6646, i64 1
+ %tmp6648 = getelementptr inbounds float* %tmp6647, i64 1
+ %tmp6649 = getelementptr inbounds float* %tmp6648, i64 1
+ %tmp6650 = getelementptr inbounds float* %tmp6649, i64 1
+ %tmp6651 = getelementptr inbounds float* %tmp6650, i64 1
+ %tmp6652 = getelementptr inbounds float* %tmp6651, i64 1
+ %tmp6653 = getelementptr inbounds float* %tmp6652, i64 1
+ %tmp6654 = getelementptr inbounds float* %tmp6653, i64 1
+ %tmp6655 = getelementptr inbounds float* %tmp6654, i64 1
+ %tmp6656 = getelementptr inbounds float* %tmp6655, i64 1
+ %tmp6657 = getelementptr inbounds float* %tmp6656, i64 1
+ %tmp6658 = getelementptr inbounds float* %tmp6657, i64 1
+ %tmp6659 = getelementptr inbounds float* %tmp6658, i64 1
+ %tmp6660 = getelementptr inbounds float* %tmp6659, i64 1
+ %tmp6661 = getelementptr inbounds float* %tmp6660, i64 1
+ %tmp6662 = getelementptr inbounds float* %tmp6661, i64 1
+ %tmp6663 = getelementptr inbounds float* %tmp6662, i64 1
+ %tmp6664 = getelementptr inbounds float* %tmp6663, i64 1
+ %tmp6665 = getelementptr inbounds float* %tmp6664, i64 1
+ %tmp6666 = getelementptr inbounds float* %tmp6665, i64 1
+ %tmp6667 = getelementptr inbounds float* %tmp6666, i64 1
+ %tmp6668 = getelementptr inbounds float* %tmp6667, i64 1
+ %tmp6669 = getelementptr inbounds float* %tmp6668, i64 1
+ %tmp6670 = getelementptr inbounds float* %tmp6669, i64 1
+ %tmp6671 = getelementptr inbounds float* %tmp6670, i64 1
+ %tmp6672 = getelementptr inbounds float* %tmp6671, i64 1
+ %tmp6673 = getelementptr inbounds float* %tmp6672, i64 1
+ %tmp6674 = getelementptr inbounds float* %tmp6673, i64 1
+ %tmp6675 = getelementptr inbounds float* %tmp6674, i64 1
+ %tmp6676 = getelementptr inbounds float* %tmp6675, i64 1
+ %tmp6677 = getelementptr inbounds float* %tmp6676, i64 1
+ %tmp6678 = getelementptr inbounds float* %tmp6677, i64 1
+ %tmp6679 = getelementptr inbounds float* %tmp6678, i64 1
+ %tmp6680 = getelementptr inbounds float* %tmp6679, i64 1
+ %tmp6681 = getelementptr inbounds float* %tmp6680, i64 1
+ %tmp6682 = getelementptr inbounds float* %tmp6681, i64 1
+ %tmp6683 = getelementptr inbounds float* %tmp6682, i64 1
+ %tmp6684 = getelementptr inbounds float* %tmp6683, i64 1
+ %tmp6685 = getelementptr inbounds float* %tmp6684, i64 1
+ %tmp6686 = getelementptr inbounds float* %tmp6685, i64 1
+ %tmp6687 = getelementptr inbounds float* %tmp6686, i64 1
+ %tmp6688 = getelementptr inbounds float* %tmp6687, i64 1
+ %tmp6689 = getelementptr inbounds float* %tmp6688, i64 1
+ %tmp6690 = getelementptr inbounds float* %tmp6689, i64 1
+ %tmp6691 = getelementptr inbounds float* %tmp6690, i64 1
+ %tmp6692 = getelementptr inbounds float* %tmp6691, i64 1
+ %tmp6693 = getelementptr inbounds float* %tmp6692, i64 1
+ %tmp6694 = getelementptr inbounds float* %tmp6693, i64 1
+ %tmp6695 = getelementptr inbounds float* %tmp6694, i64 1
+ %tmp6696 = getelementptr inbounds float* %tmp6695, i64 1
+ %tmp6697 = getelementptr inbounds float* %tmp6696, i64 1
+ %tmp6698 = getelementptr inbounds float* %tmp6697, i64 1
+ %tmp6699 = getelementptr inbounds float* %tmp6698, i64 1
+ %tmp6700 = getelementptr inbounds float* %tmp6699, i64 1
+ %tmp6701 = getelementptr inbounds float* %tmp6700, i64 1
+ %tmp6702 = getelementptr inbounds float* %tmp6701, i64 1
+ %tmp6703 = getelementptr inbounds float* %tmp6702, i64 1
+ %tmp6704 = getelementptr inbounds float* %tmp6703, i64 1
+ %tmp6705 = getelementptr inbounds float* %tmp6704, i64 1
+ %tmp6706 = getelementptr inbounds float* %tmp6705, i64 1
+ %tmp6707 = getelementptr inbounds float* %tmp6706, i64 1
+ %tmp6708 = getelementptr inbounds float* %tmp6707, i64 1
+ %tmp6709 = getelementptr inbounds float* %tmp6708, i64 1
+ %tmp6710 = getelementptr inbounds float* %tmp6709, i64 1
+ %tmp6711 = getelementptr inbounds float* %tmp6710, i64 1
+ %tmp6712 = getelementptr inbounds float* %tmp6711, i64 1
+ %tmp6713 = getelementptr inbounds float* %tmp6712, i64 1
+ %tmp6714 = getelementptr inbounds float* %tmp6713, i64 1
+ %tmp6715 = getelementptr inbounds float* %tmp6714, i64 1
+ %tmp6716 = getelementptr inbounds float* %tmp6715, i64 1
+ %tmp6717 = getelementptr inbounds float* %tmp6716, i64 1
+ %tmp6718 = getelementptr inbounds float* %tmp6717, i64 1
+ %tmp6719 = getelementptr inbounds float* %tmp6718, i64 1
+ %tmp6720 = getelementptr inbounds float* %tmp6719, i64 1
+ %tmp6721 = getelementptr inbounds float* %tmp6720, i64 1
+ %tmp6722 = getelementptr inbounds float* %tmp6721, i64 1
+ %tmp6723 = getelementptr inbounds float* %tmp6722, i64 1
+ %tmp6724 = getelementptr inbounds float* %tmp6723, i64 1
+ %tmp6725 = getelementptr inbounds float* %tmp6724, i64 1
+ %tmp6726 = getelementptr inbounds float* %tmp6725, i64 1
+ %tmp6727 = getelementptr inbounds float* %tmp6726, i64 1
+ %tmp6728 = getelementptr inbounds float* %tmp6727, i64 1
+ %tmp6729 = getelementptr inbounds float* %tmp6728, i64 1
+ %tmp6730 = getelementptr inbounds float* %tmp6729, i64 1
+ %tmp6731 = getelementptr inbounds float* %tmp6730, i64 1
+ %tmp6732 = getelementptr inbounds float* %tmp6731, i64 1
+ %tmp6733 = getelementptr inbounds float* %tmp6732, i64 1
+ %tmp6734 = getelementptr inbounds float* %tmp6733, i64 1
+ %tmp6735 = getelementptr inbounds float* %tmp6734, i64 1
+ %tmp6736 = getelementptr inbounds float* %tmp6735, i64 1
+ %tmp6737 = getelementptr inbounds float* %tmp6736, i64 1
+ %tmp6738 = getelementptr inbounds float* %tmp6737, i64 1
+ %tmp6739 = getelementptr inbounds float* %tmp6738, i64 1
+ %tmp6740 = getelementptr inbounds float* %tmp6739, i64 1
+ %tmp6741 = getelementptr inbounds float* %tmp6740, i64 1
+ %tmp6742 = getelementptr inbounds float* %tmp6741, i64 1
+ %tmp6743 = getelementptr inbounds float* %tmp6742, i64 1
+ %tmp6744 = getelementptr inbounds float* %tmp6743, i64 1
+ %tmp6745 = getelementptr inbounds float* %tmp6744, i64 1
+ %tmp6746 = getelementptr inbounds float* %tmp6745, i64 1
+ %tmp6747 = getelementptr inbounds float* %tmp6746, i64 1
+ %tmp6748 = getelementptr inbounds float* %tmp6747, i64 1
+ %tmp6749 = getelementptr inbounds float* %tmp6748, i64 1
+ %tmp6750 = getelementptr inbounds float* %tmp6749, i64 1
+ %tmp6751 = getelementptr inbounds float* %tmp6750, i64 1
+ %tmp6752 = getelementptr inbounds float* %tmp6751, i64 1
+ %tmp6753 = getelementptr inbounds float* %tmp6752, i64 1
+ %tmp6754 = getelementptr inbounds float* %tmp6753, i64 1
+ %tmp6755 = getelementptr inbounds float* %tmp6754, i64 1
+ %tmp6756 = getelementptr inbounds float* %tmp6755, i64 1
+ %tmp6757 = getelementptr inbounds float* %tmp6756, i64 1
+ %tmp6758 = getelementptr inbounds float* %tmp6757, i64 1
+ %tmp6759 = getelementptr inbounds float* %tmp6758, i64 1
+ %tmp6760 = getelementptr inbounds float* %tmp6759, i64 1
+ %tmp6761 = getelementptr inbounds float* %tmp6760, i64 1
+ %tmp6762 = getelementptr inbounds float* %tmp6761, i64 1
+ %tmp6763 = getelementptr inbounds float* %tmp6762, i64 1
+ %tmp6764 = getelementptr inbounds float* %tmp6763, i64 1
+ %tmp6765 = getelementptr inbounds float* %tmp6764, i64 1
+ %tmp6766 = getelementptr inbounds float* %tmp6765, i64 1
+ %tmp6767 = getelementptr inbounds float* %tmp6766, i64 1
+ %tmp6768 = getelementptr inbounds float* %tmp6767, i64 1
+ %tmp6769 = getelementptr inbounds float* %tmp6768, i64 1
+ %tmp6770 = getelementptr inbounds float* %tmp6769, i64 1
+ %tmp6771 = getelementptr inbounds float* %tmp6770, i64 1
+ %tmp6772 = getelementptr inbounds float* %tmp6771, i64 1
+ %tmp6773 = getelementptr inbounds float* %tmp6772, i64 1
+ %tmp6774 = getelementptr inbounds float* %tmp6773, i64 1
+ %tmp6775 = getelementptr inbounds float* %tmp6774, i64 1
+ %tmp6776 = getelementptr inbounds float* %tmp6775, i64 1
+ %tmp6777 = getelementptr inbounds float* %tmp6776, i64 1
+ %tmp6778 = getelementptr inbounds float* %tmp6777, i64 1
+ %tmp6779 = getelementptr inbounds float* %tmp6778, i64 1
+ %tmp6780 = getelementptr inbounds float* %tmp6779, i64 1
+ %tmp6781 = getelementptr inbounds float* %tmp6780, i64 1
+ %tmp6782 = getelementptr inbounds float* %tmp6781, i64 1
+ %tmp6783 = getelementptr inbounds float* %tmp6782, i64 1
+ %tmp6784 = getelementptr inbounds float* %tmp6783, i64 1
+ %tmp6785 = getelementptr inbounds float* %tmp6784, i64 1
+ %tmp6786 = getelementptr inbounds float* %tmp6785, i64 1
+ %tmp6787 = getelementptr inbounds float* %tmp6786, i64 1
+ %tmp6788 = getelementptr inbounds float* %tmp6787, i64 1
+ %tmp6789 = getelementptr inbounds float* %tmp6788, i64 1
+ %tmp6790 = getelementptr inbounds float* %tmp6789, i64 1
+ %tmp6791 = getelementptr inbounds float* %tmp6790, i64 1
+ %tmp6792 = getelementptr inbounds float* %tmp6791, i64 1
+ %tmp6793 = getelementptr inbounds float* %tmp6792, i64 1
+ %tmp6794 = getelementptr inbounds float* %tmp6793, i64 1
+ %tmp6795 = getelementptr inbounds float* %tmp6794, i64 1
+ %tmp6796 = getelementptr inbounds float* %tmp6795, i64 1
+ %tmp6797 = getelementptr inbounds float* %tmp6796, i64 1
+ %tmp6798 = getelementptr inbounds float* %tmp6797, i64 1
+ %tmp6799 = getelementptr inbounds float* %tmp6798, i64 1
+ %tmp6800 = getelementptr inbounds float* %tmp6799, i64 1
+ %tmp6801 = getelementptr inbounds float* %tmp6800, i64 1
+ %tmp6802 = getelementptr inbounds float* %tmp6801, i64 1
+ %tmp6803 = getelementptr inbounds float* %tmp6802, i64 1
+ %tmp6804 = getelementptr inbounds float* %tmp6803, i64 1
+ %tmp6805 = getelementptr inbounds float* %tmp6804, i64 1
+ %tmp6806 = getelementptr inbounds float* %tmp6805, i64 1
+ %tmp6807 = getelementptr inbounds float* %tmp6806, i64 1
+ %tmp6808 = getelementptr inbounds float* %tmp6807, i64 1
+ %tmp6809 = getelementptr inbounds float* %tmp6808, i64 1
+ %tmp6810 = getelementptr inbounds float* %tmp6809, i64 1
+ %tmp6811 = getelementptr inbounds float* %tmp6810, i64 1
+ %tmp6812 = getelementptr inbounds float* %tmp6811, i64 1
+ %tmp6813 = getelementptr inbounds float* %tmp6812, i64 1
+ %tmp6814 = getelementptr inbounds float* %tmp6813, i64 1
+ %tmp6815 = getelementptr inbounds float* %tmp6814, i64 1
+ %tmp6816 = getelementptr inbounds float* %tmp6815, i64 1
+ %tmp6817 = getelementptr inbounds float* %tmp6816, i64 1
+ %tmp6818 = getelementptr inbounds float* %tmp6817, i64 1
+ %tmp6819 = getelementptr inbounds float* %tmp6818, i64 1
+ %tmp6820 = getelementptr inbounds float* %tmp6819, i64 1
+ %tmp6821 = getelementptr inbounds float* %tmp6820, i64 1
+ %tmp6822 = getelementptr inbounds float* %tmp6821, i64 1
+ %tmp6823 = getelementptr inbounds float* %tmp6822, i64 1
+ %tmp6824 = getelementptr inbounds float* %tmp6823, i64 1
+ %tmp6825 = getelementptr inbounds float* %tmp6824, i64 1
+ %tmp6826 = getelementptr inbounds float* %tmp6825, i64 1
+ %tmp6827 = getelementptr inbounds float* %tmp6826, i64 1
+ %tmp6828 = getelementptr inbounds float* %tmp6827, i64 1
+ %tmp6829 = getelementptr inbounds float* %tmp6828, i64 1
+ %tmp6830 = getelementptr inbounds float* %tmp6829, i64 1
+ %tmp6831 = getelementptr inbounds float* %tmp6830, i64 1
+ %tmp6832 = getelementptr inbounds float* %tmp6831, i64 1
+ %tmp6833 = getelementptr inbounds float* %tmp6832, i64 1
+ %tmp6834 = getelementptr inbounds float* %tmp6833, i64 1
+ %tmp6835 = getelementptr inbounds float* %tmp6834, i64 1
+ %tmp6836 = getelementptr inbounds float* %tmp6835, i64 1
+ %tmp6837 = getelementptr inbounds float* %tmp6836, i64 1
+ %tmp6838 = getelementptr inbounds float* %tmp6837, i64 1
+ %tmp6839 = getelementptr inbounds float* %tmp6838, i64 1
+ %tmp6840 = getelementptr inbounds float* %tmp6839, i64 1
+ %tmp6841 = getelementptr inbounds float* %tmp6840, i64 1
+ %tmp6842 = getelementptr inbounds float* %tmp6841, i64 1
+ %tmp6843 = getelementptr inbounds float* %tmp6842, i64 1
+ %tmp6844 = getelementptr inbounds float* %tmp6843, i64 1
+ %tmp6845 = getelementptr inbounds float* %tmp6844, i64 1
+ %tmp6846 = getelementptr inbounds float* %tmp6845, i64 1
+ %tmp6847 = getelementptr inbounds float* %tmp6846, i64 1
+ %tmp6848 = getelementptr inbounds float* %tmp6847, i64 1
+ %tmp6849 = getelementptr inbounds float* %tmp6848, i64 1
+ %tmp6850 = getelementptr inbounds float* %tmp6849, i64 1
+ %tmp6851 = getelementptr inbounds float* %tmp6850, i64 1
+ %tmp6852 = getelementptr inbounds float* %tmp6851, i64 1
+ %tmp6853 = getelementptr inbounds float* %tmp6852, i64 1
+ %tmp6854 = getelementptr inbounds float* %tmp6853, i64 1
+ %tmp6855 = getelementptr inbounds float* %tmp6854, i64 1
+ %tmp6856 = getelementptr inbounds float* %tmp6855, i64 1
+ %tmp6857 = getelementptr inbounds float* %tmp6856, i64 1
+ %tmp6858 = getelementptr inbounds float* %tmp6857, i64 1
+ %tmp6859 = getelementptr inbounds float* %tmp6858, i64 1
+ %tmp6860 = getelementptr inbounds float* %tmp6859, i64 1
+ %tmp6861 = getelementptr inbounds float* %tmp6860, i64 1
+ %tmp6862 = getelementptr inbounds float* %tmp6861, i64 1
+ %tmp6863 = getelementptr inbounds float* %tmp6862, i64 1
+ %tmp6864 = getelementptr inbounds float* %tmp6863, i64 1
+ %tmp6865 = getelementptr inbounds float* %tmp6864, i64 1
+ %tmp6866 = getelementptr inbounds float* %tmp6865, i64 1
+ %tmp6867 = getelementptr inbounds float* %tmp6866, i64 1
+ %tmp6868 = getelementptr inbounds float* %tmp6867, i64 1
+ %tmp6869 = getelementptr inbounds float* %tmp6868, i64 1
+ %tmp6870 = getelementptr inbounds float* %tmp6869, i64 1
+ %tmp6871 = getelementptr inbounds float* %tmp6870, i64 1
+ %tmp6872 = getelementptr inbounds float* %tmp6871, i64 1
+ %tmp6873 = getelementptr inbounds float* %tmp6872, i64 1
+ %tmp6874 = getelementptr inbounds float* %tmp6873, i64 1
+ %tmp6875 = getelementptr inbounds float* %tmp6874, i64 1
+ %tmp6876 = getelementptr inbounds float* %tmp6875, i64 1
+ %tmp6877 = getelementptr inbounds float* %tmp6876, i64 1
+ %tmp6878 = getelementptr inbounds float* %tmp6877, i64 1
+ %tmp6879 = getelementptr inbounds float* %tmp6878, i64 1
+ %tmp6880 = getelementptr inbounds float* %tmp6879, i64 1
+ %tmp6881 = getelementptr inbounds float* %tmp6880, i64 1
+ %tmp6882 = getelementptr inbounds float* %tmp6881, i64 1
+ %tmp6883 = getelementptr inbounds float* %tmp6882, i64 1
+ %tmp6884 = getelementptr inbounds float* %tmp6883, i64 1
+ %tmp6885 = getelementptr inbounds float* %tmp6884, i64 1
+ %tmp6886 = getelementptr inbounds float* %tmp6885, i64 1
+ %tmp6887 = getelementptr inbounds float* %tmp6886, i64 1
+ %tmp6888 = getelementptr inbounds float* %tmp6887, i64 1
+ %tmp6889 = getelementptr inbounds float* %tmp6888, i64 1
+ %tmp6890 = getelementptr inbounds float* %tmp6889, i64 1
+ %tmp6891 = getelementptr inbounds float* %tmp6890, i64 1
+ %tmp6892 = getelementptr inbounds float* %tmp6891, i64 1
+ %tmp6893 = getelementptr inbounds float* %tmp6892, i64 1
+ %tmp6894 = getelementptr inbounds float* %tmp6893, i64 1
+ %tmp6895 = getelementptr inbounds float* %tmp6894, i64 1
+ %tmp6896 = getelementptr inbounds float* %tmp6895, i64 1
+ %tmp6897 = getelementptr inbounds float* %tmp6896, i64 1
+ %tmp6898 = getelementptr inbounds float* %tmp6897, i64 1
+ %tmp6899 = getelementptr inbounds float* %tmp6898, i64 1
+ %tmp6900 = getelementptr inbounds float* %tmp6899, i64 1
+ %tmp6901 = getelementptr inbounds float* %tmp6900, i64 1
+ %tmp6902 = getelementptr inbounds float* %tmp6901, i64 1
+ %tmp6903 = getelementptr inbounds float* %tmp6902, i64 1
+ %tmp6904 = getelementptr inbounds float* %tmp6903, i64 1
+ %tmp6905 = getelementptr inbounds float* %tmp6904, i64 1
+ %tmp6906 = getelementptr inbounds float* %tmp6905, i64 1
+ %tmp6907 = getelementptr inbounds float* %tmp6906, i64 1
+ %tmp6908 = getelementptr inbounds float* %tmp6907, i64 1
+ %tmp6909 = getelementptr inbounds float* %tmp6908, i64 1
+ %tmp6910 = getelementptr inbounds float* %tmp6909, i64 1
+ %tmp6911 = getelementptr inbounds float* %tmp6910, i64 1
+ %tmp6912 = getelementptr inbounds float* %tmp6911, i64 1
+ %tmp6913 = getelementptr inbounds float* %tmp6912, i64 1
+ %tmp6914 = getelementptr inbounds float* %tmp6913, i64 1
+ %tmp6915 = getelementptr inbounds float* %tmp6914, i64 1
+ %tmp6916 = getelementptr inbounds float* %tmp6915, i64 1
+ %tmp6917 = getelementptr inbounds float* %tmp6916, i64 1
+ %tmp6918 = getelementptr inbounds float* %tmp6917, i64 1
+ %tmp6919 = getelementptr inbounds float* %tmp6918, i64 1
+ %tmp6920 = getelementptr inbounds float* %tmp6919, i64 1
+ %tmp6921 = getelementptr inbounds float* %tmp6920, i64 1
+ %tmp6922 = getelementptr inbounds float* %tmp6921, i64 1
+ %tmp6923 = getelementptr inbounds float* %tmp6922, i64 1
+ %tmp6924 = getelementptr inbounds float* %tmp6923, i64 1
+ %tmp6925 = getelementptr inbounds float* %tmp6924, i64 1
+ %tmp6926 = getelementptr inbounds float* %tmp6925, i64 1
+ %tmp6927 = getelementptr inbounds float* %tmp6926, i64 1
+ %tmp6928 = getelementptr inbounds float* %tmp6927, i64 1
+ %tmp6929 = getelementptr inbounds float* %tmp6928, i64 1
+ %tmp6930 = getelementptr inbounds float* %tmp6929, i64 1
+ %tmp6931 = getelementptr inbounds float* %tmp6930, i64 1
+ %tmp6932 = getelementptr inbounds float* %tmp6931, i64 1
+ %tmp6933 = getelementptr inbounds float* %tmp6932, i64 1
+ %tmp6934 = getelementptr inbounds float* %tmp6933, i64 1
+ %tmp6935 = getelementptr inbounds float* %tmp6934, i64 1
+ %tmp6936 = getelementptr inbounds float* %tmp6935, i64 1
+ %tmp6937 = getelementptr inbounds float* %tmp6936, i64 1
+ %tmp6938 = getelementptr inbounds float* %tmp6937, i64 1
+ %tmp6939 = getelementptr inbounds float* %tmp6938, i64 1
+ %tmp6940 = getelementptr inbounds float* %tmp6939, i64 1
+ %tmp6941 = getelementptr inbounds float* %tmp6940, i64 1
+ %tmp6942 = getelementptr inbounds float* %tmp6941, i64 1
+ %tmp6943 = getelementptr inbounds float* %tmp6942, i64 1
+ %tmp6944 = getelementptr inbounds float* %tmp6943, i64 1
+ %tmp6945 = getelementptr inbounds float* %tmp6944, i64 1
+ %tmp6946 = getelementptr inbounds float* %tmp6945, i64 1
+ %tmp6947 = getelementptr inbounds float* %tmp6946, i64 1
+ %tmp6948 = getelementptr inbounds float* %tmp6947, i64 1
+ %tmp6949 = getelementptr inbounds float* %tmp6948, i64 1
+ %tmp6950 = getelementptr inbounds float* %tmp6949, i64 1
+ %tmp6951 = getelementptr inbounds float* %tmp6950, i64 1
+ %tmp6952 = getelementptr inbounds float* %tmp6951, i64 1
+ %tmp6953 = getelementptr inbounds float* %tmp6952, i64 1
+ %tmp6954 = getelementptr inbounds float* %tmp6953, i64 1
+ %tmp6955 = getelementptr inbounds float* %tmp6954, i64 1
+ %tmp6956 = getelementptr inbounds float* %tmp6955, i64 1
+ %tmp6957 = getelementptr inbounds float* %tmp6956, i64 1
+ %tmp6958 = getelementptr inbounds float* %tmp6957, i64 1
+ %tmp6959 = getelementptr inbounds float* %tmp6958, i64 1
+ %tmp6960 = getelementptr inbounds float* %tmp6959, i64 1
+ %tmp6961 = getelementptr inbounds float* %tmp6960, i64 1
+ %tmp6962 = getelementptr inbounds float* %tmp6961, i64 1
+ %tmp6963 = getelementptr inbounds float* %tmp6962, i64 1
+ %tmp6964 = getelementptr inbounds float* %tmp6963, i64 1
+ %tmp6965 = getelementptr inbounds float* %tmp6964, i64 1
+ %tmp6966 = getelementptr inbounds float* %tmp6965, i64 1
+ %tmp6967 = getelementptr inbounds float* %tmp6966, i64 1
+ %tmp6968 = getelementptr inbounds float* %tmp6967, i64 1
+ %tmp6969 = getelementptr inbounds float* %tmp6968, i64 1
+ %tmp6970 = getelementptr inbounds float* %tmp6969, i64 1
+ %tmp6971 = getelementptr inbounds float* %tmp6970, i64 1
+ %tmp6972 = getelementptr inbounds float* %tmp6971, i64 1
+ %tmp6973 = getelementptr inbounds float* %tmp6972, i64 1
+ %tmp6974 = getelementptr inbounds float* %tmp6973, i64 1
+ %tmp6975 = getelementptr inbounds float* %tmp6974, i64 1
+ %tmp6976 = getelementptr inbounds float* %tmp6975, i64 1
+ %tmp6977 = getelementptr inbounds float* %tmp6976, i64 1
+ %tmp6978 = getelementptr inbounds float* %tmp6977, i64 1
+ %tmp6979 = getelementptr inbounds float* %tmp6978, i64 1
+ %tmp6980 = getelementptr inbounds float* %tmp6979, i64 1
+ %tmp6981 = getelementptr inbounds float* %tmp6980, i64 1
+ %tmp6982 = getelementptr inbounds float* %tmp6981, i64 1
+ %tmp6983 = getelementptr inbounds float* %tmp6982, i64 1
+ %tmp6984 = getelementptr inbounds float* %tmp6983, i64 1
+ %tmp6985 = getelementptr inbounds float* %tmp6984, i64 1
+ %tmp6986 = getelementptr inbounds float* %tmp6985, i64 1
+ %tmp6987 = getelementptr inbounds float* %tmp6986, i64 1
+ %tmp6988 = getelementptr inbounds float* %tmp6987, i64 1
+ %tmp6989 = getelementptr inbounds float* %tmp6988, i64 1
+ %tmp6990 = getelementptr inbounds float* %tmp6989, i64 1
+ %tmp6991 = getelementptr inbounds float* %tmp6990, i64 1
+ %tmp6992 = getelementptr inbounds float* %tmp6991, i64 1
+ %tmp6993 = getelementptr inbounds float* %tmp6992, i64 1
+ %tmp6994 = getelementptr inbounds float* %tmp6993, i64 1
+ %tmp6995 = getelementptr inbounds float* %tmp6994, i64 1
+ %tmp6996 = getelementptr inbounds float* %tmp6995, i64 1
+ %tmp6997 = getelementptr inbounds float* %tmp6996, i64 1
+ %tmp6998 = getelementptr inbounds float* %tmp6997, i64 1
+ %tmp6999 = getelementptr inbounds float* %tmp6998, i64 1
+ %tmp7000 = getelementptr inbounds float* %tmp6999, i64 1
+ %tmp7001 = getelementptr inbounds float* %tmp7000, i64 1
+ %tmp7002 = getelementptr inbounds float* %tmp7001, i64 1
+ %tmp7003 = getelementptr inbounds float* %tmp7002, i64 1
+ %tmp7004 = getelementptr inbounds float* %tmp7003, i64 1
+ %tmp7005 = getelementptr inbounds float* %tmp7004, i64 1
+ %tmp7006 = getelementptr inbounds float* %tmp7005, i64 1
+ %tmp7007 = getelementptr inbounds float* %tmp7006, i64 1
+ %tmp7008 = getelementptr inbounds float* %tmp7007, i64 1
+ %tmp7009 = getelementptr inbounds float* %tmp7008, i64 1
+ %tmp7010 = getelementptr inbounds float* %tmp7009, i64 1
+ %tmp7011 = getelementptr inbounds float* %tmp7010, i64 1
+ %tmp7012 = getelementptr inbounds float* %tmp7011, i64 1
+ %tmp7013 = getelementptr inbounds float* %tmp7012, i64 1
+ %tmp7014 = getelementptr inbounds float* %tmp7013, i64 1
+ %tmp7015 = getelementptr inbounds float* %tmp7014, i64 1
+ %tmp7016 = getelementptr inbounds float* %tmp7015, i64 1
+ %tmp7017 = getelementptr inbounds float* %tmp7016, i64 1
+ %tmp7018 = getelementptr inbounds float* %tmp7017, i64 1
+ %tmp7019 = getelementptr inbounds float* %tmp7018, i64 1
+ %tmp7020 = getelementptr inbounds float* %tmp7019, i64 1
+ %tmp7021 = getelementptr inbounds float* %tmp7020, i64 1
+ %tmp7022 = getelementptr inbounds float* %tmp7021, i64 1
+ %tmp7023 = getelementptr inbounds float* %tmp7022, i64 1
+ %tmp7024 = getelementptr inbounds float* %tmp7023, i64 1
+ %tmp7025 = getelementptr inbounds float* %tmp7024, i64 1
+ %tmp7026 = getelementptr inbounds float* %tmp7025, i64 1
+ %tmp7027 = getelementptr inbounds float* %tmp7026, i64 1
+ %tmp7028 = getelementptr inbounds float* %tmp7027, i64 1
+ %tmp7029 = getelementptr inbounds float* %tmp7028, i64 1
+ %tmp7030 = getelementptr inbounds float* %tmp7029, i64 1
+ %tmp7031 = getelementptr inbounds float* %tmp7030, i64 1
+ %tmp7032 = getelementptr inbounds float* %tmp7031, i64 1
+ %tmp7033 = getelementptr inbounds float* %tmp7032, i64 1
+ %tmp7034 = getelementptr inbounds float* %tmp7033, i64 1
+ %tmp7035 = getelementptr inbounds float* %tmp7034, i64 1
+ %tmp7036 = getelementptr inbounds float* %tmp7035, i64 1
+ %tmp7037 = getelementptr inbounds float* %tmp7036, i64 1
+ %tmp7038 = getelementptr inbounds float* %tmp7037, i64 1
+ %tmp7039 = getelementptr inbounds float* %tmp7038, i64 1
+ %tmp7040 = getelementptr inbounds float* %tmp7039, i64 1
+ %tmp7041 = getelementptr inbounds float* %tmp7040, i64 1
+ %tmp7042 = getelementptr inbounds float* %tmp7041, i64 1
+ %tmp7043 = getelementptr inbounds float* %tmp7042, i64 1
+ %tmp7044 = getelementptr inbounds float* %tmp7043, i64 1
+ %tmp7045 = getelementptr inbounds float* %tmp7044, i64 1
+ %tmp7046 = getelementptr inbounds float* %tmp7045, i64 1
+ %tmp7047 = getelementptr inbounds float* %tmp7046, i64 1
+ %tmp7048 = getelementptr inbounds float* %tmp7047, i64 1
+ %tmp7049 = getelementptr inbounds float* %tmp7048, i64 1
+ %tmp7050 = getelementptr inbounds float* %tmp7049, i64 1
+ %tmp7051 = getelementptr inbounds float* %tmp7050, i64 1
+ %tmp7052 = getelementptr inbounds float* %tmp7051, i64 1
+ %tmp7053 = getelementptr inbounds float* %tmp7052, i64 1
+ %tmp7054 = getelementptr inbounds float* %tmp7053, i64 1
+ %tmp7055 = getelementptr inbounds float* %tmp7054, i64 1
+ %tmp7056 = getelementptr inbounds float* %tmp7055, i64 1
+ %tmp7057 = getelementptr inbounds float* %tmp7056, i64 1
+ %tmp7058 = getelementptr inbounds float* %tmp7057, i64 1
+ %tmp7059 = getelementptr inbounds float* %tmp7058, i64 1
+ %tmp7060 = getelementptr inbounds float* %tmp7059, i64 1
+ %tmp7061 = getelementptr inbounds float* %tmp7060, i64 1
+ %tmp7062 = getelementptr inbounds float* %tmp7061, i64 1
+ %tmp7063 = getelementptr inbounds float* %tmp7062, i64 1
+ %tmp7064 = getelementptr inbounds float* %tmp7063, i64 1
+ %tmp7065 = getelementptr inbounds float* %tmp7064, i64 1
+ %tmp7066 = getelementptr inbounds float* %tmp7065, i64 1
+ %tmp7067 = getelementptr inbounds float* %tmp7066, i64 1
+ %tmp7068 = getelementptr inbounds float* %tmp7067, i64 1
+ %tmp7069 = getelementptr inbounds float* %tmp7068, i64 1
+ %tmp7070 = getelementptr inbounds float* %tmp7069, i64 1
+ %tmp7071 = getelementptr inbounds float* %tmp7070, i64 1
+ %tmp7072 = getelementptr inbounds float* %tmp7071, i64 1
+ %tmp7073 = getelementptr inbounds float* %tmp7072, i64 1
+ %tmp7074 = getelementptr inbounds float* %tmp7073, i64 1
+ %tmp7075 = getelementptr inbounds float* %tmp7074, i64 1
+ %tmp7076 = getelementptr inbounds float* %tmp7075, i64 1
+ %tmp7077 = getelementptr inbounds float* %tmp7076, i64 1
+ %tmp7078 = getelementptr inbounds float* %tmp7077, i64 1
+ %tmp7079 = getelementptr inbounds float* %tmp7078, i64 1
+ %tmp7080 = getelementptr inbounds float* %tmp7079, i64 1
+ %tmp7081 = getelementptr inbounds float* %tmp7080, i64 1
+ %tmp7082 = getelementptr inbounds float* %tmp7081, i64 1
+ %tmp7083 = getelementptr inbounds float* %tmp7082, i64 1
+ %tmp7084 = getelementptr inbounds float* %tmp7083, i64 1
+ %tmp7085 = getelementptr inbounds float* %tmp7084, i64 1
+ %tmp7086 = getelementptr inbounds float* %tmp7085, i64 1
+ %tmp7087 = getelementptr inbounds float* %tmp7086, i64 1
+ %tmp7088 = getelementptr inbounds float* %tmp7087, i64 1
+ %tmp7089 = getelementptr inbounds float* %tmp7088, i64 1
+ %tmp7090 = getelementptr inbounds float* %tmp7089, i64 1
+ %tmp7091 = getelementptr inbounds float* %tmp7090, i64 1
+ %tmp7092 = getelementptr inbounds float* %tmp7091, i64 1
+ %tmp7093 = getelementptr inbounds float* %tmp7092, i64 1
+ %tmp7094 = getelementptr inbounds float* %tmp7093, i64 1
+ %tmp7095 = getelementptr inbounds float* %tmp7094, i64 1
+ %tmp7096 = getelementptr inbounds float* %tmp7095, i64 1
+ %tmp7097 = getelementptr inbounds float* %tmp7096, i64 1
+ %tmp7098 = getelementptr inbounds float* %tmp7097, i64 1
+ %tmp7099 = getelementptr inbounds float* %tmp7098, i64 1
+ %tmp7100 = getelementptr inbounds float* %tmp7099, i64 1
+ %tmp7101 = getelementptr inbounds float* %tmp7100, i64 1
+ %tmp7102 = getelementptr inbounds float* %tmp7101, i64 1
+ %tmp7103 = getelementptr inbounds float* %tmp7102, i64 1
+ %tmp7104 = getelementptr inbounds float* %tmp7103, i64 1
+ %tmp7105 = getelementptr inbounds float* %tmp7104, i64 1
+ %tmp7106 = getelementptr inbounds float* %tmp7105, i64 1
+ %tmp7107 = getelementptr inbounds float* %tmp7106, i64 1
+ %tmp7108 = getelementptr inbounds float* %tmp7107, i64 1
+ %tmp7109 = getelementptr inbounds float* %tmp7108, i64 1
+ %tmp7110 = getelementptr inbounds float* %tmp7109, i64 1
+ %tmp7111 = getelementptr inbounds float* %tmp7110, i64 1
+ %tmp7112 = getelementptr inbounds float* %tmp7111, i64 1
+ %tmp7113 = getelementptr inbounds float* %tmp7112, i64 1
+ %tmp7114 = getelementptr inbounds float* %tmp7113, i64 1
+ %tmp7115 = getelementptr inbounds float* %tmp7114, i64 1
+ %tmp7116 = getelementptr inbounds float* %tmp7115, i64 1
+ %tmp7117 = getelementptr inbounds float* %tmp7116, i64 1
+ %tmp7118 = getelementptr inbounds float* %tmp7117, i64 1
+ %tmp7119 = getelementptr inbounds float* %tmp7118, i64 1
+ %tmp7120 = getelementptr inbounds float* %tmp7119, i64 1
+ %tmp7121 = getelementptr inbounds float* %tmp7120, i64 1
+ %tmp7122 = getelementptr inbounds float* %tmp7121, i64 1
+ %tmp7123 = getelementptr inbounds float* %tmp7122, i64 1
+ %tmp7124 = getelementptr inbounds float* %tmp7123, i64 1
+ %tmp7125 = getelementptr inbounds float* %tmp7124, i64 1
+ %tmp7126 = getelementptr inbounds float* %tmp7125, i64 1
+ %tmp7127 = getelementptr inbounds float* %tmp7126, i64 1
+ %tmp7128 = getelementptr inbounds float* %tmp7127, i64 1
+ %tmp7129 = getelementptr inbounds float* %tmp7128, i64 1
+ %tmp7130 = getelementptr inbounds float* %tmp7129, i64 1
+ %tmp7131 = getelementptr inbounds float* %tmp7130, i64 1
+ %tmp7132 = getelementptr inbounds float* %tmp7131, i64 1
+ %tmp7133 = getelementptr inbounds float* %tmp7132, i64 1
+ %tmp7134 = getelementptr inbounds float* %tmp7133, i64 1
+ %tmp7135 = getelementptr inbounds float* %tmp7134, i64 1
+ %tmp7136 = getelementptr inbounds float* %tmp7135, i64 1
+ %tmp7137 = getelementptr inbounds float* %tmp7136, i64 1
+ %tmp7138 = getelementptr inbounds float* %tmp7137, i64 1
+ %tmp7139 = getelementptr inbounds float* %tmp7138, i64 1
+ %tmp7140 = getelementptr inbounds float* %tmp7139, i64 1
+ %tmp7141 = getelementptr inbounds float* %tmp7140, i64 1
+ %tmp7142 = getelementptr inbounds float* %tmp7141, i64 1
+ %tmp7143 = getelementptr inbounds float* %tmp7142, i64 1
+ %tmp7144 = getelementptr inbounds float* %tmp7143, i64 1
+ %tmp7145 = getelementptr inbounds float* %tmp7144, i64 1
+ %tmp7146 = getelementptr inbounds float* %tmp7145, i64 1
+ %tmp7147 = getelementptr inbounds float* %tmp7146, i64 1
+ %tmp7148 = getelementptr inbounds float* %tmp7147, i64 1
+ %tmp7149 = getelementptr inbounds float* %tmp7148, i64 1
+ %tmp7150 = getelementptr inbounds float* %tmp7149, i64 1
+ %tmp7151 = getelementptr inbounds float* %tmp7150, i64 1
+ %tmp7152 = getelementptr inbounds float* %tmp7151, i64 1
+ %tmp7153 = getelementptr inbounds float* %tmp7152, i64 1
+ %tmp7154 = getelementptr inbounds float* %tmp7153, i64 1
+ %tmp7155 = getelementptr inbounds float* %tmp7154, i64 1
+ %tmp7156 = getelementptr inbounds float* %tmp7155, i64 1
+ %tmp7157 = getelementptr inbounds float* %tmp7156, i64 1
+ %tmp7158 = getelementptr inbounds float* %tmp7157, i64 1
+ %tmp7159 = getelementptr inbounds float* %tmp7158, i64 1
+ %tmp7160 = getelementptr inbounds float* %tmp7159, i64 1
+ %tmp7161 = getelementptr inbounds float* %tmp7160, i64 1
+ %tmp7162 = getelementptr inbounds float* %tmp7161, i64 1
+ %tmp7163 = getelementptr inbounds float* %tmp7162, i64 1
+ %tmp7164 = getelementptr inbounds float* %tmp7163, i64 1
+ %tmp7165 = getelementptr inbounds float* %tmp7164, i64 1
+ %tmp7166 = getelementptr inbounds float* %tmp7165, i64 1
+ %tmp7167 = getelementptr inbounds float* %tmp7166, i64 1
+ %tmp7168 = getelementptr inbounds float* %tmp7167, i64 1
+ %tmp7169 = getelementptr inbounds float* %tmp7168, i64 1
+ %tmp7170 = getelementptr inbounds float* %tmp7169, i64 1
+ %tmp7171 = getelementptr inbounds float* %tmp7170, i64 1
+ %tmp7172 = getelementptr inbounds float* %tmp7171, i64 1
+ %tmp7173 = getelementptr inbounds float* %tmp7172, i64 1
+ %tmp7174 = getelementptr inbounds float* %tmp7173, i64 1
+ %tmp7175 = getelementptr inbounds float* %tmp7174, i64 1
+ %tmp7176 = getelementptr inbounds float* %tmp7175, i64 1
+ %tmp7177 = getelementptr inbounds float* %tmp7176, i64 1
+ %tmp7178 = getelementptr inbounds float* %tmp7177, i64 1
+ %tmp7179 = getelementptr inbounds float* %tmp7178, i64 1
+ %tmp7180 = getelementptr inbounds float* %tmp7179, i64 1
+ %tmp7181 = getelementptr inbounds float* %tmp7180, i64 1
+ %tmp7182 = getelementptr inbounds float* %tmp7181, i64 1
+ %tmp7183 = getelementptr inbounds float* %tmp7182, i64 1
+ %tmp7184 = getelementptr inbounds float* %tmp7183, i64 1
+ %tmp7185 = getelementptr inbounds float* %tmp7184, i64 1
+ %tmp7186 = getelementptr inbounds float* %tmp7185, i64 1
+ %tmp7187 = getelementptr inbounds float* %tmp7186, i64 1
+ %tmp7188 = getelementptr inbounds float* %tmp7187, i64 1
+ %tmp7189 = getelementptr inbounds float* %tmp7188, i64 1
+ %tmp7190 = getelementptr inbounds float* %tmp7189, i64 1
+ %tmp7191 = getelementptr inbounds float* %tmp7190, i64 1
+ %tmp7192 = getelementptr inbounds float* %tmp7191, i64 1
+ %tmp7193 = getelementptr inbounds float* %tmp7192, i64 1
+ %tmp7194 = getelementptr inbounds float* %tmp7193, i64 1
+ %tmp7195 = getelementptr inbounds float* %tmp7194, i64 1
+ %tmp7196 = getelementptr inbounds float* %tmp7195, i64 1
+ %tmp7197 = getelementptr inbounds float* %tmp7196, i64 1
+ %tmp7198 = getelementptr inbounds float* %tmp7197, i64 1
+ %tmp7199 = getelementptr inbounds float* %tmp7198, i64 1
+ %tmp7200 = getelementptr inbounds float* %tmp7199, i64 1
+ %tmp7201 = getelementptr inbounds float* %tmp7200, i64 1
+ %tmp7202 = getelementptr inbounds float* %tmp7201, i64 1
+ %tmp7203 = getelementptr inbounds float* %tmp7202, i64 1
+ %tmp7204 = getelementptr inbounds float* %tmp7203, i64 1
+ %tmp7205 = getelementptr inbounds float* %tmp7204, i64 1
+ %tmp7206 = getelementptr inbounds float* %tmp7205, i64 1
+ %tmp7207 = getelementptr inbounds float* %tmp7206, i64 1
+ %tmp7208 = getelementptr inbounds float* %tmp7207, i64 1
+ %tmp7209 = getelementptr inbounds float* %tmp7208, i64 1
+ %tmp7210 = getelementptr inbounds float* %tmp7209, i64 1
+ %tmp7211 = getelementptr inbounds float* %tmp7210, i64 1
+ %tmp7212 = getelementptr inbounds float* %tmp7211, i64 1
+ %tmp7213 = getelementptr inbounds float* %tmp7212, i64 1
+ %tmp7214 = getelementptr inbounds float* %tmp7213, i64 1
+ %tmp7215 = getelementptr inbounds float* %tmp7214, i64 1
+ %tmp7216 = getelementptr inbounds float* %tmp7215, i64 1
+ %tmp7217 = getelementptr inbounds float* %tmp7216, i64 1
+ %tmp7218 = getelementptr inbounds float* %tmp7217, i64 1
+ %tmp7219 = getelementptr inbounds float* %tmp7218, i64 1
+ %tmp7220 = getelementptr inbounds float* %tmp7219, i64 1
+ %tmp7221 = getelementptr inbounds float* %tmp7220, i64 1
+ %tmp7222 = getelementptr inbounds float* %tmp7221, i64 1
+ %tmp7223 = getelementptr inbounds float* %tmp7222, i64 1
+ %tmp7224 = getelementptr inbounds float* %tmp7223, i64 1
+ %tmp7225 = getelementptr inbounds float* %tmp7224, i64 1
+ %tmp7226 = getelementptr inbounds float* %tmp7225, i64 1
+ %tmp7227 = getelementptr inbounds float* %tmp7226, i64 1
+ %tmp7228 = getelementptr inbounds float* %tmp7227, i64 1
+ %tmp7229 = getelementptr inbounds float* %tmp7228, i64 1
+ %tmp7230 = getelementptr inbounds float* %tmp7229, i64 1
+ %tmp7231 = getelementptr inbounds float* %tmp7230, i64 1
+ %tmp7232 = getelementptr inbounds float* %tmp7231, i64 1
+ %tmp7233 = getelementptr inbounds float* %tmp7232, i64 1
+ %tmp7234 = getelementptr inbounds float* %tmp7233, i64 1
+ %tmp7235 = getelementptr inbounds float* %tmp7234, i64 1
+ %tmp7236 = getelementptr inbounds float* %tmp7235, i64 1
+ %tmp7237 = getelementptr inbounds float* %tmp7236, i64 1
+ %tmp7238 = getelementptr inbounds float* %tmp7237, i64 1
+ %tmp7239 = getelementptr inbounds float* %tmp7238, i64 1
+ %tmp7240 = getelementptr inbounds float* %tmp7239, i64 1
+ %tmp7241 = getelementptr inbounds float* %tmp7240, i64 1
+ %tmp7242 = getelementptr inbounds float* %tmp7241, i64 1
+ %tmp7243 = getelementptr inbounds float* %tmp7242, i64 1
+ %tmp7244 = getelementptr inbounds float* %tmp7243, i64 1
+ %tmp7245 = getelementptr inbounds float* %tmp7244, i64 1
+ %tmp7246 = getelementptr inbounds float* %tmp7245, i64 1
+ %tmp7247 = getelementptr inbounds float* %tmp7246, i64 1
+ %tmp7248 = getelementptr inbounds float* %tmp7247, i64 1
+ %tmp7249 = getelementptr inbounds float* %tmp7248, i64 1
+ %tmp7250 = getelementptr inbounds float* %tmp7249, i64 1
+ %tmp7251 = getelementptr inbounds float* %tmp7250, i64 1
+ %tmp7252 = getelementptr inbounds float* %tmp7251, i64 1
+ %tmp7253 = getelementptr inbounds float* %tmp7252, i64 1
+ %tmp7254 = getelementptr inbounds float* %tmp7253, i64 1
+ %tmp7255 = getelementptr inbounds float* %tmp7254, i64 1
+ %tmp7256 = getelementptr inbounds float* %tmp7255, i64 1
+ %tmp7257 = getelementptr inbounds float* %tmp7256, i64 1
+ %tmp7258 = getelementptr inbounds float* %tmp7257, i64 1
+ %tmp7259 = getelementptr inbounds float* %tmp7258, i64 1
+ %tmp7260 = getelementptr inbounds float* %tmp7259, i64 1
+ %tmp7261 = getelementptr inbounds float* %tmp7260, i64 1
+ %tmp7262 = getelementptr inbounds float* %tmp7261, i64 1
+ %tmp7263 = getelementptr inbounds float* %tmp7262, i64 1
+ %tmp7264 = getelementptr inbounds float* %tmp7263, i64 1
+ %tmp7265 = getelementptr inbounds float* %tmp7264, i64 1
+ %tmp7266 = getelementptr inbounds float* %tmp7265, i64 1
+ %tmp7267 = getelementptr inbounds float* %tmp7266, i64 1
+ %tmp7268 = getelementptr inbounds float* %tmp7267, i64 1
+ %tmp7269 = getelementptr inbounds float* %tmp7268, i64 1
+ %tmp7270 = getelementptr inbounds float* %tmp7269, i64 1
+ %tmp7271 = getelementptr inbounds float* %tmp7270, i64 1
+ %tmp7272 = getelementptr inbounds float* %tmp7271, i64 1
+ %tmp7273 = getelementptr inbounds float* %tmp7272, i64 1
+ %tmp7274 = getelementptr inbounds float* %tmp7273, i64 1
+ %tmp7275 = getelementptr inbounds float* %tmp7274, i64 1
+ %tmp7276 = getelementptr inbounds float* %tmp7275, i64 1
+ %tmp7277 = getelementptr inbounds float* %tmp7276, i64 1
+ %tmp7278 = getelementptr inbounds float* %tmp7277, i64 1
+ %tmp7279 = getelementptr inbounds float* %tmp7278, i64 1
+ %tmp7280 = getelementptr inbounds float* %tmp7279, i64 1
+ %tmp7281 = getelementptr inbounds float* %tmp7280, i64 1
+ %tmp7282 = getelementptr inbounds float* %tmp7281, i64 1
+ %tmp7283 = getelementptr inbounds float* %tmp7282, i64 1
+ %tmp7284 = getelementptr inbounds float* %tmp7283, i64 1
+ %tmp7285 = getelementptr inbounds float* %tmp7284, i64 1
+ %tmp7286 = getelementptr inbounds float* %tmp7285, i64 1
+ %tmp7287 = getelementptr inbounds float* %tmp7286, i64 1
+ %tmp7288 = getelementptr inbounds float* %tmp7287, i64 1
+ %tmp7289 = getelementptr inbounds float* %tmp7288, i64 1
+ %tmp7290 = getelementptr inbounds float* %tmp7289, i64 1
+ %tmp7291 = getelementptr inbounds float* %tmp7290, i64 1
+ %tmp7292 = getelementptr inbounds float* %tmp7291, i64 1
+ %tmp7293 = getelementptr inbounds float* %tmp7292, i64 1
+ %tmp7294 = getelementptr inbounds float* %tmp7293, i64 1
+ %tmp7295 = getelementptr inbounds float* %tmp7294, i64 1
+ %tmp7296 = getelementptr inbounds float* %tmp7295, i64 1
+ %tmp7297 = getelementptr inbounds float* %tmp7296, i64 1
+ %tmp7298 = getelementptr inbounds float* %tmp7297, i64 1
+ %tmp7299 = getelementptr inbounds float* %tmp7298, i64 1
+ %tmp7300 = getelementptr inbounds float* %tmp7299, i64 1
+ %tmp7301 = getelementptr inbounds float* %tmp7300, i64 1
+ %tmp7302 = getelementptr inbounds float* %tmp7301, i64 1
+ %tmp7303 = getelementptr inbounds float* %tmp7302, i64 1
+ %tmp7304 = getelementptr inbounds float* %tmp7303, i64 1
+ %tmp7305 = getelementptr inbounds float* %tmp7304, i64 1
+ %tmp7306 = getelementptr inbounds float* %tmp7305, i64 1
+ %tmp7307 = getelementptr inbounds float* %tmp7306, i64 1
+ %tmp7308 = getelementptr inbounds float* %tmp7307, i64 1
+ %tmp7309 = getelementptr inbounds float* %tmp7308, i64 1
+ %tmp7310 = getelementptr inbounds float* %tmp7309, i64 1
+ %tmp7311 = getelementptr inbounds float* %tmp7310, i64 1
+ %tmp7312 = getelementptr inbounds float* %tmp7311, i64 1
+ %tmp7313 = getelementptr inbounds float* %tmp7312, i64 1
+ %tmp7314 = getelementptr inbounds float* %tmp7313, i64 1
+ %tmp7315 = getelementptr inbounds float* %tmp7314, i64 1
+ %tmp7316 = getelementptr inbounds float* %tmp7315, i64 1
+ %tmp7317 = getelementptr inbounds float* %tmp7316, i64 1
+ %tmp7318 = getelementptr inbounds float* %tmp7317, i64 1
+ %tmp7319 = getelementptr inbounds float* %tmp7318, i64 1
+ %tmp7320 = getelementptr inbounds float* %tmp7319, i64 1
+ %tmp7321 = getelementptr inbounds float* %tmp7320, i64 1
+ %tmp7322 = getelementptr inbounds float* %tmp7321, i64 1
+ %tmp7323 = getelementptr inbounds float* %tmp7322, i64 1
+ %tmp7324 = getelementptr inbounds float* %tmp7323, i64 1
+ %tmp7325 = getelementptr inbounds float* %tmp7324, i64 1
+ %tmp7326 = getelementptr inbounds float* %tmp7325, i64 1
+ %tmp7327 = getelementptr inbounds float* %tmp7326, i64 1
+ %tmp7328 = getelementptr inbounds float* %tmp7327, i64 1
+ %tmp7329 = getelementptr inbounds float* %tmp7328, i64 1
+ %tmp7330 = getelementptr inbounds float* %tmp7329, i64 1
+ %tmp7331 = getelementptr inbounds float* %tmp7330, i64 1
+ %tmp7332 = getelementptr inbounds float* %tmp7331, i64 1
+ %tmp7333 = getelementptr inbounds float* %tmp7332, i64 1
+ %tmp7334 = getelementptr inbounds float* %tmp7333, i64 1
+ %tmp7335 = getelementptr inbounds float* %tmp7334, i64 1
+ %tmp7336 = getelementptr inbounds float* %tmp7335, i64 1
+ %tmp7337 = getelementptr inbounds float* %tmp7336, i64 1
+ %tmp7338 = getelementptr inbounds float* %tmp7337, i64 1
+ %tmp7339 = getelementptr inbounds float* %tmp7338, i64 1
+ %tmp7340 = getelementptr inbounds float* %tmp7339, i64 1
+ %tmp7341 = getelementptr inbounds float* %tmp7340, i64 1
+ %tmp7342 = getelementptr inbounds float* %tmp7341, i64 1
+ %tmp7343 = getelementptr inbounds float* %tmp7342, i64 1
+ %tmp7344 = getelementptr inbounds float* %tmp7343, i64 1
+ %tmp7345 = getelementptr inbounds float* %tmp7344, i64 1
+ %tmp7346 = getelementptr inbounds float* %tmp7345, i64 1
+ %tmp7347 = getelementptr inbounds float* %tmp7346, i64 1
+ %tmp7348 = getelementptr inbounds float* %tmp7347, i64 1
+ %tmp7349 = getelementptr inbounds float* %tmp7348, i64 1
+ %tmp7350 = getelementptr inbounds float* %tmp7349, i64 1
+ %tmp7351 = getelementptr inbounds float* %tmp7350, i64 1
+ %tmp7352 = getelementptr inbounds float* %tmp7351, i64 1
+ %tmp7353 = getelementptr inbounds float* %tmp7352, i64 1
+ %tmp7354 = getelementptr inbounds float* %tmp7353, i64 1
+ %tmp7355 = getelementptr inbounds float* %tmp7354, i64 1
+ %tmp7356 = getelementptr inbounds float* %tmp7355, i64 1
+ %tmp7357 = getelementptr inbounds float* %tmp7356, i64 1
+ %tmp7358 = getelementptr inbounds float* %tmp7357, i64 1
+ %tmp7359 = getelementptr inbounds float* %tmp7358, i64 1
+ %tmp7360 = getelementptr inbounds float* %tmp7359, i64 1
+ %tmp7361 = getelementptr inbounds float* %tmp7360, i64 1
+ %tmp7362 = getelementptr inbounds float* %tmp7361, i64 1
+ %tmp7363 = getelementptr inbounds float* %tmp7362, i64 1
+ %tmp7364 = getelementptr inbounds float* %tmp7363, i64 1
+ %tmp7365 = getelementptr inbounds float* %tmp7364, i64 1
+ %tmp7366 = getelementptr inbounds float* %tmp7365, i64 1
+ %tmp7367 = getelementptr inbounds float* %tmp7366, i64 1
+ %tmp7368 = getelementptr inbounds float* %tmp7367, i64 1
+ %tmp7369 = getelementptr inbounds float* %tmp7368, i64 1
+ %tmp7370 = getelementptr inbounds float* %tmp7369, i64 1
+ %tmp7371 = getelementptr inbounds float* %tmp7370, i64 1
+ %tmp7372 = getelementptr inbounds float* %tmp7371, i64 1
+ %tmp7373 = getelementptr inbounds float* %tmp7372, i64 1
+ %tmp7374 = getelementptr inbounds float* %tmp7373, i64 1
+ %tmp7375 = getelementptr inbounds float* %tmp7374, i64 1
+ %tmp7376 = getelementptr inbounds float* %tmp7375, i64 1
+ %tmp7377 = getelementptr inbounds float* %tmp7376, i64 1
+ %tmp7378 = getelementptr inbounds float* %tmp7377, i64 1
+ %tmp7379 = getelementptr inbounds float* %tmp7378, i64 1
+ %tmp7380 = getelementptr inbounds float* %tmp7379, i64 1
+ %tmp7381 = getelementptr inbounds float* %tmp7380, i64 1
+ %tmp7382 = getelementptr inbounds float* %tmp7381, i64 1
+ %tmp7383 = getelementptr inbounds float* %tmp7382, i64 1
+ %tmp7384 = getelementptr inbounds float* %tmp7383, i64 1
+ %tmp7385 = getelementptr inbounds float* %tmp7384, i64 1
+ %tmp7386 = getelementptr inbounds float* %tmp7385, i64 1
+ %tmp7387 = getelementptr inbounds float* %tmp7386, i64 1
+ %tmp7388 = getelementptr inbounds float* %tmp7387, i64 1
+ %tmp7389 = getelementptr inbounds float* %tmp7388, i64 1
+ %tmp7390 = getelementptr inbounds float* %tmp7389, i64 1
+ %tmp7391 = getelementptr inbounds float* %tmp7390, i64 1
+ %tmp7392 = getelementptr inbounds float* %tmp7391, i64 1
+ %tmp7393 = getelementptr inbounds float* %tmp7392, i64 1
+ %tmp7394 = getelementptr inbounds float* %tmp7393, i64 1
+ %tmp7395 = getelementptr inbounds float* %tmp7394, i64 1
+ %tmp7396 = getelementptr inbounds float* %tmp7395, i64 1
+ %tmp7397 = getelementptr inbounds float* %tmp7396, i64 1
+ %tmp7398 = getelementptr inbounds float* %tmp7397, i64 1
+ %tmp7399 = getelementptr inbounds float* %tmp7398, i64 1
+ %tmp7400 = getelementptr inbounds float* %tmp7399, i64 1
+ %tmp7401 = getelementptr inbounds float* %tmp7400, i64 1
+ %tmp7402 = getelementptr inbounds float* %tmp7401, i64 1
+ %tmp7403 = getelementptr inbounds float* %tmp7402, i64 1
+ %tmp7404 = getelementptr inbounds float* %tmp7403, i64 1
+ %tmp7405 = getelementptr inbounds float* %tmp7404, i64 1
+ %tmp7406 = getelementptr inbounds float* %tmp7405, i64 1
+ %tmp7407 = getelementptr inbounds float* %tmp7406, i64 1
+ %tmp7408 = getelementptr inbounds float* %tmp7407, i64 1
+ %tmp7409 = getelementptr inbounds float* %tmp7408, i64 1
+ %tmp7410 = getelementptr inbounds float* %tmp7409, i64 1
+ %tmp7411 = getelementptr inbounds float* %tmp7410, i64 1
+ %tmp7412 = getelementptr inbounds float* %tmp7411, i64 1
+ %tmp7413 = getelementptr inbounds float* %tmp7412, i64 1
+ %tmp7414 = getelementptr inbounds float* %tmp7413, i64 1
+ %tmp7415 = getelementptr inbounds float* %tmp7414, i64 1
+ %tmp7416 = getelementptr inbounds float* %tmp7415, i64 1
+ %tmp7417 = getelementptr inbounds float* %tmp7416, i64 1
+ %tmp7418 = getelementptr inbounds float* %tmp7417, i64 1
+ %tmp7419 = getelementptr inbounds float* %tmp7418, i64 1
+ %tmp7420 = getelementptr inbounds float* %tmp7419, i64 1
+ %tmp7421 = getelementptr inbounds float* %tmp7420, i64 1
+ %tmp7422 = getelementptr inbounds float* %tmp7421, i64 1
+ %tmp7423 = getelementptr inbounds float* %tmp7422, i64 1
+ %tmp7424 = getelementptr inbounds float* %tmp7423, i64 1
+ %tmp7425 = getelementptr inbounds float* %tmp7424, i64 1
+ %tmp7426 = getelementptr inbounds float* %tmp7425, i64 1
+ %tmp7427 = getelementptr inbounds float* %tmp7426, i64 1
+ %tmp7428 = getelementptr inbounds float* %tmp7427, i64 1
+ %tmp7429 = getelementptr inbounds float* %tmp7428, i64 1
+ %tmp7430 = getelementptr inbounds float* %tmp7429, i64 1
+ %tmp7431 = getelementptr inbounds float* %tmp7430, i64 1
+ %tmp7432 = getelementptr inbounds float* %tmp7431, i64 1
+ %tmp7433 = getelementptr inbounds float* %tmp7432, i64 1
+ %tmp7434 = getelementptr inbounds float* %tmp7433, i64 1
+ %tmp7435 = getelementptr inbounds float* %tmp7434, i64 1
+ %tmp7436 = getelementptr inbounds float* %tmp7435, i64 1
+ %tmp7437 = getelementptr inbounds float* %tmp7436, i64 1
+ %tmp7438 = getelementptr inbounds float* %tmp7437, i64 1
+ %tmp7439 = getelementptr inbounds float* %tmp7438, i64 1
+ %tmp7440 = getelementptr inbounds float* %tmp7439, i64 1
+ %tmp7441 = getelementptr inbounds float* %tmp7440, i64 1
+ %tmp7442 = getelementptr inbounds float* %tmp7441, i64 1
+ %tmp7443 = getelementptr inbounds float* %tmp7442, i64 1
+ %tmp7444 = getelementptr inbounds float* %tmp7443, i64 1
+ %tmp7445 = getelementptr inbounds float* %tmp7444, i64 1
+ %tmp7446 = getelementptr inbounds float* %tmp7445, i64 1
+ %tmp7447 = getelementptr inbounds float* %tmp7446, i64 1
+ %tmp7448 = getelementptr inbounds float* %tmp7447, i64 1
+ %tmp7449 = getelementptr inbounds float* %tmp7448, i64 1
+ %tmp7450 = getelementptr inbounds float* %tmp7449, i64 1
+ %tmp7451 = getelementptr inbounds float* %tmp7450, i64 1
+ %tmp7452 = getelementptr inbounds float* %tmp7451, i64 1
+ %tmp7453 = getelementptr inbounds float* %tmp7452, i64 1
+ %tmp7454 = getelementptr inbounds float* %tmp7453, i64 1
+ %tmp7455 = getelementptr inbounds float* %tmp7454, i64 1
+ %tmp7456 = getelementptr inbounds float* %tmp7455, i64 1
+ %tmp7457 = getelementptr inbounds float* %tmp7456, i64 1
+ %tmp7458 = getelementptr inbounds float* %tmp7457, i64 1
+ %tmp7459 = getelementptr inbounds float* %tmp7458, i64 1
+ %tmp7460 = getelementptr inbounds float* %tmp7459, i64 1
+ %tmp7461 = getelementptr inbounds float* %tmp7460, i64 1
+ %tmp7462 = getelementptr inbounds float* %tmp7461, i64 1
+ %tmp7463 = getelementptr inbounds float* %tmp7462, i64 1
+ %tmp7464 = getelementptr inbounds float* %tmp7463, i64 1
+ %tmp7465 = getelementptr inbounds float* %tmp7464, i64 1
+ %tmp7466 = getelementptr inbounds float* %tmp7465, i64 1
+ %tmp7467 = getelementptr inbounds float* %tmp7466, i64 1
+ %tmp7468 = getelementptr inbounds float* %tmp7467, i64 1
+ %tmp7469 = getelementptr inbounds float* %tmp7468, i64 1
+ %tmp7470 = getelementptr inbounds float* %tmp7469, i64 1
+ %tmp7471 = getelementptr inbounds float* %tmp7470, i64 1
+ %tmp7472 = getelementptr inbounds float* %tmp7471, i64 1
+ %tmp7473 = getelementptr inbounds float* %tmp7472, i64 1
+ %tmp7474 = getelementptr inbounds float* %tmp7473, i64 1
+ %tmp7475 = getelementptr inbounds float* %tmp7474, i64 1
+ %tmp7476 = getelementptr inbounds float* %tmp7475, i64 1
+ %tmp7477 = getelementptr inbounds float* %tmp7476, i64 1
+ %tmp7478 = getelementptr inbounds float* %tmp7477, i64 1
+ %tmp7479 = getelementptr inbounds float* %tmp7478, i64 1
+ %tmp7480 = getelementptr inbounds float* %tmp7479, i64 1
+ %tmp7481 = getelementptr inbounds float* %tmp7480, i64 1
+ %tmp7482 = getelementptr inbounds float* %tmp7481, i64 1
+ %tmp7483 = getelementptr inbounds float* %tmp7482, i64 1
+ %tmp7484 = getelementptr inbounds float* %tmp7483, i64 1
+ %tmp7485 = getelementptr inbounds float* %tmp7484, i64 1
+ %tmp7486 = getelementptr inbounds float* %tmp7485, i64 1
+ %tmp7487 = getelementptr inbounds float* %tmp7486, i64 1
+ %tmp7488 = getelementptr inbounds float* %tmp7487, i64 1
+ %tmp7489 = getelementptr inbounds float* %tmp7488, i64 1
+ %tmp7490 = getelementptr inbounds float* %tmp7489, i64 1
+ %tmp7491 = getelementptr inbounds float* %tmp7490, i64 1
+ %tmp7492 = getelementptr inbounds float* %tmp7491, i64 1
+ %tmp7493 = getelementptr inbounds float* %tmp7492, i64 1
+ %tmp7494 = getelementptr inbounds float* %tmp7493, i64 1
+ %tmp7495 = getelementptr inbounds float* %tmp7494, i64 1
+ %tmp7496 = getelementptr inbounds float* %tmp7495, i64 1
+ %tmp7497 = getelementptr inbounds float* %tmp7496, i64 1
+ %tmp7498 = getelementptr inbounds float* %tmp7497, i64 1
+ %tmp7499 = getelementptr inbounds float* %tmp7498, i64 1
+ %tmp7500 = getelementptr inbounds float* %tmp7499, i64 1
+ %tmp7501 = getelementptr inbounds float* %tmp7500, i64 1
+ %tmp7502 = getelementptr inbounds float* %tmp7501, i64 1
+ %tmp7503 = getelementptr inbounds float* %tmp7502, i64 1
+ %tmp7504 = getelementptr inbounds float* %tmp7503, i64 1
+ %tmp7505 = getelementptr inbounds float* %tmp7504, i64 1
+ %tmp7506 = getelementptr inbounds float* %tmp7505, i64 1
+ %tmp7507 = getelementptr inbounds float* %tmp7506, i64 1
+ %tmp7508 = getelementptr inbounds float* %tmp7507, i64 1
+ %tmp7509 = getelementptr inbounds float* %tmp7508, i64 1
+ %tmp7510 = getelementptr inbounds float* %tmp7509, i64 1
+ %tmp7511 = getelementptr inbounds float* %tmp7510, i64 1
+ %tmp7512 = getelementptr inbounds float* %tmp7511, i64 1
+ %tmp7513 = getelementptr inbounds float* %tmp7512, i64 1
+ %tmp7514 = getelementptr inbounds float* %tmp7513, i64 1
+ %tmp7515 = getelementptr inbounds float* %tmp7514, i64 1
+ %tmp7516 = getelementptr inbounds float* %tmp7515, i64 1
+ %tmp7517 = getelementptr inbounds float* %tmp7516, i64 1
+ %tmp7518 = getelementptr inbounds float* %tmp7517, i64 1
+ %tmp7519 = getelementptr inbounds float* %tmp7518, i64 1
+ %tmp7520 = getelementptr inbounds float* %tmp7519, i64 1
+ %tmp7521 = getelementptr inbounds float* %tmp7520, i64 1
+ %tmp7522 = getelementptr inbounds float* %tmp7521, i64 1
+ %tmp7523 = getelementptr inbounds float* %tmp7522, i64 1
+ %tmp7524 = getelementptr inbounds float* %tmp7523, i64 1
+ %tmp7525 = getelementptr inbounds float* %tmp7524, i64 1
+ %tmp7526 = getelementptr inbounds float* %tmp7525, i64 1
+ %tmp7527 = getelementptr inbounds float* %tmp7526, i64 1
+ %tmp7528 = getelementptr inbounds float* %tmp7527, i64 1
+ %tmp7529 = getelementptr inbounds float* %tmp7528, i64 1
+ %tmp7530 = getelementptr inbounds float* %tmp7529, i64 1
+ %tmp7531 = getelementptr inbounds float* %tmp7530, i64 1
+ %tmp7532 = getelementptr inbounds float* %tmp7531, i64 1
+ %tmp7533 = getelementptr inbounds float* %tmp7532, i64 1
+ %tmp7534 = getelementptr inbounds float* %tmp7533, i64 1
+ %tmp7535 = getelementptr inbounds float* %tmp7534, i64 1
+ %tmp7536 = getelementptr inbounds float* %tmp7535, i64 1
+ %tmp7537 = getelementptr inbounds float* %tmp7536, i64 1
+ %tmp7538 = getelementptr inbounds float* %tmp7537, i64 1
+ %tmp7539 = getelementptr inbounds float* %tmp7538, i64 1
+ %tmp7540 = getelementptr inbounds float* %tmp7539, i64 1
+ %tmp7541 = getelementptr inbounds float* %tmp7540, i64 1
+ %tmp7542 = getelementptr inbounds float* %tmp7541, i64 1
+ %tmp7543 = getelementptr inbounds float* %tmp7542, i64 1
+ %tmp7544 = getelementptr inbounds float* %tmp7543, i64 1
+ %tmp7545 = getelementptr inbounds float* %tmp7544, i64 1
+ %tmp7546 = getelementptr inbounds float* %tmp7545, i64 1
+ %tmp7547 = getelementptr inbounds float* %tmp7546, i64 1
+ %tmp7548 = getelementptr inbounds float* %tmp7547, i64 1
+ %tmp7549 = getelementptr inbounds float* %tmp7548, i64 1
+ %tmp7550 = getelementptr inbounds float* %tmp7549, i64 1
+ %tmp7551 = getelementptr inbounds float* %tmp7550, i64 1
+ %tmp7552 = getelementptr inbounds float* %tmp7551, i64 1
+ %tmp7553 = getelementptr inbounds float* %tmp7552, i64 1
+ %tmp7554 = getelementptr inbounds float* %tmp7553, i64 1
+ %tmp7555 = getelementptr inbounds float* %tmp7554, i64 1
+ %tmp7556 = getelementptr inbounds float* %tmp7555, i64 1
+ %tmp7557 = getelementptr inbounds float* %tmp7556, i64 1
+ %tmp7558 = getelementptr inbounds float* %tmp7557, i64 1
+ %tmp7559 = getelementptr inbounds float* %tmp7558, i64 1
+ %tmp7560 = getelementptr inbounds float* %tmp7559, i64 1
+ %tmp7561 = getelementptr inbounds float* %tmp7560, i64 1
+ %tmp7562 = getelementptr inbounds float* %tmp7561, i64 1
+ %tmp7563 = getelementptr inbounds float* %tmp7562, i64 1
+ %tmp7564 = getelementptr inbounds float* %tmp7563, i64 1
+ %tmp7565 = getelementptr inbounds float* %tmp7564, i64 1
+ %tmp7566 = getelementptr inbounds float* %tmp7565, i64 1
+ %tmp7567 = getelementptr inbounds float* %tmp7566, i64 1
+ %tmp7568 = getelementptr inbounds float* %tmp7567, i64 1
+ %tmp7569 = getelementptr inbounds float* %tmp7568, i64 1
+ %tmp7570 = getelementptr inbounds float* %tmp7569, i64 1
+ %tmp7571 = getelementptr inbounds float* %tmp7570, i64 1
+ %tmp7572 = getelementptr inbounds float* %tmp7571, i64 1
+ %tmp7573 = getelementptr inbounds float* %tmp7572, i64 1
+ %tmp7574 = getelementptr inbounds float* %tmp7573, i64 1
+ %tmp7575 = getelementptr inbounds float* %tmp7574, i64 1
+ %tmp7576 = getelementptr inbounds float* %tmp7575, i64 1
+ %tmp7577 = getelementptr inbounds float* %tmp7576, i64 1
+ %tmp7578 = getelementptr inbounds float* %tmp7577, i64 1
+ %tmp7579 = getelementptr inbounds float* %tmp7578, i64 1
+ %tmp7580 = getelementptr inbounds float* %tmp7579, i64 1
+ %tmp7581 = getelementptr inbounds float* %tmp7580, i64 1
+ %tmp7582 = getelementptr inbounds float* %tmp7581, i64 1
+ %tmp7583 = getelementptr inbounds float* %tmp7582, i64 1
+ %tmp7584 = getelementptr inbounds float* %tmp7583, i64 1
+ %tmp7585 = getelementptr inbounds float* %tmp7584, i64 1
+ %tmp7586 = getelementptr inbounds float* %tmp7585, i64 1
+ %tmp7587 = getelementptr inbounds float* %tmp7586, i64 1
+ %tmp7588 = getelementptr inbounds float* %tmp7587, i64 1
+ %tmp7589 = getelementptr inbounds float* %tmp7588, i64 1
+ %tmp7590 = getelementptr inbounds float* %tmp7589, i64 1
+ %tmp7591 = getelementptr inbounds float* %tmp7590, i64 1
+ %tmp7592 = getelementptr inbounds float* %tmp7591, i64 1
+ %tmp7593 = getelementptr inbounds float* %tmp7592, i64 1
+ %tmp7594 = getelementptr inbounds float* %tmp7593, i64 1
+ %tmp7595 = getelementptr inbounds float* %tmp7594, i64 1
+ %tmp7596 = getelementptr inbounds float* %tmp7595, i64 1
+ %tmp7597 = getelementptr inbounds float* %tmp7596, i64 1
+ %tmp7598 = getelementptr inbounds float* %tmp7597, i64 1
+ %tmp7599 = getelementptr inbounds float* %tmp7598, i64 1
+ %tmp7600 = getelementptr inbounds float* %tmp7599, i64 1
+ %tmp7601 = getelementptr inbounds float* %tmp7600, i64 1
+ %tmp7602 = getelementptr inbounds float* %tmp7601, i64 1
+ %tmp7603 = getelementptr inbounds float* %tmp7602, i64 1
+ %tmp7604 = getelementptr inbounds float* %tmp7603, i64 1
+ %tmp7605 = getelementptr inbounds float* %tmp7604, i64 1
+ %tmp7606 = getelementptr inbounds float* %tmp7605, i64 1
+ %tmp7607 = getelementptr inbounds float* %tmp7606, i64 1
+ %tmp7608 = getelementptr inbounds float* %tmp7607, i64 1
+ %tmp7609 = getelementptr inbounds float* %tmp7608, i64 1
+ %tmp7610 = getelementptr inbounds float* %tmp7609, i64 1
+ %tmp7611 = getelementptr inbounds float* %tmp7610, i64 1
+ %tmp7612 = getelementptr inbounds float* %tmp7611, i64 1
+ %tmp7613 = getelementptr inbounds float* %tmp7612, i64 1
+ %tmp7614 = getelementptr inbounds float* %tmp7613, i64 1
+ %tmp7615 = getelementptr inbounds float* %tmp7614, i64 1
+ %tmp7616 = getelementptr inbounds float* %tmp7615, i64 1
+ %tmp7617 = getelementptr inbounds float* %tmp7616, i64 1
+ %tmp7618 = getelementptr inbounds float* %tmp7617, i64 1
+ %tmp7619 = getelementptr inbounds float* %tmp7618, i64 1
+ %tmp7620 = getelementptr inbounds float* %tmp7619, i64 1
+ %tmp7621 = getelementptr inbounds float* %tmp7620, i64 1
+ %tmp7622 = getelementptr inbounds float* %tmp7621, i64 1
+ %tmp7623 = getelementptr inbounds float* %tmp7622, i64 1
+ %tmp7624 = getelementptr inbounds float* %tmp7623, i64 1
+ %tmp7625 = getelementptr inbounds float* %tmp7624, i64 1
+ %tmp7626 = getelementptr inbounds float* %tmp7625, i64 1
+ %tmp7627 = getelementptr inbounds float* %tmp7626, i64 1
+ %tmp7628 = getelementptr inbounds float* %tmp7627, i64 1
+ %tmp7629 = getelementptr inbounds float* %tmp7628, i64 1
+ %tmp7630 = getelementptr inbounds float* %tmp7629, i64 1
+ %tmp7631 = getelementptr inbounds float* %tmp7630, i64 1
+ %tmp7632 = getelementptr inbounds float* %tmp7631, i64 1
+ %tmp7633 = getelementptr inbounds float* %tmp7632, i64 1
+ %tmp7634 = getelementptr inbounds float* %tmp7633, i64 1
+ %tmp7635 = getelementptr inbounds float* %tmp7634, i64 1
+ %tmp7636 = getelementptr inbounds float* %tmp7635, i64 1
+ %tmp7637 = getelementptr inbounds float* %tmp7636, i64 1
+ %tmp7638 = getelementptr inbounds float* %tmp7637, i64 1
+ %tmp7639 = getelementptr inbounds float* %tmp7638, i64 1
+ %tmp7640 = getelementptr inbounds float* %tmp7639, i64 1
+ %tmp7641 = getelementptr inbounds float* %tmp7640, i64 1
+ %tmp7642 = getelementptr inbounds float* %tmp7641, i64 1
+ %tmp7643 = getelementptr inbounds float* %tmp7642, i64 1
+ %tmp7644 = getelementptr inbounds float* %tmp7643, i64 1
+ %tmp7645 = getelementptr inbounds float* %tmp7644, i64 1
+ %tmp7646 = getelementptr inbounds float* %tmp7645, i64 1
+ %tmp7647 = getelementptr inbounds float* %tmp7646, i64 1
+ %tmp7648 = getelementptr inbounds float* %tmp7647, i64 1
+ %tmp7649 = getelementptr inbounds float* %tmp7648, i64 1
+ %tmp7650 = getelementptr inbounds float* %tmp7649, i64 1
+ %tmp7651 = getelementptr inbounds float* %tmp7650, i64 1
+ %tmp7652 = getelementptr inbounds float* %tmp7651, i64 1
+ %tmp7653 = getelementptr inbounds float* %tmp7652, i64 1
+ %tmp7654 = getelementptr inbounds float* %tmp7653, i64 1
+ %tmp7655 = getelementptr inbounds float* %tmp7654, i64 1
+ %tmp7656 = getelementptr inbounds float* %tmp7655, i64 1
+ %tmp7657 = getelementptr inbounds float* %tmp7656, i64 1
+ %tmp7658 = getelementptr inbounds float* %tmp7657, i64 1
+ %tmp7659 = getelementptr inbounds float* %tmp7658, i64 1
+ %tmp7660 = getelementptr inbounds float* %tmp7659, i64 1
+ %tmp7661 = getelementptr inbounds float* %tmp7660, i64 1
+ %tmp7662 = getelementptr inbounds float* %tmp7661, i64 1
+ %tmp7663 = getelementptr inbounds float* %tmp7662, i64 1
+ %tmp7664 = getelementptr inbounds float* %tmp7663, i64 1
+ %tmp7665 = getelementptr inbounds float* %tmp7664, i64 1
+ %tmp7666 = getelementptr inbounds float* %tmp7665, i64 1
+ %tmp7667 = getelementptr inbounds float* %tmp7666, i64 1
+ %tmp7668 = getelementptr inbounds float* %tmp7667, i64 1
+ %tmp7669 = getelementptr inbounds float* %tmp7668, i64 1
+ %tmp7670 = getelementptr inbounds float* %tmp7669, i64 1
+ %tmp7671 = getelementptr inbounds float* %tmp7670, i64 1
+ %tmp7672 = getelementptr inbounds float* %tmp7671, i64 1
+ %tmp7673 = getelementptr inbounds float* %tmp7672, i64 1
+ %tmp7674 = getelementptr inbounds float* %tmp7673, i64 1
+ %tmp7675 = getelementptr inbounds float* %tmp7674, i64 1
+ %tmp7676 = getelementptr inbounds float* %tmp7675, i64 1
+ %tmp7677 = getelementptr inbounds float* %tmp7676, i64 1
+ %tmp7678 = getelementptr inbounds float* %tmp7677, i64 1
+ %tmp7679 = getelementptr inbounds float* %tmp7678, i64 1
+ %tmp7680 = getelementptr inbounds float* %tmp7679, i64 1
+ %tmp7681 = getelementptr inbounds float* %tmp7680, i64 1
+ %tmp7682 = getelementptr inbounds float* %tmp7681, i64 1
+ %tmp7683 = getelementptr inbounds float* %tmp7682, i64 1
+ %tmp7684 = getelementptr inbounds float* %tmp7683, i64 1
+ %tmp7685 = getelementptr inbounds float* %tmp7684, i64 1
+ %tmp7686 = getelementptr inbounds float* %tmp7685, i64 1
+ %tmp7687 = getelementptr inbounds float* %tmp7686, i64 1
+ %tmp7688 = getelementptr inbounds float* %tmp7687, i64 1
+ %tmp7689 = getelementptr inbounds float* %tmp7688, i64 1
+ %tmp7690 = getelementptr inbounds float* %tmp7689, i64 1
+ %tmp7691 = getelementptr inbounds float* %tmp7690, i64 1
+ %tmp7692 = getelementptr inbounds float* %tmp7691, i64 1
+ %tmp7693 = getelementptr inbounds float* %tmp7692, i64 1
+ %tmp7694 = getelementptr inbounds float* %tmp7693, i64 1
+ %tmp7695 = getelementptr inbounds float* %tmp7694, i64 1
+ %tmp7696 = getelementptr inbounds float* %tmp7695, i64 1
+ %tmp7697 = getelementptr inbounds float* %tmp7696, i64 1
+ %tmp7698 = getelementptr inbounds float* %tmp7697, i64 1
+ %tmp7699 = getelementptr inbounds float* %tmp7698, i64 1
+ %tmp7700 = getelementptr inbounds float* %tmp7699, i64 1
+ %tmp7701 = getelementptr inbounds float* %tmp7700, i64 1
+ %tmp7702 = getelementptr inbounds float* %tmp7701, i64 1
+ %tmp7703 = getelementptr inbounds float* %tmp7702, i64 1
+ %tmp7704 = getelementptr inbounds float* %tmp7703, i64 1
+ %tmp7705 = getelementptr inbounds float* %tmp7704, i64 1
+ %tmp7706 = getelementptr inbounds float* %tmp7705, i64 1
+ %tmp7707 = getelementptr inbounds float* %tmp7706, i64 1
+ %tmp7708 = getelementptr inbounds float* %tmp7707, i64 1
+ %tmp7709 = getelementptr inbounds float* %tmp7708, i64 1
+ %tmp7710 = getelementptr inbounds float* %tmp7709, i64 1
+ %tmp7711 = getelementptr inbounds float* %tmp7710, i64 1
+ %tmp7712 = getelementptr inbounds float* %tmp7711, i64 1
+ %tmp7713 = getelementptr inbounds float* %tmp7712, i64 1
+ %tmp7714 = getelementptr inbounds float* %tmp7713, i64 1
+ %tmp7715 = getelementptr inbounds float* %tmp7714, i64 1
+ %tmp7716 = getelementptr inbounds float* %tmp7715, i64 1
+ %tmp7717 = getelementptr inbounds float* %tmp7716, i64 1
+ %tmp7718 = getelementptr inbounds float* %tmp7717, i64 1
+ %tmp7719 = getelementptr inbounds float* %tmp7718, i64 1
+ %tmp7720 = getelementptr inbounds float* %tmp7719, i64 1
+ %tmp7721 = getelementptr inbounds float* %tmp7720, i64 1
+ %tmp7722 = getelementptr inbounds float* %tmp7721, i64 1
+ %tmp7723 = getelementptr inbounds float* %tmp7722, i64 1
+ %tmp7724 = getelementptr inbounds float* %tmp7723, i64 1
+ %tmp7725 = getelementptr inbounds float* %tmp7724, i64 1
+ %tmp7726 = getelementptr inbounds float* %tmp7725, i64 1
+ %tmp7727 = getelementptr inbounds float* %tmp7726, i64 1
+ %tmp7728 = getelementptr inbounds float* %tmp7727, i64 1
+ %tmp7729 = getelementptr inbounds float* %tmp7728, i64 1
+ %tmp7730 = getelementptr inbounds float* %tmp7729, i64 1
+ %tmp7731 = getelementptr inbounds float* %tmp7730, i64 1
+ %tmp7732 = getelementptr inbounds float* %tmp7731, i64 1
+ %tmp7733 = getelementptr inbounds float* %tmp7732, i64 1
+ %tmp7734 = getelementptr inbounds float* %tmp7733, i64 1
+ %tmp7735 = getelementptr inbounds float* %tmp7734, i64 1
+ %tmp7736 = getelementptr inbounds float* %tmp7735, i64 1
+ %tmp7737 = getelementptr inbounds float* %tmp7736, i64 1
+ %tmp7738 = getelementptr inbounds float* %tmp7737, i64 1
+ %tmp7739 = getelementptr inbounds float* %tmp7738, i64 1
+ %tmp7740 = getelementptr inbounds float* %tmp7739, i64 1
+ %tmp7741 = getelementptr inbounds float* %tmp7740, i64 1
+ %tmp7742 = getelementptr inbounds float* %tmp7741, i64 1
+ %tmp7743 = getelementptr inbounds float* %tmp7742, i64 1
+ %tmp7744 = getelementptr inbounds float* %tmp7743, i64 1
+ %tmp7745 = getelementptr inbounds float* %tmp7744, i64 1
+ %tmp7746 = getelementptr inbounds float* %tmp7745, i64 1
+ %tmp7747 = getelementptr inbounds float* %tmp7746, i64 1
+ %tmp7748 = getelementptr inbounds float* %tmp7747, i64 1
+ %tmp7749 = getelementptr inbounds float* %tmp7748, i64 1
+ %tmp7750 = getelementptr inbounds float* %tmp7749, i64 1
+ %tmp7751 = getelementptr inbounds float* %tmp7750, i64 1
+ %tmp7752 = getelementptr inbounds float* %tmp7751, i64 1
+ %tmp7753 = getelementptr inbounds float* %tmp7752, i64 1
+ %tmp7754 = getelementptr inbounds float* %tmp7753, i64 1
+ %tmp7755 = getelementptr inbounds float* %tmp7754, i64 1
+ %tmp7756 = getelementptr inbounds float* %tmp7755, i64 1
+ %tmp7757 = getelementptr inbounds float* %tmp7756, i64 1
+ %tmp7758 = getelementptr inbounds float* %tmp7757, i64 1
+ %tmp7759 = getelementptr inbounds float* %tmp7758, i64 1
+ %tmp7760 = getelementptr inbounds float* %tmp7759, i64 1
+ %tmp7761 = getelementptr inbounds float* %tmp7760, i64 1
+ %tmp7762 = getelementptr inbounds float* %tmp7761, i64 1
+ %tmp7763 = getelementptr inbounds float* %tmp7762, i64 1
+ %tmp7764 = getelementptr inbounds float* %tmp7763, i64 1
+ %tmp7765 = getelementptr inbounds float* %tmp7764, i64 1
+ %tmp7766 = getelementptr inbounds float* %tmp7765, i64 1
+ %tmp7767 = getelementptr inbounds float* %tmp7766, i64 1
+ %tmp7768 = getelementptr inbounds float* %tmp7767, i64 1
+ %tmp7769 = getelementptr inbounds float* %tmp7768, i64 1
+ %tmp7770 = getelementptr inbounds float* %tmp7769, i64 1
+ %tmp7771 = getelementptr inbounds float* %tmp7770, i64 1
+ %tmp7772 = getelementptr inbounds float* %tmp7771, i64 1
+ %tmp7773 = getelementptr inbounds float* %tmp7772, i64 1
+ %tmp7774 = getelementptr inbounds float* %tmp7773, i64 1
+ %tmp7775 = getelementptr inbounds float* %tmp7774, i64 1
+ %tmp7776 = getelementptr inbounds float* %tmp7775, i64 1
+ %tmp7777 = getelementptr inbounds float* %tmp7776, i64 1
+ %tmp7778 = getelementptr inbounds float* %tmp7777, i64 1
+ %tmp7779 = getelementptr inbounds float* %tmp7778, i64 1
+ %tmp7780 = getelementptr inbounds float* %tmp7779, i64 1
+ %tmp7781 = getelementptr inbounds float* %tmp7780, i64 1
+ %tmp7782 = getelementptr inbounds float* %tmp7781, i64 1
+ %tmp7783 = getelementptr inbounds float* %tmp7782, i64 1
+ %tmp7784 = getelementptr inbounds float* %tmp7783, i64 1
+ %tmp7785 = getelementptr inbounds float* %tmp7784, i64 1
+ %tmp7786 = getelementptr inbounds float* %tmp7785, i64 1
+ %tmp7787 = getelementptr inbounds float* %tmp7786, i64 1
+ %tmp7788 = getelementptr inbounds float* %tmp7787, i64 1
+ %tmp7789 = getelementptr inbounds float* %tmp7788, i64 1
+ %tmp7790 = getelementptr inbounds float* %tmp7789, i64 1
+ %tmp7791 = getelementptr inbounds float* %tmp7790, i64 1
+ %tmp7792 = getelementptr inbounds float* %tmp7791, i64 1
+ %tmp7793 = getelementptr inbounds float* %tmp7792, i64 1
+ %tmp7794 = getelementptr inbounds float* %tmp7793, i64 1
+ %tmp7795 = getelementptr inbounds float* %tmp7794, i64 1
+ %tmp7796 = getelementptr inbounds float* %tmp7795, i64 1
+ %tmp7797 = getelementptr inbounds float* %tmp7796, i64 1
+ %tmp7798 = getelementptr inbounds float* %tmp7797, i64 1
+ %tmp7799 = getelementptr inbounds float* %tmp7798, i64 1
+ %tmp7800 = getelementptr inbounds float* %tmp7799, i64 1
+ %tmp7801 = getelementptr inbounds float* %tmp7800, i64 1
+ %tmp7802 = getelementptr inbounds float* %tmp7801, i64 1
+ %tmp7803 = getelementptr inbounds float* %tmp7802, i64 1
+ %tmp7804 = getelementptr inbounds float* %tmp7803, i64 1
+ %tmp7805 = getelementptr inbounds float* %tmp7804, i64 1
+ %tmp7806 = getelementptr inbounds float* %tmp7805, i64 1
+ %tmp7807 = getelementptr inbounds float* %tmp7806, i64 1
+ %tmp7808 = getelementptr inbounds float* %tmp7807, i64 1
+ %tmp7809 = getelementptr inbounds float* %tmp7808, i64 1
+ %tmp7810 = getelementptr inbounds float* %tmp7809, i64 1
+ %tmp7811 = getelementptr inbounds float* %tmp7810, i64 1
+ %tmp7812 = getelementptr inbounds float* %tmp7811, i64 1
+ %tmp7813 = getelementptr inbounds float* %tmp7812, i64 1
+ %tmp7814 = getelementptr inbounds float* %tmp7813, i64 1
+ %tmp7815 = getelementptr inbounds float* %tmp7814, i64 1
+ %tmp7816 = getelementptr inbounds float* %tmp7815, i64 1
+ %tmp7817 = getelementptr inbounds float* %tmp7816, i64 1
+ %tmp7818 = getelementptr inbounds float* %tmp7817, i64 1
+ %tmp7819 = getelementptr inbounds float* %tmp7818, i64 1
+ %tmp7820 = getelementptr inbounds float* %tmp7819, i64 1
+ %tmp7821 = getelementptr inbounds float* %tmp7820, i64 1
+ %tmp7822 = getelementptr inbounds float* %tmp7821, i64 1
+ %tmp7823 = getelementptr inbounds float* %tmp7822, i64 1
+ %tmp7824 = getelementptr inbounds float* %tmp7823, i64 1
+ %tmp7825 = getelementptr inbounds float* %tmp7824, i64 1
+ %tmp7826 = getelementptr inbounds float* %tmp7825, i64 1
+ %tmp7827 = getelementptr inbounds float* %tmp7826, i64 1
+ %tmp7828 = getelementptr inbounds float* %tmp7827, i64 1
+ %tmp7829 = getelementptr inbounds float* %tmp7828, i64 1
+ %tmp7830 = getelementptr inbounds float* %tmp7829, i64 1
+ %tmp7831 = getelementptr inbounds float* %tmp7830, i64 1
+ %tmp7832 = getelementptr inbounds float* %tmp7831, i64 1
+ %tmp7833 = getelementptr inbounds float* %tmp7832, i64 1
+ %tmp7834 = getelementptr inbounds float* %tmp7833, i64 1
+ %tmp7835 = getelementptr inbounds float* %tmp7834, i64 1
+ %tmp7836 = getelementptr inbounds float* %tmp7835, i64 1
+ %tmp7837 = getelementptr inbounds float* %tmp7836, i64 1
+ %tmp7838 = getelementptr inbounds float* %tmp7837, i64 1
+ %tmp7839 = getelementptr inbounds float* %tmp7838, i64 1
+ %tmp7840 = getelementptr inbounds float* %tmp7839, i64 1
+ %tmp7841 = getelementptr inbounds float* %tmp7840, i64 1
+ %tmp7842 = getelementptr inbounds float* %tmp7841, i64 1
+ %tmp7843 = getelementptr inbounds float* %tmp7842, i64 1
+ %tmp7844 = getelementptr inbounds float* %tmp7843, i64 1
+ %tmp7845 = getelementptr inbounds float* %tmp7844, i64 1
+ %tmp7846 = getelementptr inbounds float* %tmp7845, i64 1
+ %tmp7847 = getelementptr inbounds float* %tmp7846, i64 1
+ %tmp7848 = getelementptr inbounds float* %tmp7847, i64 1
+ %tmp7849 = getelementptr inbounds float* %tmp7848, i64 1
+ %tmp7850 = getelementptr inbounds float* %tmp7849, i64 1
+ %tmp7851 = getelementptr inbounds float* %tmp7850, i64 1
+ %tmp7852 = getelementptr inbounds float* %tmp7851, i64 1
+ %tmp7853 = getelementptr inbounds float* %tmp7852, i64 1
+ %tmp7854 = getelementptr inbounds float* %tmp7853, i64 1
+ %tmp7855 = getelementptr inbounds float* %tmp7854, i64 1
+ %tmp7856 = getelementptr inbounds float* %tmp7855, i64 1
+ %tmp7857 = getelementptr inbounds float* %tmp7856, i64 1
+ %tmp7858 = getelementptr inbounds float* %tmp7857, i64 1
+ %tmp7859 = getelementptr inbounds float* %tmp7858, i64 1
+ %tmp7860 = getelementptr inbounds float* %tmp7859, i64 1
+ %tmp7861 = getelementptr inbounds float* %tmp7860, i64 1
+ %tmp7862 = getelementptr inbounds float* %tmp7861, i64 1
+ %tmp7863 = getelementptr inbounds float* %tmp7862, i64 1
+ %tmp7864 = getelementptr inbounds float* %tmp7863, i64 1
+ %tmp7865 = getelementptr inbounds float* %tmp7864, i64 1
+ %tmp7866 = getelementptr inbounds float* %tmp7865, i64 1
+ %tmp7867 = getelementptr inbounds float* %tmp7866, i64 1
+ %tmp7868 = getelementptr inbounds float* %tmp7867, i64 1
+ %tmp7869 = getelementptr inbounds float* %tmp7868, i64 1
+ %tmp7870 = getelementptr inbounds float* %tmp7869, i64 1
+ %tmp7871 = getelementptr inbounds float* %tmp7870, i64 1
+ %tmp7872 = getelementptr inbounds float* %tmp7871, i64 1
+ %tmp7873 = getelementptr inbounds float* %tmp7872, i64 1
+ %tmp7874 = getelementptr inbounds float* %tmp7873, i64 1
+ %tmp7875 = getelementptr inbounds float* %tmp7874, i64 1
+ %tmp7876 = getelementptr inbounds float* %tmp7875, i64 1
+ %tmp7877 = getelementptr inbounds float* %tmp7876, i64 1
+ %tmp7878 = getelementptr inbounds float* %tmp7877, i64 1
+ %tmp7879 = getelementptr inbounds float* %tmp7878, i64 1
+ %tmp7880 = getelementptr inbounds float* %tmp7879, i64 1
+ %tmp7881 = getelementptr inbounds float* %tmp7880, i64 1
+ %tmp7882 = getelementptr inbounds float* %tmp7881, i64 1
+ %tmp7883 = getelementptr inbounds float* %tmp7882, i64 1
+ %tmp7884 = getelementptr inbounds float* %tmp7883, i64 1
+ %tmp7885 = getelementptr inbounds float* %tmp7884, i64 1
+ %tmp7886 = getelementptr inbounds float* %tmp7885, i64 1
+ %tmp7887 = getelementptr inbounds float* %tmp7886, i64 1
+ %tmp7888 = getelementptr inbounds float* %tmp7887, i64 1
+ %tmp7889 = getelementptr inbounds float* %tmp7888, i64 1
+ %tmp7890 = getelementptr inbounds float* %tmp7889, i64 1
+ %tmp7891 = getelementptr inbounds float* %tmp7890, i64 1
+ %tmp7892 = getelementptr inbounds float* %tmp7891, i64 1
+ %tmp7893 = getelementptr inbounds float* %tmp7892, i64 1
+ %tmp7894 = getelementptr inbounds float* %tmp7893, i64 1
+ %tmp7895 = getelementptr inbounds float* %tmp7894, i64 1
+ %tmp7896 = getelementptr inbounds float* %tmp7895, i64 1
+ %tmp7897 = getelementptr inbounds float* %tmp7896, i64 1
+ %tmp7898 = getelementptr inbounds float* %tmp7897, i64 1
+ %tmp7899 = getelementptr inbounds float* %tmp7898, i64 1
+ %tmp7900 = getelementptr inbounds float* %tmp7899, i64 1
+ %tmp7901 = getelementptr inbounds float* %tmp7900, i64 1
+ %tmp7902 = getelementptr inbounds float* %tmp7901, i64 1
+ %tmp7903 = getelementptr inbounds float* %tmp7902, i64 1
+ %tmp7904 = getelementptr inbounds float* %tmp7903, i64 1
+ %tmp7905 = getelementptr inbounds float* %tmp7904, i64 1
+ %tmp7906 = getelementptr inbounds float* %tmp7905, i64 1
+ %tmp7907 = getelementptr inbounds float* %tmp7906, i64 1
+ %tmp7908 = getelementptr inbounds float* %tmp7907, i64 1
+ %tmp7909 = getelementptr inbounds float* %tmp7908, i64 1
+ %tmp7910 = getelementptr inbounds float* %tmp7909, i64 1
+ %tmp7911 = getelementptr inbounds float* %tmp7910, i64 1
+ %tmp7912 = getelementptr inbounds float* %tmp7911, i64 1
+ %tmp7913 = getelementptr inbounds float* %tmp7912, i64 1
+ %tmp7914 = getelementptr inbounds float* %tmp7913, i64 1
+ %tmp7915 = getelementptr inbounds float* %tmp7914, i64 1
+ %tmp7916 = getelementptr inbounds float* %tmp7915, i64 1
+ %tmp7917 = getelementptr inbounds float* %tmp7916, i64 1
+ %tmp7918 = getelementptr inbounds float* %tmp7917, i64 1
+ %tmp7919 = getelementptr inbounds float* %tmp7918, i64 1
+ %tmp7920 = getelementptr inbounds float* %tmp7919, i64 1
+ %tmp7921 = getelementptr inbounds float* %tmp7920, i64 1
+ %tmp7922 = getelementptr inbounds float* %tmp7921, i64 1
+ %tmp7923 = getelementptr inbounds float* %tmp7922, i64 1
+ %tmp7924 = getelementptr inbounds float* %tmp7923, i64 1
+ %tmp7925 = getelementptr inbounds float* %tmp7924, i64 1
+ %tmp7926 = getelementptr inbounds float* %tmp7925, i64 1
+ %tmp7927 = getelementptr inbounds float* %tmp7926, i64 1
+ %tmp7928 = getelementptr inbounds float* %tmp7927, i64 1
+ %tmp7929 = getelementptr inbounds float* %tmp7928, i64 1
+ %tmp7930 = getelementptr inbounds float* %tmp7929, i64 1
+ %tmp7931 = getelementptr inbounds float* %tmp7930, i64 1
+ %tmp7932 = getelementptr inbounds float* %tmp7931, i64 1
+ %tmp7933 = getelementptr inbounds float* %tmp7932, i64 1
+ %tmp7934 = getelementptr inbounds float* %tmp7933, i64 1
+ %tmp7935 = getelementptr inbounds float* %tmp7934, i64 1
+ %tmp7936 = getelementptr inbounds float* %tmp7935, i64 1
+ %tmp7937 = getelementptr inbounds float* %tmp7936, i64 1
+ %tmp7938 = getelementptr inbounds float* %tmp7937, i64 1
+ %tmp7939 = getelementptr inbounds float* %tmp7938, i64 1
+ %tmp7940 = getelementptr inbounds float* %tmp7939, i64 1
+ %tmp7941 = getelementptr inbounds float* %tmp7940, i64 1
+ %tmp7942 = getelementptr inbounds float* %tmp7941, i64 1
+ %tmp7943 = getelementptr inbounds float* %tmp7942, i64 1
+ %tmp7944 = getelementptr inbounds float* %tmp7943, i64 1
+ %tmp7945 = getelementptr inbounds float* %tmp7944, i64 1
+ %tmp7946 = getelementptr inbounds float* %tmp7945, i64 1
+ %tmp7947 = getelementptr inbounds float* %tmp7946, i64 1
+ %tmp7948 = getelementptr inbounds float* %tmp7947, i64 1
+ %tmp7949 = getelementptr inbounds float* %tmp7948, i64 1
+ %tmp7950 = getelementptr inbounds float* %tmp7949, i64 1
+ %tmp7951 = getelementptr inbounds float* %tmp7950, i64 1
+ %tmp7952 = getelementptr inbounds float* %tmp7951, i64 1
+ %tmp7953 = getelementptr inbounds float* %tmp7952, i64 1
+ %tmp7954 = getelementptr inbounds float* %tmp7953, i64 1
+ %tmp7955 = getelementptr inbounds float* %tmp7954, i64 1
+ %tmp7956 = getelementptr inbounds float* %tmp7955, i64 1
+ %tmp7957 = getelementptr inbounds float* %tmp7956, i64 1
+ %tmp7958 = getelementptr inbounds float* %tmp7957, i64 1
+ %tmp7959 = getelementptr inbounds float* %tmp7958, i64 1
+ %tmp7960 = getelementptr inbounds float* %tmp7959, i64 1
+ %tmp7961 = getelementptr inbounds float* %tmp7960, i64 1
+ %tmp7962 = getelementptr inbounds float* %tmp7961, i64 1
+ %tmp7963 = getelementptr inbounds float* %tmp7962, i64 1
+ %tmp7964 = getelementptr inbounds float* %tmp7963, i64 1
+ %tmp7965 = getelementptr inbounds float* %tmp7964, i64 1
+ %tmp7966 = getelementptr inbounds float* %tmp7965, i64 1
+ %tmp7967 = getelementptr inbounds float* %tmp7966, i64 1
+ %tmp7968 = getelementptr inbounds float* %tmp7967, i64 1
+ %tmp7969 = getelementptr inbounds float* %tmp7968, i64 1
+ %tmp7970 = getelementptr inbounds float* %tmp7969, i64 1
+ %tmp7971 = getelementptr inbounds float* %tmp7970, i64 1
+ %tmp7972 = getelementptr inbounds float* %tmp7971, i64 1
+ %tmp7973 = getelementptr inbounds float* %tmp7972, i64 1
+ %tmp7974 = getelementptr inbounds float* %tmp7973, i64 1
+ %tmp7975 = getelementptr inbounds float* %tmp7974, i64 1
+ %tmp7976 = getelementptr inbounds float* %tmp7975, i64 1
+ %tmp7977 = getelementptr inbounds float* %tmp7976, i64 1
+ %tmp7978 = getelementptr inbounds float* %tmp7977, i64 1
+ %tmp7979 = getelementptr inbounds float* %tmp7978, i64 1
+ %tmp7980 = getelementptr inbounds float* %tmp7979, i64 1
+ %tmp7981 = getelementptr inbounds float* %tmp7980, i64 1
+ %tmp7982 = getelementptr inbounds float* %tmp7981, i64 1
+ %tmp7983 = getelementptr inbounds float* %tmp7982, i64 1
+ %tmp7984 = getelementptr inbounds float* %tmp7983, i64 1
+ %tmp7985 = getelementptr inbounds float* %tmp7984, i64 1
+ %tmp7986 = getelementptr inbounds float* %tmp7985, i64 1
+ %tmp7987 = getelementptr inbounds float* %tmp7986, i64 1
+ %tmp7988 = getelementptr inbounds float* %tmp7987, i64 1
+ %tmp7989 = getelementptr inbounds float* %tmp7988, i64 1
+ %tmp7990 = getelementptr inbounds float* %tmp7989, i64 1
+ %tmp7991 = getelementptr inbounds float* %tmp7990, i64 1
+ %tmp7992 = getelementptr inbounds float* %tmp7991, i64 1
+ %tmp7993 = getelementptr inbounds float* %tmp7992, i64 1
+ %tmp7994 = getelementptr inbounds float* %tmp7993, i64 1
+ %tmp7995 = getelementptr inbounds float* %tmp7994, i64 1
+ %tmp7996 = getelementptr inbounds float* %tmp7995, i64 1
+ %tmp7997 = getelementptr inbounds float* %tmp7996, i64 1
+ %tmp7998 = getelementptr inbounds float* %tmp7997, i64 1
+ %tmp7999 = getelementptr inbounds float* %tmp7998, i64 1
+ %tmp8000 = getelementptr inbounds float* %tmp7999, i64 1
+ %tmp8001 = getelementptr inbounds float* %tmp8000, i64 1
+ %tmp8002 = getelementptr inbounds float* %tmp8001, i64 1
+ %tmp8003 = getelementptr inbounds float* %tmp8002, i64 1
+ %tmp8004 = getelementptr inbounds float* %tmp8003, i64 1
+ %tmp8005 = getelementptr inbounds float* %tmp8004, i64 1
+ %tmp8006 = getelementptr inbounds float* %tmp8005, i64 1
+ %tmp8007 = getelementptr inbounds float* %tmp8006, i64 1
+ %tmp8008 = getelementptr inbounds float* %tmp8007, i64 1
+ %tmp8009 = getelementptr inbounds float* %tmp8008, i64 1
+ %tmp8010 = getelementptr inbounds float* %tmp8009, i64 1
+ %tmp8011 = getelementptr inbounds float* %tmp8010, i64 1
+ %tmp8012 = getelementptr inbounds float* %tmp8011, i64 1
+ %tmp8013 = getelementptr inbounds float* %tmp8012, i64 1
+ %tmp8014 = getelementptr inbounds float* %tmp8013, i64 1
+ %tmp8015 = getelementptr inbounds float* %tmp8014, i64 1
+ %tmp8016 = getelementptr inbounds float* %tmp8015, i64 1
+ %tmp8017 = getelementptr inbounds float* %tmp8016, i64 1
+ %tmp8018 = getelementptr inbounds float* %tmp8017, i64 1
+ %tmp8019 = getelementptr inbounds float* %tmp8018, i64 1
+ %tmp8020 = getelementptr inbounds float* %tmp8019, i64 1
+ %tmp8021 = getelementptr inbounds float* %tmp8020, i64 1
+ %tmp8022 = getelementptr inbounds float* %tmp8021, i64 1
+ %tmp8023 = getelementptr inbounds float* %tmp8022, i64 1
+ %tmp8024 = getelementptr inbounds float* %tmp8023, i64 1
+ %tmp8025 = getelementptr inbounds float* %tmp8024, i64 1
+ %tmp8026 = getelementptr inbounds float* %tmp8025, i64 1
+ %tmp8027 = getelementptr inbounds float* %tmp8026, i64 1
+ %tmp8028 = getelementptr inbounds float* %tmp8027, i64 1
+ %tmp8029 = getelementptr inbounds float* %tmp8028, i64 1
+ %tmp8030 = getelementptr inbounds float* %tmp8029, i64 1
+ %tmp8031 = getelementptr inbounds float* %tmp8030, i64 1
+ %tmp8032 = getelementptr inbounds float* %tmp8031, i64 1
+ %tmp8033 = getelementptr inbounds float* %tmp8032, i64 1
+ %tmp8034 = getelementptr inbounds float* %tmp8033, i64 1
+ %tmp8035 = getelementptr inbounds float* %tmp8034, i64 1
+ %tmp8036 = getelementptr inbounds float* %tmp8035, i64 1
+ %tmp8037 = getelementptr inbounds float* %tmp8036, i64 1
+ %tmp8038 = getelementptr inbounds float* %tmp8037, i64 1
+ %tmp8039 = getelementptr inbounds float* %tmp8038, i64 1
+ %tmp8040 = getelementptr inbounds float* %tmp8039, i64 1
+ %tmp8041 = getelementptr inbounds float* %tmp8040, i64 1
+ %tmp8042 = getelementptr inbounds float* %tmp8041, i64 1
+ %tmp8043 = getelementptr inbounds float* %tmp8042, i64 1
+ %tmp8044 = getelementptr inbounds float* %tmp8043, i64 1
+ %tmp8045 = getelementptr inbounds float* %tmp8044, i64 1
+ %tmp8046 = getelementptr inbounds float* %tmp8045, i64 1
+ %tmp8047 = getelementptr inbounds float* %tmp8046, i64 1
+ %tmp8048 = getelementptr inbounds float* %tmp8047, i64 1
+ %tmp8049 = getelementptr inbounds float* %tmp8048, i64 1
+ %tmp8050 = getelementptr inbounds float* %tmp8049, i64 1
+ %tmp8051 = getelementptr inbounds float* %tmp8050, i64 1
+ %tmp8052 = getelementptr inbounds float* %tmp8051, i64 1
+ %tmp8053 = getelementptr inbounds float* %tmp8052, i64 1
+ %tmp8054 = getelementptr inbounds float* %tmp8053, i64 1
+ %tmp8055 = getelementptr inbounds float* %tmp8054, i64 1
+ %tmp8056 = getelementptr inbounds float* %tmp8055, i64 1
+ %tmp8057 = getelementptr inbounds float* %tmp8056, i64 1
+ %tmp8058 = getelementptr inbounds float* %tmp8057, i64 1
+ %tmp8059 = getelementptr inbounds float* %tmp8058, i64 1
+ %tmp8060 = getelementptr inbounds float* %tmp8059, i64 1
+ %tmp8061 = getelementptr inbounds float* %tmp8060, i64 1
+ %tmp8062 = getelementptr inbounds float* %tmp8061, i64 1
+ %tmp8063 = getelementptr inbounds float* %tmp8062, i64 1
+ %tmp8064 = getelementptr inbounds float* %tmp8063, i64 1
+ %tmp8065 = getelementptr inbounds float* %tmp8064, i64 1
+ %tmp8066 = getelementptr inbounds float* %tmp8065, i64 1
+ %tmp8067 = getelementptr inbounds float* %tmp8066, i64 1
+ %tmp8068 = getelementptr inbounds float* %tmp8067, i64 1
+ %tmp8069 = getelementptr inbounds float* %tmp8068, i64 1
+ %tmp8070 = getelementptr inbounds float* %tmp8069, i64 1
+ %tmp8071 = getelementptr inbounds float* %tmp8070, i64 1
+ %tmp8072 = getelementptr inbounds float* %tmp8071, i64 1
+ %tmp8073 = getelementptr inbounds float* %tmp8072, i64 1
+ %tmp8074 = getelementptr inbounds float* %tmp8073, i64 1
+ %tmp8075 = getelementptr inbounds float* %tmp8074, i64 1
+ %tmp8076 = getelementptr inbounds float* %tmp8075, i64 1
+ %tmp8077 = getelementptr inbounds float* %tmp8076, i64 1
+ %tmp8078 = getelementptr inbounds float* %tmp8077, i64 1
+ %tmp8079 = getelementptr inbounds float* %tmp8078, i64 1
+ %tmp8080 = getelementptr inbounds float* %tmp8079, i64 1
+ %tmp8081 = getelementptr inbounds float* %tmp8080, i64 1
+ %tmp8082 = getelementptr inbounds float* %tmp8081, i64 1
+ %tmp8083 = getelementptr inbounds float* %tmp8082, i64 1
+ %tmp8084 = getelementptr inbounds float* %tmp8083, i64 1
+ %tmp8085 = getelementptr inbounds float* %tmp8084, i64 1
+ %tmp8086 = getelementptr inbounds float* %tmp8085, i64 1
+ %tmp8087 = getelementptr inbounds float* %tmp8086, i64 1
+ %tmp8088 = getelementptr inbounds float* %tmp8087, i64 1
+ %tmp8089 = getelementptr inbounds float* %tmp8088, i64 1
+ %tmp8090 = getelementptr inbounds float* %tmp8089, i64 1
+ %tmp8091 = getelementptr inbounds float* %tmp8090, i64 1
+ %tmp8092 = getelementptr inbounds float* %tmp8091, i64 1
+ %tmp8093 = getelementptr inbounds float* %tmp8092, i64 1
+ %tmp8094 = getelementptr inbounds float* %tmp8093, i64 1
+ %tmp8095 = getelementptr inbounds float* %tmp8094, i64 1
+ %tmp8096 = getelementptr inbounds float* %tmp8095, i64 1
+ %tmp8097 = getelementptr inbounds float* %tmp8096, i64 1
+ %tmp8098 = getelementptr inbounds float* %tmp8097, i64 1
+ %tmp8099 = getelementptr inbounds float* %tmp8098, i64 1
+ %tmp8100 = getelementptr inbounds float* %tmp8099, i64 1
+ %tmp8101 = getelementptr inbounds float* %tmp8100, i64 1
+ %tmp8102 = getelementptr inbounds float* %tmp8101, i64 1
+ %tmp8103 = getelementptr inbounds float* %tmp8102, i64 1
+ %tmp8104 = getelementptr inbounds float* %tmp8103, i64 1
+ %tmp8105 = getelementptr inbounds float* %tmp8104, i64 1
+ %tmp8106 = getelementptr inbounds float* %tmp8105, i64 1
+ %tmp8107 = getelementptr inbounds float* %tmp8106, i64 1
+ %tmp8108 = getelementptr inbounds float* %tmp8107, i64 1
+ %tmp8109 = getelementptr inbounds float* %tmp8108, i64 1
+ %tmp8110 = getelementptr inbounds float* %tmp8109, i64 1
+ %tmp8111 = getelementptr inbounds float* %tmp8110, i64 1
+ %tmp8112 = getelementptr inbounds float* %tmp8111, i64 1
+ %tmp8113 = getelementptr inbounds float* %tmp8112, i64 1
+ %tmp8114 = getelementptr inbounds float* %tmp8113, i64 1
+ %tmp8115 = getelementptr inbounds float* %tmp8114, i64 1
+ %tmp8116 = getelementptr inbounds float* %tmp8115, i64 1
+ %tmp8117 = getelementptr inbounds float* %tmp8116, i64 1
+ %tmp8118 = getelementptr inbounds float* %tmp8117, i64 1
+ %tmp8119 = getelementptr inbounds float* %tmp8118, i64 1
+ %tmp8120 = getelementptr inbounds float* %tmp8119, i64 1
+ %tmp8121 = getelementptr inbounds float* %tmp8120, i64 1
+ %tmp8122 = getelementptr inbounds float* %tmp8121, i64 1
+ %tmp8123 = getelementptr inbounds float* %tmp8122, i64 1
+ %tmp8124 = getelementptr inbounds float* %tmp8123, i64 1
+ %tmp8125 = getelementptr inbounds float* %tmp8124, i64 1
+ %tmp8126 = getelementptr inbounds float* %tmp8125, i64 1
+ %tmp8127 = getelementptr inbounds float* %tmp8126, i64 1
+ %tmp8128 = getelementptr inbounds float* %tmp8127, i64 1
+ %tmp8129 = getelementptr inbounds float* %tmp8128, i64 1
+ %tmp8130 = getelementptr inbounds float* %tmp8129, i64 1
+ %tmp8131 = getelementptr inbounds float* %tmp8130, i64 1
+ %tmp8132 = getelementptr inbounds float* %tmp8131, i64 1
+ %tmp8133 = getelementptr inbounds float* %tmp8132, i64 1
+ %tmp8134 = getelementptr inbounds float* %tmp8133, i64 1
+ %tmp8135 = getelementptr inbounds float* %tmp8134, i64 1
+ %tmp8136 = getelementptr inbounds float* %tmp8135, i64 1
+ %tmp8137 = getelementptr inbounds float* %tmp8136, i64 1
+ %tmp8138 = getelementptr inbounds float* %tmp8137, i64 1
+ %tmp8139 = getelementptr inbounds float* %tmp8138, i64 1
+ %tmp8140 = getelementptr inbounds float* %tmp8139, i64 1
+ %tmp8141 = getelementptr inbounds float* %tmp8140, i64 1
+ %tmp8142 = getelementptr inbounds float* %tmp8141, i64 1
+ %tmp8143 = getelementptr inbounds float* %tmp8142, i64 1
+ %tmp8144 = getelementptr inbounds float* %tmp8143, i64 1
+ %tmp8145 = getelementptr inbounds float* %tmp8144, i64 1
+ %tmp8146 = getelementptr inbounds float* %tmp8145, i64 1
+ %tmp8147 = getelementptr inbounds float* %tmp8146, i64 1
+ %tmp8148 = getelementptr inbounds float* %tmp8147, i64 1
+ %tmp8149 = getelementptr inbounds float* %tmp8148, i64 1
+ %tmp8150 = getelementptr inbounds float* %tmp8149, i64 1
+ %tmp8151 = getelementptr inbounds float* %tmp8150, i64 1
+ %tmp8152 = getelementptr inbounds float* %tmp8151, i64 1
+ %tmp8153 = getelementptr inbounds float* %tmp8152, i64 1
+ %tmp8154 = getelementptr inbounds float* %tmp8153, i64 1
+ %tmp8155 = getelementptr inbounds float* %tmp8154, i64 1
+ %tmp8156 = getelementptr inbounds float* %tmp8155, i64 1
+ %tmp8157 = getelementptr inbounds float* %tmp8156, i64 1
+ %tmp8158 = getelementptr inbounds float* %tmp8157, i64 1
+ %tmp8159 = getelementptr inbounds float* %tmp8158, i64 1
+ %tmp8160 = getelementptr inbounds float* %tmp8159, i64 1
+ %tmp8161 = getelementptr inbounds float* %tmp8160, i64 1
+ %tmp8162 = getelementptr inbounds float* %tmp8161, i64 1
+ %tmp8163 = getelementptr inbounds float* %tmp8162, i64 1
+ %tmp8164 = getelementptr inbounds float* %tmp8163, i64 1
+ %tmp8165 = getelementptr inbounds float* %tmp8164, i64 1
+ %tmp8166 = getelementptr inbounds float* %tmp8165, i64 1
+ %tmp8167 = getelementptr inbounds float* %tmp8166, i64 1
+ %tmp8168 = getelementptr inbounds float* %tmp8167, i64 1
+ %tmp8169 = getelementptr inbounds float* %tmp8168, i64 1
+ %tmp8170 = getelementptr inbounds float* %tmp8169, i64 1
+ %tmp8171 = getelementptr inbounds float* %tmp8170, i64 1
+ %tmp8172 = getelementptr inbounds float* %tmp8171, i64 1
+ %tmp8173 = getelementptr inbounds float* %tmp8172, i64 1
+ %tmp8174 = getelementptr inbounds float* %tmp8173, i64 1
+ %tmp8175 = getelementptr inbounds float* %tmp8174, i64 1
+ %tmp8176 = getelementptr inbounds float* %tmp8175, i64 1
+ %tmp8177 = getelementptr inbounds float* %tmp8176, i64 1
+ %tmp8178 = getelementptr inbounds float* %tmp8177, i64 1
+ %tmp8179 = getelementptr inbounds float* %tmp8178, i64 1
+ %tmp8180 = getelementptr inbounds float* %tmp8179, i64 1
+ %tmp8181 = getelementptr inbounds float* %tmp8180, i64 1
+ %tmp8182 = getelementptr inbounds float* %tmp8181, i64 1
+ %tmp8183 = getelementptr inbounds float* %tmp8182, i64 1
+ %tmp8184 = getelementptr inbounds float* %tmp8183, i64 1
+ %tmp8185 = getelementptr inbounds float* %tmp8184, i64 1
+ %tmp8186 = getelementptr inbounds float* %tmp8185, i64 1
+ %tmp8187 = getelementptr inbounds float* %tmp8186, i64 1
+ %tmp8188 = getelementptr inbounds float* %tmp8187, i64 1
+ %tmp8189 = getelementptr inbounds float* %tmp8188, i64 1
+ %tmp8190 = getelementptr inbounds float* %tmp8189, i64 1
+ %tmp8191 = getelementptr inbounds float* %tmp8190, i64 1
+ %tmp8192 = getelementptr inbounds float* %tmp8191, i64 1
+ %tmp8193 = getelementptr inbounds float* %tmp8192, i64 1
+ %tmp8194 = getelementptr inbounds float* %tmp8193, i64 1
+ %tmp8195 = getelementptr inbounds float* %tmp8194, i64 1
+ %tmp8196 = getelementptr inbounds float* %tmp8195, i64 1
+ %tmp8197 = getelementptr inbounds float* %tmp8196, i64 1
+ %tmp8198 = getelementptr inbounds float* %tmp8197, i64 1
+ %tmp8199 = getelementptr inbounds float* %tmp8198, i64 1
+ %tmp8200 = getelementptr inbounds float* %tmp8199, i64 1
+ %tmp8201 = getelementptr inbounds float* %tmp8200, i64 1
+ %tmp8202 = getelementptr inbounds float* %tmp8201, i64 1
+ %tmp8203 = getelementptr inbounds float* %tmp8202, i64 1
+ %tmp8204 = getelementptr inbounds float* %tmp8203, i64 1
+ %tmp8205 = getelementptr inbounds float* %tmp8204, i64 1
+ %tmp8206 = getelementptr inbounds float* %tmp8205, i64 1
+ %tmp8207 = getelementptr inbounds float* %tmp8206, i64 1
+ %tmp8208 = getelementptr inbounds float* %tmp8207, i64 1
+ %tmp8209 = getelementptr inbounds float* %tmp8208, i64 1
+ %tmp8210 = getelementptr inbounds float* %tmp8209, i64 1
+ %tmp8211 = getelementptr inbounds float* %tmp8210, i64 1
+ %tmp8212 = getelementptr inbounds float* %tmp8211, i64 1
+ %tmp8213 = getelementptr inbounds float* %tmp8212, i64 1
+ %tmp8214 = getelementptr inbounds float* %tmp8213, i64 1
+ %tmp8215 = getelementptr inbounds float* %tmp8214, i64 1
+ %tmp8216 = getelementptr inbounds float* %tmp8215, i64 1
+ %tmp8217 = getelementptr inbounds float* %tmp8216, i64 1
+ %tmp8218 = getelementptr inbounds float* %tmp8217, i64 1
+ %tmp8219 = getelementptr inbounds float* %tmp8218, i64 1
+ %tmp8220 = getelementptr inbounds float* %tmp8219, i64 1
+ %tmp8221 = getelementptr inbounds float* %tmp8220, i64 1
+ %tmp8222 = getelementptr inbounds float* %tmp8221, i64 1
+ %tmp8223 = getelementptr inbounds float* %tmp8222, i64 1
+ %tmp8224 = getelementptr inbounds float* %tmp8223, i64 1
+ %tmp8225 = getelementptr inbounds float* %tmp8224, i64 1
+ %tmp8226 = getelementptr inbounds float* %tmp8225, i64 1
+ %tmp8227 = getelementptr inbounds float* %tmp8226, i64 1
+ %tmp8228 = getelementptr inbounds float* %tmp8227, i64 1
+ %tmp8229 = getelementptr inbounds float* %tmp8228, i64 1
+ %tmp8230 = getelementptr inbounds float* %tmp8229, i64 1
+ %tmp8231 = getelementptr inbounds float* %tmp8230, i64 1
+ %tmp8232 = getelementptr inbounds float* %tmp8231, i64 1
+ %tmp8233 = getelementptr inbounds float* %tmp8232, i64 1
+ %tmp8234 = getelementptr inbounds float* %tmp8233, i64 1
+ %tmp8235 = getelementptr inbounds float* %tmp8234, i64 1
+ %tmp8236 = getelementptr inbounds float* %tmp8235, i64 1
+ %tmp8237 = getelementptr inbounds float* %tmp8236, i64 1
+ %tmp8238 = getelementptr inbounds float* %tmp8237, i64 1
+ %tmp8239 = getelementptr inbounds float* %tmp8238, i64 1
+ %tmp8240 = getelementptr inbounds float* %tmp8239, i64 1
+ %tmp8241 = getelementptr inbounds float* %tmp8240, i64 1
+ %tmp8242 = getelementptr inbounds float* %tmp8241, i64 1
+ %tmp8243 = getelementptr inbounds float* %tmp8242, i64 1
+ %tmp8244 = getelementptr inbounds float* %tmp8243, i64 1
+ %tmp8245 = getelementptr inbounds float* %tmp8244, i64 1
+ %tmp8246 = getelementptr inbounds float* %tmp8245, i64 1
+ %tmp8247 = getelementptr inbounds float* %tmp8246, i64 1
+ %tmp8248 = getelementptr inbounds float* %tmp8247, i64 1
+ %tmp8249 = getelementptr inbounds float* %tmp8248, i64 1
+ %tmp8250 = getelementptr inbounds float* %tmp8249, i64 1
+ %tmp8251 = getelementptr inbounds float* %tmp8250, i64 1
+ %tmp8252 = getelementptr inbounds float* %tmp8251, i64 1
+ %tmp8253 = getelementptr inbounds float* %tmp8252, i64 1
+ %tmp8254 = getelementptr inbounds float* %tmp8253, i64 1
+ %tmp8255 = getelementptr inbounds float* %tmp8254, i64 1
+ %tmp8256 = getelementptr inbounds float* %tmp8255, i64 1
+ %tmp8257 = getelementptr inbounds float* %tmp8256, i64 1
+ %tmp8258 = getelementptr inbounds float* %tmp8257, i64 1
+ %tmp8259 = getelementptr inbounds float* %tmp8258, i64 1
+ %tmp8260 = getelementptr inbounds float* %tmp8259, i64 1
+ %tmp8261 = getelementptr inbounds float* %tmp8260, i64 1
+ %tmp8262 = getelementptr inbounds float* %tmp8261, i64 1
+ %tmp8263 = getelementptr inbounds float* %tmp8262, i64 1
+ %tmp8264 = getelementptr inbounds float* %tmp8263, i64 1
+ %tmp8265 = getelementptr inbounds float* %tmp8264, i64 1
+ %tmp8266 = getelementptr inbounds float* %tmp8265, i64 1
+ %tmp8267 = getelementptr inbounds float* %tmp8266, i64 1
+ %tmp8268 = getelementptr inbounds float* %tmp8267, i64 1
+ %tmp8269 = getelementptr inbounds float* %tmp8268, i64 1
+ %tmp8270 = getelementptr inbounds float* %tmp8269, i64 1
+ %tmp8271 = getelementptr inbounds float* %tmp8270, i64 1
+ %tmp8272 = getelementptr inbounds float* %tmp8271, i64 1
+ %tmp8273 = getelementptr inbounds float* %tmp8272, i64 1
+ %tmp8274 = getelementptr inbounds float* %tmp8273, i64 1
+ %tmp8275 = getelementptr inbounds float* %tmp8274, i64 1
+ %tmp8276 = getelementptr inbounds float* %tmp8275, i64 1
+ %tmp8277 = getelementptr inbounds float* %tmp8276, i64 1
+ %tmp8278 = getelementptr inbounds float* %tmp8277, i64 1
+ %tmp8279 = getelementptr inbounds float* %tmp8278, i64 1
+ %tmp8280 = getelementptr inbounds float* %tmp8279, i64 1
+ %tmp8281 = getelementptr inbounds float* %tmp8280, i64 1
+ %tmp8282 = getelementptr inbounds float* %tmp8281, i64 1
+ %tmp8283 = getelementptr inbounds float* %tmp8282, i64 1
+ %tmp8284 = getelementptr inbounds float* %tmp8283, i64 1
+ %tmp8285 = getelementptr inbounds float* %tmp8284, i64 1
+ %tmp8286 = getelementptr inbounds float* %tmp8285, i64 1
+ %tmp8287 = getelementptr inbounds float* %tmp8286, i64 1
+ %tmp8288 = getelementptr inbounds float* %tmp8287, i64 1
+ %tmp8289 = getelementptr inbounds float* %tmp8288, i64 1
+ %tmp8290 = getelementptr inbounds float* %tmp8289, i64 1
+ %tmp8291 = getelementptr inbounds float* %tmp8290, i64 1
+ %tmp8292 = getelementptr inbounds float* %tmp8291, i64 1
+ %tmp8293 = getelementptr inbounds float* %tmp8292, i64 1
+ %tmp8294 = getelementptr inbounds float* %tmp8293, i64 1
+ %tmp8295 = getelementptr inbounds float* %tmp8294, i64 1
+ %tmp8296 = getelementptr inbounds float* %tmp8295, i64 1
+ %tmp8297 = getelementptr inbounds float* %tmp8296, i64 1
+ %tmp8298 = getelementptr inbounds float* %tmp8297, i64 1
+ %tmp8299 = getelementptr inbounds float* %tmp8298, i64 1
+ %tmp8300 = getelementptr inbounds float* %tmp8299, i64 1
+ %tmp8301 = getelementptr inbounds float* %tmp8300, i64 1
+ %tmp8302 = getelementptr inbounds float* %tmp8301, i64 1
+ %tmp8303 = getelementptr inbounds float* %tmp8302, i64 1
+ %tmp8304 = getelementptr inbounds float* %tmp8303, i64 1
+ %tmp8305 = getelementptr inbounds float* %tmp8304, i64 1
+ %tmp8306 = getelementptr inbounds float* %tmp8305, i64 1
+ %tmp8307 = getelementptr inbounds float* %tmp8306, i64 1
+ %tmp8308 = getelementptr inbounds float* %tmp8307, i64 1
+ %tmp8309 = getelementptr inbounds float* %tmp8308, i64 1
+ %tmp8310 = getelementptr inbounds float* %tmp8309, i64 1
+ %tmp8311 = getelementptr inbounds float* %tmp8310, i64 1
+ %tmp8312 = getelementptr inbounds float* %tmp8311, i64 1
+ %tmp8313 = getelementptr inbounds float* %tmp8312, i64 1
+ %tmp8314 = getelementptr inbounds float* %tmp8313, i64 1
+ %tmp8315 = getelementptr inbounds float* %tmp8314, i64 1
+ %tmp8316 = getelementptr inbounds float* %tmp8315, i64 1
+ %tmp8317 = getelementptr inbounds float* %tmp8316, i64 1
+ %tmp8318 = getelementptr inbounds float* %tmp8317, i64 1
+ %tmp8319 = getelementptr inbounds float* %tmp8318, i64 1
+ %tmp8320 = getelementptr inbounds float* %tmp8319, i64 1
+ %tmp8321 = getelementptr inbounds float* %tmp8320, i64 1
+ %tmp8322 = getelementptr inbounds float* %tmp8321, i64 1
+ %tmp8323 = getelementptr inbounds float* %tmp8322, i64 1
+ %tmp8324 = getelementptr inbounds float* %tmp8323, i64 1
+ %tmp8325 = getelementptr inbounds float* %tmp8324, i64 1
+ %tmp8326 = getelementptr inbounds float* %tmp8325, i64 1
+ %tmp8327 = getelementptr inbounds float* %tmp8326, i64 1
+ %tmp8328 = getelementptr inbounds float* %tmp8327, i64 1
+ %tmp8329 = getelementptr inbounds float* %tmp8328, i64 1
+ %tmp8330 = getelementptr inbounds float* %tmp8329, i64 1
+ %tmp8331 = getelementptr inbounds float* %tmp8330, i64 1
+ %tmp8332 = getelementptr inbounds float* %tmp8331, i64 1
+ %tmp8333 = getelementptr inbounds float* %tmp8332, i64 1
+ %tmp8334 = getelementptr inbounds float* %tmp8333, i64 1
+ %tmp8335 = getelementptr inbounds float* %tmp8334, i64 1
+ %tmp8336 = getelementptr inbounds float* %tmp8335, i64 1
+ %tmp8337 = getelementptr inbounds float* %tmp8336, i64 1
+ %tmp8338 = getelementptr inbounds float* %tmp8337, i64 1
+ %tmp8339 = getelementptr inbounds float* %tmp8338, i64 1
+ %tmp8340 = getelementptr inbounds float* %tmp8339, i64 1
+ %tmp8341 = getelementptr inbounds float* %tmp8340, i64 1
+ %tmp8342 = getelementptr inbounds float* %tmp8341, i64 1
+ %tmp8343 = getelementptr inbounds float* %tmp8342, i64 1
+ %tmp8344 = getelementptr inbounds float* %tmp8343, i64 1
+ %tmp8345 = getelementptr inbounds float* %tmp8344, i64 1
+ %tmp8346 = getelementptr inbounds float* %tmp8345, i64 1
+ %tmp8347 = getelementptr inbounds float* %tmp8346, i64 1
+ %tmp8348 = getelementptr inbounds float* %tmp8347, i64 1
+ %tmp8349 = getelementptr inbounds float* %tmp8348, i64 1
+ %tmp8350 = getelementptr inbounds float* %tmp8349, i64 1
+ %tmp8351 = getelementptr inbounds float* %tmp8350, i64 1
+ %tmp8352 = getelementptr inbounds float* %tmp8351, i64 1
+ %tmp8353 = getelementptr inbounds float* %tmp8352, i64 1
+ %tmp8354 = getelementptr inbounds float* %tmp8353, i64 1
+ %tmp8355 = getelementptr inbounds float* %tmp8354, i64 1
+ %tmp8356 = getelementptr inbounds float* %tmp8355, i64 1
+ %tmp8357 = getelementptr inbounds float* %tmp8356, i64 1
+ %tmp8358 = getelementptr inbounds float* %tmp8357, i64 1
+ %tmp8359 = getelementptr inbounds float* %tmp8358, i64 1
+ %tmp8360 = getelementptr inbounds float* %tmp8359, i64 1
+ %tmp8361 = getelementptr inbounds float* %tmp8360, i64 1
+ %tmp8362 = getelementptr inbounds float* %tmp8361, i64 1
+ %tmp8363 = getelementptr inbounds float* %tmp8362, i64 1
+ %tmp8364 = getelementptr inbounds float* %tmp8363, i64 1
+ %tmp8365 = getelementptr inbounds float* %tmp8364, i64 1
+ %tmp8366 = getelementptr inbounds float* %tmp8365, i64 1
+ %tmp8367 = getelementptr inbounds float* %tmp8366, i64 1
+ %tmp8368 = getelementptr inbounds float* %tmp8367, i64 1
+ %tmp8369 = getelementptr inbounds float* %tmp8368, i64 1
+ %tmp8370 = getelementptr inbounds float* %tmp8369, i64 1
+ %tmp8371 = getelementptr inbounds float* %tmp8370, i64 1
+ %tmp8372 = getelementptr inbounds float* %tmp8371, i64 1
+ %tmp8373 = getelementptr inbounds float* %tmp8372, i64 1
+ %tmp8374 = getelementptr inbounds float* %tmp8373, i64 1
+ %tmp8375 = getelementptr inbounds float* %tmp8374, i64 1
+ %tmp8376 = getelementptr inbounds float* %tmp8375, i64 1
+ %tmp8377 = getelementptr inbounds float* %tmp8376, i64 1
+ %tmp8378 = getelementptr inbounds float* %tmp8377, i64 1
+ %tmp8379 = getelementptr inbounds float* %tmp8378, i64 1
+ %tmp8380 = getelementptr inbounds float* %tmp8379, i64 1
+ %tmp8381 = getelementptr inbounds float* %tmp8380, i64 1
+ %tmp8382 = getelementptr inbounds float* %tmp8381, i64 1
+ %tmp8383 = getelementptr inbounds float* %tmp8382, i64 1
+ %tmp8384 = getelementptr inbounds float* %tmp8383, i64 1
+ %tmp8385 = getelementptr inbounds float* %tmp8384, i64 1
+ %tmp8386 = getelementptr inbounds float* %tmp8385, i64 1
+ %tmp8387 = getelementptr inbounds float* %tmp8386, i64 1
+ %tmp8388 = getelementptr inbounds float* %tmp8387, i64 1
+ %tmp8389 = getelementptr inbounds float* %tmp8388, i64 1
+ %tmp8390 = getelementptr inbounds float* %tmp8389, i64 1
+ %tmp8391 = getelementptr inbounds float* %tmp8390, i64 1
+ %tmp8392 = getelementptr inbounds float* %tmp8391, i64 1
+ %tmp8393 = getelementptr inbounds float* %tmp8392, i64 1
+ %tmp8394 = getelementptr inbounds float* %tmp8393, i64 1
+ %tmp8395 = getelementptr inbounds float* %tmp8394, i64 1
+ %tmp8396 = getelementptr inbounds float* %tmp8395, i64 1
+ %tmp8397 = getelementptr inbounds float* %tmp8396, i64 1
+ %tmp8398 = getelementptr inbounds float* %tmp8397, i64 1
+ %tmp8399 = getelementptr inbounds float* %tmp8398, i64 1
+ %tmp8400 = getelementptr inbounds float* %tmp8399, i64 1
+ %tmp8401 = getelementptr inbounds float* %tmp8400, i64 1
+ %tmp8402 = getelementptr inbounds float* %tmp8401, i64 1
+ %tmp8403 = getelementptr inbounds float* %tmp8402, i64 1
+ %tmp8404 = getelementptr inbounds float* %tmp8403, i64 1
+ %tmp8405 = getelementptr inbounds float* %tmp8404, i64 1
+ %tmp8406 = getelementptr inbounds float* %tmp8405, i64 1
+ %tmp8407 = getelementptr inbounds float* %tmp8406, i64 1
+ %tmp8408 = getelementptr inbounds float* %tmp8407, i64 1
+ %tmp8409 = getelementptr inbounds float* %tmp8408, i64 1
+ %tmp8410 = getelementptr inbounds float* %tmp8409, i64 1
+ %tmp8411 = getelementptr inbounds float* %tmp8410, i64 1
+ %tmp8412 = getelementptr inbounds float* %tmp8411, i64 1
+ %tmp8413 = getelementptr inbounds float* %tmp8412, i64 1
+ %tmp8414 = getelementptr inbounds float* %tmp8413, i64 1
+ %tmp8415 = getelementptr inbounds float* %tmp8414, i64 1
+ %tmp8416 = getelementptr inbounds float* %tmp8415, i64 1
+ %tmp8417 = getelementptr inbounds float* %tmp8416, i64 1
+ %tmp8418 = getelementptr inbounds float* %tmp8417, i64 1
+ %tmp8419 = getelementptr inbounds float* %tmp8418, i64 1
+ %tmp8420 = getelementptr inbounds float* %tmp8419, i64 1
+ %tmp8421 = getelementptr inbounds float* %tmp8420, i64 1
+ %tmp8422 = getelementptr inbounds float* %tmp8421, i64 1
+ %tmp8423 = getelementptr inbounds float* %tmp8422, i64 1
+ %tmp8424 = getelementptr inbounds float* %tmp8423, i64 1
+ %tmp8425 = getelementptr inbounds float* %tmp8424, i64 1
+ %tmp8426 = getelementptr inbounds float* %tmp8425, i64 1
+ %tmp8427 = getelementptr inbounds float* %tmp8426, i64 1
+ %tmp8428 = getelementptr inbounds float* %tmp8427, i64 1
+ %tmp8429 = getelementptr inbounds float* %tmp8428, i64 1
+ %tmp8430 = getelementptr inbounds float* %tmp8429, i64 1
+ %tmp8431 = getelementptr inbounds float* %tmp8430, i64 1
+ %tmp8432 = getelementptr inbounds float* %tmp8431, i64 1
+ %tmp8433 = getelementptr inbounds float* %tmp8432, i64 1
+ %tmp8434 = getelementptr inbounds float* %tmp8433, i64 1
+ %tmp8435 = getelementptr inbounds float* %tmp8434, i64 1
+ %tmp8436 = getelementptr inbounds float* %tmp8435, i64 1
+ %tmp8437 = getelementptr inbounds float* %tmp8436, i64 1
+ %tmp8438 = getelementptr inbounds float* %tmp8437, i64 1
+ %tmp8439 = getelementptr inbounds float* %tmp8438, i64 1
+ %tmp8440 = getelementptr inbounds float* %tmp8439, i64 1
+ %tmp8441 = getelementptr inbounds float* %tmp8440, i64 1
+ %tmp8442 = getelementptr inbounds float* %tmp8441, i64 1
+ %tmp8443 = getelementptr inbounds float* %tmp8442, i64 1
+ %tmp8444 = getelementptr inbounds float* %tmp8443, i64 1
+ %tmp8445 = getelementptr inbounds float* %tmp8444, i64 1
+ %tmp8446 = getelementptr inbounds float* %tmp8445, i64 1
+ %tmp8447 = getelementptr inbounds float* %tmp8446, i64 1
+ %tmp8448 = getelementptr inbounds float* %tmp8447, i64 1
+ %tmp8449 = getelementptr inbounds float* %tmp8448, i64 1
+ %tmp8450 = getelementptr inbounds float* %tmp8449, i64 1
+ %tmp8451 = getelementptr inbounds float* %tmp8450, i64 1
+ %tmp8452 = getelementptr inbounds float* %tmp8451, i64 1
+ %tmp8453 = getelementptr inbounds float* %tmp8452, i64 1
+ %tmp8454 = getelementptr inbounds float* %tmp8453, i64 1
+ %tmp8455 = getelementptr inbounds float* %tmp8454, i64 1
+ %tmp8456 = getelementptr inbounds float* %tmp8455, i64 1
+ %tmp8457 = getelementptr inbounds float* %tmp8456, i64 1
+ %tmp8458 = getelementptr inbounds float* %tmp8457, i64 1
+ %tmp8459 = getelementptr inbounds float* %tmp8458, i64 1
+ %tmp8460 = getelementptr inbounds float* %tmp8459, i64 1
+ %tmp8461 = getelementptr inbounds float* %tmp8460, i64 1
+ %tmp8462 = getelementptr inbounds float* %tmp8461, i64 1
+ %tmp8463 = getelementptr inbounds float* %tmp8462, i64 1
+ %tmp8464 = getelementptr inbounds float* %tmp8463, i64 1
+ %tmp8465 = getelementptr inbounds float* %tmp8464, i64 1
+ %tmp8466 = getelementptr inbounds float* %tmp8465, i64 1
+ %tmp8467 = getelementptr inbounds float* %tmp8466, i64 1
+ %tmp8468 = getelementptr inbounds float* %tmp8467, i64 1
+ %tmp8469 = getelementptr inbounds float* %tmp8468, i64 1
+ %tmp8470 = getelementptr inbounds float* %tmp8469, i64 1
+ %tmp8471 = getelementptr inbounds float* %tmp8470, i64 1
+ %tmp8472 = getelementptr inbounds float* %tmp8471, i64 1
+ %tmp8473 = getelementptr inbounds float* %tmp8472, i64 1
+ %tmp8474 = getelementptr inbounds float* %tmp8473, i64 1
+ %tmp8475 = getelementptr inbounds float* %tmp8474, i64 1
+ %tmp8476 = getelementptr inbounds float* %tmp8475, i64 1
+ %tmp8477 = getelementptr inbounds float* %tmp8476, i64 1
+ %tmp8478 = getelementptr inbounds float* %tmp8477, i64 1
+ %tmp8479 = getelementptr inbounds float* %tmp8478, i64 1
+ %tmp8480 = getelementptr inbounds float* %tmp8479, i64 1
+ %tmp8481 = getelementptr inbounds float* %tmp8480, i64 1
+ %tmp8482 = getelementptr inbounds float* %tmp8481, i64 1
+ %tmp8483 = getelementptr inbounds float* %tmp8482, i64 1
+ %tmp8484 = getelementptr inbounds float* %tmp8483, i64 1
+ %tmp8485 = getelementptr inbounds float* %tmp8484, i64 1
+ %tmp8486 = getelementptr inbounds float* %tmp8485, i64 1
+ %tmp8487 = getelementptr inbounds float* %tmp8486, i64 1
+ %tmp8488 = getelementptr inbounds float* %tmp8487, i64 1
+ %tmp8489 = getelementptr inbounds float* %tmp8488, i64 1
+ %tmp8490 = getelementptr inbounds float* %tmp8489, i64 1
+ %tmp8491 = getelementptr inbounds float* %tmp8490, i64 1
+ %tmp8492 = getelementptr inbounds float* %tmp8491, i64 1
+ %tmp8493 = getelementptr inbounds float* %tmp8492, i64 1
+ %tmp8494 = getelementptr inbounds float* %tmp8493, i64 1
+ %tmp8495 = getelementptr inbounds float* %tmp8494, i64 1
+ %tmp8496 = getelementptr inbounds float* %tmp8495, i64 1
+ %tmp8497 = getelementptr inbounds float* %tmp8496, i64 1
+ %tmp8498 = getelementptr inbounds float* %tmp8497, i64 1
+ %tmp8499 = getelementptr inbounds float* %tmp8498, i64 1
+ %tmp8500 = getelementptr inbounds float* %tmp8499, i64 1
+ %tmp8501 = getelementptr inbounds float* %tmp8500, i64 1
+ %tmp8502 = getelementptr inbounds float* %tmp8501, i64 1
+ %tmp8503 = getelementptr inbounds float* %tmp8502, i64 1
+ %tmp8504 = getelementptr inbounds float* %tmp8503, i64 1
+ %tmp8505 = getelementptr inbounds float* %tmp8504, i64 1
+ %tmp8506 = getelementptr inbounds float* %tmp8505, i64 1
+ %tmp8507 = getelementptr inbounds float* %tmp8506, i64 1
+ %tmp8508 = getelementptr inbounds float* %tmp8507, i64 1
+ %tmp8509 = getelementptr inbounds float* %tmp8508, i64 1
+ %tmp8510 = getelementptr inbounds float* %tmp8509, i64 1
+ %tmp8511 = getelementptr inbounds float* %tmp8510, i64 1
+ %tmp8512 = getelementptr inbounds float* %tmp8511, i64 1
+ %tmp8513 = getelementptr inbounds float* %tmp8512, i64 1
+ %tmp8514 = getelementptr inbounds float* %tmp8513, i64 1
+ %tmp8515 = getelementptr inbounds float* %tmp8514, i64 1
+ %tmp8516 = getelementptr inbounds float* %tmp8515, i64 1
+ %tmp8517 = getelementptr inbounds float* %tmp8516, i64 1
+ %tmp8518 = getelementptr inbounds float* %tmp8517, i64 1
+ %tmp8519 = getelementptr inbounds float* %tmp8518, i64 1
+ %tmp8520 = getelementptr inbounds float* %tmp8519, i64 1
+ %tmp8521 = getelementptr inbounds float* %tmp8520, i64 1
+ %tmp8522 = getelementptr inbounds float* %tmp8521, i64 1
+ %tmp8523 = getelementptr inbounds float* %tmp8522, i64 1
+ %tmp8524 = getelementptr inbounds float* %tmp8523, i64 1
+ %tmp8525 = getelementptr inbounds float* %tmp8524, i64 1
+ %tmp8526 = getelementptr inbounds float* %tmp8525, i64 1
+ %tmp8527 = getelementptr inbounds float* %tmp8526, i64 1
+ %tmp8528 = getelementptr inbounds float* %tmp8527, i64 1
+ %tmp8529 = getelementptr inbounds float* %tmp8528, i64 1
+ %tmp8530 = getelementptr inbounds float* %tmp8529, i64 1
+ %tmp8531 = getelementptr inbounds float* %tmp8530, i64 1
+ %tmp8532 = getelementptr inbounds float* %tmp8531, i64 1
+ %tmp8533 = getelementptr inbounds float* %tmp8532, i64 1
+ %tmp8534 = getelementptr inbounds float* %tmp8533, i64 1
+ %tmp8535 = getelementptr inbounds float* %tmp8534, i64 1
+ %tmp8536 = getelementptr inbounds float* %tmp8535, i64 1
+ %tmp8537 = getelementptr inbounds float* %tmp8536, i64 1
+ %tmp8538 = getelementptr inbounds float* %tmp8537, i64 1
+ %tmp8539 = getelementptr inbounds float* %tmp8538, i64 1
+ %tmp8540 = getelementptr inbounds float* %tmp8539, i64 1
+ %tmp8541 = getelementptr inbounds float* %tmp8540, i64 1
+ %tmp8542 = getelementptr inbounds float* %tmp8541, i64 1
+ %tmp8543 = getelementptr inbounds float* %tmp8542, i64 1
+ %tmp8544 = getelementptr inbounds float* %tmp8543, i64 1
+ %tmp8545 = getelementptr inbounds float* %tmp8544, i64 1
+ %tmp8546 = getelementptr inbounds float* %tmp8545, i64 1
+ %tmp8547 = getelementptr inbounds float* %tmp8546, i64 1
+ %tmp8548 = getelementptr inbounds float* %tmp8547, i64 1
+ %tmp8549 = getelementptr inbounds float* %tmp8548, i64 1
+ %tmp8550 = getelementptr inbounds float* %tmp8549, i64 1
+ %tmp8551 = getelementptr inbounds float* %tmp8550, i64 1
+ %tmp8552 = getelementptr inbounds float* %tmp8551, i64 1
+ %tmp8553 = getelementptr inbounds float* %tmp8552, i64 1
+ %tmp8554 = getelementptr inbounds float* %tmp8553, i64 1
+ %tmp8555 = getelementptr inbounds float* %tmp8554, i64 1
+ %tmp8556 = getelementptr inbounds float* %tmp8555, i64 1
+ %tmp8557 = getelementptr inbounds float* %tmp8556, i64 1
+ %tmp8558 = getelementptr inbounds float* %tmp8557, i64 1
+ %tmp8559 = getelementptr inbounds float* %tmp8558, i64 1
+ %tmp8560 = getelementptr inbounds float* %tmp8559, i64 1
+ %tmp8561 = getelementptr inbounds float* %tmp8560, i64 1
+ %tmp8562 = getelementptr inbounds float* %tmp8561, i64 1
+ %tmp8563 = getelementptr inbounds float* %tmp8562, i64 1
+ %tmp8564 = getelementptr inbounds float* %tmp8563, i64 1
+ %tmp8565 = getelementptr inbounds float* %tmp8564, i64 1
+ %tmp8566 = getelementptr inbounds float* %tmp8565, i64 1
+ %tmp8567 = getelementptr inbounds float* %tmp8566, i64 1
+ %tmp8568 = getelementptr inbounds float* %tmp8567, i64 1
+ %tmp8569 = getelementptr inbounds float* %tmp8568, i64 1
+ %tmp8570 = getelementptr inbounds float* %tmp8569, i64 1
+ %tmp8571 = getelementptr inbounds float* %tmp8570, i64 1
+ %tmp8572 = getelementptr inbounds float* %tmp8571, i64 1
+ %tmp8573 = getelementptr inbounds float* %tmp8572, i64 1
+ %tmp8574 = getelementptr inbounds float* %tmp8573, i64 1
+ %tmp8575 = getelementptr inbounds float* %tmp8574, i64 1
+ %tmp8576 = getelementptr inbounds float* %tmp8575, i64 1
+ %tmp8577 = getelementptr inbounds float* %tmp8576, i64 1
+ %tmp8578 = getelementptr inbounds float* %tmp8577, i64 1
+ %tmp8579 = getelementptr inbounds float* %tmp8578, i64 1
+ %tmp8580 = getelementptr inbounds float* %tmp8579, i64 1
+ %tmp8581 = getelementptr inbounds float* %tmp8580, i64 1
+ %tmp8582 = getelementptr inbounds float* %tmp8581, i64 1
+ %tmp8583 = getelementptr inbounds float* %tmp8582, i64 1
+ %tmp8584 = getelementptr inbounds float* %tmp8583, i64 1
+ %tmp8585 = getelementptr inbounds float* %tmp8584, i64 1
+ %tmp8586 = getelementptr inbounds float* %tmp8585, i64 1
+ %tmp8587 = getelementptr inbounds float* %tmp8586, i64 1
+ %tmp8588 = getelementptr inbounds float* %tmp8587, i64 1
+ %tmp8589 = getelementptr inbounds float* %tmp8588, i64 1
+ %tmp8590 = getelementptr inbounds float* %tmp8589, i64 1
+ %tmp8591 = getelementptr inbounds float* %tmp8590, i64 1
+ %tmp8592 = getelementptr inbounds float* %tmp8591, i64 1
+ %tmp8593 = getelementptr inbounds float* %tmp8592, i64 1
+ %tmp8594 = getelementptr inbounds float* %tmp8593, i64 1
+ %tmp8595 = getelementptr inbounds float* %tmp8594, i64 1
+ %tmp8596 = getelementptr inbounds float* %tmp8595, i64 1
+ %tmp8597 = getelementptr inbounds float* %tmp8596, i64 1
+ %tmp8598 = getelementptr inbounds float* %tmp8597, i64 1
+ %tmp8599 = getelementptr inbounds float* %tmp8598, i64 1
+ %tmp8600 = getelementptr inbounds float* %tmp8599, i64 1
+ %tmp8601 = getelementptr inbounds float* %tmp8600, i64 1
+ %tmp8602 = getelementptr inbounds float* %tmp8601, i64 1
+ %tmp8603 = getelementptr inbounds float* %tmp8602, i64 1
+ %tmp8604 = getelementptr inbounds float* %tmp8603, i64 1
+ %tmp8605 = getelementptr inbounds float* %tmp8604, i64 1
+ %tmp8606 = getelementptr inbounds float* %tmp8605, i64 1
+ %tmp8607 = getelementptr inbounds float* %tmp8606, i64 1
+ %tmp8608 = getelementptr inbounds float* %tmp8607, i64 1
+ %tmp8609 = getelementptr inbounds float* %tmp8608, i64 1
+ %tmp8610 = getelementptr inbounds float* %tmp8609, i64 1
+ %tmp8611 = getelementptr inbounds float* %tmp8610, i64 1
+ %tmp8612 = getelementptr inbounds float* %tmp8611, i64 1
+ %tmp8613 = getelementptr inbounds float* %tmp8612, i64 1
+ %tmp8614 = getelementptr inbounds float* %tmp8613, i64 1
+ %tmp8615 = getelementptr inbounds float* %tmp8614, i64 1
+ %tmp8616 = getelementptr inbounds float* %tmp8615, i64 1
+ %tmp8617 = getelementptr inbounds float* %tmp8616, i64 1
+ %tmp8618 = getelementptr inbounds float* %tmp8617, i64 1
+ %tmp8619 = getelementptr inbounds float* %tmp8618, i64 1
+ %tmp8620 = getelementptr inbounds float* %tmp8619, i64 1
+ %tmp8621 = getelementptr inbounds float* %tmp8620, i64 1
+ %tmp8622 = getelementptr inbounds float* %tmp8621, i64 1
+ %tmp8623 = getelementptr inbounds float* %tmp8622, i64 1
+ %tmp8624 = getelementptr inbounds float* %tmp8623, i64 1
+ %tmp8625 = getelementptr inbounds float* %tmp8624, i64 1
+ %tmp8626 = getelementptr inbounds float* %tmp8625, i64 1
+ %tmp8627 = getelementptr inbounds float* %tmp8626, i64 1
+ %tmp8628 = getelementptr inbounds float* %tmp8627, i64 1
+ %tmp8629 = getelementptr inbounds float* %tmp8628, i64 1
+ %tmp8630 = getelementptr inbounds float* %tmp8629, i64 1
+ %tmp8631 = getelementptr inbounds float* %tmp8630, i64 1
+ %tmp8632 = getelementptr inbounds float* %tmp8631, i64 1
+ %tmp8633 = getelementptr inbounds float* %tmp8632, i64 1
+ %tmp8634 = getelementptr inbounds float* %tmp8633, i64 1
+ %tmp8635 = getelementptr inbounds float* %tmp8634, i64 1
+ %tmp8636 = getelementptr inbounds float* %tmp8635, i64 1
+ %tmp8637 = getelementptr inbounds float* %tmp8636, i64 1
+ %tmp8638 = getelementptr inbounds float* %tmp8637, i64 1
+ %tmp8639 = getelementptr inbounds float* %tmp8638, i64 1
+ %tmp8640 = getelementptr inbounds float* %tmp8639, i64 1
+ %tmp8641 = getelementptr inbounds float* %tmp8640, i64 1
+ %tmp8642 = getelementptr inbounds float* %tmp8641, i64 1
+ %tmp8643 = getelementptr inbounds float* %tmp8642, i64 1
+ %tmp8644 = getelementptr inbounds float* %tmp8643, i64 1
+ %tmp8645 = getelementptr inbounds float* %tmp8644, i64 1
+ %tmp8646 = getelementptr inbounds float* %tmp8645, i64 1
+ %tmp8647 = getelementptr inbounds float* %tmp8646, i64 1
+ %tmp8648 = getelementptr inbounds float* %tmp8647, i64 1
+ %tmp8649 = getelementptr inbounds float* %tmp8648, i64 1
+ %tmp8650 = getelementptr inbounds float* %tmp8649, i64 1
+ %tmp8651 = getelementptr inbounds float* %tmp8650, i64 1
+ %tmp8652 = getelementptr inbounds float* %tmp8651, i64 1
+ %tmp8653 = getelementptr inbounds float* %tmp8652, i64 1
+ %tmp8654 = getelementptr inbounds float* %tmp8653, i64 1
+ %tmp8655 = getelementptr inbounds float* %tmp8654, i64 1
+ %tmp8656 = getelementptr inbounds float* %tmp8655, i64 1
+ %tmp8657 = getelementptr inbounds float* %tmp8656, i64 1
+ %tmp8658 = getelementptr inbounds float* %tmp8657, i64 1
+ %tmp8659 = getelementptr inbounds float* %tmp8658, i64 1
+ %tmp8660 = getelementptr inbounds float* %tmp8659, i64 1
+ %tmp8661 = getelementptr inbounds float* %tmp8660, i64 1
+ %tmp8662 = getelementptr inbounds float* %tmp8661, i64 1
+ %tmp8663 = getelementptr inbounds float* %tmp8662, i64 1
+ %tmp8664 = getelementptr inbounds float* %tmp8663, i64 1
+ %tmp8665 = getelementptr inbounds float* %tmp8664, i64 1
+ %tmp8666 = getelementptr inbounds float* %tmp8665, i64 1
+ %tmp8667 = getelementptr inbounds float* %tmp8666, i64 1
+ %tmp8668 = getelementptr inbounds float* %tmp8667, i64 1
+ %tmp8669 = getelementptr inbounds float* %tmp8668, i64 1
+ %tmp8670 = getelementptr inbounds float* %tmp8669, i64 1
+ %tmp8671 = getelementptr inbounds float* %tmp8670, i64 1
+ %tmp8672 = getelementptr inbounds float* %tmp8671, i64 1
+ %tmp8673 = getelementptr inbounds float* %tmp8672, i64 1
+ %tmp8674 = getelementptr inbounds float* %tmp8673, i64 1
+ %tmp8675 = getelementptr inbounds float* %tmp8674, i64 1
+ %tmp8676 = getelementptr inbounds float* %tmp8675, i64 1
+ %tmp8677 = getelementptr inbounds float* %tmp8676, i64 1
+ %tmp8678 = getelementptr inbounds float* %tmp8677, i64 1
+ %tmp8679 = getelementptr inbounds float* %tmp8678, i64 1
+ %tmp8680 = getelementptr inbounds float* %tmp8679, i64 1
+ %tmp8681 = getelementptr inbounds float* %tmp8680, i64 1
+ %tmp8682 = getelementptr inbounds float* %tmp8681, i64 1
+ %tmp8683 = getelementptr inbounds float* %tmp8682, i64 1
+ %tmp8684 = getelementptr inbounds float* %tmp8683, i64 1
+ %tmp8685 = getelementptr inbounds float* %tmp8684, i64 1
+ %tmp8686 = getelementptr inbounds float* %tmp8685, i64 1
+ %tmp8687 = getelementptr inbounds float* %tmp8686, i64 1
+ %tmp8688 = getelementptr inbounds float* %tmp8687, i64 1
+ %tmp8689 = getelementptr inbounds float* %tmp8688, i64 1
+ %tmp8690 = getelementptr inbounds float* %tmp8689, i64 1
+ %tmp8691 = getelementptr inbounds float* %tmp8690, i64 1
+ %tmp8692 = getelementptr inbounds float* %tmp8691, i64 1
+ %tmp8693 = getelementptr inbounds float* %tmp8692, i64 1
+ %tmp8694 = getelementptr inbounds float* %tmp8693, i64 1
+ %tmp8695 = getelementptr inbounds float* %tmp8694, i64 1
+ %tmp8696 = getelementptr inbounds float* %tmp8695, i64 1
+ %tmp8697 = getelementptr inbounds float* %tmp8696, i64 1
+ %tmp8698 = getelementptr inbounds float* %tmp8697, i64 1
+ %tmp8699 = getelementptr inbounds float* %tmp8698, i64 1
+ %tmp8700 = getelementptr inbounds float* %tmp8699, i64 1
+ %tmp8701 = getelementptr inbounds float* %tmp8700, i64 1
+ %tmp8702 = getelementptr inbounds float* %tmp8701, i64 1
+ %tmp8703 = getelementptr inbounds float* %tmp8702, i64 1
+ %tmp8704 = getelementptr inbounds float* %tmp8703, i64 1
+ %tmp8705 = getelementptr inbounds float* %tmp8704, i64 1
+ %tmp8706 = getelementptr inbounds float* %tmp8705, i64 1
+ %tmp8707 = getelementptr inbounds float* %tmp8706, i64 1
+ %tmp8708 = getelementptr inbounds float* %tmp8707, i64 1
+ %tmp8709 = getelementptr inbounds float* %tmp8708, i64 1
+ %tmp8710 = getelementptr inbounds float* %tmp8709, i64 1
+ %tmp8711 = getelementptr inbounds float* %tmp8710, i64 1
+ %tmp8712 = getelementptr inbounds float* %tmp8711, i64 1
+ %tmp8713 = getelementptr inbounds float* %tmp8712, i64 1
+ %tmp8714 = getelementptr inbounds float* %tmp8713, i64 1
+ %tmp8715 = getelementptr inbounds float* %tmp8714, i64 1
+ %tmp8716 = getelementptr inbounds float* %tmp8715, i64 1
+ %tmp8717 = getelementptr inbounds float* %tmp8716, i64 1
+ %tmp8718 = getelementptr inbounds float* %tmp8717, i64 1
+ %tmp8719 = getelementptr inbounds float* %tmp8718, i64 1
+ %tmp8720 = getelementptr inbounds float* %tmp8719, i64 1
+ %tmp8721 = getelementptr inbounds float* %tmp8720, i64 1
+ %tmp8722 = getelementptr inbounds float* %tmp8721, i64 1
+ %tmp8723 = getelementptr inbounds float* %tmp8722, i64 1
+ %tmp8724 = getelementptr inbounds float* %tmp8723, i64 1
+ %tmp8725 = getelementptr inbounds float* %tmp8724, i64 1
+ %tmp8726 = getelementptr inbounds float* %tmp8725, i64 1
+ %tmp8727 = getelementptr inbounds float* %tmp8726, i64 1
+ %tmp8728 = getelementptr inbounds float* %tmp8727, i64 1
+ %tmp8729 = getelementptr inbounds float* %tmp8728, i64 1
+ %tmp8730 = getelementptr inbounds float* %tmp8729, i64 1
+ %tmp8731 = getelementptr inbounds float* %tmp8730, i64 1
+ %tmp8732 = getelementptr inbounds float* %tmp8731, i64 1
+ %tmp8733 = getelementptr inbounds float* %tmp8732, i64 1
+ %tmp8734 = getelementptr inbounds float* %tmp8733, i64 1
+ %tmp8735 = getelementptr inbounds float* %tmp8734, i64 1
+ %tmp8736 = getelementptr inbounds float* %tmp8735, i64 1
+ %tmp8737 = getelementptr inbounds float* %tmp8736, i64 1
+ %tmp8738 = getelementptr inbounds float* %tmp8737, i64 1
+ %tmp8739 = getelementptr inbounds float* %tmp8738, i64 1
+ %tmp8740 = getelementptr inbounds float* %tmp8739, i64 1
+ %tmp8741 = getelementptr inbounds float* %tmp8740, i64 1
+ %tmp8742 = getelementptr inbounds float* %tmp8741, i64 1
+ %tmp8743 = getelementptr inbounds float* %tmp8742, i64 1
+ %tmp8744 = getelementptr inbounds float* %tmp8743, i64 1
+ %tmp8745 = getelementptr inbounds float* %tmp8744, i64 1
+ %tmp8746 = getelementptr inbounds float* %tmp8745, i64 1
+ %tmp8747 = getelementptr inbounds float* %tmp8746, i64 1
+ %tmp8748 = getelementptr inbounds float* %tmp8747, i64 1
+ %tmp8749 = getelementptr inbounds float* %tmp8748, i64 1
+ %tmp8750 = getelementptr inbounds float* %tmp8749, i64 1
+ %tmp8751 = getelementptr inbounds float* %tmp8750, i64 1
+ %tmp8752 = getelementptr inbounds float* %tmp8751, i64 1
+ %tmp8753 = getelementptr inbounds float* %tmp8752, i64 1
+ %tmp8754 = getelementptr inbounds float* %tmp8753, i64 1
+ %tmp8755 = getelementptr inbounds float* %tmp8754, i64 1
+ %tmp8756 = getelementptr inbounds float* %tmp8755, i64 1
+ %tmp8757 = getelementptr inbounds float* %tmp8756, i64 1
+ %tmp8758 = getelementptr inbounds float* %tmp8757, i64 1
+ %tmp8759 = getelementptr inbounds float* %tmp8758, i64 1
+ %tmp8760 = getelementptr inbounds float* %tmp8759, i64 1
+ %tmp8761 = getelementptr inbounds float* %tmp8760, i64 1
+ %tmp8762 = getelementptr inbounds float* %tmp8761, i64 1
+ %tmp8763 = getelementptr inbounds float* %tmp8762, i64 1
+ %tmp8764 = getelementptr inbounds float* %tmp8763, i64 1
+ %tmp8765 = getelementptr inbounds float* %tmp8764, i64 1
+ %tmp8766 = getelementptr inbounds float* %tmp8765, i64 1
+ %tmp8767 = getelementptr inbounds float* %tmp8766, i64 1
+ %tmp8768 = getelementptr inbounds float* %tmp8767, i64 1
+ %tmp8769 = getelementptr inbounds float* %tmp8768, i64 1
+ %tmp8770 = getelementptr inbounds float* %tmp8769, i64 1
+ %tmp8771 = getelementptr inbounds float* %tmp8770, i64 1
+ %tmp8772 = getelementptr inbounds float* %tmp8771, i64 1
+ %tmp8773 = getelementptr inbounds float* %tmp8772, i64 1
+ %tmp8774 = getelementptr inbounds float* %tmp8773, i64 1
+ %tmp8775 = getelementptr inbounds float* %tmp8774, i64 1
+ %tmp8776 = getelementptr inbounds float* %tmp8775, i64 1
+ %tmp8777 = getelementptr inbounds float* %tmp8776, i64 1
+ %tmp8778 = getelementptr inbounds float* %tmp8777, i64 1
+ %tmp8779 = getelementptr inbounds float* %tmp8778, i64 1
+ %tmp8780 = getelementptr inbounds float* %tmp8779, i64 1
+ %tmp8781 = getelementptr inbounds float* %tmp8780, i64 1
+ %tmp8782 = getelementptr inbounds float* %tmp8781, i64 1
+ %tmp8783 = getelementptr inbounds float* %tmp8782, i64 1
+ %tmp8784 = getelementptr inbounds float* %tmp8783, i64 1
+ %tmp8785 = getelementptr inbounds float* %tmp8784, i64 1
+ %tmp8786 = getelementptr inbounds float* %tmp8785, i64 1
+ %tmp8787 = getelementptr inbounds float* %tmp8786, i64 1
+ %tmp8788 = getelementptr inbounds float* %tmp8787, i64 1
+ %tmp8789 = getelementptr inbounds float* %tmp8788, i64 1
+ %tmp8790 = getelementptr inbounds float* %tmp8789, i64 1
+ %tmp8791 = getelementptr inbounds float* %tmp8790, i64 1
+ %tmp8792 = getelementptr inbounds float* %tmp8791, i64 1
+ %tmp8793 = getelementptr inbounds float* %tmp8792, i64 1
+ %tmp8794 = getelementptr inbounds float* %tmp8793, i64 1
+ %tmp8795 = getelementptr inbounds float* %tmp8794, i64 1
+ %tmp8796 = getelementptr inbounds float* %tmp8795, i64 1
+ %tmp8797 = getelementptr inbounds float* %tmp8796, i64 1
+ %tmp8798 = getelementptr inbounds float* %tmp8797, i64 1
+ %tmp8799 = getelementptr inbounds float* %tmp8798, i64 1
+ %tmp8800 = getelementptr inbounds float* %tmp8799, i64 1
+ %tmp8801 = getelementptr inbounds float* %tmp8800, i64 1
+ %tmp8802 = getelementptr inbounds float* %tmp8801, i64 1
+ %tmp8803 = getelementptr inbounds float* %tmp8802, i64 1
+ %tmp8804 = getelementptr inbounds float* %tmp8803, i64 1
+ %tmp8805 = getelementptr inbounds float* %tmp8804, i64 1
+ %tmp8806 = getelementptr inbounds float* %tmp8805, i64 1
+ %tmp8807 = getelementptr inbounds float* %tmp8806, i64 1
+ %tmp8808 = getelementptr inbounds float* %tmp8807, i64 1
+ %tmp8809 = getelementptr inbounds float* %tmp8808, i64 1
+ %tmp8810 = getelementptr inbounds float* %tmp8809, i64 1
+ %tmp8811 = getelementptr inbounds float* %tmp8810, i64 1
+ %tmp8812 = getelementptr inbounds float* %tmp8811, i64 1
+ %tmp8813 = getelementptr inbounds float* %tmp8812, i64 1
+ %tmp8814 = getelementptr inbounds float* %tmp8813, i64 1
+ %tmp8815 = getelementptr inbounds float* %tmp8814, i64 1
+ %tmp8816 = getelementptr inbounds float* %tmp8815, i64 1
+ %tmp8817 = getelementptr inbounds float* %tmp8816, i64 1
+ %tmp8818 = getelementptr inbounds float* %tmp8817, i64 1
+ %tmp8819 = getelementptr inbounds float* %tmp8818, i64 1
+ %tmp8820 = getelementptr inbounds float* %tmp8819, i64 1
+ %tmp8821 = getelementptr inbounds float* %tmp8820, i64 1
+ %tmp8822 = getelementptr inbounds float* %tmp8821, i64 1
+ %tmp8823 = getelementptr inbounds float* %tmp8822, i64 1
+ %tmp8824 = getelementptr inbounds float* %tmp8823, i64 1
+ %tmp8825 = getelementptr inbounds float* %tmp8824, i64 1
+ %tmp8826 = getelementptr inbounds float* %tmp8825, i64 1
+ %tmp8827 = getelementptr inbounds float* %tmp8826, i64 1
+ %tmp8828 = getelementptr inbounds float* %tmp8827, i64 1
+ %tmp8829 = getelementptr inbounds float* %tmp8828, i64 1
+ %tmp8830 = getelementptr inbounds float* %tmp8829, i64 1
+ %tmp8831 = getelementptr inbounds float* %tmp8830, i64 1
+ %tmp8832 = getelementptr inbounds float* %tmp8831, i64 1
+ %tmp8833 = getelementptr inbounds float* %tmp8832, i64 1
+ %tmp8834 = getelementptr inbounds float* %tmp8833, i64 1
+ %tmp8835 = getelementptr inbounds float* %tmp8834, i64 1
+ %tmp8836 = getelementptr inbounds float* %tmp8835, i64 1
+ %tmp8837 = getelementptr inbounds float* %tmp8836, i64 1
+ %tmp8838 = getelementptr inbounds float* %tmp8837, i64 1
+ %tmp8839 = getelementptr inbounds float* %tmp8838, i64 1
+ %tmp8840 = getelementptr inbounds float* %tmp8839, i64 1
+ %tmp8841 = getelementptr inbounds float* %tmp8840, i64 1
+ %tmp8842 = getelementptr inbounds float* %tmp8841, i64 1
+ %tmp8843 = getelementptr inbounds float* %tmp8842, i64 1
+ %tmp8844 = getelementptr inbounds float* %tmp8843, i64 1
+ %tmp8845 = getelementptr inbounds float* %tmp8844, i64 1
+ %tmp8846 = getelementptr inbounds float* %tmp8845, i64 1
+ %tmp8847 = getelementptr inbounds float* %tmp8846, i64 1
+ %tmp8848 = getelementptr inbounds float* %tmp8847, i64 1
+ %tmp8849 = getelementptr inbounds float* %tmp8848, i64 1
+ %tmp8850 = getelementptr inbounds float* %tmp8849, i64 1
+ %tmp8851 = getelementptr inbounds float* %tmp8850, i64 1
+ %tmp8852 = getelementptr inbounds float* %tmp8851, i64 1
+ %tmp8853 = getelementptr inbounds float* %tmp8852, i64 1
+ %tmp8854 = getelementptr inbounds float* %tmp8853, i64 1
+ %tmp8855 = getelementptr inbounds float* %tmp8854, i64 1
+ %tmp8856 = getelementptr inbounds float* %tmp8855, i64 1
+ %tmp8857 = getelementptr inbounds float* %tmp8856, i64 1
+ %tmp8858 = getelementptr inbounds float* %tmp8857, i64 1
+ %tmp8859 = getelementptr inbounds float* %tmp8858, i64 1
+ %tmp8860 = getelementptr inbounds float* %tmp8859, i64 1
+ %tmp8861 = getelementptr inbounds float* %tmp8860, i64 1
+ %tmp8862 = getelementptr inbounds float* %tmp8861, i64 1
+ %tmp8863 = getelementptr inbounds float* %tmp8862, i64 1
+ %tmp8864 = getelementptr inbounds float* %tmp8863, i64 1
+ %tmp8865 = getelementptr inbounds float* %tmp8864, i64 1
+ %tmp8866 = getelementptr inbounds float* %tmp8865, i64 1
+ %tmp8867 = getelementptr inbounds float* %tmp8866, i64 1
+ %tmp8868 = getelementptr inbounds float* %tmp8867, i64 1
+ %tmp8869 = getelementptr inbounds float* %tmp8868, i64 1
+ %tmp8870 = getelementptr inbounds float* %tmp8869, i64 1
+ %tmp8871 = getelementptr inbounds float* %tmp8870, i64 1
+ %tmp8872 = getelementptr inbounds float* %tmp8871, i64 1
+ %tmp8873 = getelementptr inbounds float* %tmp8872, i64 1
+ %tmp8874 = getelementptr inbounds float* %tmp8873, i64 1
+ %tmp8875 = getelementptr inbounds float* %tmp8874, i64 1
+ %tmp8876 = getelementptr inbounds float* %tmp8875, i64 1
+ %tmp8877 = getelementptr inbounds float* %tmp8876, i64 1
+ %tmp8878 = getelementptr inbounds float* %tmp8877, i64 1
+ %tmp8879 = getelementptr inbounds float* %tmp8878, i64 1
+ %tmp8880 = getelementptr inbounds float* %tmp8879, i64 1
+ %tmp8881 = getelementptr inbounds float* %tmp8880, i64 1
+ %tmp8882 = getelementptr inbounds float* %tmp8881, i64 1
+ %tmp8883 = getelementptr inbounds float* %tmp8882, i64 1
+ %tmp8884 = getelementptr inbounds float* %tmp8883, i64 1
+ %tmp8885 = getelementptr inbounds float* %tmp8884, i64 1
+ %tmp8886 = getelementptr inbounds float* %tmp8885, i64 1
+ %tmp8887 = getelementptr inbounds float* %tmp8886, i64 1
+ %tmp8888 = getelementptr inbounds float* %tmp8887, i64 1
+ %tmp8889 = getelementptr inbounds float* %tmp8888, i64 1
+ %tmp8890 = getelementptr inbounds float* %tmp8889, i64 1
+ %tmp8891 = getelementptr inbounds float* %tmp8890, i64 1
+ %tmp8892 = getelementptr inbounds float* %tmp8891, i64 1
+ %tmp8893 = getelementptr inbounds float* %tmp8892, i64 1
+ %tmp8894 = getelementptr inbounds float* %tmp8893, i64 1
+ %tmp8895 = getelementptr inbounds float* %tmp8894, i64 1
+ %tmp8896 = getelementptr inbounds float* %tmp8895, i64 1
+ %tmp8897 = getelementptr inbounds float* %tmp8896, i64 1
+ %tmp8898 = getelementptr inbounds float* %tmp8897, i64 1
+ %tmp8899 = getelementptr inbounds float* %tmp8898, i64 1
+ %tmp8900 = getelementptr inbounds float* %tmp8899, i64 1
+ %tmp8901 = getelementptr inbounds float* %tmp8900, i64 1
+ %tmp8902 = getelementptr inbounds float* %tmp8901, i64 1
+ %tmp8903 = getelementptr inbounds float* %tmp8902, i64 1
+ %tmp8904 = getelementptr inbounds float* %tmp8903, i64 1
+ %tmp8905 = getelementptr inbounds float* %tmp8904, i64 1
+ %tmp8906 = getelementptr inbounds float* %tmp8905, i64 1
+ %tmp8907 = getelementptr inbounds float* %tmp8906, i64 1
+ %tmp8908 = getelementptr inbounds float* %tmp8907, i64 1
+ %tmp8909 = getelementptr inbounds float* %tmp8908, i64 1
+ %tmp8910 = getelementptr inbounds float* %tmp8909, i64 1
+ %tmp8911 = getelementptr inbounds float* %tmp8910, i64 1
+ %tmp8912 = getelementptr inbounds float* %tmp8911, i64 1
+ %tmp8913 = getelementptr inbounds float* %tmp8912, i64 1
+ %tmp8914 = getelementptr inbounds float* %tmp8913, i64 1
+ %tmp8915 = getelementptr inbounds float* %tmp8914, i64 1
+ %tmp8916 = getelementptr inbounds float* %tmp8915, i64 1
+ %tmp8917 = getelementptr inbounds float* %tmp8916, i64 1
+ %tmp8918 = getelementptr inbounds float* %tmp8917, i64 1
+ %tmp8919 = getelementptr inbounds float* %tmp8918, i64 1
+ %tmp8920 = getelementptr inbounds float* %tmp8919, i64 1
+ %tmp8921 = getelementptr inbounds float* %tmp8920, i64 1
+ %tmp8922 = getelementptr inbounds float* %tmp8921, i64 1
+ %tmp8923 = getelementptr inbounds float* %tmp8922, i64 1
+ %tmp8924 = getelementptr inbounds float* %tmp8923, i64 1
+ %tmp8925 = getelementptr inbounds float* %tmp8924, i64 1
+ %tmp8926 = getelementptr inbounds float* %tmp8925, i64 1
+ %tmp8927 = getelementptr inbounds float* %tmp8926, i64 1
+ %tmp8928 = getelementptr inbounds float* %tmp8927, i64 1
+ %tmp8929 = getelementptr inbounds float* %tmp8928, i64 1
+ %tmp8930 = getelementptr inbounds float* %tmp8929, i64 1
+ %tmp8931 = getelementptr inbounds float* %tmp8930, i64 1
+ %tmp8932 = getelementptr inbounds float* %tmp8931, i64 1
+ %tmp8933 = getelementptr inbounds float* %tmp8932, i64 1
+ %tmp8934 = getelementptr inbounds float* %tmp8933, i64 1
+ %tmp8935 = getelementptr inbounds float* %tmp8934, i64 1
+ %tmp8936 = getelementptr inbounds float* %tmp8935, i64 1
+ %tmp8937 = getelementptr inbounds float* %tmp8936, i64 1
+ %tmp8938 = getelementptr inbounds float* %tmp8937, i64 1
+ %tmp8939 = getelementptr inbounds float* %tmp8938, i64 1
+ %tmp8940 = getelementptr inbounds float* %tmp8939, i64 1
+ %tmp8941 = getelementptr inbounds float* %tmp8940, i64 1
+ %tmp8942 = getelementptr inbounds float* %tmp8941, i64 1
+ %tmp8943 = getelementptr inbounds float* %tmp8942, i64 1
+ %tmp8944 = getelementptr inbounds float* %tmp8943, i64 1
+ %tmp8945 = getelementptr inbounds float* %tmp8944, i64 1
+ %tmp8946 = getelementptr inbounds float* %tmp8945, i64 1
+ %tmp8947 = getelementptr inbounds float* %tmp8946, i64 1
+ %tmp8948 = getelementptr inbounds float* %tmp8947, i64 1
+ %tmp8949 = getelementptr inbounds float* %tmp8948, i64 1
+ %tmp8950 = getelementptr inbounds float* %tmp8949, i64 1
+ %tmp8951 = getelementptr inbounds float* %tmp8950, i64 1
+ %tmp8952 = getelementptr inbounds float* %tmp8951, i64 1
+ %tmp8953 = getelementptr inbounds float* %tmp8952, i64 1
+ %tmp8954 = getelementptr inbounds float* %tmp8953, i64 1
+ %tmp8955 = getelementptr inbounds float* %tmp8954, i64 1
+ %tmp8956 = getelementptr inbounds float* %tmp8955, i64 1
+ %tmp8957 = getelementptr inbounds float* %tmp8956, i64 1
+ %tmp8958 = getelementptr inbounds float* %tmp8957, i64 1
+ %tmp8959 = getelementptr inbounds float* %tmp8958, i64 1
+ %tmp8960 = getelementptr inbounds float* %tmp8959, i64 1
+ %tmp8961 = getelementptr inbounds float* %tmp8960, i64 1
+ %tmp8962 = getelementptr inbounds float* %tmp8961, i64 1
+ %tmp8963 = getelementptr inbounds float* %tmp8962, i64 1
+ %tmp8964 = getelementptr inbounds float* %tmp8963, i64 1
+ %tmp8965 = getelementptr inbounds float* %tmp8964, i64 1
+ %tmp8966 = getelementptr inbounds float* %tmp8965, i64 1
+ %tmp8967 = getelementptr inbounds float* %tmp8966, i64 1
+ %tmp8968 = getelementptr inbounds float* %tmp8967, i64 1
+ %tmp8969 = getelementptr inbounds float* %tmp8968, i64 1
+ %tmp8970 = getelementptr inbounds float* %tmp8969, i64 1
+ %tmp8971 = getelementptr inbounds float* %tmp8970, i64 1
+ %tmp8972 = getelementptr inbounds float* %tmp8971, i64 1
+ %tmp8973 = getelementptr inbounds float* %tmp8972, i64 1
+ %tmp8974 = getelementptr inbounds float* %tmp8973, i64 1
+ %tmp8975 = getelementptr inbounds float* %tmp8974, i64 1
+ %tmp8976 = getelementptr inbounds float* %tmp8975, i64 1
+ %tmp8977 = getelementptr inbounds float* %tmp8976, i64 1
+ %tmp8978 = getelementptr inbounds float* %tmp8977, i64 1
+ %tmp8979 = getelementptr inbounds float* %tmp8978, i64 1
+ %tmp8980 = getelementptr inbounds float* %tmp8979, i64 1
+ %tmp8981 = getelementptr inbounds float* %tmp8980, i64 1
+ %tmp8982 = getelementptr inbounds float* %tmp8981, i64 1
+ %tmp8983 = getelementptr inbounds float* %tmp8982, i64 1
+ %tmp8984 = getelementptr inbounds float* %tmp8983, i64 1
+ %tmp8985 = getelementptr inbounds float* %tmp8984, i64 1
+ %tmp8986 = getelementptr inbounds float* %tmp8985, i64 1
+ %tmp8987 = getelementptr inbounds float* %tmp8986, i64 1
+ %tmp8988 = getelementptr inbounds float* %tmp8987, i64 1
+ %tmp8989 = getelementptr inbounds float* %tmp8988, i64 1
+ %tmp8990 = getelementptr inbounds float* %tmp8989, i64 1
+ %tmp8991 = getelementptr inbounds float* %tmp8990, i64 1
+ %tmp8992 = getelementptr inbounds float* %tmp8991, i64 1
+ %tmp8993 = getelementptr inbounds float* %tmp8992, i64 1
+ %tmp8994 = getelementptr inbounds float* %tmp8993, i64 1
+ %tmp8995 = getelementptr inbounds float* %tmp8994, i64 1
+ %tmp8996 = getelementptr inbounds float* %tmp8995, i64 1
+ %tmp8997 = getelementptr inbounds float* %tmp8996, i64 1
+ %tmp8998 = getelementptr inbounds float* %tmp8997, i64 1
+ %tmp8999 = getelementptr inbounds float* %tmp8998, i64 1
+ %tmp9000 = getelementptr inbounds float* %tmp8999, i64 1
+ %tmp9001 = getelementptr inbounds float* %tmp9000, i64 1
+ %tmp9002 = getelementptr inbounds float* %tmp9001, i64 1
+ %tmp9003 = getelementptr inbounds float* %tmp9002, i64 1
+ %tmp9004 = getelementptr inbounds float* %tmp9003, i64 1
+ %tmp9005 = getelementptr inbounds float* %tmp9004, i64 1
+ %tmp9006 = getelementptr inbounds float* %tmp9005, i64 1
+ %tmp9007 = getelementptr inbounds float* %tmp9006, i64 1
+ %tmp9008 = getelementptr inbounds float* %tmp9007, i64 1
+ %tmp9009 = getelementptr inbounds float* %tmp9008, i64 1
+ %tmp9010 = getelementptr inbounds float* %tmp9009, i64 1
+ %tmp9011 = getelementptr inbounds float* %tmp9010, i64 1
+ %tmp9012 = getelementptr inbounds float* %tmp9011, i64 1
+ %tmp9013 = getelementptr inbounds float* %tmp9012, i64 1
+ %tmp9014 = getelementptr inbounds float* %tmp9013, i64 1
+ %tmp9015 = getelementptr inbounds float* %tmp9014, i64 1
+ %tmp9016 = getelementptr inbounds float* %tmp9015, i64 1
+ %tmp9017 = getelementptr inbounds float* %tmp9016, i64 1
+ %tmp9018 = getelementptr inbounds float* %tmp9017, i64 1
+ %tmp9019 = getelementptr inbounds float* %tmp9018, i64 1
+ %tmp9020 = getelementptr inbounds float* %tmp9019, i64 1
+ %tmp9021 = getelementptr inbounds float* %tmp9020, i64 1
+ %tmp9022 = getelementptr inbounds float* %tmp9021, i64 1
+ %tmp9023 = getelementptr inbounds float* %tmp9022, i64 1
+ %tmp9024 = getelementptr inbounds float* %tmp9023, i64 1
+ %tmp9025 = getelementptr inbounds float* %tmp9024, i64 1
+ %tmp9026 = getelementptr inbounds float* %tmp9025, i64 1
+ %tmp9027 = getelementptr inbounds float* %tmp9026, i64 1
+ %tmp9028 = getelementptr inbounds float* %tmp9027, i64 1
+ %tmp9029 = getelementptr inbounds float* %tmp9028, i64 1
+ %tmp9030 = getelementptr inbounds float* %tmp9029, i64 1
+ %tmp9031 = getelementptr inbounds float* %tmp9030, i64 1
+ %tmp9032 = getelementptr inbounds float* %tmp9031, i64 1
+ %tmp9033 = getelementptr inbounds float* %tmp9032, i64 1
+ %tmp9034 = getelementptr inbounds float* %tmp9033, i64 1
+ %tmp9035 = getelementptr inbounds float* %tmp9034, i64 1
+ %tmp9036 = getelementptr inbounds float* %tmp9035, i64 1
+ %tmp9037 = getelementptr inbounds float* %tmp9036, i64 1
+ %tmp9038 = getelementptr inbounds float* %tmp9037, i64 1
+ %tmp9039 = getelementptr inbounds float* %tmp9038, i64 1
+ %tmp9040 = getelementptr inbounds float* %tmp9039, i64 1
+ %tmp9041 = getelementptr inbounds float* %tmp9040, i64 1
+ %tmp9042 = getelementptr inbounds float* %tmp9041, i64 1
+ %tmp9043 = getelementptr inbounds float* %tmp9042, i64 1
+ %tmp9044 = getelementptr inbounds float* %tmp9043, i64 1
+ %tmp9045 = getelementptr inbounds float* %tmp9044, i64 1
+ %tmp9046 = getelementptr inbounds float* %tmp9045, i64 1
+ %tmp9047 = getelementptr inbounds float* %tmp9046, i64 1
+ %tmp9048 = getelementptr inbounds float* %tmp9047, i64 1
+ %tmp9049 = getelementptr inbounds float* %tmp9048, i64 1
+ %tmp9050 = getelementptr inbounds float* %tmp9049, i64 1
+ %tmp9051 = getelementptr inbounds float* %tmp9050, i64 1
+ %tmp9052 = getelementptr inbounds float* %tmp9051, i64 1
+ %tmp9053 = getelementptr inbounds float* %tmp9052, i64 1
+ %tmp9054 = getelementptr inbounds float* %tmp9053, i64 1
+ %tmp9055 = getelementptr inbounds float* %tmp9054, i64 1
+ %tmp9056 = getelementptr inbounds float* %tmp9055, i64 1
+ %tmp9057 = getelementptr inbounds float* %tmp9056, i64 1
+ %tmp9058 = getelementptr inbounds float* %tmp9057, i64 1
+ %tmp9059 = getelementptr inbounds float* %tmp9058, i64 1
+ %tmp9060 = getelementptr inbounds float* %tmp9059, i64 1
+ %tmp9061 = getelementptr inbounds float* %tmp9060, i64 1
+ %tmp9062 = getelementptr inbounds float* %tmp9061, i64 1
+ %tmp9063 = getelementptr inbounds float* %tmp9062, i64 1
+ %tmp9064 = getelementptr inbounds float* %tmp9063, i64 1
+ %tmp9065 = getelementptr inbounds float* %tmp9064, i64 1
+ %tmp9066 = getelementptr inbounds float* %tmp9065, i64 1
+ %tmp9067 = getelementptr inbounds float* %tmp9066, i64 1
+ %tmp9068 = getelementptr inbounds float* %tmp9067, i64 1
+ %tmp9069 = getelementptr inbounds float* %tmp9068, i64 1
+ %tmp9070 = getelementptr inbounds float* %tmp9069, i64 1
+ %tmp9071 = getelementptr inbounds float* %tmp9070, i64 1
+ %tmp9072 = getelementptr inbounds float* %tmp9071, i64 1
+ %tmp9073 = getelementptr inbounds float* %tmp9072, i64 1
+ %tmp9074 = getelementptr inbounds float* %tmp9073, i64 1
+ %tmp9075 = getelementptr inbounds float* %tmp9074, i64 1
+ %tmp9076 = getelementptr inbounds float* %tmp9075, i64 1
+ %tmp9077 = getelementptr inbounds float* %tmp9076, i64 1
+ %tmp9078 = getelementptr inbounds float* %tmp9077, i64 1
+ %tmp9079 = getelementptr inbounds float* %tmp9078, i64 1
+ %tmp9080 = getelementptr inbounds float* %tmp9079, i64 1
+ %tmp9081 = getelementptr inbounds float* %tmp9080, i64 1
+ %tmp9082 = getelementptr inbounds float* %tmp9081, i64 1
+ %tmp9083 = getelementptr inbounds float* %tmp9082, i64 1
+ %tmp9084 = getelementptr inbounds float* %tmp9083, i64 1
+ %tmp9085 = getelementptr inbounds float* %tmp9084, i64 1
+ %tmp9086 = getelementptr inbounds float* %tmp9085, i64 1
+ %tmp9087 = getelementptr inbounds float* %tmp9086, i64 1
+ %tmp9088 = getelementptr inbounds float* %tmp9087, i64 1
+ %tmp9089 = getelementptr inbounds float* %tmp9088, i64 1
+ %tmp9090 = getelementptr inbounds float* %tmp9089, i64 1
+ %tmp9091 = getelementptr inbounds float* %tmp9090, i64 1
+ %tmp9092 = getelementptr inbounds float* %tmp9091, i64 1
+ %tmp9093 = getelementptr inbounds float* %tmp9092, i64 1
+ %tmp9094 = getelementptr inbounds float* %tmp9093, i64 1
+ %tmp9095 = getelementptr inbounds float* %tmp9094, i64 1
+ %tmp9096 = getelementptr inbounds float* %tmp9095, i64 1
+ %tmp9097 = getelementptr inbounds float* %tmp9096, i64 1
+ %tmp9098 = getelementptr inbounds float* %tmp9097, i64 1
+ %tmp9099 = getelementptr inbounds float* %tmp9098, i64 1
+ %tmp9100 = getelementptr inbounds float* %tmp9099, i64 1
+ %tmp9101 = getelementptr inbounds float* %tmp9100, i64 1
+ %tmp9102 = getelementptr inbounds float* %tmp9101, i64 1
+ %tmp9103 = getelementptr inbounds float* %tmp9102, i64 1
+ %tmp9104 = getelementptr inbounds float* %tmp9103, i64 1
+ %tmp9105 = getelementptr inbounds float* %tmp9104, i64 1
+ %tmp9106 = getelementptr inbounds float* %tmp9105, i64 1
+ %tmp9107 = getelementptr inbounds float* %tmp9106, i64 1
+ %tmp9108 = getelementptr inbounds float* %tmp9107, i64 1
+ %tmp9109 = getelementptr inbounds float* %tmp9108, i64 1
+ %tmp9110 = getelementptr inbounds float* %tmp9109, i64 1
+ %tmp9111 = getelementptr inbounds float* %tmp9110, i64 1
+ %tmp9112 = getelementptr inbounds float* %tmp9111, i64 1
+ %tmp9113 = getelementptr inbounds float* %tmp9112, i64 1
+ %tmp9114 = getelementptr inbounds float* %tmp9113, i64 1
+ %tmp9115 = getelementptr inbounds float* %tmp9114, i64 1
+ %tmp9116 = getelementptr inbounds float* %tmp9115, i64 1
+ %tmp9117 = getelementptr inbounds float* %tmp9116, i64 1
+ %tmp9118 = getelementptr inbounds float* %tmp9117, i64 1
+ %tmp9119 = getelementptr inbounds float* %tmp9118, i64 1
+ %tmp9120 = getelementptr inbounds float* %tmp9119, i64 1
+ %tmp9121 = getelementptr inbounds float* %tmp9120, i64 1
+ %tmp9122 = getelementptr inbounds float* %tmp9121, i64 1
+ %tmp9123 = getelementptr inbounds float* %tmp9122, i64 1
+ %tmp9124 = getelementptr inbounds float* %tmp9123, i64 1
+ %tmp9125 = getelementptr inbounds float* %tmp9124, i64 1
+ %tmp9126 = getelementptr inbounds float* %tmp9125, i64 1
+ %tmp9127 = getelementptr inbounds float* %tmp9126, i64 1
+ %tmp9128 = getelementptr inbounds float* %tmp9127, i64 1
+ %tmp9129 = getelementptr inbounds float* %tmp9128, i64 1
+ %tmp9130 = getelementptr inbounds float* %tmp9129, i64 1
+ %tmp9131 = getelementptr inbounds float* %tmp9130, i64 1
+ %tmp9132 = getelementptr inbounds float* %tmp9131, i64 1
+ %tmp9133 = getelementptr inbounds float* %tmp9132, i64 1
+ %tmp9134 = getelementptr inbounds float* %tmp9133, i64 1
+ %tmp9135 = getelementptr inbounds float* %tmp9134, i64 1
+ %tmp9136 = getelementptr inbounds float* %tmp9135, i64 1
+ %tmp9137 = getelementptr inbounds float* %tmp9136, i64 1
+ %tmp9138 = getelementptr inbounds float* %tmp9137, i64 1
+ %tmp9139 = getelementptr inbounds float* %tmp9138, i64 1
+ %tmp9140 = getelementptr inbounds float* %tmp9139, i64 1
+ %tmp9141 = getelementptr inbounds float* %tmp9140, i64 1
+ %tmp9142 = getelementptr inbounds float* %tmp9141, i64 1
+ %tmp9143 = getelementptr inbounds float* %tmp9142, i64 1
+ %tmp9144 = getelementptr inbounds float* %tmp9143, i64 1
+ %tmp9145 = getelementptr inbounds float* %tmp9144, i64 1
+ %tmp9146 = getelementptr inbounds float* %tmp9145, i64 1
+ %tmp9147 = getelementptr inbounds float* %tmp9146, i64 1
+ %tmp9148 = getelementptr inbounds float* %tmp9147, i64 1
+ %tmp9149 = getelementptr inbounds float* %tmp9148, i64 1
+ %tmp9150 = getelementptr inbounds float* %tmp9149, i64 1
+ %tmp9151 = getelementptr inbounds float* %tmp9150, i64 1
+ %tmp9152 = getelementptr inbounds float* %tmp9151, i64 1
+ %tmp9153 = getelementptr inbounds float* %tmp9152, i64 1
+ %tmp9154 = getelementptr inbounds float* %tmp9153, i64 1
+ %tmp9155 = getelementptr inbounds float* %tmp9154, i64 1
+ %tmp9156 = getelementptr inbounds float* %tmp9155, i64 1
+ %tmp9157 = getelementptr inbounds float* %tmp9156, i64 1
+ %tmp9158 = getelementptr inbounds float* %tmp9157, i64 1
+ %tmp9159 = getelementptr inbounds float* %tmp9158, i64 1
+ %tmp9160 = getelementptr inbounds float* %tmp9159, i64 1
+ %tmp9161 = getelementptr inbounds float* %tmp9160, i64 1
+ %tmp9162 = getelementptr inbounds float* %tmp9161, i64 1
+ %tmp9163 = getelementptr inbounds float* %tmp9162, i64 1
+ %tmp9164 = getelementptr inbounds float* %tmp9163, i64 1
+ %tmp9165 = getelementptr inbounds float* %tmp9164, i64 1
+ %tmp9166 = getelementptr inbounds float* %tmp9165, i64 1
+ %tmp9167 = getelementptr inbounds float* %tmp9166, i64 1
+ %tmp9168 = getelementptr inbounds float* %tmp9167, i64 1
+ %tmp9169 = getelementptr inbounds float* %tmp9168, i64 1
+ %tmp9170 = getelementptr inbounds float* %tmp9169, i64 1
+ %tmp9171 = getelementptr inbounds float* %tmp9170, i64 1
+ %tmp9172 = getelementptr inbounds float* %tmp9171, i64 1
+ %tmp9173 = getelementptr inbounds float* %tmp9172, i64 1
+ %tmp9174 = getelementptr inbounds float* %tmp9173, i64 1
+ %tmp9175 = getelementptr inbounds float* %tmp9174, i64 1
+ %tmp9176 = getelementptr inbounds float* %tmp9175, i64 1
+ %tmp9177 = getelementptr inbounds float* %tmp9176, i64 1
+ %tmp9178 = getelementptr inbounds float* %tmp9177, i64 1
+ %tmp9179 = getelementptr inbounds float* %tmp9178, i64 1
+ %tmp9180 = getelementptr inbounds float* %tmp9179, i64 1
+ %tmp9181 = getelementptr inbounds float* %tmp9180, i64 1
+ %tmp9182 = getelementptr inbounds float* %tmp9181, i64 1
+ %tmp9183 = getelementptr inbounds float* %tmp9182, i64 1
+ %tmp9184 = getelementptr inbounds float* %tmp9183, i64 1
+ %tmp9185 = getelementptr inbounds float* %tmp9184, i64 1
+ %tmp9186 = getelementptr inbounds float* %tmp9185, i64 1
+ %tmp9187 = getelementptr inbounds float* %tmp9186, i64 1
+ %tmp9188 = getelementptr inbounds float* %tmp9187, i64 1
+ %tmp9189 = getelementptr inbounds float* %tmp9188, i64 1
+ %tmp9190 = getelementptr inbounds float* %tmp9189, i64 1
+ %tmp9191 = getelementptr inbounds float* %tmp9190, i64 1
+ %tmp9192 = getelementptr inbounds float* %tmp9191, i64 1
+ %tmp9193 = getelementptr inbounds float* %tmp9192, i64 1
+ %tmp9194 = getelementptr inbounds float* %tmp9193, i64 1
+ %tmp9195 = getelementptr inbounds float* %tmp9194, i64 1
+ %tmp9196 = getelementptr inbounds float* %tmp9195, i64 1
+ %tmp9197 = getelementptr inbounds float* %tmp9196, i64 1
+ %tmp9198 = getelementptr inbounds float* %tmp9197, i64 1
+ %tmp9199 = getelementptr inbounds float* %tmp9198, i64 1
+ %tmp9200 = getelementptr inbounds float* %tmp9199, i64 1
+ %tmp9201 = getelementptr inbounds float* %tmp9200, i64 1
+ %tmp9202 = getelementptr inbounds float* %tmp9201, i64 1
+ %tmp9203 = getelementptr inbounds float* %tmp9202, i64 1
+ %tmp9204 = getelementptr inbounds float* %tmp9203, i64 1
+ %tmp9205 = getelementptr inbounds float* %tmp9204, i64 1
+ %tmp9206 = getelementptr inbounds float* %tmp9205, i64 1
+ %tmp9207 = getelementptr inbounds float* %tmp9206, i64 1
+ %tmp9208 = getelementptr inbounds float* %tmp9207, i64 1
+ %tmp9209 = getelementptr inbounds float* %tmp9208, i64 1
+ %tmp9210 = getelementptr inbounds float* %tmp9209, i64 1
+ %tmp9211 = getelementptr inbounds float* %tmp9210, i64 1
+ %tmp9212 = getelementptr inbounds float* %tmp9211, i64 1
+ %tmp9213 = getelementptr inbounds float* %tmp9212, i64 1
+ %tmp9214 = getelementptr inbounds float* %tmp9213, i64 1
+ %tmp9215 = getelementptr inbounds float* %tmp9214, i64 1
+ %tmp9216 = getelementptr inbounds float* %tmp9215, i64 1
+ %tmp9217 = getelementptr inbounds float* %tmp9216, i64 1
+ %tmp9218 = getelementptr inbounds float* %tmp9217, i64 1
+ %tmp9219 = getelementptr inbounds float* %tmp9218, i64 1
+ %tmp9220 = getelementptr inbounds float* %tmp9219, i64 1
+ %tmp9221 = getelementptr inbounds float* %tmp9220, i64 1
+ %tmp9222 = getelementptr inbounds float* %tmp9221, i64 1
+ %tmp9223 = getelementptr inbounds float* %tmp9222, i64 1
+ %tmp9224 = getelementptr inbounds float* %tmp9223, i64 1
+ %tmp9225 = getelementptr inbounds float* %tmp9224, i64 1
+ %tmp9226 = getelementptr inbounds float* %tmp9225, i64 1
+ %tmp9227 = getelementptr inbounds float* %tmp9226, i64 1
+ %tmp9228 = getelementptr inbounds float* %tmp9227, i64 1
+ %tmp9229 = getelementptr inbounds float* %tmp9228, i64 1
+ %tmp9230 = getelementptr inbounds float* %tmp9229, i64 1
+ %tmp9231 = getelementptr inbounds float* %tmp9230, i64 1
+ %tmp9232 = getelementptr inbounds float* %tmp9231, i64 1
+ %tmp9233 = getelementptr inbounds float* %tmp9232, i64 1
+ %tmp9234 = getelementptr inbounds float* %tmp9233, i64 1
+ %tmp9235 = getelementptr inbounds float* %tmp9234, i64 1
+ %tmp9236 = getelementptr inbounds float* %tmp9235, i64 1
+ %tmp9237 = getelementptr inbounds float* %tmp9236, i64 1
+ %tmp9238 = getelementptr inbounds float* %tmp9237, i64 1
+ %tmp9239 = getelementptr inbounds float* %tmp9238, i64 1
+ %tmp9240 = getelementptr inbounds float* %tmp9239, i64 1
+ %tmp9241 = getelementptr inbounds float* %tmp9240, i64 1
+ %tmp9242 = getelementptr inbounds float* %tmp9241, i64 1
+ %tmp9243 = getelementptr inbounds float* %tmp9242, i64 1
+ %tmp9244 = getelementptr inbounds float* %tmp9243, i64 1
+ %tmp9245 = getelementptr inbounds float* %tmp9244, i64 1
+ %tmp9246 = getelementptr inbounds float* %tmp9245, i64 1
+ %tmp9247 = getelementptr inbounds float* %tmp9246, i64 1
+ %tmp9248 = getelementptr inbounds float* %tmp9247, i64 1
+ %tmp9249 = getelementptr inbounds float* %tmp9248, i64 1
+ %tmp9250 = getelementptr inbounds float* %tmp9249, i64 1
+ %tmp9251 = getelementptr inbounds float* %tmp9250, i64 1
+ %tmp9252 = getelementptr inbounds float* %tmp9251, i64 1
+ %tmp9253 = getelementptr inbounds float* %tmp9252, i64 1
+ %tmp9254 = getelementptr inbounds float* %tmp9253, i64 1
+ %tmp9255 = getelementptr inbounds float* %tmp9254, i64 1
+ %tmp9256 = getelementptr inbounds float* %tmp9255, i64 1
+ %tmp9257 = getelementptr inbounds float* %tmp9256, i64 1
+ %tmp9258 = getelementptr inbounds float* %tmp9257, i64 1
+ %tmp9259 = getelementptr inbounds float* %tmp9258, i64 1
+ %tmp9260 = getelementptr inbounds float* %tmp9259, i64 1
+ %tmp9261 = getelementptr inbounds float* %tmp9260, i64 1
+ %tmp9262 = getelementptr inbounds float* %tmp9261, i64 1
+ %tmp9263 = getelementptr inbounds float* %tmp9262, i64 1
+ %tmp9264 = getelementptr inbounds float* %tmp9263, i64 1
+ %tmp9265 = getelementptr inbounds float* %tmp9264, i64 1
+ %tmp9266 = getelementptr inbounds float* %tmp9265, i64 1
+ %tmp9267 = getelementptr inbounds float* %tmp9266, i64 1
+ %tmp9268 = getelementptr inbounds float* %tmp9267, i64 1
+ %tmp9269 = getelementptr inbounds float* %tmp9268, i64 1
+ %tmp9270 = getelementptr inbounds float* %tmp9269, i64 1
+ %tmp9271 = getelementptr inbounds float* %tmp9270, i64 1
+ %tmp9272 = getelementptr inbounds float* %tmp9271, i64 1
+ %tmp9273 = getelementptr inbounds float* %tmp9272, i64 1
+ %tmp9274 = getelementptr inbounds float* %tmp9273, i64 1
+ %tmp9275 = getelementptr inbounds float* %tmp9274, i64 1
+ %tmp9276 = getelementptr inbounds float* %tmp9275, i64 1
+ %tmp9277 = getelementptr inbounds float* %tmp9276, i64 1
+ %tmp9278 = getelementptr inbounds float* %tmp9277, i64 1
+ %tmp9279 = getelementptr inbounds float* %tmp9278, i64 1
+ %tmp9280 = getelementptr inbounds float* %tmp9279, i64 1
+ %tmp9281 = getelementptr inbounds float* %tmp9280, i64 1
+ %tmp9282 = getelementptr inbounds float* %tmp9281, i64 1
+ %tmp9283 = getelementptr inbounds float* %tmp9282, i64 1
+ %tmp9284 = getelementptr inbounds float* %tmp9283, i64 1
+ %tmp9285 = getelementptr inbounds float* %tmp9284, i64 1
+ %tmp9286 = getelementptr inbounds float* %tmp9285, i64 1
+ %tmp9287 = getelementptr inbounds float* %tmp9286, i64 1
+ %tmp9288 = getelementptr inbounds float* %tmp9287, i64 1
+ %tmp9289 = getelementptr inbounds float* %tmp9288, i64 1
+ %tmp9290 = getelementptr inbounds float* %tmp9289, i64 1
+ %tmp9291 = getelementptr inbounds float* %tmp9290, i64 1
+ %tmp9292 = getelementptr inbounds float* %tmp9291, i64 1
+ %tmp9293 = getelementptr inbounds float* %tmp9292, i64 1
+ %tmp9294 = getelementptr inbounds float* %tmp9293, i64 1
+ %tmp9295 = getelementptr inbounds float* %tmp9294, i64 1
+ %tmp9296 = getelementptr inbounds float* %tmp9295, i64 1
+ %tmp9297 = getelementptr inbounds float* %tmp9296, i64 1
+ %tmp9298 = getelementptr inbounds float* %tmp9297, i64 1
+ %tmp9299 = getelementptr inbounds float* %tmp9298, i64 1
+ %tmp9300 = getelementptr inbounds float* %tmp9299, i64 1
+ %tmp9301 = getelementptr inbounds float* %tmp9300, i64 1
+ %tmp9302 = getelementptr inbounds float* %tmp9301, i64 1
+ %tmp9303 = getelementptr inbounds float* %tmp9302, i64 1
+ %tmp9304 = getelementptr inbounds float* %tmp9303, i64 1
+ %tmp9305 = getelementptr inbounds float* %tmp9304, i64 1
+ %tmp9306 = getelementptr inbounds float* %tmp9305, i64 1
+ %tmp9307 = getelementptr inbounds float* %tmp9306, i64 1
+ %tmp9308 = getelementptr inbounds float* %tmp9307, i64 1
+ %tmp9309 = getelementptr inbounds float* %tmp9308, i64 1
+ %tmp9310 = getelementptr inbounds float* %tmp9309, i64 1
+ %tmp9311 = getelementptr inbounds float* %tmp9310, i64 1
+ %tmp9312 = getelementptr inbounds float* %tmp9311, i64 1
+ %tmp9313 = getelementptr inbounds float* %tmp9312, i64 1
+ %tmp9314 = getelementptr inbounds float* %tmp9313, i64 1
+ %tmp9315 = getelementptr inbounds float* %tmp9314, i64 1
+ %tmp9316 = getelementptr inbounds float* %tmp9315, i64 1
+ %tmp9317 = getelementptr inbounds float* %tmp9316, i64 1
+ %tmp9318 = getelementptr inbounds float* %tmp9317, i64 1
+ %tmp9319 = getelementptr inbounds float* %tmp9318, i64 1
+ %tmp9320 = getelementptr inbounds float* %tmp9319, i64 1
+ %tmp9321 = getelementptr inbounds float* %tmp9320, i64 1
+ %tmp9322 = getelementptr inbounds float* %tmp9321, i64 1
+ %tmp9323 = getelementptr inbounds float* %tmp9322, i64 1
+ %tmp9324 = getelementptr inbounds float* %tmp9323, i64 1
+ %tmp9325 = getelementptr inbounds float* %tmp9324, i64 1
+ %tmp9326 = getelementptr inbounds float* %tmp9325, i64 1
+ %tmp9327 = getelementptr inbounds float* %tmp9326, i64 1
+ %tmp9328 = getelementptr inbounds float* %tmp9327, i64 1
+ %tmp9329 = getelementptr inbounds float* %tmp9328, i64 1
+ %tmp9330 = getelementptr inbounds float* %tmp9329, i64 1
+ %tmp9331 = getelementptr inbounds float* %tmp9330, i64 1
+ %tmp9332 = getelementptr inbounds float* %tmp9331, i64 1
+ %tmp9333 = getelementptr inbounds float* %tmp9332, i64 1
+ %tmp9334 = getelementptr inbounds float* %tmp9333, i64 1
+ %tmp9335 = getelementptr inbounds float* %tmp9334, i64 1
+ %tmp9336 = getelementptr inbounds float* %tmp9335, i64 1
+ %tmp9337 = getelementptr inbounds float* %tmp9336, i64 1
+ %tmp9338 = getelementptr inbounds float* %tmp9337, i64 1
+ %tmp9339 = getelementptr inbounds float* %tmp9338, i64 1
+ %tmp9340 = getelementptr inbounds float* %tmp9339, i64 1
+ %tmp9341 = getelementptr inbounds float* %tmp9340, i64 1
+ %tmp9342 = getelementptr inbounds float* %tmp9341, i64 1
+ %tmp9343 = getelementptr inbounds float* %tmp9342, i64 1
+ %tmp9344 = getelementptr inbounds float* %tmp9343, i64 1
+ %tmp9345 = getelementptr inbounds float* %tmp9344, i64 1
+ %tmp9346 = getelementptr inbounds float* %tmp9345, i64 1
+ %tmp9347 = getelementptr inbounds float* %tmp9346, i64 1
+ %tmp9348 = getelementptr inbounds float* %tmp9347, i64 1
+ %tmp9349 = getelementptr inbounds float* %tmp9348, i64 1
+ %tmp9350 = getelementptr inbounds float* %tmp9349, i64 1
+ %tmp9351 = getelementptr inbounds float* %tmp9350, i64 1
+ %tmp9352 = getelementptr inbounds float* %tmp9351, i64 1
+ %tmp9353 = getelementptr inbounds float* %tmp9352, i64 1
+ %tmp9354 = getelementptr inbounds float* %tmp9353, i64 1
+ %tmp9355 = getelementptr inbounds float* %tmp9354, i64 1
+ %tmp9356 = getelementptr inbounds float* %tmp9355, i64 1
+ %tmp9357 = getelementptr inbounds float* %tmp9356, i64 1
+ %tmp9358 = getelementptr inbounds float* %tmp9357, i64 1
+ %tmp9359 = getelementptr inbounds float* %tmp9358, i64 1
+ %tmp9360 = getelementptr inbounds float* %tmp9359, i64 1
+ %tmp9361 = getelementptr inbounds float* %tmp9360, i64 1
+ %tmp9362 = getelementptr inbounds float* %tmp9361, i64 1
+ %tmp9363 = getelementptr inbounds float* %tmp9362, i64 1
+ %tmp9364 = getelementptr inbounds float* %tmp9363, i64 1
+ %tmp9365 = getelementptr inbounds float* %tmp9364, i64 1
+ %tmp9366 = getelementptr inbounds float* %tmp9365, i64 1
+ %tmp9367 = getelementptr inbounds float* %tmp9366, i64 1
+ %tmp9368 = getelementptr inbounds float* %tmp9367, i64 1
+ %tmp9369 = getelementptr inbounds float* %tmp9368, i64 1
+ %tmp9370 = getelementptr inbounds float* %tmp9369, i64 1
+ %tmp9371 = getelementptr inbounds float* %tmp9370, i64 1
+ %tmp9372 = getelementptr inbounds float* %tmp9371, i64 1
+ %tmp9373 = getelementptr inbounds float* %tmp9372, i64 1
+ %tmp9374 = getelementptr inbounds float* %tmp9373, i64 1
+ %tmp9375 = getelementptr inbounds float* %tmp9374, i64 1
+ %tmp9376 = getelementptr inbounds float* %tmp9375, i64 1
+ %tmp9377 = getelementptr inbounds float* %tmp9376, i64 1
+ %tmp9378 = getelementptr inbounds float* %tmp9377, i64 1
+ %tmp9379 = getelementptr inbounds float* %tmp9378, i64 1
+ %tmp9380 = getelementptr inbounds float* %tmp9379, i64 1
+ %tmp9381 = getelementptr inbounds float* %tmp9380, i64 1
+ %tmp9382 = getelementptr inbounds float* %tmp9381, i64 1
+ %tmp9383 = getelementptr inbounds float* %tmp9382, i64 1
+ %tmp9384 = getelementptr inbounds float* %tmp9383, i64 1
+ %tmp9385 = getelementptr inbounds float* %tmp9384, i64 1
+ %tmp9386 = getelementptr inbounds float* %tmp9385, i64 1
+ %tmp9387 = getelementptr inbounds float* %tmp9386, i64 1
+ %tmp9388 = getelementptr inbounds float* %tmp9387, i64 1
+ %tmp9389 = getelementptr inbounds float* %tmp9388, i64 1
+ %tmp9390 = getelementptr inbounds float* %tmp9389, i64 1
+ %tmp9391 = getelementptr inbounds float* %tmp9390, i64 1
+ %tmp9392 = getelementptr inbounds float* %tmp9391, i64 1
+ %tmp9393 = getelementptr inbounds float* %tmp9392, i64 1
+ %tmp9394 = getelementptr inbounds float* %tmp9393, i64 1
+ %tmp9395 = getelementptr inbounds float* %tmp9394, i64 1
+ %tmp9396 = getelementptr inbounds float* %tmp9395, i64 1
+ %tmp9397 = getelementptr inbounds float* %tmp9396, i64 1
+ %tmp9398 = getelementptr inbounds float* %tmp9397, i64 1
+ %tmp9399 = getelementptr inbounds float* %tmp9398, i64 1
+ %tmp9400 = getelementptr inbounds float* %tmp9399, i64 1
+ %tmp9401 = getelementptr inbounds float* %tmp9400, i64 1
+ %tmp9402 = getelementptr inbounds float* %tmp9401, i64 1
+ %tmp9403 = getelementptr inbounds float* %tmp9402, i64 1
+ %tmp9404 = getelementptr inbounds float* %tmp9403, i64 1
+ %tmp9405 = getelementptr inbounds float* %tmp9404, i64 1
+ %tmp9406 = getelementptr inbounds float* %tmp9405, i64 1
+ %tmp9407 = getelementptr inbounds float* %tmp9406, i64 1
+ %tmp9408 = getelementptr inbounds float* %tmp9407, i64 1
+ %tmp9409 = getelementptr inbounds float* %tmp9408, i64 1
+ %tmp9410 = getelementptr inbounds float* %tmp9409, i64 1
+ %tmp9411 = getelementptr inbounds float* %tmp9410, i64 1
+ %tmp9412 = getelementptr inbounds float* %tmp9411, i64 1
+ %tmp9413 = getelementptr inbounds float* %tmp9412, i64 1
+ %tmp9414 = getelementptr inbounds float* %tmp9413, i64 1
+ %tmp9415 = getelementptr inbounds float* %tmp9414, i64 1
+ %tmp9416 = getelementptr inbounds float* %tmp9415, i64 1
+ %tmp9417 = getelementptr inbounds float* %tmp9416, i64 1
+ %tmp9418 = getelementptr inbounds float* %tmp9417, i64 1
+ %tmp9419 = getelementptr inbounds float* %tmp9418, i64 1
+ %tmp9420 = getelementptr inbounds float* %tmp9419, i64 1
+ %tmp9421 = getelementptr inbounds float* %tmp9420, i64 1
+ %tmp9422 = getelementptr inbounds float* %tmp9421, i64 1
+ %tmp9423 = getelementptr inbounds float* %tmp9422, i64 1
+ %tmp9424 = getelementptr inbounds float* %tmp9423, i64 1
+ %tmp9425 = getelementptr inbounds float* %tmp9424, i64 1
+ %tmp9426 = getelementptr inbounds float* %tmp9425, i64 1
+ %tmp9427 = getelementptr inbounds float* %tmp9426, i64 1
+ %tmp9428 = getelementptr inbounds float* %tmp9427, i64 1
+ %tmp9429 = getelementptr inbounds float* %tmp9428, i64 1
+ %tmp9430 = getelementptr inbounds float* %tmp9429, i64 1
+ %tmp9431 = getelementptr inbounds float* %tmp9430, i64 1
+ %tmp9432 = getelementptr inbounds float* %tmp9431, i64 1
+ %tmp9433 = getelementptr inbounds float* %tmp9432, i64 1
+ %tmp9434 = getelementptr inbounds float* %tmp9433, i64 1
+ %tmp9435 = getelementptr inbounds float* %tmp9434, i64 1
+ %tmp9436 = getelementptr inbounds float* %tmp9435, i64 1
+ %tmp9437 = getelementptr inbounds float* %tmp9436, i64 1
+ %tmp9438 = getelementptr inbounds float* %tmp9437, i64 1
+ %tmp9439 = getelementptr inbounds float* %tmp9438, i64 1
+ %tmp9440 = getelementptr inbounds float* %tmp9439, i64 1
+ %tmp9441 = getelementptr inbounds float* %tmp9440, i64 1
+ %tmp9442 = getelementptr inbounds float* %tmp9441, i64 1
+ %tmp9443 = getelementptr inbounds float* %tmp9442, i64 1
+ %tmp9444 = getelementptr inbounds float* %tmp9443, i64 1
+ %tmp9445 = getelementptr inbounds float* %tmp9444, i64 1
+ %tmp9446 = getelementptr inbounds float* %tmp9445, i64 1
+ %tmp9447 = getelementptr inbounds float* %tmp9446, i64 1
+ %tmp9448 = getelementptr inbounds float* %tmp9447, i64 1
+ %tmp9449 = getelementptr inbounds float* %tmp9448, i64 1
+ %tmp9450 = getelementptr inbounds float* %tmp9449, i64 1
+ %tmp9451 = getelementptr inbounds float* %tmp9450, i64 1
+ %tmp9452 = getelementptr inbounds float* %tmp9451, i64 1
+ %tmp9453 = getelementptr inbounds float* %tmp9452, i64 1
+ %tmp9454 = getelementptr inbounds float* %tmp9453, i64 1
+ %tmp9455 = getelementptr inbounds float* %tmp9454, i64 1
+ %tmp9456 = getelementptr inbounds float* %tmp9455, i64 1
+ %tmp9457 = getelementptr inbounds float* %tmp9456, i64 1
+ %tmp9458 = getelementptr inbounds float* %tmp9457, i64 1
+ %tmp9459 = getelementptr inbounds float* %tmp9458, i64 1
+ %tmp9460 = getelementptr inbounds float* %tmp9459, i64 1
+ %tmp9461 = getelementptr inbounds float* %tmp9460, i64 1
+ %tmp9462 = getelementptr inbounds float* %tmp9461, i64 1
+ %tmp9463 = getelementptr inbounds float* %tmp9462, i64 1
+ %tmp9464 = getelementptr inbounds float* %tmp9463, i64 1
+ %tmp9465 = getelementptr inbounds float* %tmp9464, i64 1
+ %tmp9466 = getelementptr inbounds float* %tmp9465, i64 1
+ %tmp9467 = getelementptr inbounds float* %tmp9466, i64 1
+ %tmp9468 = getelementptr inbounds float* %tmp9467, i64 1
+ %tmp9469 = getelementptr inbounds float* %tmp9468, i64 1
+ %tmp9470 = getelementptr inbounds float* %tmp9469, i64 1
+ %tmp9471 = getelementptr inbounds float* %tmp9470, i64 1
+ %tmp9472 = getelementptr inbounds float* %tmp9471, i64 1
+ %tmp9473 = getelementptr inbounds float* %tmp9472, i64 1
+ %tmp9474 = getelementptr inbounds float* %tmp9473, i64 1
+ %tmp9475 = getelementptr inbounds float* %tmp9474, i64 1
+ %tmp9476 = getelementptr inbounds float* %tmp9475, i64 1
+ %tmp9477 = getelementptr inbounds float* %tmp9476, i64 1
+ %tmp9478 = getelementptr inbounds float* %tmp9477, i64 1
+ %tmp9479 = getelementptr inbounds float* %tmp9478, i64 1
+ %tmp9480 = getelementptr inbounds float* %tmp9479, i64 1
+ %tmp9481 = getelementptr inbounds float* %tmp9480, i64 1
+ %tmp9482 = getelementptr inbounds float* %tmp9481, i64 1
+ %tmp9483 = getelementptr inbounds float* %tmp9482, i64 1
+ %tmp9484 = getelementptr inbounds float* %tmp9483, i64 1
+ %tmp9485 = getelementptr inbounds float* %tmp9484, i64 1
+ %tmp9486 = getelementptr inbounds float* %tmp9485, i64 1
+ %tmp9487 = getelementptr inbounds float* %tmp9486, i64 1
+ %tmp9488 = getelementptr inbounds float* %tmp9487, i64 1
+ %tmp9489 = getelementptr inbounds float* %tmp9488, i64 1
+ %tmp9490 = getelementptr inbounds float* %tmp9489, i64 1
+ %tmp9491 = getelementptr inbounds float* %tmp9490, i64 1
+ %tmp9492 = getelementptr inbounds float* %tmp9491, i64 1
+ %tmp9493 = getelementptr inbounds float* %tmp9492, i64 1
+ %tmp9494 = getelementptr inbounds float* %tmp9493, i64 1
+ %tmp9495 = getelementptr inbounds float* %tmp9494, i64 1
+ %tmp9496 = getelementptr inbounds float* %tmp9495, i64 1
+ %tmp9497 = getelementptr inbounds float* %tmp9496, i64 1
+ %tmp9498 = getelementptr inbounds float* %tmp9497, i64 1
+ %tmp9499 = getelementptr inbounds float* %tmp9498, i64 1
+ %tmp9500 = getelementptr inbounds float* %tmp9499, i64 1
+ %tmp9501 = getelementptr inbounds float* %tmp9500, i64 1
+ %tmp9502 = getelementptr inbounds float* %tmp9501, i64 1
+ %tmp9503 = getelementptr inbounds float* %tmp9502, i64 1
+ %tmp9504 = getelementptr inbounds float* %tmp9503, i64 1
+ %tmp9505 = getelementptr inbounds float* %tmp9504, i64 1
+ %tmp9506 = getelementptr inbounds float* %tmp9505, i64 1
+ %tmp9507 = getelementptr inbounds float* %tmp9506, i64 1
+ %tmp9508 = getelementptr inbounds float* %tmp9507, i64 1
+ %tmp9509 = getelementptr inbounds float* %tmp9508, i64 1
+ %tmp9510 = getelementptr inbounds float* %tmp9509, i64 1
+ %tmp9511 = getelementptr inbounds float* %tmp9510, i64 1
+ %tmp9512 = getelementptr inbounds float* %tmp9511, i64 1
+ %tmp9513 = getelementptr inbounds float* %tmp9512, i64 1
+ %tmp9514 = getelementptr inbounds float* %tmp9513, i64 1
+ %tmp9515 = getelementptr inbounds float* %tmp9514, i64 1
+ %tmp9516 = getelementptr inbounds float* %tmp9515, i64 1
+ %tmp9517 = getelementptr inbounds float* %tmp9516, i64 1
+ %tmp9518 = getelementptr inbounds float* %tmp9517, i64 1
+ %tmp9519 = getelementptr inbounds float* %tmp9518, i64 1
+ %tmp9520 = getelementptr inbounds float* %tmp9519, i64 1
+ %tmp9521 = getelementptr inbounds float* %tmp9520, i64 1
+ %tmp9522 = getelementptr inbounds float* %tmp9521, i64 1
+ %tmp9523 = getelementptr inbounds float* %tmp9522, i64 1
+ %tmp9524 = getelementptr inbounds float* %tmp9523, i64 1
+ %tmp9525 = getelementptr inbounds float* %tmp9524, i64 1
+ %tmp9526 = getelementptr inbounds float* %tmp9525, i64 1
+ %tmp9527 = getelementptr inbounds float* %tmp9526, i64 1
+ %tmp9528 = getelementptr inbounds float* %tmp9527, i64 1
+ %tmp9529 = getelementptr inbounds float* %tmp9528, i64 1
+ %tmp9530 = getelementptr inbounds float* %tmp9529, i64 1
+ %tmp9531 = getelementptr inbounds float* %tmp9530, i64 1
+ %tmp9532 = getelementptr inbounds float* %tmp9531, i64 1
+ %tmp9533 = getelementptr inbounds float* %tmp9532, i64 1
+ %tmp9534 = getelementptr inbounds float* %tmp9533, i64 1
+ %tmp9535 = getelementptr inbounds float* %tmp9534, i64 1
+ %tmp9536 = getelementptr inbounds float* %tmp9535, i64 1
+ %tmp9537 = getelementptr inbounds float* %tmp9536, i64 1
+ %tmp9538 = getelementptr inbounds float* %tmp9537, i64 1
+ %tmp9539 = getelementptr inbounds float* %tmp9538, i64 1
+ %tmp9540 = getelementptr inbounds float* %tmp9539, i64 1
+ %tmp9541 = getelementptr inbounds float* %tmp9540, i64 1
+ %tmp9542 = getelementptr inbounds float* %tmp9541, i64 1
+ %tmp9543 = getelementptr inbounds float* %tmp9542, i64 1
+ %tmp9544 = getelementptr inbounds float* %tmp9543, i64 1
+ %tmp9545 = getelementptr inbounds float* %tmp9544, i64 1
+ %tmp9546 = getelementptr inbounds float* %tmp9545, i64 1
+ %tmp9547 = getelementptr inbounds float* %tmp9546, i64 1
+ %tmp9548 = getelementptr inbounds float* %tmp9547, i64 1
+ %tmp9549 = getelementptr inbounds float* %tmp9548, i64 1
+ %tmp9550 = getelementptr inbounds float* %tmp9549, i64 1
+ %tmp9551 = getelementptr inbounds float* %tmp9550, i64 1
+ %tmp9552 = getelementptr inbounds float* %tmp9551, i64 1
+ %tmp9553 = getelementptr inbounds float* %tmp9552, i64 1
+ %tmp9554 = getelementptr inbounds float* %tmp9553, i64 1
+ %tmp9555 = getelementptr inbounds float* %tmp9554, i64 1
+ %tmp9556 = getelementptr inbounds float* %tmp9555, i64 1
+ %tmp9557 = getelementptr inbounds float* %tmp9556, i64 1
+ %tmp9558 = getelementptr inbounds float* %tmp9557, i64 1
+ %tmp9559 = getelementptr inbounds float* %tmp9558, i64 1
+ %tmp9560 = getelementptr inbounds float* %tmp9559, i64 1
+ %tmp9561 = getelementptr inbounds float* %tmp9560, i64 1
+ %tmp9562 = getelementptr inbounds float* %tmp9561, i64 1
+ %tmp9563 = getelementptr inbounds float* %tmp9562, i64 1
+ %tmp9564 = getelementptr inbounds float* %tmp9563, i64 1
+ %tmp9565 = getelementptr inbounds float* %tmp9564, i64 1
+ %tmp9566 = getelementptr inbounds float* %tmp9565, i64 1
+ %tmp9567 = getelementptr inbounds float* %tmp9566, i64 1
+ %tmp9568 = getelementptr inbounds float* %tmp9567, i64 1
+ %tmp9569 = getelementptr inbounds float* %tmp9568, i64 1
+ %tmp9570 = getelementptr inbounds float* %tmp9569, i64 1
+ %tmp9571 = getelementptr inbounds float* %tmp9570, i64 1
+ %tmp9572 = getelementptr inbounds float* %tmp9571, i64 1
+ %tmp9573 = getelementptr inbounds float* %tmp9572, i64 1
+ %tmp9574 = getelementptr inbounds float* %tmp9573, i64 1
+ %tmp9575 = getelementptr inbounds float* %tmp9574, i64 1
+ %tmp9576 = getelementptr inbounds float* %tmp9575, i64 1
+ %tmp9577 = getelementptr inbounds float* %tmp9576, i64 1
+ %tmp9578 = getelementptr inbounds float* %tmp9577, i64 1
+ %tmp9579 = getelementptr inbounds float* %tmp9578, i64 1
+ %tmp9580 = getelementptr inbounds float* %tmp9579, i64 1
+ %tmp9581 = getelementptr inbounds float* %tmp9580, i64 1
+ %tmp9582 = getelementptr inbounds float* %tmp9581, i64 1
+ %tmp9583 = getelementptr inbounds float* %tmp9582, i64 1
+ %tmp9584 = getelementptr inbounds float* %tmp9583, i64 1
+ %tmp9585 = getelementptr inbounds float* %tmp9584, i64 1
+ %tmp9586 = getelementptr inbounds float* %tmp9585, i64 1
+ %tmp9587 = getelementptr inbounds float* %tmp9586, i64 1
+ %tmp9588 = getelementptr inbounds float* %tmp9587, i64 1
+ %tmp9589 = getelementptr inbounds float* %tmp9588, i64 1
+ %tmp9590 = getelementptr inbounds float* %tmp9589, i64 1
+ %tmp9591 = getelementptr inbounds float* %tmp9590, i64 1
+ %tmp9592 = getelementptr inbounds float* %tmp9591, i64 1
+ %tmp9593 = getelementptr inbounds float* %tmp9592, i64 1
+ %tmp9594 = getelementptr inbounds float* %tmp9593, i64 1
+ %tmp9595 = getelementptr inbounds float* %tmp9594, i64 1
+ %tmp9596 = getelementptr inbounds float* %tmp9595, i64 1
+ %tmp9597 = getelementptr inbounds float* %tmp9596, i64 1
+ %tmp9598 = getelementptr inbounds float* %tmp9597, i64 1
+ %tmp9599 = getelementptr inbounds float* %tmp9598, i64 1
+ %tmp9600 = getelementptr inbounds float* %tmp9599, i64 1
+ %tmp9601 = getelementptr inbounds float* %tmp9600, i64 1
+ %tmp9602 = getelementptr inbounds float* %tmp9601, i64 1
+ %tmp9603 = getelementptr inbounds float* %tmp9602, i64 1
+ %tmp9604 = getelementptr inbounds float* %tmp9603, i64 1
+ %tmp9605 = getelementptr inbounds float* %tmp9604, i64 1
+ %tmp9606 = getelementptr inbounds float* %tmp9605, i64 1
+ %tmp9607 = getelementptr inbounds float* %tmp9606, i64 1
+ %tmp9608 = getelementptr inbounds float* %tmp9607, i64 1
+ %tmp9609 = getelementptr inbounds float* %tmp9608, i64 1
+ %tmp9610 = getelementptr inbounds float* %tmp9609, i64 1
+ %tmp9611 = getelementptr inbounds float* %tmp9610, i64 1
+ %tmp9612 = getelementptr inbounds float* %tmp9611, i64 1
+ %tmp9613 = getelementptr inbounds float* %tmp9612, i64 1
+ %tmp9614 = getelementptr inbounds float* %tmp9613, i64 1
+ %tmp9615 = getelementptr inbounds float* %tmp9614, i64 1
+ %tmp9616 = getelementptr inbounds float* %tmp9615, i64 1
+ %tmp9617 = getelementptr inbounds float* %tmp9616, i64 1
+ %tmp9618 = getelementptr inbounds float* %tmp9617, i64 1
+ %tmp9619 = getelementptr inbounds float* %tmp9618, i64 1
+ %tmp9620 = getelementptr inbounds float* %tmp9619, i64 1
+ %tmp9621 = getelementptr inbounds float* %tmp9620, i64 1
+ %tmp9622 = getelementptr inbounds float* %tmp9621, i64 1
+ %tmp9623 = getelementptr inbounds float* %tmp9622, i64 1
+ %tmp9624 = getelementptr inbounds float* %tmp9623, i64 1
+ %tmp9625 = getelementptr inbounds float* %tmp9624, i64 1
+ %tmp9626 = getelementptr inbounds float* %tmp9625, i64 1
+ %tmp9627 = getelementptr inbounds float* %tmp9626, i64 1
+ %tmp9628 = getelementptr inbounds float* %tmp9627, i64 1
+ %tmp9629 = getelementptr inbounds float* %tmp9628, i64 1
+ %tmp9630 = getelementptr inbounds float* %tmp9629, i64 1
+ %tmp9631 = getelementptr inbounds float* %tmp9630, i64 1
+ %tmp9632 = getelementptr inbounds float* %tmp9631, i64 1
+ %tmp9633 = getelementptr inbounds float* %tmp9632, i64 1
+ %tmp9634 = getelementptr inbounds float* %tmp9633, i64 1
+ %tmp9635 = getelementptr inbounds float* %tmp9634, i64 1
+ %tmp9636 = getelementptr inbounds float* %tmp9635, i64 1
+ %tmp9637 = getelementptr inbounds float* %tmp9636, i64 1
+ %tmp9638 = getelementptr inbounds float* %tmp9637, i64 1
+ %tmp9639 = getelementptr inbounds float* %tmp9638, i64 1
+ %tmp9640 = getelementptr inbounds float* %tmp9639, i64 1
+ %tmp9641 = getelementptr inbounds float* %tmp9640, i64 1
+ %tmp9642 = getelementptr inbounds float* %tmp9641, i64 1
+ %tmp9643 = getelementptr inbounds float* %tmp9642, i64 1
+ %tmp9644 = getelementptr inbounds float* %tmp9643, i64 1
+ %tmp9645 = getelementptr inbounds float* %tmp9644, i64 1
+ %tmp9646 = getelementptr inbounds float* %tmp9645, i64 1
+ %tmp9647 = getelementptr inbounds float* %tmp9646, i64 1
+ %tmp9648 = getelementptr inbounds float* %tmp9647, i64 1
+ %tmp9649 = getelementptr inbounds float* %tmp9648, i64 1
+ %tmp9650 = getelementptr inbounds float* %tmp9649, i64 1
+ %tmp9651 = getelementptr inbounds float* %tmp9650, i64 1
+ %tmp9652 = getelementptr inbounds float* %tmp9651, i64 1
+ %tmp9653 = getelementptr inbounds float* %tmp9652, i64 1
+ %tmp9654 = getelementptr inbounds float* %tmp9653, i64 1
+ %tmp9655 = getelementptr inbounds float* %tmp9654, i64 1
+ %tmp9656 = getelementptr inbounds float* %tmp9655, i64 1
+ %tmp9657 = getelementptr inbounds float* %tmp9656, i64 1
+ %tmp9658 = getelementptr inbounds float* %tmp9657, i64 1
+ %tmp9659 = getelementptr inbounds float* %tmp9658, i64 1
+ %tmp9660 = getelementptr inbounds float* %tmp9659, i64 1
+ %tmp9661 = getelementptr inbounds float* %tmp9660, i64 1
+ %tmp9662 = getelementptr inbounds float* %tmp9661, i64 1
+ %tmp9663 = getelementptr inbounds float* %tmp9662, i64 1
+ %tmp9664 = getelementptr inbounds float* %tmp9663, i64 1
+ %tmp9665 = getelementptr inbounds float* %tmp9664, i64 1
+ %tmp9666 = getelementptr inbounds float* %tmp9665, i64 1
+ %tmp9667 = getelementptr inbounds float* %tmp9666, i64 1
+ %tmp9668 = getelementptr inbounds float* %tmp9667, i64 1
+ %tmp9669 = getelementptr inbounds float* %tmp9668, i64 1
+ %tmp9670 = getelementptr inbounds float* %tmp9669, i64 1
+ %tmp9671 = getelementptr inbounds float* %tmp9670, i64 1
+ %tmp9672 = getelementptr inbounds float* %tmp9671, i64 1
+ %tmp9673 = getelementptr inbounds float* %tmp9672, i64 1
+ %tmp9674 = getelementptr inbounds float* %tmp9673, i64 1
+ %tmp9675 = getelementptr inbounds float* %tmp9674, i64 1
+ %tmp9676 = getelementptr inbounds float* %tmp9675, i64 1
+ %tmp9677 = getelementptr inbounds float* %tmp9676, i64 1
+ %tmp9678 = getelementptr inbounds float* %tmp9677, i64 1
+ %tmp9679 = getelementptr inbounds float* %tmp9678, i64 1
+ %tmp9680 = getelementptr inbounds float* %tmp9679, i64 1
+ %tmp9681 = getelementptr inbounds float* %tmp9680, i64 1
+ %tmp9682 = getelementptr inbounds float* %tmp9681, i64 1
+ %tmp9683 = getelementptr inbounds float* %tmp9682, i64 1
+ %tmp9684 = getelementptr inbounds float* %tmp9683, i64 1
+ %tmp9685 = getelementptr inbounds float* %tmp9684, i64 1
+ %tmp9686 = getelementptr inbounds float* %tmp9685, i64 1
+ %tmp9687 = getelementptr inbounds float* %tmp9686, i64 1
+ %tmp9688 = getelementptr inbounds float* %tmp9687, i64 1
+ %tmp9689 = getelementptr inbounds float* %tmp9688, i64 1
+ %tmp9690 = getelementptr inbounds float* %tmp9689, i64 1
+ %tmp9691 = getelementptr inbounds float* %tmp9690, i64 1
+ %tmp9692 = getelementptr inbounds float* %tmp9691, i64 1
+ %tmp9693 = getelementptr inbounds float* %tmp9692, i64 1
+ %tmp9694 = getelementptr inbounds float* %tmp9693, i64 1
+ %tmp9695 = getelementptr inbounds float* %tmp9694, i64 1
+ %tmp9696 = getelementptr inbounds float* %tmp9695, i64 1
+ %tmp9697 = getelementptr inbounds float* %tmp9696, i64 1
+ %tmp9698 = getelementptr inbounds float* %tmp9697, i64 1
+ %tmp9699 = getelementptr inbounds float* %tmp9698, i64 1
+ %tmp9700 = getelementptr inbounds float* %tmp9699, i64 1
+ %tmp9701 = getelementptr inbounds float* %tmp9700, i64 1
+ %tmp9702 = getelementptr inbounds float* %tmp9701, i64 1
+ %tmp9703 = getelementptr inbounds float* %tmp9702, i64 1
+ %tmp9704 = getelementptr inbounds float* %tmp9703, i64 1
+ %tmp9705 = getelementptr inbounds float* %tmp9704, i64 1
+ %tmp9706 = getelementptr inbounds float* %tmp9705, i64 1
+ %tmp9707 = getelementptr inbounds float* %tmp9706, i64 1
+ %tmp9708 = getelementptr inbounds float* %tmp9707, i64 1
+ %tmp9709 = getelementptr inbounds float* %tmp9708, i64 1
+ %tmp9710 = getelementptr inbounds float* %tmp9709, i64 1
+ %tmp9711 = getelementptr inbounds float* %tmp9710, i64 1
+ %tmp9712 = getelementptr inbounds float* %tmp9711, i64 1
+ %tmp9713 = getelementptr inbounds float* %tmp9712, i64 1
+ %tmp9714 = getelementptr inbounds float* %tmp9713, i64 1
+ %tmp9715 = getelementptr inbounds float* %tmp9714, i64 1
+ %tmp9716 = getelementptr inbounds float* %tmp9715, i64 1
+ %tmp9717 = getelementptr inbounds float* %tmp9716, i64 1
+ %tmp9718 = getelementptr inbounds float* %tmp9717, i64 1
+ %tmp9719 = getelementptr inbounds float* %tmp9718, i64 1
+ %tmp9720 = getelementptr inbounds float* %tmp9719, i64 1
+ %tmp9721 = getelementptr inbounds float* %tmp9720, i64 1
+ %tmp9722 = getelementptr inbounds float* %tmp9721, i64 1
+ %tmp9723 = getelementptr inbounds float* %tmp9722, i64 1
+ %tmp9724 = getelementptr inbounds float* %tmp9723, i64 1
+ %tmp9725 = getelementptr inbounds float* %tmp9724, i64 1
+ %tmp9726 = getelementptr inbounds float* %tmp9725, i64 1
+ %tmp9727 = getelementptr inbounds float* %tmp9726, i64 1
+ %tmp9728 = getelementptr inbounds float* %tmp9727, i64 1
+ %tmp9729 = getelementptr inbounds float* %tmp9728, i64 1
+ %tmp9730 = getelementptr inbounds float* %tmp9729, i64 1
+ %tmp9731 = getelementptr inbounds float* %tmp9730, i64 1
+ %tmp9732 = getelementptr inbounds float* %tmp9731, i64 1
+ %tmp9733 = getelementptr inbounds float* %tmp9732, i64 1
+ %tmp9734 = getelementptr inbounds float* %tmp9733, i64 1
+ %tmp9735 = getelementptr inbounds float* %tmp9734, i64 1
+ %tmp9736 = getelementptr inbounds float* %tmp9735, i64 1
+ %tmp9737 = getelementptr inbounds float* %tmp9736, i64 1
+ %tmp9738 = getelementptr inbounds float* %tmp9737, i64 1
+ %tmp9739 = getelementptr inbounds float* %tmp9738, i64 1
+ %tmp9740 = getelementptr inbounds float* %tmp9739, i64 1
+ %tmp9741 = getelementptr inbounds float* %tmp9740, i64 1
+ %tmp9742 = getelementptr inbounds float* %tmp9741, i64 1
+ %tmp9743 = getelementptr inbounds float* %tmp9742, i64 1
+ %tmp9744 = getelementptr inbounds float* %tmp9743, i64 1
+ %tmp9745 = getelementptr inbounds float* %tmp9744, i64 1
+ %tmp9746 = getelementptr inbounds float* %tmp9745, i64 1
+ %tmp9747 = getelementptr inbounds float* %tmp9746, i64 1
+ %tmp9748 = getelementptr inbounds float* %tmp9747, i64 1
+ %tmp9749 = getelementptr inbounds float* %tmp9748, i64 1
+ %tmp9750 = getelementptr inbounds float* %tmp9749, i64 1
+ %tmp9751 = getelementptr inbounds float* %tmp9750, i64 1
+ %tmp9752 = getelementptr inbounds float* %tmp9751, i64 1
+ %tmp9753 = getelementptr inbounds float* %tmp9752, i64 1
+ %tmp9754 = getelementptr inbounds float* %tmp9753, i64 1
+ %tmp9755 = getelementptr inbounds float* %tmp9754, i64 1
+ %tmp9756 = getelementptr inbounds float* %tmp9755, i64 1
+ %tmp9757 = getelementptr inbounds float* %tmp9756, i64 1
+ %tmp9758 = getelementptr inbounds float* %tmp9757, i64 1
+ %tmp9759 = getelementptr inbounds float* %tmp9758, i64 1
+ %tmp9760 = getelementptr inbounds float* %tmp9759, i64 1
+ %tmp9761 = getelementptr inbounds float* %tmp9760, i64 1
+ %tmp9762 = getelementptr inbounds float* %tmp9761, i64 1
+ %tmp9763 = getelementptr inbounds float* %tmp9762, i64 1
+ %tmp9764 = getelementptr inbounds float* %tmp9763, i64 1
+ %tmp9765 = getelementptr inbounds float* %tmp9764, i64 1
+ %tmp9766 = getelementptr inbounds float* %tmp9765, i64 1
+ %tmp9767 = getelementptr inbounds float* %tmp9766, i64 1
+ %tmp9768 = getelementptr inbounds float* %tmp9767, i64 1
+ %tmp9769 = getelementptr inbounds float* %tmp9768, i64 1
+ %tmp9770 = getelementptr inbounds float* %tmp9769, i64 1
+ %tmp9771 = getelementptr inbounds float* %tmp9770, i64 1
+ %tmp9772 = getelementptr inbounds float* %tmp9771, i64 1
+ %tmp9773 = getelementptr inbounds float* %tmp9772, i64 1
+ %tmp9774 = getelementptr inbounds float* %tmp9773, i64 1
+ %tmp9775 = getelementptr inbounds float* %tmp9774, i64 1
+ %tmp9776 = getelementptr inbounds float* %tmp9775, i64 1
+ %tmp9777 = getelementptr inbounds float* %tmp9776, i64 1
+ %tmp9778 = getelementptr inbounds float* %tmp9777, i64 1
+ %tmp9779 = getelementptr inbounds float* %tmp9778, i64 1
+ %tmp9780 = getelementptr inbounds float* %tmp9779, i64 1
+ %tmp9781 = getelementptr inbounds float* %tmp9780, i64 1
+ %tmp9782 = getelementptr inbounds float* %tmp9781, i64 1
+ %tmp9783 = getelementptr inbounds float* %tmp9782, i64 1
+ %tmp9784 = getelementptr inbounds float* %tmp9783, i64 1
+ %tmp9785 = getelementptr inbounds float* %tmp9784, i64 1
+ %tmp9786 = getelementptr inbounds float* %tmp9785, i64 1
+ %tmp9787 = getelementptr inbounds float* %tmp9786, i64 1
+ %tmp9788 = getelementptr inbounds float* %tmp9787, i64 1
+ %tmp9789 = getelementptr inbounds float* %tmp9788, i64 1
+ %tmp9790 = getelementptr inbounds float* %tmp9789, i64 1
+ %tmp9791 = getelementptr inbounds float* %tmp9790, i64 1
+ %tmp9792 = getelementptr inbounds float* %tmp9791, i64 1
+ %tmp9793 = getelementptr inbounds float* %tmp9792, i64 1
+ %tmp9794 = getelementptr inbounds float* %tmp9793, i64 1
+ %tmp9795 = getelementptr inbounds float* %tmp9794, i64 1
+ %tmp9796 = getelementptr inbounds float* %tmp9795, i64 1
+ %tmp9797 = getelementptr inbounds float* %tmp9796, i64 1
+ %tmp9798 = getelementptr inbounds float* %tmp9797, i64 1
+ %tmp9799 = getelementptr inbounds float* %tmp9798, i64 1
+ %tmp9800 = getelementptr inbounds float* %tmp9799, i64 1
+ %tmp9801 = getelementptr inbounds float* %tmp9800, i64 1
+ %tmp9802 = getelementptr inbounds float* %tmp9801, i64 1
+ %tmp9803 = getelementptr inbounds float* %tmp9802, i64 1
+ %tmp9804 = getelementptr inbounds float* %tmp9803, i64 1
+ %tmp9805 = getelementptr inbounds float* %tmp9804, i64 1
+ %tmp9806 = getelementptr inbounds float* %tmp9805, i64 1
+ %tmp9807 = getelementptr inbounds float* %tmp9806, i64 1
+ %tmp9808 = getelementptr inbounds float* %tmp9807, i64 1
+ %tmp9809 = getelementptr inbounds float* %tmp9808, i64 1
+ %tmp9810 = getelementptr inbounds float* %tmp9809, i64 1
+ %tmp9811 = getelementptr inbounds float* %tmp9810, i64 1
+ %tmp9812 = getelementptr inbounds float* %tmp9811, i64 1
+ %tmp9813 = getelementptr inbounds float* %tmp9812, i64 1
+ %tmp9814 = getelementptr inbounds float* %tmp9813, i64 1
+ %tmp9815 = getelementptr inbounds float* %tmp9814, i64 1
+ %tmp9816 = getelementptr inbounds float* %tmp9815, i64 1
+ %tmp9817 = getelementptr inbounds float* %tmp9816, i64 1
+ %tmp9818 = getelementptr inbounds float* %tmp9817, i64 1
+ %tmp9819 = getelementptr inbounds float* %tmp9818, i64 1
+ %tmp9820 = getelementptr inbounds float* %tmp9819, i64 1
+ %tmp9821 = getelementptr inbounds float* %tmp9820, i64 1
+ %tmp9822 = getelementptr inbounds float* %tmp9821, i64 1
+ %tmp9823 = getelementptr inbounds float* %tmp9822, i64 1
+ %tmp9824 = getelementptr inbounds float* %tmp9823, i64 1
+ %tmp9825 = getelementptr inbounds float* %tmp9824, i64 1
+ %tmp9826 = getelementptr inbounds float* %tmp9825, i64 1
+ %tmp9827 = getelementptr inbounds float* %tmp9826, i64 1
+ %tmp9828 = getelementptr inbounds float* %tmp9827, i64 1
+ %tmp9829 = getelementptr inbounds float* %tmp9828, i64 1
+ %tmp9830 = getelementptr inbounds float* %tmp9829, i64 1
+ %tmp9831 = getelementptr inbounds float* %tmp9830, i64 1
+ %tmp9832 = getelementptr inbounds float* %tmp9831, i64 1
+ %tmp9833 = getelementptr inbounds float* %tmp9832, i64 1
+ %tmp9834 = getelementptr inbounds float* %tmp9833, i64 1
+ %tmp9835 = getelementptr inbounds float* %tmp9834, i64 1
+ %tmp9836 = getelementptr inbounds float* %tmp9835, i64 1
+ %tmp9837 = getelementptr inbounds float* %tmp9836, i64 1
+ %tmp9838 = getelementptr inbounds float* %tmp9837, i64 1
+ %tmp9839 = getelementptr inbounds float* %tmp9838, i64 1
+ %tmp9840 = getelementptr inbounds float* %tmp9839, i64 1
+ %tmp9841 = getelementptr inbounds float* %tmp9840, i64 1
+ %tmp9842 = getelementptr inbounds float* %tmp9841, i64 1
+ %tmp9843 = getelementptr inbounds float* %tmp9842, i64 1
+ %tmp9844 = getelementptr inbounds float* %tmp9843, i64 1
+ %tmp9845 = getelementptr inbounds float* %tmp9844, i64 1
+ %tmp9846 = getelementptr inbounds float* %tmp9845, i64 1
+ %tmp9847 = getelementptr inbounds float* %tmp9846, i64 1
+ %tmp9848 = getelementptr inbounds float* %tmp9847, i64 1
+ %tmp9849 = getelementptr inbounds float* %tmp9848, i64 1
+ %tmp9850 = getelementptr inbounds float* %tmp9849, i64 1
+ %tmp9851 = getelementptr inbounds float* %tmp9850, i64 1
+ %tmp9852 = getelementptr inbounds float* %tmp9851, i64 1
+ %tmp9853 = getelementptr inbounds float* %tmp9852, i64 1
+ %tmp9854 = getelementptr inbounds float* %tmp9853, i64 1
+ %tmp9855 = getelementptr inbounds float* %tmp9854, i64 1
+ %tmp9856 = getelementptr inbounds float* %tmp9855, i64 1
+ %tmp9857 = getelementptr inbounds float* %tmp9856, i64 1
+ %tmp9858 = getelementptr inbounds float* %tmp9857, i64 1
+ %tmp9859 = getelementptr inbounds float* %tmp9858, i64 1
+ %tmp9860 = getelementptr inbounds float* %tmp9859, i64 1
+ %tmp9861 = getelementptr inbounds float* %tmp9860, i64 1
+ %tmp9862 = getelementptr inbounds float* %tmp9861, i64 1
+ %tmp9863 = getelementptr inbounds float* %tmp9862, i64 1
+ %tmp9864 = getelementptr inbounds float* %tmp9863, i64 1
+ %tmp9865 = getelementptr inbounds float* %tmp9864, i64 1
+ %tmp9866 = getelementptr inbounds float* %tmp9865, i64 1
+ %tmp9867 = getelementptr inbounds float* %tmp9866, i64 1
+ %tmp9868 = getelementptr inbounds float* %tmp9867, i64 1
+ %tmp9869 = getelementptr inbounds float* %tmp9868, i64 1
+ %tmp9870 = getelementptr inbounds float* %tmp9869, i64 1
+ %tmp9871 = getelementptr inbounds float* %tmp9870, i64 1
+ %tmp9872 = getelementptr inbounds float* %tmp9871, i64 1
+ %tmp9873 = getelementptr inbounds float* %tmp9872, i64 1
+ %tmp9874 = getelementptr inbounds float* %tmp9873, i64 1
+ %tmp9875 = getelementptr inbounds float* %tmp9874, i64 1
+ %tmp9876 = getelementptr inbounds float* %tmp9875, i64 1
+ %tmp9877 = getelementptr inbounds float* %tmp9876, i64 1
+ %tmp9878 = getelementptr inbounds float* %tmp9877, i64 1
+ %tmp9879 = getelementptr inbounds float* %tmp9878, i64 1
+ %tmp9880 = getelementptr inbounds float* %tmp9879, i64 1
+ %tmp9881 = getelementptr inbounds float* %tmp9880, i64 1
+ %tmp9882 = getelementptr inbounds float* %tmp9881, i64 1
+ %tmp9883 = getelementptr inbounds float* %tmp9882, i64 1
+ %tmp9884 = getelementptr inbounds float* %tmp9883, i64 1
+ %tmp9885 = getelementptr inbounds float* %tmp9884, i64 1
+ %tmp9886 = getelementptr inbounds float* %tmp9885, i64 1
+ %tmp9887 = getelementptr inbounds float* %tmp9886, i64 1
+ %tmp9888 = getelementptr inbounds float* %tmp9887, i64 1
+ %tmp9889 = getelementptr inbounds float* %tmp9888, i64 1
+ %tmp9890 = getelementptr inbounds float* %tmp9889, i64 1
+ %tmp9891 = getelementptr inbounds float* %tmp9890, i64 1
+ %tmp9892 = getelementptr inbounds float* %tmp9891, i64 1
+ %tmp9893 = getelementptr inbounds float* %tmp9892, i64 1
+ %tmp9894 = getelementptr inbounds float* %tmp9893, i64 1
+ %tmp9895 = getelementptr inbounds float* %tmp9894, i64 1
+ %tmp9896 = getelementptr inbounds float* %tmp9895, i64 1
+ %tmp9897 = getelementptr inbounds float* %tmp9896, i64 1
+ %tmp9898 = getelementptr inbounds float* %tmp9897, i64 1
+ %tmp9899 = getelementptr inbounds float* %tmp9898, i64 1
+ %tmp9900 = getelementptr inbounds float* %tmp9899, i64 1
+ %tmp9901 = getelementptr inbounds float* %tmp9900, i64 1
+ %tmp9902 = getelementptr inbounds float* %tmp9901, i64 1
+ %tmp9903 = getelementptr inbounds float* %tmp9902, i64 1
+ %tmp9904 = getelementptr inbounds float* %tmp9903, i64 1
+ %tmp9905 = getelementptr inbounds float* %tmp9904, i64 1
+ %tmp9906 = getelementptr inbounds float* %tmp9905, i64 1
+ %tmp9907 = getelementptr inbounds float* %tmp9906, i64 1
+ %tmp9908 = getelementptr inbounds float* %tmp9907, i64 1
+ %tmp9909 = getelementptr inbounds float* %tmp9908, i64 1
+ %tmp9910 = getelementptr inbounds float* %tmp9909, i64 1
+ %tmp9911 = getelementptr inbounds float* %tmp9910, i64 1
+ %tmp9912 = getelementptr inbounds float* %tmp9911, i64 1
+ %tmp9913 = getelementptr inbounds float* %tmp9912, i64 1
+ %tmp9914 = getelementptr inbounds float* %tmp9913, i64 1
+ %tmp9915 = getelementptr inbounds float* %tmp9914, i64 1
+ %tmp9916 = getelementptr inbounds float* %tmp9915, i64 1
+ %tmp9917 = getelementptr inbounds float* %tmp9916, i64 1
+ %tmp9918 = getelementptr inbounds float* %tmp9917, i64 1
+ %tmp9919 = getelementptr inbounds float* %tmp9918, i64 1
+ %tmp9920 = getelementptr inbounds float* %tmp9919, i64 1
+ %tmp9921 = getelementptr inbounds float* %tmp9920, i64 1
+ %tmp9922 = getelementptr inbounds float* %tmp9921, i64 1
+ %tmp9923 = getelementptr inbounds float* %tmp9922, i64 1
+ %tmp9924 = getelementptr inbounds float* %tmp9923, i64 1
+ %tmp9925 = getelementptr inbounds float* %tmp9924, i64 1
+ %tmp9926 = getelementptr inbounds float* %tmp9925, i64 1
+ %tmp9927 = getelementptr inbounds float* %tmp9926, i64 1
+ %tmp9928 = getelementptr inbounds float* %tmp9927, i64 1
+ %tmp9929 = getelementptr inbounds float* %tmp9928, i64 1
+ %tmp9930 = getelementptr inbounds float* %tmp9929, i64 1
+ %tmp9931 = getelementptr inbounds float* %tmp9930, i64 1
+ %tmp9932 = getelementptr inbounds float* %tmp9931, i64 1
+ %tmp9933 = getelementptr inbounds float* %tmp9932, i64 1
+ %tmp9934 = getelementptr inbounds float* %tmp9933, i64 1
+ %tmp9935 = getelementptr inbounds float* %tmp9934, i64 1
+ %tmp9936 = getelementptr inbounds float* %tmp9935, i64 1
+ %tmp9937 = getelementptr inbounds float* %tmp9936, i64 1
+ %tmp9938 = getelementptr inbounds float* %tmp9937, i64 1
+ %tmp9939 = getelementptr inbounds float* %tmp9938, i64 1
+ %tmp9940 = getelementptr inbounds float* %tmp9939, i64 1
+ %tmp9941 = getelementptr inbounds float* %tmp9940, i64 1
+ %tmp9942 = getelementptr inbounds float* %tmp9941, i64 1
+ %tmp9943 = getelementptr inbounds float* %tmp9942, i64 1
+ %tmp9944 = getelementptr inbounds float* %tmp9943, i64 1
+ %tmp9945 = getelementptr inbounds float* %tmp9944, i64 1
+ %tmp9946 = getelementptr inbounds float* %tmp9945, i64 1
+ %tmp9947 = getelementptr inbounds float* %tmp9946, i64 1
+ %tmp9948 = getelementptr inbounds float* %tmp9947, i64 1
+ %tmp9949 = getelementptr inbounds float* %tmp9948, i64 1
+ %tmp9950 = getelementptr inbounds float* %tmp9949, i64 1
+ %tmp9951 = getelementptr inbounds float* %tmp9950, i64 1
+ %tmp9952 = getelementptr inbounds float* %tmp9951, i64 1
+ %tmp9953 = getelementptr inbounds float* %tmp9952, i64 1
+ %tmp9954 = getelementptr inbounds float* %tmp9953, i64 1
+ %tmp9955 = getelementptr inbounds float* %tmp9954, i64 1
+ %tmp9956 = getelementptr inbounds float* %tmp9955, i64 1
+ %tmp9957 = getelementptr inbounds float* %tmp9956, i64 1
+ %tmp9958 = getelementptr inbounds float* %tmp9957, i64 1
+ %tmp9959 = getelementptr inbounds float* %tmp9958, i64 1
+ %tmp9960 = getelementptr inbounds float* %tmp9959, i64 1
+ %tmp9961 = getelementptr inbounds float* %tmp9960, i64 1
+ %tmp9962 = getelementptr inbounds float* %tmp9961, i64 1
+ %tmp9963 = getelementptr inbounds float* %tmp9962, i64 1
+ %tmp9964 = getelementptr inbounds float* %tmp9963, i64 1
+ %tmp9965 = getelementptr inbounds float* %tmp9964, i64 1
+ %tmp9966 = getelementptr inbounds float* %tmp9965, i64 1
+ %tmp9967 = getelementptr inbounds float* %tmp9966, i64 1
+ %tmp9968 = getelementptr inbounds float* %tmp9967, i64 1
+ %tmp9969 = getelementptr inbounds float* %tmp9968, i64 1
+ %tmp9970 = getelementptr inbounds float* %tmp9969, i64 1
+ %tmp9971 = getelementptr inbounds float* %tmp9970, i64 1
+ %tmp9972 = getelementptr inbounds float* %tmp9971, i64 1
+ %tmp9973 = getelementptr inbounds float* %tmp9972, i64 1
+ %tmp9974 = getelementptr inbounds float* %tmp9973, i64 1
+ %tmp9975 = getelementptr inbounds float* %tmp9974, i64 1
+ %tmp9976 = getelementptr inbounds float* %tmp9975, i64 1
+ %tmp9977 = getelementptr inbounds float* %tmp9976, i64 1
+ %tmp9978 = getelementptr inbounds float* %tmp9977, i64 1
+ %tmp9979 = getelementptr inbounds float* %tmp9978, i64 1
+ %tmp9980 = getelementptr inbounds float* %tmp9979, i64 1
+ %tmp9981 = getelementptr inbounds float* %tmp9980, i64 1
+ %tmp9982 = getelementptr inbounds float* %tmp9981, i64 1
+ %tmp9983 = getelementptr inbounds float* %tmp9982, i64 1
+ %tmp9984 = getelementptr inbounds float* %tmp9983, i64 1
+ %tmp9985 = getelementptr inbounds float* %tmp9984, i64 1
+ %tmp9986 = getelementptr inbounds float* %tmp9985, i64 1
+ %tmp9987 = getelementptr inbounds float* %tmp9986, i64 1
+ %tmp9988 = getelementptr inbounds float* %tmp9987, i64 1
+ %tmp9989 = getelementptr inbounds float* %tmp9988, i64 1
+ %tmp9990 = getelementptr inbounds float* %tmp9989, i64 1
+ %tmp9991 = getelementptr inbounds float* %tmp9990, i64 1
+ %tmp9992 = getelementptr inbounds float* %tmp9991, i64 1
+ %tmp9993 = getelementptr inbounds float* %tmp9992, i64 1
+ %tmp9994 = getelementptr inbounds float* %tmp9993, i64 1
+ %tmp9995 = getelementptr inbounds float* %tmp9994, i64 1
+ %tmp9996 = getelementptr inbounds float* %tmp9995, i64 1
+ %tmp9997 = getelementptr inbounds float* %tmp9996, i64 1
+ %tmp9998 = getelementptr inbounds float* %tmp9997, i64 1
+ %tmp9999 = getelementptr inbounds float* %tmp9998, i64 1
+ %tmp10000 = getelementptr inbounds float* %tmp9999, i64 1
+ %tmp10001 = getelementptr inbounds float* %tmp10000, i64 1
+ %tmp10002 = getelementptr inbounds float* %tmp10001, i64 1
+ %tmp10003 = getelementptr inbounds float* %tmp10002, i64 1
+ %tmp10004 = getelementptr inbounds float* %tmp10003, i64 1
+ %tmp10005 = getelementptr inbounds float* %tmp10004, i64 1
+ %tmp10006 = getelementptr inbounds float* %tmp10005, i64 1
+ %tmp10007 = getelementptr inbounds float* %tmp10006, i64 1
+ %tmp10008 = getelementptr inbounds float* %tmp10007, i64 1
+ %tmp10009 = getelementptr inbounds float* %tmp10008, i64 1
+ %tmp10010 = getelementptr inbounds float* %tmp10009, i64 1
+ %tmp10011 = getelementptr inbounds float* %tmp10010, i64 1
+ %tmp10012 = getelementptr inbounds float* %tmp10011, i64 1
+ %tmp10013 = getelementptr inbounds float* %tmp10012, i64 1
+ %tmp10014 = getelementptr inbounds float* %tmp10013, i64 1
+ %tmp10015 = getelementptr inbounds float* %tmp10014, i64 1
+ %tmp10016 = getelementptr inbounds float* %tmp10015, i64 1
+ %tmp10017 = getelementptr inbounds float* %tmp10016, i64 1
+ %tmp10018 = getelementptr inbounds float* %tmp10017, i64 1
+ %tmp10019 = getelementptr inbounds float* %tmp10018, i64 1
+ %tmp10020 = getelementptr inbounds float* %tmp10019, i64 1
+ %tmp10021 = getelementptr inbounds float* %tmp10020, i64 1
+ %tmp10022 = getelementptr inbounds float* %tmp10021, i64 1
+ %tmp10023 = getelementptr inbounds float* %tmp10022, i64 1
+ %tmp10024 = getelementptr inbounds float* %tmp10023, i64 1
+ %tmp10025 = getelementptr inbounds float* %tmp10024, i64 1
+ %tmp10026 = getelementptr inbounds float* %tmp10025, i64 1
+ %tmp10027 = getelementptr inbounds float* %tmp10026, i64 1
+ %tmp10028 = getelementptr inbounds float* %tmp10027, i64 1
+ %tmp10029 = getelementptr inbounds float* %tmp10028, i64 1
+ %tmp10030 = getelementptr inbounds float* %tmp10029, i64 1
+ %tmp10031 = getelementptr inbounds float* %tmp10030, i64 1
+ %tmp10032 = getelementptr inbounds float* %tmp10031, i64 1
+ %tmp10033 = getelementptr inbounds float* %tmp10032, i64 1
+ %tmp10034 = getelementptr inbounds float* %tmp10033, i64 1
+ %tmp10035 = getelementptr inbounds float* %tmp10034, i64 1
+ %tmp10036 = getelementptr inbounds float* %tmp10035, i64 1
+ %tmp10037 = getelementptr inbounds float* %tmp10036, i64 1
+ %tmp10038 = getelementptr inbounds float* %tmp10037, i64 1
+ %tmp10039 = getelementptr inbounds float* %tmp10038, i64 1
+ %tmp10040 = getelementptr inbounds float* %tmp10039, i64 1
+ %tmp10041 = getelementptr inbounds float* %tmp10040, i64 1
+ %tmp10042 = getelementptr inbounds float* %tmp10041, i64 1
+ %tmp10043 = getelementptr inbounds float* %tmp10042, i64 1
+ %tmp10044 = getelementptr inbounds float* %tmp10043, i64 1
+ %tmp10045 = getelementptr inbounds float* %tmp10044, i64 1
+ %tmp10046 = getelementptr inbounds float* %tmp10045, i64 1
+ %tmp10047 = getelementptr inbounds float* %tmp10046, i64 1
+ %tmp10048 = getelementptr inbounds float* %tmp10047, i64 1
+ %tmp10049 = getelementptr inbounds float* %tmp10048, i64 1
+ %tmp10050 = getelementptr inbounds float* %tmp10049, i64 1
+ %tmp10051 = getelementptr inbounds float* %tmp10050, i64 1
+ %tmp10052 = getelementptr inbounds float* %tmp10051, i64 1
+ %tmp10053 = getelementptr inbounds float* %tmp10052, i64 1
+ %tmp10054 = getelementptr inbounds float* %tmp10053, i64 1
+ %tmp10055 = getelementptr inbounds float* %tmp10054, i64 1
+ %tmp10056 = getelementptr inbounds float* %tmp10055, i64 1
+ %tmp10057 = getelementptr inbounds float* %tmp10056, i64 1
+ %tmp10058 = getelementptr inbounds float* %tmp10057, i64 1
+ %tmp10059 = getelementptr inbounds float* %tmp10058, i64 1
+ %tmp10060 = getelementptr inbounds float* %tmp10059, i64 1
+ %tmp10061 = getelementptr inbounds float* %tmp10060, i64 1
+ %tmp10062 = getelementptr inbounds float* %tmp10061, i64 1
+ %tmp10063 = getelementptr inbounds float* %tmp10062, i64 1
+ %tmp10064 = getelementptr inbounds float* %tmp10063, i64 1
+ %tmp10065 = getelementptr inbounds float* %tmp10064, i64 1
+ %tmp10066 = getelementptr inbounds float* %tmp10065, i64 1
+ %tmp10067 = getelementptr inbounds float* %tmp10066, i64 1
+ %tmp10068 = getelementptr inbounds float* %tmp10067, i64 1
+ %tmp10069 = getelementptr inbounds float* %tmp10068, i64 1
+ %tmp10070 = getelementptr inbounds float* %tmp10069, i64 1
+ %tmp10071 = getelementptr inbounds float* %tmp10070, i64 1
+ %tmp10072 = getelementptr inbounds float* %tmp10071, i64 1
+ %tmp10073 = getelementptr inbounds float* %tmp10072, i64 1
+ %tmp10074 = getelementptr inbounds float* %tmp10073, i64 1
+ %tmp10075 = getelementptr inbounds float* %tmp10074, i64 1
+ %tmp10076 = getelementptr inbounds float* %tmp10075, i64 1
+ %tmp10077 = getelementptr inbounds float* %tmp10076, i64 1
+ %tmp10078 = getelementptr inbounds float* %tmp10077, i64 1
+ %tmp10079 = getelementptr inbounds float* %tmp10078, i64 1
+ %tmp10080 = getelementptr inbounds float* %tmp10079, i64 1
+ %tmp10081 = getelementptr inbounds float* %tmp10080, i64 1
+ %tmp10082 = getelementptr inbounds float* %tmp10081, i64 1
+ %tmp10083 = getelementptr inbounds float* %tmp10082, i64 1
+ %tmp10084 = getelementptr inbounds float* %tmp10083, i64 1
+ %tmp10085 = getelementptr inbounds float* %tmp10084, i64 1
+ %tmp10086 = getelementptr inbounds float* %tmp10085, i64 1
+ %tmp10087 = getelementptr inbounds float* %tmp10086, i64 1
+ %tmp10088 = getelementptr inbounds float* %tmp10087, i64 1
+ %tmp10089 = getelementptr inbounds float* %tmp10088, i64 1
+ %tmp10090 = getelementptr inbounds float* %tmp10089, i64 1
+ %tmp10091 = getelementptr inbounds float* %tmp10090, i64 1
+ %tmp10092 = getelementptr inbounds float* %tmp10091, i64 1
+ %tmp10093 = getelementptr inbounds float* %tmp10092, i64 1
+ %tmp10094 = getelementptr inbounds float* %tmp10093, i64 1
+ %tmp10095 = getelementptr inbounds float* %tmp10094, i64 1
+ %tmp10096 = getelementptr inbounds float* %tmp10095, i64 1
+ %tmp10097 = getelementptr inbounds float* %tmp10096, i64 1
+ %tmp10098 = getelementptr inbounds float* %tmp10097, i64 1
+ %tmp10099 = getelementptr inbounds float* %tmp10098, i64 1
+ %tmp10100 = getelementptr inbounds float* %tmp10099, i64 1
+ %tmp10101 = getelementptr inbounds float* %tmp10100, i64 1
+ %tmp10102 = getelementptr inbounds float* %tmp10101, i64 1
+ %tmp10103 = getelementptr inbounds float* %tmp10102, i64 1
+ %tmp10104 = getelementptr inbounds float* %tmp10103, i64 1
+ %tmp10105 = getelementptr inbounds float* %tmp10104, i64 1
+ %tmp10106 = getelementptr inbounds float* %tmp10105, i64 1
+ %tmp10107 = getelementptr inbounds float* %tmp10106, i64 1
+ %tmp10108 = getelementptr inbounds float* %tmp10107, i64 1
+ %tmp10109 = getelementptr inbounds float* %tmp10108, i64 1
+ %tmp10110 = getelementptr inbounds float* %tmp10109, i64 1
+ %tmp10111 = getelementptr inbounds float* %tmp10110, i64 1
+ %tmp10112 = getelementptr inbounds float* %tmp10111, i64 1
+ %tmp10113 = getelementptr inbounds float* %tmp10112, i64 1
+ %tmp10114 = getelementptr inbounds float* %tmp10113, i64 1
+ %tmp10115 = getelementptr inbounds float* %tmp10114, i64 1
+ %tmp10116 = getelementptr inbounds float* %tmp10115, i64 1
+ %tmp10117 = getelementptr inbounds float* %tmp10116, i64 1
+ %tmp10118 = getelementptr inbounds float* %tmp10117, i64 1
+ %tmp10119 = getelementptr inbounds float* %tmp10118, i64 1
+ %tmp10120 = getelementptr inbounds float* %tmp10119, i64 1
+ %tmp10121 = getelementptr inbounds float* %tmp10120, i64 1
+ %tmp10122 = getelementptr inbounds float* %tmp10121, i64 1
+ %tmp10123 = getelementptr inbounds float* %tmp10122, i64 1
+ %tmp10124 = getelementptr inbounds float* %tmp10123, i64 1
+ %tmp10125 = getelementptr inbounds float* %tmp10124, i64 1
+ %tmp10126 = getelementptr inbounds float* %tmp10125, i64 1
+ %tmp10127 = getelementptr inbounds float* %tmp10126, i64 1
+ %tmp10128 = getelementptr inbounds float* %tmp10127, i64 1
+ %tmp10129 = getelementptr inbounds float* %tmp10128, i64 1
+ %tmp10130 = getelementptr inbounds float* %tmp10129, i64 1
+ %tmp10131 = getelementptr inbounds float* %tmp10130, i64 1
+ %tmp10132 = getelementptr inbounds float* %tmp10131, i64 1
+ %tmp10133 = getelementptr inbounds float* %tmp10132, i64 1
+ %tmp10134 = getelementptr inbounds float* %tmp10133, i64 1
+ %tmp10135 = getelementptr inbounds float* %tmp10134, i64 1
+ %tmp10136 = getelementptr inbounds float* %tmp10135, i64 1
+ %tmp10137 = getelementptr inbounds float* %tmp10136, i64 1
+ %tmp10138 = getelementptr inbounds float* %tmp10137, i64 1
+ %tmp10139 = getelementptr inbounds float* %tmp10138, i64 1
+ %tmp10140 = getelementptr inbounds float* %tmp10139, i64 1
+ %tmp10141 = getelementptr inbounds float* %tmp10140, i64 1
+ %tmp10142 = getelementptr inbounds float* %tmp10141, i64 1
+ %tmp10143 = getelementptr inbounds float* %tmp10142, i64 1
+ %tmp10144 = getelementptr inbounds float* %tmp10143, i64 1
+ %tmp10145 = getelementptr inbounds float* %tmp10144, i64 1
+ %tmp10146 = getelementptr inbounds float* %tmp10145, i64 1
+ %tmp10147 = getelementptr inbounds float* %tmp10146, i64 1
+ %tmp10148 = getelementptr inbounds float* %tmp10147, i64 1
+ %tmp10149 = getelementptr inbounds float* %tmp10148, i64 1
+ %tmp10150 = getelementptr inbounds float* %tmp10149, i64 1
+ %tmp10151 = getelementptr inbounds float* %tmp10150, i64 1
+ %tmp10152 = getelementptr inbounds float* %tmp10151, i64 1
+ %tmp10153 = getelementptr inbounds float* %tmp10152, i64 1
+ %tmp10154 = getelementptr inbounds float* %tmp10153, i64 1
+ %tmp10155 = getelementptr inbounds float* %tmp10154, i64 1
+ %tmp10156 = getelementptr inbounds float* %tmp10155, i64 1
+ %tmp10157 = getelementptr inbounds float* %tmp10156, i64 1
+ %tmp10158 = getelementptr inbounds float* %tmp10157, i64 1
+ %tmp10159 = getelementptr inbounds float* %tmp10158, i64 1
+ %tmp10160 = getelementptr inbounds float* %tmp10159, i64 1
+ %tmp10161 = getelementptr inbounds float* %tmp10160, i64 1
+ %tmp10162 = getelementptr inbounds float* %tmp10161, i64 1
+ %tmp10163 = getelementptr inbounds float* %tmp10162, i64 1
+ %tmp10164 = getelementptr inbounds float* %tmp10163, i64 1
+ %tmp10165 = getelementptr inbounds float* %tmp10164, i64 1
+ %tmp10166 = getelementptr inbounds float* %tmp10165, i64 1
+ %tmp10167 = getelementptr inbounds float* %tmp10166, i64 1
+ %tmp10168 = getelementptr inbounds float* %tmp10167, i64 1
+ %tmp10169 = getelementptr inbounds float* %tmp10168, i64 1
+ %tmp10170 = getelementptr inbounds float* %tmp10169, i64 1
+ %tmp10171 = getelementptr inbounds float* %tmp10170, i64 1
+ %tmp10172 = getelementptr inbounds float* %tmp10171, i64 1
+ %tmp10173 = getelementptr inbounds float* %tmp10172, i64 1
+ %tmp10174 = getelementptr inbounds float* %tmp10173, i64 1
+ %tmp10175 = getelementptr inbounds float* %tmp10174, i64 1
+ %tmp10176 = getelementptr inbounds float* %tmp10175, i64 1
+ %tmp10177 = getelementptr inbounds float* %tmp10176, i64 1
+ %tmp10178 = getelementptr inbounds float* %tmp10177, i64 1
+ %tmp10179 = getelementptr inbounds float* %tmp10178, i64 1
+ %tmp10180 = getelementptr inbounds float* %tmp10179, i64 1
+ %tmp10181 = getelementptr inbounds float* %tmp10180, i64 1
+ %tmp10182 = getelementptr inbounds float* %tmp10181, i64 1
+ %tmp10183 = getelementptr inbounds float* %tmp10182, i64 1
+ %tmp10184 = getelementptr inbounds float* %tmp10183, i64 1
+ %tmp10185 = getelementptr inbounds float* %tmp10184, i64 1
+ %tmp10186 = getelementptr inbounds float* %tmp10185, i64 1
+ %tmp10187 = getelementptr inbounds float* %tmp10186, i64 1
+ %tmp10188 = getelementptr inbounds float* %tmp10187, i64 1
+ %tmp10189 = getelementptr inbounds float* %tmp10188, i64 1
+ %tmp10190 = getelementptr inbounds float* %tmp10189, i64 1
+ %tmp10191 = getelementptr inbounds float* %tmp10190, i64 1
+ %tmp10192 = getelementptr inbounds float* %tmp10191, i64 1
+ %tmp10193 = getelementptr inbounds float* %tmp10192, i64 1
+ %tmp10194 = getelementptr inbounds float* %tmp10193, i64 1
+ %tmp10195 = getelementptr inbounds float* %tmp10194, i64 1
+ %tmp10196 = getelementptr inbounds float* %tmp10195, i64 1
+ %tmp10197 = getelementptr inbounds float* %tmp10196, i64 1
+ %tmp10198 = getelementptr inbounds float* %tmp10197, i64 1
+ %tmp10199 = getelementptr inbounds float* %tmp10198, i64 1
+ %tmp10200 = getelementptr inbounds float* %tmp10199, i64 1
+ %tmp10201 = getelementptr inbounds float* %tmp10200, i64 1
+ %tmp10202 = getelementptr inbounds float* %tmp10201, i64 1
+ %tmp10203 = getelementptr inbounds float* %tmp10202, i64 1
+ %tmp10204 = getelementptr inbounds float* %tmp10203, i64 1
+ %tmp10205 = getelementptr inbounds float* %tmp10204, i64 1
+ %tmp10206 = getelementptr inbounds float* %tmp10205, i64 1
+ %tmp10207 = getelementptr inbounds float* %tmp10206, i64 1
+ %tmp10208 = getelementptr inbounds float* %tmp10207, i64 1
+ %tmp10209 = getelementptr inbounds float* %tmp10208, i64 1
+ %tmp10210 = getelementptr inbounds float* %tmp10209, i64 1
+ %tmp10211 = getelementptr inbounds float* %tmp10210, i64 1
+ %tmp10212 = getelementptr inbounds float* %tmp10211, i64 1
+ %tmp10213 = getelementptr inbounds float* %tmp10212, i64 1
+ %tmp10214 = getelementptr inbounds float* %tmp10213, i64 1
+ %tmp10215 = getelementptr inbounds float* %tmp10214, i64 1
+ %tmp10216 = getelementptr inbounds float* %tmp10215, i64 1
+ %tmp10217 = getelementptr inbounds float* %tmp10216, i64 1
+ %tmp10218 = getelementptr inbounds float* %tmp10217, i64 1
+ %tmp10219 = getelementptr inbounds float* %tmp10218, i64 1
+ %tmp10220 = getelementptr inbounds float* %tmp10219, i64 1
+ %tmp10221 = getelementptr inbounds float* %tmp10220, i64 1
+ %tmp10222 = getelementptr inbounds float* %tmp10221, i64 1
+ %tmp10223 = getelementptr inbounds float* %tmp10222, i64 1
+ %tmp10224 = getelementptr inbounds float* %tmp10223, i64 1
+ %tmp10225 = getelementptr inbounds float* %tmp10224, i64 1
+ %tmp10226 = getelementptr inbounds float* %tmp10225, i64 1
+ %tmp10227 = getelementptr inbounds float* %tmp10226, i64 1
+ %tmp10228 = getelementptr inbounds float* %tmp10227, i64 1
+ %tmp10229 = getelementptr inbounds float* %tmp10228, i64 1
+ %tmp10230 = getelementptr inbounds float* %tmp10229, i64 1
+ %tmp10231 = getelementptr inbounds float* %tmp10230, i64 1
+ %tmp10232 = getelementptr inbounds float* %tmp10231, i64 1
+ %tmp10233 = getelementptr inbounds float* %tmp10232, i64 1
+ %tmp10234 = getelementptr inbounds float* %tmp10233, i64 1
+ %tmp10235 = getelementptr inbounds float* %tmp10234, i64 1
+ %tmp10236 = getelementptr inbounds float* %tmp10235, i64 1
+ %tmp10237 = getelementptr inbounds float* %tmp10236, i64 1
+ %tmp10238 = getelementptr inbounds float* %tmp10237, i64 1
+ %tmp10239 = getelementptr inbounds float* %tmp10238, i64 1
+ %tmp10240 = getelementptr inbounds float* %tmp10239, i64 1
+ %tmp10241 = getelementptr inbounds float* %tmp10240, i64 1
+ %tmp10242 = getelementptr inbounds float* %tmp10241, i64 1
+ %tmp10243 = getelementptr inbounds float* %tmp10242, i64 1
+ %tmp10244 = getelementptr inbounds float* %tmp10243, i64 1
+ %tmp10245 = getelementptr inbounds float* %tmp10244, i64 1
+ %tmp10246 = getelementptr inbounds float* %tmp10245, i64 1
+ %tmp10247 = getelementptr inbounds float* %tmp10246, i64 1
+ %tmp10248 = getelementptr inbounds float* %tmp10247, i64 1
+ %tmp10249 = getelementptr inbounds float* %tmp10248, i64 1
+ %tmp10250 = getelementptr inbounds float* %tmp10249, i64 1
+ %tmp10251 = getelementptr inbounds float* %tmp10250, i64 1
+ %tmp10252 = getelementptr inbounds float* %tmp10251, i64 1
+ %tmp10253 = getelementptr inbounds float* %tmp10252, i64 1
+ %tmp10254 = getelementptr inbounds float* %tmp10253, i64 1
+ %tmp10255 = getelementptr inbounds float* %tmp10254, i64 1
+ %tmp10256 = getelementptr inbounds float* %tmp10255, i64 1
+ %tmp10257 = getelementptr inbounds float* %tmp10256, i64 1
+ %tmp10258 = getelementptr inbounds float* %tmp10257, i64 1
+ %tmp10259 = getelementptr inbounds float* %tmp10258, i64 1
+ %tmp10260 = getelementptr inbounds float* %tmp10259, i64 1
+ %tmp10261 = getelementptr inbounds float* %tmp10260, i64 1
+ %tmp10262 = getelementptr inbounds float* %tmp10261, i64 1
+ %tmp10263 = getelementptr inbounds float* %tmp10262, i64 1
+ %tmp10264 = getelementptr inbounds float* %tmp10263, i64 1
+ %tmp10265 = getelementptr inbounds float* %tmp10264, i64 1
+ %tmp10266 = getelementptr inbounds float* %tmp10265, i64 1
+ %tmp10267 = getelementptr inbounds float* %tmp10266, i64 1
+ %tmp10268 = getelementptr inbounds float* %tmp10267, i64 1
+ %tmp10269 = getelementptr inbounds float* %tmp10268, i64 1
+ %tmp10270 = getelementptr inbounds float* %tmp10269, i64 1
+ %tmp10271 = getelementptr inbounds float* %tmp10270, i64 1
+ %tmp10272 = getelementptr inbounds float* %tmp10271, i64 1
+ %tmp10273 = getelementptr inbounds float* %tmp10272, i64 1
+ %tmp10274 = getelementptr inbounds float* %tmp10273, i64 1
+ %tmp10275 = getelementptr inbounds float* %tmp10274, i64 1
+ %tmp10276 = getelementptr inbounds float* %tmp10275, i64 1
+ %tmp10277 = getelementptr inbounds float* %tmp10276, i64 1
+ %tmp10278 = getelementptr inbounds float* %tmp10277, i64 1
+ %tmp10279 = getelementptr inbounds float* %tmp10278, i64 1
+ %tmp10280 = getelementptr inbounds float* %tmp10279, i64 1
+ %tmp10281 = getelementptr inbounds float* %tmp10280, i64 1
+ %tmp10282 = getelementptr inbounds float* %tmp10281, i64 1
+ %tmp10283 = getelementptr inbounds float* %tmp10282, i64 1
+ %tmp10284 = getelementptr inbounds float* %tmp10283, i64 1
+ %tmp10285 = getelementptr inbounds float* %tmp10284, i64 1
+ %tmp10286 = getelementptr inbounds float* %tmp10285, i64 1
+ %tmp10287 = getelementptr inbounds float* %tmp10286, i64 1
+ %tmp10288 = getelementptr inbounds float* %tmp10287, i64 1
+ %tmp10289 = getelementptr inbounds float* %tmp10288, i64 1
+ %tmp10290 = getelementptr inbounds float* %tmp10289, i64 1
+ %tmp10291 = getelementptr inbounds float* %tmp10290, i64 1
+ %tmp10292 = getelementptr inbounds float* %tmp10291, i64 1
+ %tmp10293 = getelementptr inbounds float* %tmp10292, i64 1
+ %tmp10294 = getelementptr inbounds float* %tmp10293, i64 1
+ %tmp10295 = getelementptr inbounds float* %tmp10294, i64 1
+ %tmp10296 = getelementptr inbounds float* %tmp10295, i64 1
+ %tmp10297 = getelementptr inbounds float* %tmp10296, i64 1
+ %tmp10298 = getelementptr inbounds float* %tmp10297, i64 1
+ %tmp10299 = getelementptr inbounds float* %tmp10298, i64 1
+ %tmp10300 = getelementptr inbounds float* %tmp10299, i64 1
+ %tmp10301 = getelementptr inbounds float* %tmp10300, i64 1
+ %tmp10302 = getelementptr inbounds float* %tmp10301, i64 1
+ %tmp10303 = getelementptr inbounds float* %tmp10302, i64 1
+ %tmp10304 = getelementptr inbounds float* %tmp10303, i64 1
+ %tmp10305 = getelementptr inbounds float* %tmp10304, i64 1
+ %tmp10306 = getelementptr inbounds float* %tmp10305, i64 1
+ %tmp10307 = getelementptr inbounds float* %tmp10306, i64 1
+ %tmp10308 = getelementptr inbounds float* %tmp10307, i64 1
+ %tmp10309 = getelementptr inbounds float* %tmp10308, i64 1
+ %tmp10310 = getelementptr inbounds float* %tmp10309, i64 1
+ %tmp10311 = getelementptr inbounds float* %tmp10310, i64 1
+ %tmp10312 = getelementptr inbounds float* %tmp10311, i64 1
+ %tmp10313 = getelementptr inbounds float* %tmp10312, i64 1
+ %tmp10314 = getelementptr inbounds float* %tmp10313, i64 1
+ %tmp10315 = getelementptr inbounds float* %tmp10314, i64 1
+ %tmp10316 = getelementptr inbounds float* %tmp10315, i64 1
+ %tmp10317 = getelementptr inbounds float* %tmp10316, i64 1
+ %tmp10318 = getelementptr inbounds float* %tmp10317, i64 1
+ %tmp10319 = getelementptr inbounds float* %tmp10318, i64 1
+ %tmp10320 = getelementptr inbounds float* %tmp10319, i64 1
+ %tmp10321 = getelementptr inbounds float* %tmp10320, i64 1
+ %tmp10322 = getelementptr inbounds float* %tmp10321, i64 1
+ %tmp10323 = getelementptr inbounds float* %tmp10322, i64 1
+ %tmp10324 = getelementptr inbounds float* %tmp10323, i64 1
+ %tmp10325 = getelementptr inbounds float* %tmp10324, i64 1
+ %tmp10326 = getelementptr inbounds float* %tmp10325, i64 1
+ %tmp10327 = getelementptr inbounds float* %tmp10326, i64 1
+ %tmp10328 = getelementptr inbounds float* %tmp10327, i64 1
+ %tmp10329 = getelementptr inbounds float* %tmp10328, i64 1
+ %tmp10330 = getelementptr inbounds float* %tmp10329, i64 1
+ %tmp10331 = getelementptr inbounds float* %tmp10330, i64 1
+ %tmp10332 = getelementptr inbounds float* %tmp10331, i64 1
+ %tmp10333 = getelementptr inbounds float* %tmp10332, i64 1
+ %tmp10334 = getelementptr inbounds float* %tmp10333, i64 1
+ %tmp10335 = getelementptr inbounds float* %tmp10334, i64 1
+ %tmp10336 = getelementptr inbounds float* %tmp10335, i64 1
+ %tmp10337 = getelementptr inbounds float* %tmp10336, i64 1
+ %tmp10338 = getelementptr inbounds float* %tmp10337, i64 1
+ %tmp10339 = getelementptr inbounds float* %tmp10338, i64 1
+ %tmp10340 = getelementptr inbounds float* %tmp10339, i64 1
+ %tmp10341 = getelementptr inbounds float* %tmp10340, i64 1
+ %tmp10342 = getelementptr inbounds float* %tmp10341, i64 1
+ %tmp10343 = getelementptr inbounds float* %tmp10342, i64 1
+ %tmp10344 = getelementptr inbounds float* %tmp10343, i64 1
+ %tmp10345 = getelementptr inbounds float* %tmp10344, i64 1
+ %tmp10346 = getelementptr inbounds float* %tmp10345, i64 1
+ %tmp10347 = getelementptr inbounds float* %tmp10346, i64 1
+ %tmp10348 = getelementptr inbounds float* %tmp10347, i64 1
+ %tmp10349 = getelementptr inbounds float* %tmp10348, i64 1
+ %tmp10350 = getelementptr inbounds float* %tmp10349, i64 1
+ %tmp10351 = getelementptr inbounds float* %tmp10350, i64 1
+ %tmp10352 = getelementptr inbounds float* %tmp10351, i64 1
+ %tmp10353 = getelementptr inbounds float* %tmp10352, i64 1
+ %tmp10354 = getelementptr inbounds float* %tmp10353, i64 1
+ %tmp10355 = getelementptr inbounds float* %tmp10354, i64 1
+ %tmp10356 = getelementptr inbounds float* %tmp10355, i64 1
+ %tmp10357 = getelementptr inbounds float* %tmp10356, i64 1
+ %tmp10358 = getelementptr inbounds float* %tmp10357, i64 1
+ %tmp10359 = getelementptr inbounds float* %tmp10358, i64 1
+ %tmp10360 = getelementptr inbounds float* %tmp10359, i64 1
+ %tmp10361 = getelementptr inbounds float* %tmp10360, i64 1
+ %tmp10362 = getelementptr inbounds float* %tmp10361, i64 1
+ %tmp10363 = getelementptr inbounds float* %tmp10362, i64 1
+ %tmp10364 = getelementptr inbounds float* %tmp10363, i64 1
+ %tmp10365 = getelementptr inbounds float* %tmp10364, i64 1
+ %tmp10366 = getelementptr inbounds float* %tmp10365, i64 1
+ %tmp10367 = getelementptr inbounds float* %tmp10366, i64 1
+ %tmp10368 = getelementptr inbounds float* %tmp10367, i64 1
+ %tmp10369 = getelementptr inbounds float* %tmp10368, i64 1
+ %tmp10370 = getelementptr inbounds float* %tmp10369, i64 1
+ %tmp10371 = getelementptr inbounds float* %tmp10370, i64 1
+ %tmp10372 = getelementptr inbounds float* %tmp10371, i64 1
+ %tmp10373 = getelementptr inbounds float* %tmp10372, i64 1
+ %tmp10374 = getelementptr inbounds float* %tmp10373, i64 1
+ %tmp10375 = getelementptr inbounds float* %tmp10374, i64 1
+ %tmp10376 = getelementptr inbounds float* %tmp10375, i64 1
+ %tmp10377 = getelementptr inbounds float* %tmp10376, i64 1
+ %tmp10378 = getelementptr inbounds float* %tmp10377, i64 1
+ %tmp10379 = getelementptr inbounds float* %tmp10378, i64 1
+ %tmp10380 = getelementptr inbounds float* %tmp10379, i64 1
+ %tmp10381 = getelementptr inbounds float* %tmp10380, i64 1
+ %tmp10382 = getelementptr inbounds float* %tmp10381, i64 1
+ %tmp10383 = getelementptr inbounds float* %tmp10382, i64 1
+ %tmp10384 = getelementptr inbounds float* %tmp10383, i64 1
+ %tmp10385 = getelementptr inbounds float* %tmp10384, i64 1
+ %tmp10386 = getelementptr inbounds float* %tmp10385, i64 1
+ %tmp10387 = getelementptr inbounds float* %tmp10386, i64 1
+ %tmp10388 = getelementptr inbounds float* %tmp10387, i64 1
+ %tmp10389 = getelementptr inbounds float* %tmp10388, i64 1
+ %tmp10390 = getelementptr inbounds float* %tmp10389, i64 1
+ %tmp10391 = getelementptr inbounds float* %tmp10390, i64 1
+ %tmp10392 = getelementptr inbounds float* %tmp10391, i64 1
+ %tmp10393 = getelementptr inbounds float* %tmp10392, i64 1
+ %tmp10394 = getelementptr inbounds float* %tmp10393, i64 1
+ %tmp10395 = getelementptr inbounds float* %tmp10394, i64 1
+ %tmp10396 = getelementptr inbounds float* %tmp10395, i64 1
+ %tmp10397 = getelementptr inbounds float* %tmp10396, i64 1
+ %tmp10398 = getelementptr inbounds float* %tmp10397, i64 1
+ %tmp10399 = getelementptr inbounds float* %tmp10398, i64 1
+ %tmp10400 = getelementptr inbounds float* %tmp10399, i64 1
+ %tmp10401 = getelementptr inbounds float* %tmp10400, i64 1
+ %tmp10402 = getelementptr inbounds float* %tmp10401, i64 1
+ %tmp10403 = getelementptr inbounds float* %tmp10402, i64 1
+ %tmp10404 = getelementptr inbounds float* %tmp10403, i64 1
+ %tmp10405 = getelementptr inbounds float* %tmp10404, i64 1
+ %tmp10406 = getelementptr inbounds float* %tmp10405, i64 1
+ %tmp10407 = getelementptr inbounds float* %tmp10406, i64 1
+ %tmp10408 = getelementptr inbounds float* %tmp10407, i64 1
+ %tmp10409 = getelementptr inbounds float* %tmp10408, i64 1
+ %tmp10410 = getelementptr inbounds float* %tmp10409, i64 1
+ %tmp10411 = getelementptr inbounds float* %tmp10410, i64 1
+ %tmp10412 = getelementptr inbounds float* %tmp10411, i64 1
+ %tmp10413 = getelementptr inbounds float* %tmp10412, i64 1
+ %tmp10414 = getelementptr inbounds float* %tmp10413, i64 1
+ %tmp10415 = getelementptr inbounds float* %tmp10414, i64 1
+ %tmp10416 = getelementptr inbounds float* %tmp10415, i64 1
+ %tmp10417 = getelementptr inbounds float* %tmp10416, i64 1
+ %tmp10418 = getelementptr inbounds float* %tmp10417, i64 1
+ %tmp10419 = getelementptr inbounds float* %tmp10418, i64 1
+ %tmp10420 = getelementptr inbounds float* %tmp10419, i64 1
+ %tmp10421 = getelementptr inbounds float* %tmp10420, i64 1
+ %tmp10422 = getelementptr inbounds float* %tmp10421, i64 1
+ %tmp10423 = getelementptr inbounds float* %tmp10422, i64 1
+ %tmp10424 = getelementptr inbounds float* %tmp10423, i64 1
+ %tmp10425 = getelementptr inbounds float* %tmp10424, i64 1
+ %tmp10426 = getelementptr inbounds float* %tmp10425, i64 1
+ %tmp10427 = getelementptr inbounds float* %tmp10426, i64 1
+ %tmp10428 = getelementptr inbounds float* %tmp10427, i64 1
+ %tmp10429 = getelementptr inbounds float* %tmp10428, i64 1
+ %tmp10430 = getelementptr inbounds float* %tmp10429, i64 1
+ %tmp10431 = getelementptr inbounds float* %tmp10430, i64 1
+ %tmp10432 = getelementptr inbounds float* %tmp10431, i64 1
+ %tmp10433 = getelementptr inbounds float* %tmp10432, i64 1
+ %tmp10434 = getelementptr inbounds float* %tmp10433, i64 1
+ %tmp10435 = getelementptr inbounds float* %tmp10434, i64 1
+ %tmp10436 = getelementptr inbounds float* %tmp10435, i64 1
+ %tmp10437 = getelementptr inbounds float* %tmp10436, i64 1
+ %tmp10438 = getelementptr inbounds float* %tmp10437, i64 1
+ %tmp10439 = getelementptr inbounds float* %tmp10438, i64 1
+ %tmp10440 = getelementptr inbounds float* %tmp10439, i64 1
+ %tmp10441 = getelementptr inbounds float* %tmp10440, i64 1
+ %tmp10442 = getelementptr inbounds float* %tmp10441, i64 1
+ %tmp10443 = getelementptr inbounds float* %tmp10442, i64 1
+ %tmp10444 = getelementptr inbounds float* %tmp10443, i64 1
+ %tmp10445 = getelementptr inbounds float* %tmp10444, i64 1
+ %tmp10446 = getelementptr inbounds float* %tmp10445, i64 1
+ %tmp10447 = getelementptr inbounds float* %tmp10446, i64 1
+ %tmp10448 = getelementptr inbounds float* %tmp10447, i64 1
+ %tmp10449 = getelementptr inbounds float* %tmp10448, i64 1
+ %tmp10450 = getelementptr inbounds float* %tmp10449, i64 1
+ %tmp10451 = getelementptr inbounds float* %tmp10450, i64 1
+ %tmp10452 = getelementptr inbounds float* %tmp10451, i64 1
+ %tmp10453 = getelementptr inbounds float* %tmp10452, i64 1
+ %tmp10454 = getelementptr inbounds float* %tmp10453, i64 1
+ %tmp10455 = getelementptr inbounds float* %tmp10454, i64 1
+ %tmp10456 = getelementptr inbounds float* %tmp10455, i64 1
+ %tmp10457 = getelementptr inbounds float* %tmp10456, i64 1
+ %tmp10458 = getelementptr inbounds float* %tmp10457, i64 1
+ %tmp10459 = getelementptr inbounds float* %tmp10458, i64 1
+ %tmp10460 = getelementptr inbounds float* %tmp10459, i64 1
+ %tmp10461 = getelementptr inbounds float* %tmp10460, i64 1
+ %tmp10462 = getelementptr inbounds float* %tmp10461, i64 1
+ %tmp10463 = getelementptr inbounds float* %tmp10462, i64 1
+ %tmp10464 = getelementptr inbounds float* %tmp10463, i64 1
+ %tmp10465 = getelementptr inbounds float* %tmp10464, i64 1
+ %tmp10466 = getelementptr inbounds float* %tmp10465, i64 1
+ %tmp10467 = getelementptr inbounds float* %tmp10466, i64 1
+ %tmp10468 = getelementptr inbounds float* %tmp10467, i64 1
+ %tmp10469 = getelementptr inbounds float* %tmp10468, i64 1
+ %tmp10470 = getelementptr inbounds float* %tmp10469, i64 1
+ %tmp10471 = getelementptr inbounds float* %tmp10470, i64 1
+ %tmp10472 = getelementptr inbounds float* %tmp10471, i64 1
+ %tmp10473 = getelementptr inbounds float* %tmp10472, i64 1
+ %tmp10474 = getelementptr inbounds float* %tmp10473, i64 1
+ %tmp10475 = getelementptr inbounds float* %tmp10474, i64 1
+ %tmp10476 = getelementptr inbounds float* %tmp10475, i64 1
+ %tmp10477 = getelementptr inbounds float* %tmp10476, i64 1
+ %tmp10478 = getelementptr inbounds float* %tmp10477, i64 1
+ %tmp10479 = getelementptr inbounds float* %tmp10478, i64 1
+ %tmp10480 = getelementptr inbounds float* %tmp10479, i64 1
+ %tmp10481 = getelementptr inbounds float* %tmp10480, i64 1
+ %tmp10482 = getelementptr inbounds float* %tmp10481, i64 1
+ %tmp10483 = getelementptr inbounds float* %tmp10482, i64 1
+ %tmp10484 = getelementptr inbounds float* %tmp10483, i64 1
+ %tmp10485 = getelementptr inbounds float* %tmp10484, i64 1
+ %tmp10486 = getelementptr inbounds float* %tmp10485, i64 1
+ %tmp10487 = getelementptr inbounds float* %tmp10486, i64 1
+ %tmp10488 = getelementptr inbounds float* %tmp10487, i64 1
+ %tmp10489 = getelementptr inbounds float* %tmp10488, i64 1
+ %tmp10490 = getelementptr inbounds float* %tmp10489, i64 1
+ %tmp10491 = getelementptr inbounds float* %tmp10490, i64 1
+ %tmp10492 = getelementptr inbounds float* %tmp10491, i64 1
+ %tmp10493 = getelementptr inbounds float* %tmp10492, i64 1
+ %tmp10494 = getelementptr inbounds float* %tmp10493, i64 1
+ %tmp10495 = getelementptr inbounds float* %tmp10494, i64 1
+ %tmp10496 = getelementptr inbounds float* %tmp10495, i64 1
+ %tmp10497 = getelementptr inbounds float* %tmp10496, i64 1
+ %tmp10498 = getelementptr inbounds float* %tmp10497, i64 1
+ %tmp10499 = getelementptr inbounds float* %tmp10498, i64 1
+ %tmp10500 = getelementptr inbounds float* %tmp10499, i64 1
+ %tmp10501 = getelementptr inbounds float* %tmp10500, i64 1
+ %tmp10502 = getelementptr inbounds float* %tmp10501, i64 1
+ %tmp10503 = getelementptr inbounds float* %tmp10502, i64 1
+ %tmp10504 = getelementptr inbounds float* %tmp10503, i64 1
+ %tmp10505 = getelementptr inbounds float* %tmp10504, i64 1
+ %tmp10506 = getelementptr inbounds float* %tmp10505, i64 1
+ %tmp10507 = getelementptr inbounds float* %tmp10506, i64 1
+ %tmp10508 = getelementptr inbounds float* %tmp10507, i64 1
+ %tmp10509 = getelementptr inbounds float* %tmp10508, i64 1
+ %tmp10510 = getelementptr inbounds float* %tmp10509, i64 1
+ %tmp10511 = getelementptr inbounds float* %tmp10510, i64 1
+ %tmp10512 = getelementptr inbounds float* %tmp10511, i64 1
+ %tmp10513 = getelementptr inbounds float* %tmp10512, i64 1
+ %tmp10514 = getelementptr inbounds float* %tmp10513, i64 1
+ %tmp10515 = getelementptr inbounds float* %tmp10514, i64 1
+ %tmp10516 = getelementptr inbounds float* %tmp10515, i64 1
+ %tmp10517 = getelementptr inbounds float* %tmp10516, i64 1
+ %tmp10518 = getelementptr inbounds float* %tmp10517, i64 1
+ %tmp10519 = getelementptr inbounds float* %tmp10518, i64 1
+ %tmp10520 = getelementptr inbounds float* %tmp10519, i64 1
+ %tmp10521 = getelementptr inbounds float* %tmp10520, i64 1
+ %tmp10522 = getelementptr inbounds float* %tmp10521, i64 1
+ %tmp10523 = getelementptr inbounds float* %tmp10522, i64 1
+ %tmp10524 = getelementptr inbounds float* %tmp10523, i64 1
+ %tmp10525 = getelementptr inbounds float* %tmp10524, i64 1
+ %tmp10526 = getelementptr inbounds float* %tmp10525, i64 1
+ %tmp10527 = getelementptr inbounds float* %tmp10526, i64 1
+ %tmp10528 = getelementptr inbounds float* %tmp10527, i64 1
+ %tmp10529 = getelementptr inbounds float* %tmp10528, i64 1
+ %tmp10530 = getelementptr inbounds float* %tmp10529, i64 1
+ %tmp10531 = getelementptr inbounds float* %tmp10530, i64 1
+ %tmp10532 = getelementptr inbounds float* %tmp10531, i64 1
+ %tmp10533 = getelementptr inbounds float* %tmp10532, i64 1
+ %tmp10534 = getelementptr inbounds float* %tmp10533, i64 1
+ %tmp10535 = getelementptr inbounds float* %tmp10534, i64 1
+ %tmp10536 = getelementptr inbounds float* %tmp10535, i64 1
+ %tmp10537 = getelementptr inbounds float* %tmp10536, i64 1
+ %tmp10538 = getelementptr inbounds float* %tmp10537, i64 1
+ %tmp10539 = getelementptr inbounds float* %tmp10538, i64 1
+ %tmp10540 = getelementptr inbounds float* %tmp10539, i64 1
+ %tmp10541 = getelementptr inbounds float* %tmp10540, i64 1
+ %tmp10542 = getelementptr inbounds float* %tmp10541, i64 1
+ %tmp10543 = getelementptr inbounds float* %tmp10542, i64 1
+ %tmp10544 = getelementptr inbounds float* %tmp10543, i64 1
+ %tmp10545 = getelementptr inbounds float* %tmp10544, i64 1
+ %tmp10546 = getelementptr inbounds float* %tmp10545, i64 1
+ %tmp10547 = getelementptr inbounds float* %tmp10546, i64 1
+ %tmp10548 = getelementptr inbounds float* %tmp10547, i64 1
+ %tmp10549 = getelementptr inbounds float* %tmp10548, i64 1
+ %tmp10550 = getelementptr inbounds float* %tmp10549, i64 1
+ %tmp10551 = getelementptr inbounds float* %tmp10550, i64 1
+ %tmp10552 = getelementptr inbounds float* %tmp10551, i64 1
+ %tmp10553 = getelementptr inbounds float* %tmp10552, i64 1
+ %tmp10554 = getelementptr inbounds float* %tmp10553, i64 1
+ %tmp10555 = getelementptr inbounds float* %tmp10554, i64 1
+ %tmp10556 = getelementptr inbounds float* %tmp10555, i64 1
+ %tmp10557 = getelementptr inbounds float* %tmp10556, i64 1
+ %tmp10558 = getelementptr inbounds float* %tmp10557, i64 1
+ %tmp10559 = getelementptr inbounds float* %tmp10558, i64 1
+ %tmp10560 = getelementptr inbounds float* %tmp10559, i64 1
+ %tmp10561 = getelementptr inbounds float* %tmp10560, i64 1
+ %tmp10562 = getelementptr inbounds float* %tmp10561, i64 1
+ %tmp10563 = getelementptr inbounds float* %tmp10562, i64 1
+ %tmp10564 = getelementptr inbounds float* %tmp10563, i64 1
+ %tmp10565 = getelementptr inbounds float* %tmp10564, i64 1
+ %tmp10566 = getelementptr inbounds float* %tmp10565, i64 1
+ %tmp10567 = getelementptr inbounds float* %tmp10566, i64 1
+ %tmp10568 = getelementptr inbounds float* %tmp10567, i64 1
+ %tmp10569 = getelementptr inbounds float* %tmp10568, i64 1
+ %tmp10570 = getelementptr inbounds float* %tmp10569, i64 1
+ %tmp10571 = getelementptr inbounds float* %tmp10570, i64 1
+ %tmp10572 = getelementptr inbounds float* %tmp10571, i64 1
+ %tmp10573 = getelementptr inbounds float* %tmp10572, i64 1
+ %tmp10574 = getelementptr inbounds float* %tmp10573, i64 1
+ %tmp10575 = getelementptr inbounds float* %tmp10574, i64 1
+ %tmp10576 = getelementptr inbounds float* %tmp10575, i64 1
+ %tmp10577 = getelementptr inbounds float* %tmp10576, i64 1
+ %tmp10578 = getelementptr inbounds float* %tmp10577, i64 1
+ %tmp10579 = getelementptr inbounds float* %tmp10578, i64 1
+ %tmp10580 = getelementptr inbounds float* %tmp10579, i64 1
+ %tmp10581 = getelementptr inbounds float* %tmp10580, i64 1
+ %tmp10582 = getelementptr inbounds float* %tmp10581, i64 1
+ %tmp10583 = getelementptr inbounds float* %tmp10582, i64 1
+ %tmp10584 = getelementptr inbounds float* %tmp10583, i64 1
+ %tmp10585 = getelementptr inbounds float* %tmp10584, i64 1
+ %tmp10586 = getelementptr inbounds float* %tmp10585, i64 1
+ %tmp10587 = getelementptr inbounds float* %tmp10586, i64 1
+ %tmp10588 = getelementptr inbounds float* %tmp10587, i64 1
+ %tmp10589 = getelementptr inbounds float* %tmp10588, i64 1
+ %tmp10590 = getelementptr inbounds float* %tmp10589, i64 1
+ %tmp10591 = getelementptr inbounds float* %tmp10590, i64 1
+ %tmp10592 = getelementptr inbounds float* %tmp10591, i64 1
+ %tmp10593 = getelementptr inbounds float* %tmp10592, i64 1
+ %tmp10594 = getelementptr inbounds float* %tmp10593, i64 1
+ %tmp10595 = getelementptr inbounds float* %tmp10594, i64 1
+ %tmp10596 = getelementptr inbounds float* %tmp10595, i64 1
+ %tmp10597 = getelementptr inbounds float* %tmp10596, i64 1
+ %tmp10598 = getelementptr inbounds float* %tmp10597, i64 1
+ %tmp10599 = getelementptr inbounds float* %tmp10598, i64 1
+ %tmp10600 = getelementptr inbounds float* %tmp10599, i64 1
+ %tmp10601 = getelementptr inbounds float* %tmp10600, i64 1
+ %tmp10602 = getelementptr inbounds float* %tmp10601, i64 1
+ %tmp10603 = getelementptr inbounds float* %tmp10602, i64 1
+ %tmp10604 = getelementptr inbounds float* %tmp10603, i64 1
+ %tmp10605 = getelementptr inbounds float* %tmp10604, i64 1
+ %tmp10606 = getelementptr inbounds float* %tmp10605, i64 1
+ %tmp10607 = getelementptr inbounds float* %tmp10606, i64 1
+ %tmp10608 = getelementptr inbounds float* %tmp10607, i64 1
+ %tmp10609 = getelementptr inbounds float* %tmp10608, i64 1
+ %tmp10610 = getelementptr inbounds float* %tmp10609, i64 1
+ %tmp10611 = getelementptr inbounds float* %tmp10610, i64 1
+ %tmp10612 = getelementptr inbounds float* %tmp10611, i64 1
+ %tmp10613 = getelementptr inbounds float* %tmp10612, i64 1
+ %tmp10614 = getelementptr inbounds float* %tmp10613, i64 1
+ %tmp10615 = getelementptr inbounds float* %tmp10614, i64 1
+ %tmp10616 = getelementptr inbounds float* %tmp10615, i64 1
+ %tmp10617 = getelementptr inbounds float* %tmp10616, i64 1
+ %tmp10618 = getelementptr inbounds float* %tmp10617, i64 1
+ %tmp10619 = getelementptr inbounds float* %tmp10618, i64 1
+ %tmp10620 = getelementptr inbounds float* %tmp10619, i64 1
+ %tmp10621 = getelementptr inbounds float* %tmp10620, i64 1
+ %tmp10622 = getelementptr inbounds float* %tmp10621, i64 1
+ %tmp10623 = getelementptr inbounds float* %tmp10622, i64 1
+ %tmp10624 = getelementptr inbounds float* %tmp10623, i64 1
+ %tmp10625 = getelementptr inbounds float* %tmp10624, i64 1
+ %tmp10626 = getelementptr inbounds float* %tmp10625, i64 1
+ %tmp10627 = getelementptr inbounds float* %tmp10626, i64 1
+ %tmp10628 = getelementptr inbounds float* %tmp10627, i64 1
+ %tmp10629 = getelementptr inbounds float* %tmp10628, i64 1
+ %tmp10630 = getelementptr inbounds float* %tmp10629, i64 1
+ %tmp10631 = getelementptr inbounds float* %tmp10630, i64 1
+ %tmp10632 = getelementptr inbounds float* %tmp10631, i64 1
+ %tmp10633 = getelementptr inbounds float* %tmp10632, i64 1
+ %tmp10634 = getelementptr inbounds float* %tmp10633, i64 1
+ %tmp10635 = getelementptr inbounds float* %tmp10634, i64 1
+ %tmp10636 = getelementptr inbounds float* %tmp10635, i64 1
+ %tmp10637 = getelementptr inbounds float* %tmp10636, i64 1
+ %tmp10638 = getelementptr inbounds float* %tmp10637, i64 1
+ %tmp10639 = getelementptr inbounds float* %tmp10638, i64 1
+ %tmp10640 = getelementptr inbounds float* %tmp10639, i64 1
+ %tmp10641 = getelementptr inbounds float* %tmp10640, i64 1
+ %tmp10642 = getelementptr inbounds float* %tmp10641, i64 1
+ %tmp10643 = getelementptr inbounds float* %tmp10642, i64 1
+ %tmp10644 = getelementptr inbounds float* %tmp10643, i64 1
+ %tmp10645 = getelementptr inbounds float* %tmp10644, i64 1
+ %tmp10646 = getelementptr inbounds float* %tmp10645, i64 1
+ %tmp10647 = getelementptr inbounds float* %tmp10646, i64 1
+ %tmp10648 = getelementptr inbounds float* %tmp10647, i64 1
+ %tmp10649 = getelementptr inbounds float* %tmp10648, i64 1
+ %tmp10650 = getelementptr inbounds float* %tmp10649, i64 1
+ %tmp10651 = getelementptr inbounds float* %tmp10650, i64 1
+ %tmp10652 = getelementptr inbounds float* %tmp10651, i64 1
+ %tmp10653 = getelementptr inbounds float* %tmp10652, i64 1
+ %tmp10654 = getelementptr inbounds float* %tmp10653, i64 1
+ %tmp10655 = getelementptr inbounds float* %tmp10654, i64 1
+ %tmp10656 = getelementptr inbounds float* %tmp10655, i64 1
+ %tmp10657 = getelementptr inbounds float* %tmp10656, i64 1
+ %tmp10658 = getelementptr inbounds float* %tmp10657, i64 1
+ %tmp10659 = getelementptr inbounds float* %tmp10658, i64 1
+ %tmp10660 = getelementptr inbounds float* %tmp10659, i64 1
+ %tmp10661 = getelementptr inbounds float* %tmp10660, i64 1
+ %tmp10662 = getelementptr inbounds float* %tmp10661, i64 1
+ %tmp10663 = getelementptr inbounds float* %tmp10662, i64 1
+ %tmp10664 = getelementptr inbounds float* %tmp10663, i64 1
+ %tmp10665 = getelementptr inbounds float* %tmp10664, i64 1
+ %tmp10666 = getelementptr inbounds float* %tmp10665, i64 1
+ %tmp10667 = getelementptr inbounds float* %tmp10666, i64 1
+ %tmp10668 = getelementptr inbounds float* %tmp10667, i64 1
+ %tmp10669 = getelementptr inbounds float* %tmp10668, i64 1
+ %tmp10670 = getelementptr inbounds float* %tmp10669, i64 1
+ %tmp10671 = getelementptr inbounds float* %tmp10670, i64 1
+ %tmp10672 = getelementptr inbounds float* %tmp10671, i64 1
+ %tmp10673 = getelementptr inbounds float* %tmp10672, i64 1
+ %tmp10674 = getelementptr inbounds float* %tmp10673, i64 1
+ %tmp10675 = getelementptr inbounds float* %tmp10674, i64 1
+ %tmp10676 = getelementptr inbounds float* %tmp10675, i64 1
+ %tmp10677 = getelementptr inbounds float* %tmp10676, i64 1
+ %tmp10678 = getelementptr inbounds float* %tmp10677, i64 1
+ %tmp10679 = getelementptr inbounds float* %tmp10678, i64 1
+ %tmp10680 = getelementptr inbounds float* %tmp10679, i64 1
+ %tmp10681 = getelementptr inbounds float* %tmp10680, i64 1
+ %tmp10682 = getelementptr inbounds float* %tmp10681, i64 1
+ %tmp10683 = getelementptr inbounds float* %tmp10682, i64 1
+ %tmp10684 = getelementptr inbounds float* %tmp10683, i64 1
+ %tmp10685 = getelementptr inbounds float* %tmp10684, i64 1
+ %tmp10686 = getelementptr inbounds float* %tmp10685, i64 1
+ %tmp10687 = getelementptr inbounds float* %tmp10686, i64 1
+ %tmp10688 = getelementptr inbounds float* %tmp10687, i64 1
+ %tmp10689 = getelementptr inbounds float* %tmp10688, i64 1
+ %tmp10690 = getelementptr inbounds float* %tmp10689, i64 1
+ %tmp10691 = getelementptr inbounds float* %tmp10690, i64 1
+ %tmp10692 = getelementptr inbounds float* %tmp10691, i64 1
+ %tmp10693 = getelementptr inbounds float* %tmp10692, i64 1
+ %tmp10694 = getelementptr inbounds float* %tmp10693, i64 1
+ %tmp10695 = getelementptr inbounds float* %tmp10694, i64 1
+ %tmp10696 = getelementptr inbounds float* %tmp10695, i64 1
+ %tmp10697 = getelementptr inbounds float* %tmp10696, i64 1
+ %tmp10698 = getelementptr inbounds float* %tmp10697, i64 1
+ %tmp10699 = getelementptr inbounds float* %tmp10698, i64 1
+ %tmp10700 = getelementptr inbounds float* %tmp10699, i64 1
+ %tmp10701 = getelementptr inbounds float* %tmp10700, i64 1
+ %tmp10702 = getelementptr inbounds float* %tmp10701, i64 1
+ %tmp10703 = getelementptr inbounds float* %tmp10702, i64 1
+ %tmp10704 = getelementptr inbounds float* %tmp10703, i64 1
+ %tmp10705 = getelementptr inbounds float* %tmp10704, i64 1
+ %tmp10706 = getelementptr inbounds float* %tmp10705, i64 1
+ %tmp10707 = getelementptr inbounds float* %tmp10706, i64 1
+ %tmp10708 = getelementptr inbounds float* %tmp10707, i64 1
+ %tmp10709 = getelementptr inbounds float* %tmp10708, i64 1
+ %tmp10710 = getelementptr inbounds float* %tmp10709, i64 1
+ %tmp10711 = getelementptr inbounds float* %tmp10710, i64 1
+ %tmp10712 = getelementptr inbounds float* %tmp10711, i64 1
+ %tmp10713 = getelementptr inbounds float* %tmp10712, i64 1
+ %tmp10714 = getelementptr inbounds float* %tmp10713, i64 1
+ %tmp10715 = getelementptr inbounds float* %tmp10714, i64 1
+ %tmp10716 = getelementptr inbounds float* %tmp10715, i64 1
+ %tmp10717 = getelementptr inbounds float* %tmp10716, i64 1
+ %tmp10718 = getelementptr inbounds float* %tmp10717, i64 1
+ %tmp10719 = getelementptr inbounds float* %tmp10718, i64 1
+ %tmp10720 = getelementptr inbounds float* %tmp10719, i64 1
+ %tmp10721 = getelementptr inbounds float* %tmp10720, i64 1
+ %tmp10722 = getelementptr inbounds float* %tmp10721, i64 1
+ %tmp10723 = getelementptr inbounds float* %tmp10722, i64 1
+ %tmp10724 = getelementptr inbounds float* %tmp10723, i64 1
+ %tmp10725 = getelementptr inbounds float* %tmp10724, i64 1
+ %tmp10726 = getelementptr inbounds float* %tmp10725, i64 1
+ %tmp10727 = getelementptr inbounds float* %tmp10726, i64 1
+ %tmp10728 = getelementptr inbounds float* %tmp10727, i64 1
+ %tmp10729 = getelementptr inbounds float* %tmp10728, i64 1
+ %tmp10730 = getelementptr inbounds float* %tmp10729, i64 1
+ %tmp10731 = getelementptr inbounds float* %tmp10730, i64 1
+ %tmp10732 = getelementptr inbounds float* %tmp10731, i64 1
+ %tmp10733 = getelementptr inbounds float* %tmp10732, i64 1
+ %tmp10734 = getelementptr inbounds float* %tmp10733, i64 1
+ %tmp10735 = getelementptr inbounds float* %tmp10734, i64 1
+ %tmp10736 = getelementptr inbounds float* %tmp10735, i64 1
+ %tmp10737 = getelementptr inbounds float* %tmp10736, i64 1
+ %tmp10738 = getelementptr inbounds float* %tmp10737, i64 1
+ %tmp10739 = getelementptr inbounds float* %tmp10738, i64 1
+ %tmp10740 = getelementptr inbounds float* %tmp10739, i64 1
+ %tmp10741 = getelementptr inbounds float* %tmp10740, i64 1
+ %tmp10742 = getelementptr inbounds float* %tmp10741, i64 1
+ %tmp10743 = getelementptr inbounds float* %tmp10742, i64 1
+ %tmp10744 = getelementptr inbounds float* %tmp10743, i64 1
+ %tmp10745 = getelementptr inbounds float* %tmp10744, i64 1
+ %tmp10746 = getelementptr inbounds float* %tmp10745, i64 1
+ %tmp10747 = getelementptr inbounds float* %tmp10746, i64 1
+ %tmp10748 = getelementptr inbounds float* %tmp10747, i64 1
+ %tmp10749 = getelementptr inbounds float* %tmp10748, i64 1
+ %tmp10750 = getelementptr inbounds float* %tmp10749, i64 1
+ %tmp10751 = getelementptr inbounds float* %tmp10750, i64 1
+ %tmp10752 = getelementptr inbounds float* %tmp10751, i64 1
+ %tmp10753 = getelementptr inbounds float* %tmp10752, i64 1
+ %tmp10754 = getelementptr inbounds float* %tmp10753, i64 1
+ %tmp10755 = getelementptr inbounds float* %tmp10754, i64 1
+ %tmp10756 = getelementptr inbounds float* %tmp10755, i64 1
+ %tmp10757 = getelementptr inbounds float* %tmp10756, i64 1
+ %tmp10758 = getelementptr inbounds float* %tmp10757, i64 1
+ %tmp10759 = getelementptr inbounds float* %tmp10758, i64 1
+ %tmp10760 = getelementptr inbounds float* %tmp10759, i64 1
+ %tmp10761 = getelementptr inbounds float* %tmp10760, i64 1
+ %tmp10762 = getelementptr inbounds float* %tmp10761, i64 1
+ %tmp10763 = getelementptr inbounds float* %tmp10762, i64 1
+ %tmp10764 = getelementptr inbounds float* %tmp10763, i64 1
+ %tmp10765 = getelementptr inbounds float* %tmp10764, i64 1
+ %tmp10766 = getelementptr inbounds float* %tmp10765, i64 1
+ %tmp10767 = getelementptr inbounds float* %tmp10766, i64 1
+ %tmp10768 = getelementptr inbounds float* %tmp10767, i64 1
+ %tmp10769 = getelementptr inbounds float* %tmp10768, i64 1
+ %tmp10770 = getelementptr inbounds float* %tmp10769, i64 1
+ %tmp10771 = getelementptr inbounds float* %tmp10770, i64 1
+ %tmp10772 = getelementptr inbounds float* %tmp10771, i64 1
+ %tmp10773 = getelementptr inbounds float* %tmp10772, i64 1
+ %tmp10774 = getelementptr inbounds float* %tmp10773, i64 1
+ %tmp10775 = getelementptr inbounds float* %tmp10774, i64 1
+ %tmp10776 = getelementptr inbounds float* %tmp10775, i64 1
+ %tmp10777 = getelementptr inbounds float* %tmp10776, i64 1
+ %tmp10778 = getelementptr inbounds float* %tmp10777, i64 1
+ %tmp10779 = getelementptr inbounds float* %tmp10778, i64 1
+ %tmp10780 = getelementptr inbounds float* %tmp10779, i64 1
+ %tmp10781 = getelementptr inbounds float* %tmp10780, i64 1
+ %tmp10782 = getelementptr inbounds float* %tmp10781, i64 1
+ %tmp10783 = getelementptr inbounds float* %tmp10782, i64 1
+ %tmp10784 = getelementptr inbounds float* %tmp10783, i64 1
+ %tmp10785 = getelementptr inbounds float* %tmp10784, i64 1
+ %tmp10786 = getelementptr inbounds float* %tmp10785, i64 1
+ %tmp10787 = getelementptr inbounds float* %tmp10786, i64 1
+ %tmp10788 = getelementptr inbounds float* %tmp10787, i64 1
+ %tmp10789 = getelementptr inbounds float* %tmp10788, i64 1
+ %tmp10790 = getelementptr inbounds float* %tmp10789, i64 1
+ %tmp10791 = getelementptr inbounds float* %tmp10790, i64 1
+ %tmp10792 = getelementptr inbounds float* %tmp10791, i64 1
+ %tmp10793 = getelementptr inbounds float* %tmp10792, i64 1
+ %tmp10794 = getelementptr inbounds float* %tmp10793, i64 1
+ %tmp10795 = getelementptr inbounds float* %tmp10794, i64 1
+ %tmp10796 = getelementptr inbounds float* %tmp10795, i64 1
+ %tmp10797 = getelementptr inbounds float* %tmp10796, i64 1
+ %tmp10798 = getelementptr inbounds float* %tmp10797, i64 1
+ %tmp10799 = getelementptr inbounds float* %tmp10798, i64 1
+ %tmp10800 = getelementptr inbounds float* %tmp10799, i64 1
+ %tmp10801 = getelementptr inbounds float* %tmp10800, i64 1
+ %tmp10802 = getelementptr inbounds float* %tmp10801, i64 1
+ %tmp10803 = getelementptr inbounds float* %tmp10802, i64 1
+ %tmp10804 = getelementptr inbounds float* %tmp10803, i64 1
+ %tmp10805 = getelementptr inbounds float* %tmp10804, i64 1
+ %tmp10806 = getelementptr inbounds float* %tmp10805, i64 1
+ %tmp10807 = getelementptr inbounds float* %tmp10806, i64 1
+ %tmp10808 = getelementptr inbounds float* %tmp10807, i64 1
+ %tmp10809 = getelementptr inbounds float* %tmp10808, i64 1
+ %tmp10810 = getelementptr inbounds float* %tmp10809, i64 1
+ %tmp10811 = getelementptr inbounds float* %tmp10810, i64 1
+ %tmp10812 = getelementptr inbounds float* %tmp10811, i64 1
+ %tmp10813 = getelementptr inbounds float* %tmp10812, i64 1
+ %tmp10814 = getelementptr inbounds float* %tmp10813, i64 1
+ %tmp10815 = getelementptr inbounds float* %tmp10814, i64 1
+ %tmp10816 = getelementptr inbounds float* %tmp10815, i64 1
+ %tmp10817 = getelementptr inbounds float* %tmp10816, i64 1
+ %tmp10818 = getelementptr inbounds float* %tmp10817, i64 1
+ %tmp10819 = getelementptr inbounds float* %tmp10818, i64 1
+ %tmp10820 = getelementptr inbounds float* %tmp10819, i64 1
+ %tmp10821 = getelementptr inbounds float* %tmp10820, i64 1
+ %tmp10822 = getelementptr inbounds float* %tmp10821, i64 1
+ %tmp10823 = getelementptr inbounds float* %tmp10822, i64 1
+ %tmp10824 = getelementptr inbounds float* %tmp10823, i64 1
+ %tmp10825 = getelementptr inbounds float* %tmp10824, i64 1
+ %tmp10826 = getelementptr inbounds float* %tmp10825, i64 1
+ %tmp10827 = getelementptr inbounds float* %tmp10826, i64 1
+ %tmp10828 = getelementptr inbounds float* %tmp10827, i64 1
+ %tmp10829 = getelementptr inbounds float* %tmp10828, i64 1
+ %tmp10830 = getelementptr inbounds float* %tmp10829, i64 1
+ %tmp10831 = getelementptr inbounds float* %tmp10830, i64 1
+ %tmp10832 = getelementptr inbounds float* %tmp10831, i64 1
+ %tmp10833 = getelementptr inbounds float* %tmp10832, i64 1
+ %tmp10834 = getelementptr inbounds float* %tmp10833, i64 1
+ %tmp10835 = getelementptr inbounds float* %tmp10834, i64 1
+ %tmp10836 = getelementptr inbounds float* %tmp10835, i64 1
+ %tmp10837 = getelementptr inbounds float* %tmp10836, i64 1
+ %tmp10838 = getelementptr inbounds float* %tmp10837, i64 1
+ %tmp10839 = getelementptr inbounds float* %tmp10838, i64 1
+ %tmp10840 = getelementptr inbounds float* %tmp10839, i64 1
+ %tmp10841 = getelementptr inbounds float* %tmp10840, i64 1
+ %tmp10842 = getelementptr inbounds float* %tmp10841, i64 1
+ %tmp10843 = getelementptr inbounds float* %tmp10842, i64 1
+ %tmp10844 = getelementptr inbounds float* %tmp10843, i64 1
+ %tmp10845 = getelementptr inbounds float* %tmp10844, i64 1
+ %tmp10846 = getelementptr inbounds float* %tmp10845, i64 1
+ %tmp10847 = getelementptr inbounds float* %tmp10846, i64 1
+ %tmp10848 = getelementptr inbounds float* %tmp10847, i64 1
+ %tmp10849 = getelementptr inbounds float* %tmp10848, i64 1
+ %tmp10850 = getelementptr inbounds float* %tmp10849, i64 1
+ %tmp10851 = getelementptr inbounds float* %tmp10850, i64 1
+ %tmp10852 = getelementptr inbounds float* %tmp10851, i64 1
+ %tmp10853 = getelementptr inbounds float* %tmp10852, i64 1
+ %tmp10854 = getelementptr inbounds float* %tmp10853, i64 1
+ %tmp10855 = getelementptr inbounds float* %tmp10854, i64 1
+ %tmp10856 = getelementptr inbounds float* %tmp10855, i64 1
+ %tmp10857 = getelementptr inbounds float* %tmp10856, i64 1
+ %tmp10858 = getelementptr inbounds float* %tmp10857, i64 1
+ %tmp10859 = getelementptr inbounds float* %tmp10858, i64 1
+ %tmp10860 = getelementptr inbounds float* %tmp10859, i64 1
+ %tmp10861 = getelementptr inbounds float* %tmp10860, i64 1
+ %tmp10862 = getelementptr inbounds float* %tmp10861, i64 1
+ %tmp10863 = getelementptr inbounds float* %tmp10862, i64 1
+ %tmp10864 = getelementptr inbounds float* %tmp10863, i64 1
+ %tmp10865 = getelementptr inbounds float* %tmp10864, i64 1
+ %tmp10866 = getelementptr inbounds float* %tmp10865, i64 1
+ %tmp10867 = getelementptr inbounds float* %tmp10866, i64 1
+ %tmp10868 = getelementptr inbounds float* %tmp10867, i64 1
+ %tmp10869 = getelementptr inbounds float* %tmp10868, i64 1
+ %tmp10870 = getelementptr inbounds float* %tmp10869, i64 1
+ %tmp10871 = getelementptr inbounds float* %tmp10870, i64 1
+ %tmp10872 = getelementptr inbounds float* %tmp10871, i64 1
+ %tmp10873 = getelementptr inbounds float* %tmp10872, i64 1
+ %tmp10874 = getelementptr inbounds float* %tmp10873, i64 1
+ %tmp10875 = getelementptr inbounds float* %tmp10874, i64 1
+ %tmp10876 = getelementptr inbounds float* %tmp10875, i64 1
+ %tmp10877 = getelementptr inbounds float* %tmp10876, i64 1
+ %tmp10878 = getelementptr inbounds float* %tmp10877, i64 1
+ %tmp10879 = getelementptr inbounds float* %tmp10878, i64 1
+ %tmp10880 = getelementptr inbounds float* %tmp10879, i64 1
+ %tmp10881 = getelementptr inbounds float* %tmp10880, i64 1
+ %tmp10882 = getelementptr inbounds float* %tmp10881, i64 1
+ %tmp10883 = getelementptr inbounds float* %tmp10882, i64 1
+ %tmp10884 = getelementptr inbounds float* %tmp10883, i64 1
+ %tmp10885 = getelementptr inbounds float* %tmp10884, i64 1
+ %tmp10886 = getelementptr inbounds float* %tmp10885, i64 1
+ %tmp10887 = getelementptr inbounds float* %tmp10886, i64 1
+ %tmp10888 = getelementptr inbounds float* %tmp10887, i64 1
+ %tmp10889 = getelementptr inbounds float* %tmp10888, i64 1
+ %tmp10890 = getelementptr inbounds float* %tmp10889, i64 1
+ %tmp10891 = getelementptr inbounds float* %tmp10890, i64 1
+ %tmp10892 = getelementptr inbounds float* %tmp10891, i64 1
+ %tmp10893 = getelementptr inbounds float* %tmp10892, i64 1
+ %tmp10894 = getelementptr inbounds float* %tmp10893, i64 1
+ %tmp10895 = getelementptr inbounds float* %tmp10894, i64 1
+ %tmp10896 = getelementptr inbounds float* %tmp10895, i64 1
+ %tmp10897 = getelementptr inbounds float* %tmp10896, i64 1
+ %tmp10898 = getelementptr inbounds float* %tmp10897, i64 1
+ %tmp10899 = getelementptr inbounds float* %tmp10898, i64 1
+ %tmp10900 = getelementptr inbounds float* %tmp10899, i64 1
+ %tmp10901 = getelementptr inbounds float* %tmp10900, i64 1
+ %tmp10902 = getelementptr inbounds float* %tmp10901, i64 1
+ %tmp10903 = getelementptr inbounds float* %tmp10902, i64 1
+ %tmp10904 = getelementptr inbounds float* %tmp10903, i64 1
+ %tmp10905 = getelementptr inbounds float* %tmp10904, i64 1
+ %tmp10906 = getelementptr inbounds float* %tmp10905, i64 1
+ %tmp10907 = getelementptr inbounds float* %tmp10906, i64 1
+ %tmp10908 = getelementptr inbounds float* %tmp10907, i64 1
+ %tmp10909 = getelementptr inbounds float* %tmp10908, i64 1
+ %tmp10910 = getelementptr inbounds float* %tmp10909, i64 1
+ %tmp10911 = getelementptr inbounds float* %tmp10910, i64 1
+ %tmp10912 = getelementptr inbounds float* %tmp10911, i64 1
+ %tmp10913 = getelementptr inbounds float* %tmp10912, i64 1
+ %tmp10914 = getelementptr inbounds float* %tmp10913, i64 1
+ %tmp10915 = getelementptr inbounds float* %tmp10914, i64 1
+ %tmp10916 = getelementptr inbounds float* %tmp10915, i64 1
+ %tmp10917 = getelementptr inbounds float* %tmp10916, i64 1
+ %tmp10918 = getelementptr inbounds float* %tmp10917, i64 1
+ %tmp10919 = getelementptr inbounds float* %tmp10918, i64 1
+ %tmp10920 = getelementptr inbounds float* %tmp10919, i64 1
+ %tmp10921 = getelementptr inbounds float* %tmp10920, i64 1
+ %tmp10922 = getelementptr inbounds float* %tmp10921, i64 1
+ %tmp10923 = getelementptr inbounds float* %tmp10922, i64 1
+ %tmp10924 = getelementptr inbounds float* %tmp10923, i64 1
+ %tmp10925 = getelementptr inbounds float* %tmp10924, i64 1
+ %tmp10926 = getelementptr inbounds float* %tmp10925, i64 1
+ %tmp10927 = getelementptr inbounds float* %tmp10926, i64 1
+ %tmp10928 = getelementptr inbounds float* %tmp10927, i64 1
+ %tmp10929 = getelementptr inbounds float* %tmp10928, i64 1
+ %tmp10930 = getelementptr inbounds float* %tmp10929, i64 1
+ %tmp10931 = getelementptr inbounds float* %tmp10930, i64 1
+ %tmp10932 = getelementptr inbounds float* %tmp10931, i64 1
+ %tmp10933 = getelementptr inbounds float* %tmp10932, i64 1
+ %tmp10934 = getelementptr inbounds float* %tmp10933, i64 1
+ %tmp10935 = getelementptr inbounds float* %tmp10934, i64 1
+ %tmp10936 = getelementptr inbounds float* %tmp10935, i64 1
+ %tmp10937 = getelementptr inbounds float* %tmp10936, i64 1
+ %tmp10938 = getelementptr inbounds float* %tmp10937, i64 1
+ %tmp10939 = getelementptr inbounds float* %tmp10938, i64 1
+ %tmp10940 = getelementptr inbounds float* %tmp10939, i64 1
+ %tmp10941 = getelementptr inbounds float* %tmp10940, i64 1
+ %tmp10942 = getelementptr inbounds float* %tmp10941, i64 1
+ %tmp10943 = getelementptr inbounds float* %tmp10942, i64 1
+ %tmp10944 = getelementptr inbounds float* %tmp10943, i64 1
+ %tmp10945 = getelementptr inbounds float* %tmp10944, i64 1
+ %tmp10946 = getelementptr inbounds float* %tmp10945, i64 1
+ %tmp10947 = getelementptr inbounds float* %tmp10946, i64 1
+ %tmp10948 = getelementptr inbounds float* %tmp10947, i64 1
+ %tmp10949 = getelementptr inbounds float* %tmp10948, i64 1
+ %tmp10950 = getelementptr inbounds float* %tmp10949, i64 1
+ %tmp10951 = getelementptr inbounds float* %tmp10950, i64 1
+ %tmp10952 = getelementptr inbounds float* %tmp10951, i64 1
+ %tmp10953 = getelementptr inbounds float* %tmp10952, i64 1
+ %tmp10954 = getelementptr inbounds float* %tmp10953, i64 1
+ %tmp10955 = getelementptr inbounds float* %tmp10954, i64 1
+ %tmp10956 = getelementptr inbounds float* %tmp10955, i64 1
+ %tmp10957 = getelementptr inbounds float* %tmp10956, i64 1
+ %tmp10958 = getelementptr inbounds float* %tmp10957, i64 1
+ %tmp10959 = getelementptr inbounds float* %tmp10958, i64 1
+ %tmp10960 = getelementptr inbounds float* %tmp10959, i64 1
+ %tmp10961 = getelementptr inbounds float* %tmp10960, i64 1
+ %tmp10962 = getelementptr inbounds float* %tmp10961, i64 1
+ %tmp10963 = getelementptr inbounds float* %tmp10962, i64 1
+ %tmp10964 = getelementptr inbounds float* %tmp10963, i64 1
+ %tmp10965 = getelementptr inbounds float* %tmp10964, i64 1
+ %tmp10966 = getelementptr inbounds float* %tmp10965, i64 1
+ %tmp10967 = getelementptr inbounds float* %tmp10966, i64 1
+ %tmp10968 = getelementptr inbounds float* %tmp10967, i64 1
+ %tmp10969 = getelementptr inbounds float* %tmp10968, i64 1
+ %tmp10970 = getelementptr inbounds float* %tmp10969, i64 1
+ %tmp10971 = getelementptr inbounds float* %tmp10970, i64 1
+ %tmp10972 = getelementptr inbounds float* %tmp10971, i64 1
+ %tmp10973 = getelementptr inbounds float* %tmp10972, i64 1
+ %tmp10974 = getelementptr inbounds float* %tmp10973, i64 1
+ %tmp10975 = getelementptr inbounds float* %tmp10974, i64 1
+ %tmp10976 = getelementptr inbounds float* %tmp10975, i64 1
+ %tmp10977 = getelementptr inbounds float* %tmp10976, i64 1
+ %tmp10978 = getelementptr inbounds float* %tmp10977, i64 1
+ %tmp10979 = getelementptr inbounds float* %tmp10978, i64 1
+ %tmp10980 = getelementptr inbounds float* %tmp10979, i64 1
+ %tmp10981 = getelementptr inbounds float* %tmp10980, i64 1
+ %tmp10982 = getelementptr inbounds float* %tmp10981, i64 1
+ %tmp10983 = getelementptr inbounds float* %tmp10982, i64 1
+ %tmp10984 = getelementptr inbounds float* %tmp10983, i64 1
+ %tmp10985 = getelementptr inbounds float* %tmp10984, i64 1
+ %tmp10986 = getelementptr inbounds float* %tmp10985, i64 1
+ %tmp10987 = getelementptr inbounds float* %tmp10986, i64 1
+ %tmp10988 = getelementptr inbounds float* %tmp10987, i64 1
+ %tmp10989 = getelementptr inbounds float* %tmp10988, i64 1
+ %tmp10990 = getelementptr inbounds float* %tmp10989, i64 1
+ %tmp10991 = getelementptr inbounds float* %tmp10990, i64 1
+ %tmp10992 = getelementptr inbounds float* %tmp10991, i64 1
+ %tmp10993 = getelementptr inbounds float* %tmp10992, i64 1
+ %tmp10994 = getelementptr inbounds float* %tmp10993, i64 1
+ %tmp10995 = getelementptr inbounds float* %tmp10994, i64 1
+ %tmp10996 = getelementptr inbounds float* %tmp10995, i64 1
+ %tmp10997 = getelementptr inbounds float* %tmp10996, i64 1
+ %tmp10998 = getelementptr inbounds float* %tmp10997, i64 1
+ %tmp10999 = getelementptr inbounds float* %tmp10998, i64 1
+ %tmp11000 = getelementptr inbounds float* %tmp10999, i64 1
+ %tmp11001 = getelementptr inbounds float* %tmp11000, i64 1
+ %tmp11002 = getelementptr inbounds float* %tmp11001, i64 1
+ %tmp11003 = getelementptr inbounds float* %tmp11002, i64 1
+ %tmp11004 = getelementptr inbounds float* %tmp11003, i64 1
+ %tmp11005 = getelementptr inbounds float* %tmp11004, i64 1
+ %tmp11006 = getelementptr inbounds float* %tmp11005, i64 1
+ %tmp11007 = getelementptr inbounds float* %tmp11006, i64 1
+ %tmp11008 = getelementptr inbounds float* %tmp11007, i64 1
+ %tmp11009 = getelementptr inbounds float* %tmp11008, i64 1
+ %tmp11010 = getelementptr inbounds float* %tmp11009, i64 1
+ %tmp11011 = getelementptr inbounds float* %tmp11010, i64 1
+ %tmp11012 = getelementptr inbounds float* %tmp11011, i64 1
+ %tmp11013 = getelementptr inbounds float* %tmp11012, i64 1
+ %tmp11014 = getelementptr inbounds float* %tmp11013, i64 1
+ %tmp11015 = getelementptr inbounds float* %tmp11014, i64 1
+ %tmp11016 = getelementptr inbounds float* %tmp11015, i64 1
+ %tmp11017 = getelementptr inbounds float* %tmp11016, i64 1
+ %tmp11018 = getelementptr inbounds float* %tmp11017, i64 1
+ %tmp11019 = getelementptr inbounds float* %tmp11018, i64 1
+ %tmp11020 = getelementptr inbounds float* %tmp11019, i64 1
+ %tmp11021 = getelementptr inbounds float* %tmp11020, i64 1
+ %tmp11022 = getelementptr inbounds float* %tmp11021, i64 1
+ %tmp11023 = getelementptr inbounds float* %tmp11022, i64 1
+ %tmp11024 = getelementptr inbounds float* %tmp11023, i64 1
+ %tmp11025 = getelementptr inbounds float* %tmp11024, i64 1
+ %tmp11026 = getelementptr inbounds float* %tmp11025, i64 1
+ %tmp11027 = getelementptr inbounds float* %tmp11026, i64 1
+ %tmp11028 = getelementptr inbounds float* %tmp11027, i64 1
+ %tmp11029 = getelementptr inbounds float* %tmp11028, i64 1
+ %tmp11030 = getelementptr inbounds float* %tmp11029, i64 1
+ %tmp11031 = getelementptr inbounds float* %tmp11030, i64 1
+ %tmp11032 = getelementptr inbounds float* %tmp11031, i64 1
+ %tmp11033 = getelementptr inbounds float* %tmp11032, i64 1
+ %tmp11034 = getelementptr inbounds float* %tmp11033, i64 1
+ %tmp11035 = getelementptr inbounds float* %tmp11034, i64 1
+ %tmp11036 = getelementptr inbounds float* %tmp11035, i64 1
+ %tmp11037 = getelementptr inbounds float* %tmp11036, i64 1
+ %tmp11038 = getelementptr inbounds float* %tmp11037, i64 1
+ %tmp11039 = getelementptr inbounds float* %tmp11038, i64 1
+ %tmp11040 = getelementptr inbounds float* %tmp11039, i64 1
+ %tmp11041 = getelementptr inbounds float* %tmp11040, i64 1
+ %tmp11042 = getelementptr inbounds float* %tmp11041, i64 1
+ %tmp11043 = getelementptr inbounds float* %tmp11042, i64 1
+ %tmp11044 = getelementptr inbounds float* %tmp11043, i64 1
+ %tmp11045 = getelementptr inbounds float* %tmp11044, i64 1
+ %tmp11046 = getelementptr inbounds float* %tmp11045, i64 1
+ %tmp11047 = getelementptr inbounds float* %tmp11046, i64 1
+ %tmp11048 = getelementptr inbounds float* %tmp11047, i64 1
+ %tmp11049 = getelementptr inbounds float* %tmp11048, i64 1
+ %tmp11050 = getelementptr inbounds float* %tmp11049, i64 1
+ %tmp11051 = getelementptr inbounds float* %tmp11050, i64 1
+ %tmp11052 = getelementptr inbounds float* %tmp11051, i64 1
+ %tmp11053 = getelementptr inbounds float* %tmp11052, i64 1
+ %tmp11054 = getelementptr inbounds float* %tmp11053, i64 1
+ %tmp11055 = getelementptr inbounds float* %tmp11054, i64 1
+ %tmp11056 = getelementptr inbounds float* %tmp11055, i64 1
+ %tmp11057 = getelementptr inbounds float* %tmp11056, i64 1
+ %tmp11058 = getelementptr inbounds float* %tmp11057, i64 1
+ %tmp11059 = getelementptr inbounds float* %tmp11058, i64 1
+ %tmp11060 = getelementptr inbounds float* %tmp11059, i64 1
+ %tmp11061 = getelementptr inbounds float* %tmp11060, i64 1
+ %tmp11062 = getelementptr inbounds float* %tmp11061, i64 1
+ %tmp11063 = getelementptr inbounds float* %tmp11062, i64 1
+ %tmp11064 = getelementptr inbounds float* %tmp11063, i64 1
+ %tmp11065 = getelementptr inbounds float* %tmp11064, i64 1
+ %tmp11066 = getelementptr inbounds float* %tmp11065, i64 1
+ %tmp11067 = getelementptr inbounds float* %tmp11066, i64 1
+ %tmp11068 = getelementptr inbounds float* %tmp11067, i64 1
+ %tmp11069 = getelementptr inbounds float* %tmp11068, i64 1
+ %tmp11070 = getelementptr inbounds float* %tmp11069, i64 1
+ %tmp11071 = getelementptr inbounds float* %tmp11070, i64 1
+ %tmp11072 = getelementptr inbounds float* %tmp11071, i64 1
+ %tmp11073 = getelementptr inbounds float* %tmp11072, i64 1
+ %tmp11074 = getelementptr inbounds float* %tmp11073, i64 1
+ %tmp11075 = getelementptr inbounds float* %tmp11074, i64 1
+ %tmp11076 = getelementptr inbounds float* %tmp11075, i64 1
+ %tmp11077 = getelementptr inbounds float* %tmp11076, i64 1
+ %tmp11078 = getelementptr inbounds float* %tmp11077, i64 1
+ %tmp11079 = getelementptr inbounds float* %tmp11078, i64 1
+ %tmp11080 = getelementptr inbounds float* %tmp11079, i64 1
+ %tmp11081 = getelementptr inbounds float* %tmp11080, i64 1
+ %tmp11082 = getelementptr inbounds float* %tmp11081, i64 1
+ %tmp11083 = getelementptr inbounds float* %tmp11082, i64 1
+ %tmp11084 = getelementptr inbounds float* %tmp11083, i64 1
+ %tmp11085 = getelementptr inbounds float* %tmp11084, i64 1
+ %tmp11086 = getelementptr inbounds float* %tmp11085, i64 1
+ %tmp11087 = getelementptr inbounds float* %tmp11086, i64 1
+ %tmp11088 = getelementptr inbounds float* %tmp11087, i64 1
+ %tmp11089 = getelementptr inbounds float* %tmp11088, i64 1
+ %tmp11090 = getelementptr inbounds float* %tmp11089, i64 1
+ %tmp11091 = getelementptr inbounds float* %tmp11090, i64 1
+ %tmp11092 = getelementptr inbounds float* %tmp11091, i64 1
+ %tmp11093 = getelementptr inbounds float* %tmp11092, i64 1
+ %tmp11094 = getelementptr inbounds float* %tmp11093, i64 1
+ %tmp11095 = getelementptr inbounds float* %tmp11094, i64 1
+ %tmp11096 = getelementptr inbounds float* %tmp11095, i64 1
+ %tmp11097 = getelementptr inbounds float* %tmp11096, i64 1
+ %tmp11098 = getelementptr inbounds float* %tmp11097, i64 1
+ %tmp11099 = getelementptr inbounds float* %tmp11098, i64 1
+ %tmp11100 = getelementptr inbounds float* %tmp11099, i64 1
+ %tmp11101 = getelementptr inbounds float* %tmp11100, i64 1
+ %tmp11102 = getelementptr inbounds float* %tmp11101, i64 1
+ %tmp11103 = getelementptr inbounds float* %tmp11102, i64 1
+ %tmp11104 = getelementptr inbounds float* %tmp11103, i64 1
+ %tmp11105 = getelementptr inbounds float* %tmp11104, i64 1
+ %tmp11106 = getelementptr inbounds float* %tmp11105, i64 1
+ %tmp11107 = getelementptr inbounds float* %tmp11106, i64 1
+ %tmp11108 = getelementptr inbounds float* %tmp11107, i64 1
+ %tmp11109 = getelementptr inbounds float* %tmp11108, i64 1
+ %tmp11110 = getelementptr inbounds float* %tmp11109, i64 1
+ %tmp11111 = getelementptr inbounds float* %tmp11110, i64 1
+ %tmp11112 = getelementptr inbounds float* %tmp11111, i64 1
+ %tmp11113 = getelementptr inbounds float* %tmp11112, i64 1
+ %tmp11114 = getelementptr inbounds float* %tmp11113, i64 1
+ %tmp11115 = getelementptr inbounds float* %tmp11114, i64 1
+ %tmp11116 = getelementptr inbounds float* %tmp11115, i64 1
+ %tmp11117 = getelementptr inbounds float* %tmp11116, i64 1
+ %tmp11118 = getelementptr inbounds float* %tmp11117, i64 1
+ %tmp11119 = getelementptr inbounds float* %tmp11118, i64 1
+ %tmp11120 = getelementptr inbounds float* %tmp11119, i64 1
+ %tmp11121 = getelementptr inbounds float* %tmp11120, i64 1
+ %tmp11122 = getelementptr inbounds float* %tmp11121, i64 1
+ %tmp11123 = getelementptr inbounds float* %tmp11122, i64 1
+ %tmp11124 = getelementptr inbounds float* %tmp11123, i64 1
+ %tmp11125 = getelementptr inbounds float* %tmp11124, i64 1
+ %tmp11126 = getelementptr inbounds float* %tmp11125, i64 1
+ %tmp11127 = getelementptr inbounds float* %tmp11126, i64 1
+ %tmp11128 = getelementptr inbounds float* %tmp11127, i64 1
+ %tmp11129 = getelementptr inbounds float* %tmp11128, i64 1
+ %tmp11130 = getelementptr inbounds float* %tmp11129, i64 1
+ %tmp11131 = getelementptr inbounds float* %tmp11130, i64 1
+ %tmp11132 = getelementptr inbounds float* %tmp11131, i64 1
+ %tmp11133 = getelementptr inbounds float* %tmp11132, i64 1
+ %tmp11134 = getelementptr inbounds float* %tmp11133, i64 1
+ %tmp11135 = getelementptr inbounds float* %tmp11134, i64 1
+ %tmp11136 = getelementptr inbounds float* %tmp11135, i64 1
+ %tmp11137 = getelementptr inbounds float* %tmp11136, i64 1
+ %tmp11138 = getelementptr inbounds float* %tmp11137, i64 1
+ %tmp11139 = getelementptr inbounds float* %tmp11138, i64 1
+ %tmp11140 = getelementptr inbounds float* %tmp11139, i64 1
+ %tmp11141 = getelementptr inbounds float* %tmp11140, i64 1
+ %tmp11142 = getelementptr inbounds float* %tmp11141, i64 1
+ %tmp11143 = getelementptr inbounds float* %tmp11142, i64 1
+ %tmp11144 = getelementptr inbounds float* %tmp11143, i64 1
+ %tmp11145 = getelementptr inbounds float* %tmp11144, i64 1
+ %tmp11146 = getelementptr inbounds float* %tmp11145, i64 1
+ %tmp11147 = getelementptr inbounds float* %tmp11146, i64 1
+ %tmp11148 = getelementptr inbounds float* %tmp11147, i64 1
+ %tmp11149 = getelementptr inbounds float* %tmp11148, i64 1
+ %tmp11150 = getelementptr inbounds float* %tmp11149, i64 1
+ %tmp11151 = getelementptr inbounds float* %tmp11150, i64 1
+ %tmp11152 = getelementptr inbounds float* %tmp11151, i64 1
+ %tmp11153 = getelementptr inbounds float* %tmp11152, i64 1
+ %tmp11154 = getelementptr inbounds float* %tmp11153, i64 1
+ %tmp11155 = getelementptr inbounds float* %tmp11154, i64 1
+ %tmp11156 = getelementptr inbounds float* %tmp11155, i64 1
+ %tmp11157 = getelementptr inbounds float* %tmp11156, i64 1
+ %tmp11158 = getelementptr inbounds float* %tmp11157, i64 1
+ %tmp11159 = getelementptr inbounds float* %tmp11158, i64 1
+ %tmp11160 = getelementptr inbounds float* %tmp11159, i64 1
+ %tmp11161 = getelementptr inbounds float* %tmp11160, i64 1
+ %tmp11162 = getelementptr inbounds float* %tmp11161, i64 1
+ %tmp11163 = getelementptr inbounds float* %tmp11162, i64 1
+ %tmp11164 = getelementptr inbounds float* %tmp11163, i64 1
+ %tmp11165 = getelementptr inbounds float* %tmp11164, i64 1
+ %tmp11166 = getelementptr inbounds float* %tmp11165, i64 1
+ %tmp11167 = getelementptr inbounds float* %tmp11166, i64 1
+ %tmp11168 = getelementptr inbounds float* %tmp11167, i64 1
+ %tmp11169 = getelementptr inbounds float* %tmp11168, i64 1
+ %tmp11170 = getelementptr inbounds float* %tmp11169, i64 1
+ %tmp11171 = getelementptr inbounds float* %tmp11170, i64 1
+ %tmp11172 = getelementptr inbounds float* %tmp11171, i64 1
+ %tmp11173 = getelementptr inbounds float* %tmp11172, i64 1
+ %tmp11174 = getelementptr inbounds float* %tmp11173, i64 1
+ %tmp11175 = getelementptr inbounds float* %tmp11174, i64 1
+ %tmp11176 = getelementptr inbounds float* %tmp11175, i64 1
+ %tmp11177 = getelementptr inbounds float* %tmp11176, i64 1
+ %tmp11178 = getelementptr inbounds float* %tmp11177, i64 1
+ %tmp11179 = getelementptr inbounds float* %tmp11178, i64 1
+ %tmp11180 = getelementptr inbounds float* %tmp11179, i64 1
+ %tmp11181 = getelementptr inbounds float* %tmp11180, i64 1
+ %tmp11182 = getelementptr inbounds float* %tmp11181, i64 1
+ %tmp11183 = getelementptr inbounds float* %tmp11182, i64 1
+ %tmp11184 = getelementptr inbounds float* %tmp11183, i64 1
+ %tmp11185 = getelementptr inbounds float* %tmp11184, i64 1
+ %tmp11186 = getelementptr inbounds float* %tmp11185, i64 1
+ %tmp11187 = getelementptr inbounds float* %tmp11186, i64 1
+ %tmp11188 = getelementptr inbounds float* %tmp11187, i64 1
+ %tmp11189 = getelementptr inbounds float* %tmp11188, i64 1
+ %tmp11190 = getelementptr inbounds float* %tmp11189, i64 1
+ %tmp11191 = getelementptr inbounds float* %tmp11190, i64 1
+ %tmp11192 = getelementptr inbounds float* %tmp11191, i64 1
+ %tmp11193 = getelementptr inbounds float* %tmp11192, i64 1
+ %tmp11194 = getelementptr inbounds float* %tmp11193, i64 1
+ %tmp11195 = getelementptr inbounds float* %tmp11194, i64 1
+ %tmp11196 = getelementptr inbounds float* %tmp11195, i64 1
+ %tmp11197 = getelementptr inbounds float* %tmp11196, i64 1
+ %tmp11198 = getelementptr inbounds float* %tmp11197, i64 1
+ %tmp11199 = getelementptr inbounds float* %tmp11198, i64 1
+ %tmp11200 = getelementptr inbounds float* %tmp11199, i64 1
+ %tmp11201 = getelementptr inbounds float* %tmp11200, i64 1
+ %tmp11202 = getelementptr inbounds float* %tmp11201, i64 1
+ %tmp11203 = getelementptr inbounds float* %tmp11202, i64 1
+ %tmp11204 = getelementptr inbounds float* %tmp11203, i64 1
+ %tmp11205 = getelementptr inbounds float* %tmp11204, i64 1
+ %tmp11206 = getelementptr inbounds float* %tmp11205, i64 1
+ %tmp11207 = getelementptr inbounds float* %tmp11206, i64 1
+ %tmp11208 = getelementptr inbounds float* %tmp11207, i64 1
+ %tmp11209 = getelementptr inbounds float* %tmp11208, i64 1
+ %tmp11210 = getelementptr inbounds float* %tmp11209, i64 1
+ %tmp11211 = getelementptr inbounds float* %tmp11210, i64 1
+ %tmp11212 = getelementptr inbounds float* %tmp11211, i64 1
+ %tmp11213 = getelementptr inbounds float* %tmp11212, i64 1
+ %tmp11214 = getelementptr inbounds float* %tmp11213, i64 1
+ %tmp11215 = getelementptr inbounds float* %tmp11214, i64 1
+ %tmp11216 = getelementptr inbounds float* %tmp11215, i64 1
+ %tmp11217 = getelementptr inbounds float* %tmp11216, i64 1
+ %tmp11218 = getelementptr inbounds float* %tmp11217, i64 1
+ %tmp11219 = getelementptr inbounds float* %tmp11218, i64 1
+ %tmp11220 = getelementptr inbounds float* %tmp11219, i64 1
+ %tmp11221 = getelementptr inbounds float* %tmp11220, i64 1
+ %tmp11222 = getelementptr inbounds float* %tmp11221, i64 1
+ %tmp11223 = getelementptr inbounds float* %tmp11222, i64 1
+ %tmp11224 = getelementptr inbounds float* %tmp11223, i64 1
+ %tmp11225 = getelementptr inbounds float* %tmp11224, i64 1
+ %tmp11226 = getelementptr inbounds float* %tmp11225, i64 1
+ %tmp11227 = getelementptr inbounds float* %tmp11226, i64 1
+ %tmp11228 = getelementptr inbounds float* %tmp11227, i64 1
+ %tmp11229 = getelementptr inbounds float* %tmp11228, i64 1
+ %tmp11230 = getelementptr inbounds float* %tmp11229, i64 1
+ %tmp11231 = getelementptr inbounds float* %tmp11230, i64 1
+ %tmp11232 = getelementptr inbounds float* %tmp11231, i64 1
+ %tmp11233 = getelementptr inbounds float* %tmp11232, i64 1
+ %tmp11234 = getelementptr inbounds float* %tmp11233, i64 1
+ %tmp11235 = getelementptr inbounds float* %tmp11234, i64 1
+ %tmp11236 = getelementptr inbounds float* %tmp11235, i64 1
+ %tmp11237 = getelementptr inbounds float* %tmp11236, i64 1
+ %tmp11238 = getelementptr inbounds float* %tmp11237, i64 1
+ %tmp11239 = getelementptr inbounds float* %tmp11238, i64 1
+ %tmp11240 = getelementptr inbounds float* %tmp11239, i64 1
+ %tmp11241 = getelementptr inbounds float* %tmp11240, i64 1
+ %tmp11242 = getelementptr inbounds float* %tmp11241, i64 1
+ %tmp11243 = getelementptr inbounds float* %tmp11242, i64 1
+ %tmp11244 = getelementptr inbounds float* %tmp11243, i64 1
+ %tmp11245 = getelementptr inbounds float* %tmp11244, i64 1
+ %tmp11246 = getelementptr inbounds float* %tmp11245, i64 1
+ %tmp11247 = getelementptr inbounds float* %tmp11246, i64 1
+ %tmp11248 = getelementptr inbounds float* %tmp11247, i64 1
+ %tmp11249 = getelementptr inbounds float* %tmp11248, i64 1
+ %tmp11250 = getelementptr inbounds float* %tmp11249, i64 1
+ %tmp11251 = getelementptr inbounds float* %tmp11250, i64 1
+ %tmp11252 = getelementptr inbounds float* %tmp11251, i64 1
+ %tmp11253 = getelementptr inbounds float* %tmp11252, i64 1
+ %tmp11254 = getelementptr inbounds float* %tmp11253, i64 1
+ %tmp11255 = getelementptr inbounds float* %tmp11254, i64 1
+ %tmp11256 = getelementptr inbounds float* %tmp11255, i64 1
+ %tmp11257 = getelementptr inbounds float* %tmp11256, i64 1
+ %tmp11258 = getelementptr inbounds float* %tmp11257, i64 1
+ %tmp11259 = getelementptr inbounds float* %tmp11258, i64 1
+ %tmp11260 = getelementptr inbounds float* %tmp11259, i64 1
+ %tmp11261 = getelementptr inbounds float* %tmp11260, i64 1
+ %tmp11262 = getelementptr inbounds float* %tmp11261, i64 1
+ %tmp11263 = getelementptr inbounds float* %tmp11262, i64 1
+ %tmp11264 = getelementptr inbounds float* %tmp11263, i64 1
+ %tmp11265 = getelementptr inbounds float* %tmp11264, i64 1
+ %tmp11266 = getelementptr inbounds float* %tmp11265, i64 1
+ %tmp11267 = getelementptr inbounds float* %tmp11266, i64 1
+ %tmp11268 = getelementptr inbounds float* %tmp11267, i64 1
+ %tmp11269 = getelementptr inbounds float* %tmp11268, i64 1
+ %tmp11270 = getelementptr inbounds float* %tmp11269, i64 1
+ %tmp11271 = getelementptr inbounds float* %tmp11270, i64 1
+ %tmp11272 = getelementptr inbounds float* %tmp11271, i64 1
+ %tmp11273 = getelementptr inbounds float* %tmp11272, i64 1
+ %tmp11274 = getelementptr inbounds float* %tmp11273, i64 1
+ %tmp11275 = getelementptr inbounds float* %tmp11274, i64 1
+ %tmp11276 = getelementptr inbounds float* %tmp11275, i64 1
+ %tmp11277 = getelementptr inbounds float* %tmp11276, i64 1
+ %tmp11278 = getelementptr inbounds float* %tmp11277, i64 1
+ %tmp11279 = getelementptr inbounds float* %tmp11278, i64 1
+ %tmp11280 = getelementptr inbounds float* %tmp11279, i64 1
+ %tmp11281 = getelementptr inbounds float* %tmp11280, i64 1
+ %tmp11282 = getelementptr inbounds float* %tmp11281, i64 1
+ %tmp11283 = getelementptr inbounds float* %tmp11282, i64 1
+ %tmp11284 = getelementptr inbounds float* %tmp11283, i64 1
+ %tmp11285 = getelementptr inbounds float* %tmp11284, i64 1
+ %tmp11286 = getelementptr inbounds float* %tmp11285, i64 1
+ %tmp11287 = getelementptr inbounds float* %tmp11286, i64 1
+ %tmp11288 = getelementptr inbounds float* %tmp11287, i64 1
+ %tmp11289 = getelementptr inbounds float* %tmp11288, i64 1
+ %tmp11290 = getelementptr inbounds float* %tmp11289, i64 1
+ %tmp11291 = getelementptr inbounds float* %tmp11290, i64 1
+ %tmp11292 = getelementptr inbounds float* %tmp11291, i64 1
+ %tmp11293 = getelementptr inbounds float* %tmp11292, i64 1
+ %tmp11294 = getelementptr inbounds float* %tmp11293, i64 1
+ %tmp11295 = getelementptr inbounds float* %tmp11294, i64 1
+ %tmp11296 = getelementptr inbounds float* %tmp11295, i64 1
+ %tmp11297 = getelementptr inbounds float* %tmp11296, i64 1
+ %tmp11298 = getelementptr inbounds float* %tmp11297, i64 1
+ %tmp11299 = getelementptr inbounds float* %tmp11298, i64 1
+ %tmp11300 = getelementptr inbounds float* %tmp11299, i64 1
+ %tmp11301 = getelementptr inbounds float* %tmp11300, i64 1
+ %tmp11302 = getelementptr inbounds float* %tmp11301, i64 1
+ %tmp11303 = getelementptr inbounds float* %tmp11302, i64 1
+ %tmp11304 = getelementptr inbounds float* %tmp11303, i64 1
+ %tmp11305 = getelementptr inbounds float* %tmp11304, i64 1
+ %tmp11306 = getelementptr inbounds float* %tmp11305, i64 1
+ %tmp11307 = getelementptr inbounds float* %tmp11306, i64 1
+ %tmp11308 = getelementptr inbounds float* %tmp11307, i64 1
+ %tmp11309 = getelementptr inbounds float* %tmp11308, i64 1
+ %tmp11310 = getelementptr inbounds float* %tmp11309, i64 1
+ %tmp11311 = getelementptr inbounds float* %tmp11310, i64 1
+ %tmp11312 = getelementptr inbounds float* %tmp11311, i64 1
+ %tmp11313 = getelementptr inbounds float* %tmp11312, i64 1
+ %tmp11314 = getelementptr inbounds float* %tmp11313, i64 1
+ %tmp11315 = getelementptr inbounds float* %tmp11314, i64 1
+ %tmp11316 = getelementptr inbounds float* %tmp11315, i64 1
+ %tmp11317 = getelementptr inbounds float* %tmp11316, i64 1
+ %tmp11318 = getelementptr inbounds float* %tmp11317, i64 1
+ %tmp11319 = getelementptr inbounds float* %tmp11318, i64 1
+ %tmp11320 = getelementptr inbounds float* %tmp11319, i64 1
+ %tmp11321 = getelementptr inbounds float* %tmp11320, i64 1
+ %tmp11322 = getelementptr inbounds float* %tmp11321, i64 1
+ %tmp11323 = getelementptr inbounds float* %tmp11322, i64 1
+ %tmp11324 = getelementptr inbounds float* %tmp11323, i64 1
+ %tmp11325 = getelementptr inbounds float* %tmp11324, i64 1
+ %tmp11326 = getelementptr inbounds float* %tmp11325, i64 1
+ %tmp11327 = getelementptr inbounds float* %tmp11326, i64 1
+ %tmp11328 = getelementptr inbounds float* %tmp11327, i64 1
+ %tmp11329 = getelementptr inbounds float* %tmp11328, i64 1
+ %tmp11330 = getelementptr inbounds float* %tmp11329, i64 1
+ %tmp11331 = getelementptr inbounds float* %tmp11330, i64 1
+ %tmp11332 = getelementptr inbounds float* %tmp11331, i64 1
+ %tmp11333 = getelementptr inbounds float* %tmp11332, i64 1
+ %tmp11334 = getelementptr inbounds float* %tmp11333, i64 1
+ %tmp11335 = getelementptr inbounds float* %tmp11334, i64 1
+ %tmp11336 = getelementptr inbounds float* %tmp11335, i64 1
+ %tmp11337 = getelementptr inbounds float* %tmp11336, i64 1
+ %tmp11338 = getelementptr inbounds float* %tmp11337, i64 1
+ %tmp11339 = getelementptr inbounds float* %tmp11338, i64 1
+ %tmp11340 = getelementptr inbounds float* %tmp11339, i64 1
+ %tmp11341 = getelementptr inbounds float* %tmp11340, i64 1
+ %tmp11342 = getelementptr inbounds float* %tmp11341, i64 1
+ %tmp11343 = getelementptr inbounds float* %tmp11342, i64 1
+ %tmp11344 = getelementptr inbounds float* %tmp11343, i64 1
+ %tmp11345 = getelementptr inbounds float* %tmp11344, i64 1
+ %tmp11346 = getelementptr inbounds float* %tmp11345, i64 1
+ %tmp11347 = getelementptr inbounds float* %tmp11346, i64 1
+ %tmp11348 = getelementptr inbounds float* %tmp11347, i64 1
+ %tmp11349 = getelementptr inbounds float* %tmp11348, i64 1
+ %tmp11350 = getelementptr inbounds float* %tmp11349, i64 1
+ %tmp11351 = getelementptr inbounds float* %tmp11350, i64 1
+ %tmp11352 = getelementptr inbounds float* %tmp11351, i64 1
+ %tmp11353 = getelementptr inbounds float* %tmp11352, i64 1
+ %tmp11354 = getelementptr inbounds float* %tmp11353, i64 1
+ %tmp11355 = getelementptr inbounds float* %tmp11354, i64 1
+ %tmp11356 = getelementptr inbounds float* %tmp11355, i64 1
+ %tmp11357 = getelementptr inbounds float* %tmp11356, i64 1
+ %tmp11358 = getelementptr inbounds float* %tmp11357, i64 1
+ %tmp11359 = getelementptr inbounds float* %tmp11358, i64 1
+ %tmp11360 = getelementptr inbounds float* %tmp11359, i64 1
+ %tmp11361 = getelementptr inbounds float* %tmp11360, i64 1
+ %tmp11362 = getelementptr inbounds float* %tmp11361, i64 1
+ %tmp11363 = getelementptr inbounds float* %tmp11362, i64 1
+ %tmp11364 = getelementptr inbounds float* %tmp11363, i64 1
+ %tmp11365 = getelementptr inbounds float* %tmp11364, i64 1
+ %tmp11366 = getelementptr inbounds float* %tmp11365, i64 1
+ %tmp11367 = getelementptr inbounds float* %tmp11366, i64 1
+ %tmp11368 = getelementptr inbounds float* %tmp11367, i64 1
+ %tmp11369 = getelementptr inbounds float* %tmp11368, i64 1
+ %tmp11370 = getelementptr inbounds float* %tmp11369, i64 1
+ %tmp11371 = getelementptr inbounds float* %tmp11370, i64 1
+ %tmp11372 = getelementptr inbounds float* %tmp11371, i64 1
+ %tmp11373 = getelementptr inbounds float* %tmp11372, i64 1
+ %tmp11374 = getelementptr inbounds float* %tmp11373, i64 1
+ %tmp11375 = getelementptr inbounds float* %tmp11374, i64 1
+ %tmp11376 = getelementptr inbounds float* %tmp11375, i64 1
+ %tmp11377 = getelementptr inbounds float* %tmp11376, i64 1
+ %tmp11378 = getelementptr inbounds float* %tmp11377, i64 1
+ %tmp11379 = getelementptr inbounds float* %tmp11378, i64 1
+ %tmp11380 = getelementptr inbounds float* %tmp11379, i64 1
+ %tmp11381 = getelementptr inbounds float* %tmp11380, i64 1
+ %tmp11382 = getelementptr inbounds float* %tmp11381, i64 1
+ %tmp11383 = getelementptr inbounds float* %tmp11382, i64 1
+ %tmp11384 = getelementptr inbounds float* %tmp11383, i64 1
+ %tmp11385 = getelementptr inbounds float* %tmp11384, i64 1
+ %tmp11386 = getelementptr inbounds float* %tmp11385, i64 1
+ %tmp11387 = getelementptr inbounds float* %tmp11386, i64 1
+ %tmp11388 = getelementptr inbounds float* %tmp11387, i64 1
+ %tmp11389 = getelementptr inbounds float* %tmp11388, i64 1
+ %tmp11390 = getelementptr inbounds float* %tmp11389, i64 1
+ %tmp11391 = getelementptr inbounds float* %tmp11390, i64 1
+ %tmp11392 = getelementptr inbounds float* %tmp11391, i64 1
+ %tmp11393 = getelementptr inbounds float* %tmp11392, i64 1
+ %tmp11394 = getelementptr inbounds float* %tmp11393, i64 1
+ %tmp11395 = getelementptr inbounds float* %tmp11394, i64 1
+ %tmp11396 = getelementptr inbounds float* %tmp11395, i64 1
+ %tmp11397 = getelementptr inbounds float* %tmp11396, i64 1
+ %tmp11398 = getelementptr inbounds float* %tmp11397, i64 1
+ %tmp11399 = getelementptr inbounds float* %tmp11398, i64 1
+ %tmp11400 = getelementptr inbounds float* %tmp11399, i64 1
+ %tmp11401 = getelementptr inbounds float* %tmp11400, i64 1
+ %tmp11402 = getelementptr inbounds float* %tmp11401, i64 1
+ %tmp11403 = getelementptr inbounds float* %tmp11402, i64 1
+ %tmp11404 = getelementptr inbounds float* %tmp11403, i64 1
+ %tmp11405 = getelementptr inbounds float* %tmp11404, i64 1
+ %tmp11406 = getelementptr inbounds float* %tmp11405, i64 1
+ %tmp11407 = getelementptr inbounds float* %tmp11406, i64 1
+ %tmp11408 = getelementptr inbounds float* %tmp11407, i64 1
+ %tmp11409 = getelementptr inbounds float* %tmp11408, i64 1
+ %tmp11410 = getelementptr inbounds float* %tmp11409, i64 1
+ %tmp11411 = getelementptr inbounds float* %tmp11410, i64 1
+ %tmp11412 = getelementptr inbounds float* %tmp11411, i64 1
+ %tmp11413 = getelementptr inbounds float* %tmp11412, i64 1
+ %tmp11414 = getelementptr inbounds float* %tmp11413, i64 1
+ %tmp11415 = getelementptr inbounds float* %tmp11414, i64 1
+ %tmp11416 = getelementptr inbounds float* %tmp11415, i64 1
+ %tmp11417 = getelementptr inbounds float* %tmp11416, i64 1
+ %tmp11418 = getelementptr inbounds float* %tmp11417, i64 1
+ %tmp11419 = getelementptr inbounds float* %tmp11418, i64 1
+ %tmp11420 = getelementptr inbounds float* %tmp11419, i64 1
+ %tmp11421 = getelementptr inbounds float* %tmp11420, i64 1
+ %tmp11422 = getelementptr inbounds float* %tmp11421, i64 1
+ %tmp11423 = getelementptr inbounds float* %tmp11422, i64 1
+ %tmp11424 = getelementptr inbounds float* %tmp11423, i64 1
+ %tmp11425 = getelementptr inbounds float* %tmp11424, i64 1
+ %tmp11426 = getelementptr inbounds float* %tmp11425, i64 1
+ %tmp11427 = getelementptr inbounds float* %tmp11426, i64 1
+ %tmp11428 = getelementptr inbounds float* %tmp11427, i64 1
+ %tmp11429 = getelementptr inbounds float* %tmp11428, i64 1
+ %tmp11430 = getelementptr inbounds float* %tmp11429, i64 1
+ %tmp11431 = getelementptr inbounds float* %tmp11430, i64 1
+ %tmp11432 = getelementptr inbounds float* %tmp11431, i64 1
+ %tmp11433 = getelementptr inbounds float* %tmp11432, i64 1
+ %tmp11434 = getelementptr inbounds float* %tmp11433, i64 1
+ %tmp11435 = getelementptr inbounds float* %tmp11434, i64 1
+ %tmp11436 = getelementptr inbounds float* %tmp11435, i64 1
+ %tmp11437 = getelementptr inbounds float* %tmp11436, i64 1
+ %tmp11438 = getelementptr inbounds float* %tmp11437, i64 1
+ %tmp11439 = getelementptr inbounds float* %tmp11438, i64 1
+ %tmp11440 = getelementptr inbounds float* %tmp11439, i64 1
+ %tmp11441 = getelementptr inbounds float* %tmp11440, i64 1
+ %tmp11442 = getelementptr inbounds float* %tmp11441, i64 1
+ %tmp11443 = getelementptr inbounds float* %tmp11442, i64 1
+ %tmp11444 = getelementptr inbounds float* %tmp11443, i64 1
+ %tmp11445 = getelementptr inbounds float* %tmp11444, i64 1
+ %tmp11446 = getelementptr inbounds float* %tmp11445, i64 1
+ %tmp11447 = getelementptr inbounds float* %tmp11446, i64 1
+ %tmp11448 = getelementptr inbounds float* %tmp11447, i64 1
+ %tmp11449 = getelementptr inbounds float* %tmp11448, i64 1
+ %tmp11450 = getelementptr inbounds float* %tmp11449, i64 1
+ %tmp11451 = getelementptr inbounds float* %tmp11450, i64 1
+ %tmp11452 = getelementptr inbounds float* %tmp11451, i64 1
+ %tmp11453 = getelementptr inbounds float* %tmp11452, i64 1
+ %tmp11454 = getelementptr inbounds float* %tmp11453, i64 1
+ %tmp11455 = getelementptr inbounds float* %tmp11454, i64 1
+ %tmp11456 = getelementptr inbounds float* %tmp11455, i64 1
+ %tmp11457 = getelementptr inbounds float* %tmp11456, i64 1
+ %tmp11458 = getelementptr inbounds float* %tmp11457, i64 1
+ %tmp11459 = getelementptr inbounds float* %tmp11458, i64 1
+ %tmp11460 = getelementptr inbounds float* %tmp11459, i64 1
+ %tmp11461 = getelementptr inbounds float* %tmp11460, i64 1
+ %tmp11462 = getelementptr inbounds float* %tmp11461, i64 1
+ %tmp11463 = getelementptr inbounds float* %tmp11462, i64 1
+ %tmp11464 = getelementptr inbounds float* %tmp11463, i64 1
+ %tmp11465 = getelementptr inbounds float* %tmp11464, i64 1
+ %tmp11466 = getelementptr inbounds float* %tmp11465, i64 1
+ %tmp11467 = getelementptr inbounds float* %tmp11466, i64 1
+ %tmp11468 = getelementptr inbounds float* %tmp11467, i64 1
+ %tmp11469 = getelementptr inbounds float* %tmp11468, i64 1
+ %tmp11470 = getelementptr inbounds float* %tmp11469, i64 1
+ %tmp11471 = getelementptr inbounds float* %tmp11470, i64 1
+ %tmp11472 = getelementptr inbounds float* %tmp11471, i64 1
+ %tmp11473 = getelementptr inbounds float* %tmp11472, i64 1
+ %tmp11474 = getelementptr inbounds float* %tmp11473, i64 1
+ %tmp11475 = getelementptr inbounds float* %tmp11474, i64 1
+ %tmp11476 = getelementptr inbounds float* %tmp11475, i64 1
+ %tmp11477 = getelementptr inbounds float* %tmp11476, i64 1
+ %tmp11478 = getelementptr inbounds float* %tmp11477, i64 1
+ %tmp11479 = getelementptr inbounds float* %tmp11478, i64 1
+ %tmp11480 = getelementptr inbounds float* %tmp11479, i64 1
+ %tmp11481 = getelementptr inbounds float* %tmp11480, i64 1
+ %tmp11482 = getelementptr inbounds float* %tmp11481, i64 1
+ %tmp11483 = getelementptr inbounds float* %tmp11482, i64 1
+ %tmp11484 = getelementptr inbounds float* %tmp11483, i64 1
+ %tmp11485 = getelementptr inbounds float* %tmp11484, i64 1
+ %tmp11486 = getelementptr inbounds float* %tmp11485, i64 1
+ %tmp11487 = getelementptr inbounds float* %tmp11486, i64 1
+ %tmp11488 = getelementptr inbounds float* %tmp11487, i64 1
+ %tmp11489 = getelementptr inbounds float* %tmp11488, i64 1
+ %tmp11490 = getelementptr inbounds float* %tmp11489, i64 1
+ %tmp11491 = getelementptr inbounds float* %tmp11490, i64 1
+ %tmp11492 = getelementptr inbounds float* %tmp11491, i64 1
+ %tmp11493 = getelementptr inbounds float* %tmp11492, i64 1
+ %tmp11494 = getelementptr inbounds float* %tmp11493, i64 1
+ %tmp11495 = getelementptr inbounds float* %tmp11494, i64 1
+ %tmp11496 = getelementptr inbounds float* %tmp11495, i64 1
+ %tmp11497 = getelementptr inbounds float* %tmp11496, i64 1
+ %tmp11498 = getelementptr inbounds float* %tmp11497, i64 1
+ %tmp11499 = getelementptr inbounds float* %tmp11498, i64 1
+ %tmp11500 = getelementptr inbounds float* %tmp11499, i64 1
+ %tmp11501 = getelementptr inbounds float* %tmp11500, i64 1
+ %tmp11502 = getelementptr inbounds float* %tmp11501, i64 1
+ %tmp11503 = getelementptr inbounds float* %tmp11502, i64 1
+ %tmp11504 = getelementptr inbounds float* %tmp11503, i64 1
+ %tmp11505 = getelementptr inbounds float* %tmp11504, i64 1
+ %tmp11506 = getelementptr inbounds float* %tmp11505, i64 1
+ %tmp11507 = getelementptr inbounds float* %tmp11506, i64 1
+ %tmp11508 = getelementptr inbounds float* %tmp11507, i64 1
+ %tmp11509 = getelementptr inbounds float* %tmp11508, i64 1
+ %tmp11510 = getelementptr inbounds float* %tmp11509, i64 1
+ %tmp11511 = getelementptr inbounds float* %tmp11510, i64 1
+ %tmp11512 = getelementptr inbounds float* %tmp11511, i64 1
+ %tmp11513 = getelementptr inbounds float* %tmp11512, i64 1
+ %tmp11514 = getelementptr inbounds float* %tmp11513, i64 1
+ %tmp11515 = getelementptr inbounds float* %tmp11514, i64 1
+ %tmp11516 = getelementptr inbounds float* %tmp11515, i64 1
+ %tmp11517 = getelementptr inbounds float* %tmp11516, i64 1
+ %tmp11518 = getelementptr inbounds float* %tmp11517, i64 1
+ %tmp11519 = getelementptr inbounds float* %tmp11518, i64 1
+ %tmp11520 = getelementptr inbounds float* %tmp11519, i64 1
+ %tmp11521 = getelementptr inbounds float* %tmp11520, i64 1
+ %tmp11522 = getelementptr inbounds float* %tmp11521, i64 1
+ %tmp11523 = getelementptr inbounds float* %tmp11522, i64 1
+ %tmp11524 = getelementptr inbounds float* %tmp11523, i64 1
+ %tmp11525 = getelementptr inbounds float* %tmp11524, i64 1
+ %tmp11526 = getelementptr inbounds float* %tmp11525, i64 1
+ %tmp11527 = getelementptr inbounds float* %tmp11526, i64 1
+ %tmp11528 = getelementptr inbounds float* %tmp11527, i64 1
+ %tmp11529 = getelementptr inbounds float* %tmp11528, i64 1
+ %tmp11530 = getelementptr inbounds float* %tmp11529, i64 1
+ %tmp11531 = getelementptr inbounds float* %tmp11530, i64 1
+ %tmp11532 = getelementptr inbounds float* %tmp11531, i64 1
+ %tmp11533 = getelementptr inbounds float* %tmp11532, i64 1
+ %tmp11534 = getelementptr inbounds float* %tmp11533, i64 1
+ %tmp11535 = getelementptr inbounds float* %tmp11534, i64 1
+ %tmp11536 = getelementptr inbounds float* %tmp11535, i64 1
+ %tmp11537 = getelementptr inbounds float* %tmp11536, i64 1
+ %tmp11538 = getelementptr inbounds float* %tmp11537, i64 1
+ %tmp11539 = getelementptr inbounds float* %tmp11538, i64 1
+ %tmp11540 = getelementptr inbounds float* %tmp11539, i64 1
+ %tmp11541 = getelementptr inbounds float* %tmp11540, i64 1
+ %tmp11542 = getelementptr inbounds float* %tmp11541, i64 1
+ %tmp11543 = getelementptr inbounds float* %tmp11542, i64 1
+ %tmp11544 = getelementptr inbounds float* %tmp11543, i64 1
+ %tmp11545 = getelementptr inbounds float* %tmp11544, i64 1
+ %tmp11546 = getelementptr inbounds float* %tmp11545, i64 1
+ %tmp11547 = getelementptr inbounds float* %tmp11546, i64 1
+ %tmp11548 = getelementptr inbounds float* %tmp11547, i64 1
+ %tmp11549 = getelementptr inbounds float* %tmp11548, i64 1
+ %tmp11550 = getelementptr inbounds float* %tmp11549, i64 1
+ %tmp11551 = getelementptr inbounds float* %tmp11550, i64 1
+ %tmp11552 = getelementptr inbounds float* %tmp11551, i64 1
+ %tmp11553 = getelementptr inbounds float* %tmp11552, i64 1
+ %tmp11554 = getelementptr inbounds float* %tmp11553, i64 1
+ %tmp11555 = getelementptr inbounds float* %tmp11554, i64 1
+ %tmp11556 = getelementptr inbounds float* %tmp11555, i64 1
+ %tmp11557 = getelementptr inbounds float* %tmp11556, i64 1
+ %tmp11558 = getelementptr inbounds float* %tmp11557, i64 1
+ %tmp11559 = getelementptr inbounds float* %tmp11558, i64 1
+ %tmp11560 = getelementptr inbounds float* %tmp11559, i64 1
+ %tmp11561 = getelementptr inbounds float* %tmp11560, i64 1
+ %tmp11562 = getelementptr inbounds float* %tmp11561, i64 1
+ %tmp11563 = getelementptr inbounds float* %tmp11562, i64 1
+ %tmp11564 = getelementptr inbounds float* %tmp11563, i64 1
+ %tmp11565 = getelementptr inbounds float* %tmp11564, i64 1
+ %tmp11566 = getelementptr inbounds float* %tmp11565, i64 1
+ %tmp11567 = getelementptr inbounds float* %tmp11566, i64 1
+ %tmp11568 = getelementptr inbounds float* %tmp11567, i64 1
+ %tmp11569 = getelementptr inbounds float* %tmp11568, i64 1
+ %tmp11570 = getelementptr inbounds float* %tmp11569, i64 1
+ %tmp11571 = getelementptr inbounds float* %tmp11570, i64 1
+ %tmp11572 = getelementptr inbounds float* %tmp11571, i64 1
+ %tmp11573 = getelementptr inbounds float* %tmp11572, i64 1
+ %tmp11574 = getelementptr inbounds float* %tmp11573, i64 1
+ %tmp11575 = getelementptr inbounds float* %tmp11574, i64 1
+ %tmp11576 = getelementptr inbounds float* %tmp11575, i64 1
+ %tmp11577 = getelementptr inbounds float* %tmp11576, i64 1
+ %tmp11578 = getelementptr inbounds float* %tmp11577, i64 1
+ %tmp11579 = getelementptr inbounds float* %tmp11578, i64 1
+ %tmp11580 = getelementptr inbounds float* %tmp11579, i64 1
+ %tmp11581 = getelementptr inbounds float* %tmp11580, i64 1
+ %tmp11582 = getelementptr inbounds float* %tmp11581, i64 1
+ %tmp11583 = getelementptr inbounds float* %tmp11582, i64 1
+ %tmp11584 = getelementptr inbounds float* %tmp11583, i64 1
+ %tmp11585 = getelementptr inbounds float* %tmp11584, i64 1
+ %tmp11586 = getelementptr inbounds float* %tmp11585, i64 1
+ %tmp11587 = getelementptr inbounds float* %tmp11586, i64 1
+ %tmp11588 = getelementptr inbounds float* %tmp11587, i64 1
+ %tmp11589 = getelementptr inbounds float* %tmp11588, i64 1
+ %tmp11590 = getelementptr inbounds float* %tmp11589, i64 1
+ %tmp11591 = getelementptr inbounds float* %tmp11590, i64 1
+ %tmp11592 = getelementptr inbounds float* %tmp11591, i64 1
+ %tmp11593 = getelementptr inbounds float* %tmp11592, i64 1
+ %tmp11594 = getelementptr inbounds float* %tmp11593, i64 1
+ %tmp11595 = getelementptr inbounds float* %tmp11594, i64 1
+ %tmp11596 = getelementptr inbounds float* %tmp11595, i64 1
+ %tmp11597 = getelementptr inbounds float* %tmp11596, i64 1
+ %tmp11598 = getelementptr inbounds float* %tmp11597, i64 1
+ %tmp11599 = getelementptr inbounds float* %tmp11598, i64 1
+ %tmp11600 = getelementptr inbounds float* %tmp11599, i64 1
+ %tmp11601 = getelementptr inbounds float* %tmp11600, i64 1
+ %tmp11602 = getelementptr inbounds float* %tmp11601, i64 1
+ %tmp11603 = getelementptr inbounds float* %tmp11602, i64 1
+ %tmp11604 = getelementptr inbounds float* %tmp11603, i64 1
+ %tmp11605 = getelementptr inbounds float* %tmp11604, i64 1
+ %tmp11606 = getelementptr inbounds float* %tmp11605, i64 1
+ %tmp11607 = getelementptr inbounds float* %tmp11606, i64 1
+ %tmp11608 = getelementptr inbounds float* %tmp11607, i64 1
+ %tmp11609 = getelementptr inbounds float* %tmp11608, i64 1
+ %tmp11610 = getelementptr inbounds float* %tmp11609, i64 1
+ %tmp11611 = getelementptr inbounds float* %tmp11610, i64 1
+ %tmp11612 = getelementptr inbounds float* %tmp11611, i64 1
+ %tmp11613 = getelementptr inbounds float* %tmp11612, i64 1
+ %tmp11614 = getelementptr inbounds float* %tmp11613, i64 1
+ %tmp11615 = getelementptr inbounds float* %tmp11614, i64 1
+ %tmp11616 = getelementptr inbounds float* %tmp11615, i64 1
+ %tmp11617 = getelementptr inbounds float* %tmp11616, i64 1
+ %tmp11618 = getelementptr inbounds float* %tmp11617, i64 1
+ %tmp11619 = getelementptr inbounds float* %tmp11618, i64 1
+ %tmp11620 = getelementptr inbounds float* %tmp11619, i64 1
+ %tmp11621 = getelementptr inbounds float* %tmp11620, i64 1
+ %tmp11622 = getelementptr inbounds float* %tmp11621, i64 1
+ %tmp11623 = getelementptr inbounds float* %tmp11622, i64 1
+ %tmp11624 = getelementptr inbounds float* %tmp11623, i64 1
+ %tmp11625 = getelementptr inbounds float* %tmp11624, i64 1
+ %tmp11626 = getelementptr inbounds float* %tmp11625, i64 1
+ %tmp11627 = getelementptr inbounds float* %tmp11626, i64 1
+ %tmp11628 = getelementptr inbounds float* %tmp11627, i64 1
+ %tmp11629 = getelementptr inbounds float* %tmp11628, i64 1
+ %tmp11630 = getelementptr inbounds float* %tmp11629, i64 1
+ %tmp11631 = getelementptr inbounds float* %tmp11630, i64 1
+ %tmp11632 = getelementptr inbounds float* %tmp11631, i64 1
+ %tmp11633 = getelementptr inbounds float* %tmp11632, i64 1
+ %tmp11634 = getelementptr inbounds float* %tmp11633, i64 1
+ %tmp11635 = getelementptr inbounds float* %tmp11634, i64 1
+ %tmp11636 = getelementptr inbounds float* %tmp11635, i64 1
+ %tmp11637 = getelementptr inbounds float* %tmp11636, i64 1
+ %tmp11638 = getelementptr inbounds float* %tmp11637, i64 1
+ %tmp11639 = getelementptr inbounds float* %tmp11638, i64 1
+ %tmp11640 = getelementptr inbounds float* %tmp11639, i64 1
+ %tmp11641 = getelementptr inbounds float* %tmp11640, i64 1
+ %tmp11642 = getelementptr inbounds float* %tmp11641, i64 1
+ %tmp11643 = getelementptr inbounds float* %tmp11642, i64 1
+ %tmp11644 = getelementptr inbounds float* %tmp11643, i64 1
+ %tmp11645 = getelementptr inbounds float* %tmp11644, i64 1
+ %tmp11646 = getelementptr inbounds float* %tmp11645, i64 1
+ %tmp11647 = getelementptr inbounds float* %tmp11646, i64 1
+ %tmp11648 = getelementptr inbounds float* %tmp11647, i64 1
+ %tmp11649 = getelementptr inbounds float* %tmp11648, i64 1
+ %tmp11650 = getelementptr inbounds float* %tmp11649, i64 1
+ %tmp11651 = getelementptr inbounds float* %tmp11650, i64 1
+ %tmp11652 = getelementptr inbounds float* %tmp11651, i64 1
+ %tmp11653 = getelementptr inbounds float* %tmp11652, i64 1
+ %tmp11654 = getelementptr inbounds float* %tmp11653, i64 1
+ %tmp11655 = getelementptr inbounds float* %tmp11654, i64 1
+ %tmp11656 = getelementptr inbounds float* %tmp11655, i64 1
+ %tmp11657 = getelementptr inbounds float* %tmp11656, i64 1
+ %tmp11658 = getelementptr inbounds float* %tmp11657, i64 1
+ %tmp11659 = getelementptr inbounds float* %tmp11658, i64 1
+ %tmp11660 = getelementptr inbounds float* %tmp11659, i64 1
+ %tmp11661 = getelementptr inbounds float* %tmp11660, i64 1
+ %tmp11662 = getelementptr inbounds float* %tmp11661, i64 1
+ %tmp11663 = getelementptr inbounds float* %tmp11662, i64 1
+ %tmp11664 = getelementptr inbounds float* %tmp11663, i64 1
+ %tmp11665 = getelementptr inbounds float* %tmp11664, i64 1
+ %tmp11666 = getelementptr inbounds float* %tmp11665, i64 1
+ %tmp11667 = getelementptr inbounds float* %tmp11666, i64 1
+ %tmp11668 = getelementptr inbounds float* %tmp11667, i64 1
+ %tmp11669 = getelementptr inbounds float* %tmp11668, i64 1
+ %tmp11670 = getelementptr inbounds float* %tmp11669, i64 1
+ %tmp11671 = getelementptr inbounds float* %tmp11670, i64 1
+ %tmp11672 = getelementptr inbounds float* %tmp11671, i64 1
+ %tmp11673 = getelementptr inbounds float* %tmp11672, i64 1
+ %tmp11674 = getelementptr inbounds float* %tmp11673, i64 1
+ %tmp11675 = getelementptr inbounds float* %tmp11674, i64 1
+ %tmp11676 = getelementptr inbounds float* %tmp11675, i64 1
+ %tmp11677 = getelementptr inbounds float* %tmp11676, i64 1
+ %tmp11678 = getelementptr inbounds float* %tmp11677, i64 1
+ %tmp11679 = getelementptr inbounds float* %tmp11678, i64 1
+ %tmp11680 = getelementptr inbounds float* %tmp11679, i64 1
+ %tmp11681 = getelementptr inbounds float* %tmp11680, i64 1
+ %tmp11682 = getelementptr inbounds float* %tmp11681, i64 1
+ %tmp11683 = getelementptr inbounds float* %tmp11682, i64 1
+ %tmp11684 = getelementptr inbounds float* %tmp11683, i64 1
+ %tmp11685 = getelementptr inbounds float* %tmp11684, i64 1
+ %tmp11686 = getelementptr inbounds float* %tmp11685, i64 1
+ %tmp11687 = getelementptr inbounds float* %tmp11686, i64 1
+ %tmp11688 = getelementptr inbounds float* %tmp11687, i64 1
+ %tmp11689 = getelementptr inbounds float* %tmp11688, i64 1
+ %tmp11690 = getelementptr inbounds float* %tmp11689, i64 1
+ %tmp11691 = getelementptr inbounds float* %tmp11690, i64 1
+ %tmp11692 = getelementptr inbounds float* %tmp11691, i64 1
+ %tmp11693 = getelementptr inbounds float* %tmp11692, i64 1
+ %tmp11694 = getelementptr inbounds float* %tmp11693, i64 1
+ %tmp11695 = getelementptr inbounds float* %tmp11694, i64 1
+ %tmp11696 = getelementptr inbounds float* %tmp11695, i64 1
+ %tmp11697 = getelementptr inbounds float* %tmp11696, i64 1
+ %tmp11698 = getelementptr inbounds float* %tmp11697, i64 1
+ %tmp11699 = getelementptr inbounds float* %tmp11698, i64 1
+ %tmp11700 = getelementptr inbounds float* %tmp11699, i64 1
+ %tmp11701 = getelementptr inbounds float* %tmp11700, i64 1
+ %tmp11702 = getelementptr inbounds float* %tmp11701, i64 1
+ %tmp11703 = getelementptr inbounds float* %tmp11702, i64 1
+ %tmp11704 = getelementptr inbounds float* %tmp11703, i64 1
+ %tmp11705 = getelementptr inbounds float* %tmp11704, i64 1
+ %tmp11706 = getelementptr inbounds float* %tmp11705, i64 1
+ %tmp11707 = getelementptr inbounds float* %tmp11706, i64 1
+ %tmp11708 = getelementptr inbounds float* %tmp11707, i64 1
+ %tmp11709 = getelementptr inbounds float* %tmp11708, i64 1
+ %tmp11710 = getelementptr inbounds float* %tmp11709, i64 1
+ %tmp11711 = getelementptr inbounds float* %tmp11710, i64 1
+ %tmp11712 = getelementptr inbounds float* %tmp11711, i64 1
+ %tmp11713 = getelementptr inbounds float* %tmp11712, i64 1
+ %tmp11714 = getelementptr inbounds float* %tmp11713, i64 1
+ %tmp11715 = getelementptr inbounds float* %tmp11714, i64 1
+ %tmp11716 = getelementptr inbounds float* %tmp11715, i64 1
+ %tmp11717 = getelementptr inbounds float* %tmp11716, i64 1
+ %tmp11718 = getelementptr inbounds float* %tmp11717, i64 1
+ %tmp11719 = getelementptr inbounds float* %tmp11718, i64 1
+ %tmp11720 = getelementptr inbounds float* %tmp11719, i64 1
+ %tmp11721 = getelementptr inbounds float* %tmp11720, i64 1
+ %tmp11722 = getelementptr inbounds float* %tmp11721, i64 1
+ %tmp11723 = getelementptr inbounds float* %tmp11722, i64 1
+ %tmp11724 = getelementptr inbounds float* %tmp11723, i64 1
+ %tmp11725 = getelementptr inbounds float* %tmp11724, i64 1
+ %tmp11726 = getelementptr inbounds float* %tmp11725, i64 1
+ %tmp11727 = getelementptr inbounds float* %tmp11726, i64 1
+ %tmp11728 = getelementptr inbounds float* %tmp11727, i64 1
+ %tmp11729 = getelementptr inbounds float* %tmp11728, i64 1
+ %tmp11730 = getelementptr inbounds float* %tmp11729, i64 1
+ %tmp11731 = getelementptr inbounds float* %tmp11730, i64 1
+ %tmp11732 = getelementptr inbounds float* %tmp11731, i64 1
+ %tmp11733 = getelementptr inbounds float* %tmp11732, i64 1
+ %tmp11734 = getelementptr inbounds float* %tmp11733, i64 1
+ %tmp11735 = getelementptr inbounds float* %tmp11734, i64 1
+ %tmp11736 = getelementptr inbounds float* %tmp11735, i64 1
+ %tmp11737 = getelementptr inbounds float* %tmp11736, i64 1
+ %tmp11738 = getelementptr inbounds float* %tmp11737, i64 1
+ %tmp11739 = getelementptr inbounds float* %tmp11738, i64 1
+ %tmp11740 = getelementptr inbounds float* %tmp11739, i64 1
+ %tmp11741 = getelementptr inbounds float* %tmp11740, i64 1
+ %tmp11742 = getelementptr inbounds float* %tmp11741, i64 1
+ %tmp11743 = getelementptr inbounds float* %tmp11742, i64 1
+ %tmp11744 = getelementptr inbounds float* %tmp11743, i64 1
+ %tmp11745 = getelementptr inbounds float* %tmp11744, i64 1
+ %tmp11746 = getelementptr inbounds float* %tmp11745, i64 1
+ %tmp11747 = getelementptr inbounds float* %tmp11746, i64 1
+ %tmp11748 = getelementptr inbounds float* %tmp11747, i64 1
+ %tmp11749 = getelementptr inbounds float* %tmp11748, i64 1
+ %tmp11750 = getelementptr inbounds float* %tmp11749, i64 1
+ %tmp11751 = getelementptr inbounds float* %tmp11750, i64 1
+ %tmp11752 = getelementptr inbounds float* %tmp11751, i64 1
+ %tmp11753 = getelementptr inbounds float* %tmp11752, i64 1
+ %tmp11754 = getelementptr inbounds float* %tmp11753, i64 1
+ %tmp11755 = getelementptr inbounds float* %tmp11754, i64 1
+ %tmp11756 = getelementptr inbounds float* %tmp11755, i64 1
+ %tmp11757 = getelementptr inbounds float* %tmp11756, i64 1
+ %tmp11758 = getelementptr inbounds float* %tmp11757, i64 1
+ %tmp11759 = getelementptr inbounds float* %tmp11758, i64 1
+ %tmp11760 = getelementptr inbounds float* %tmp11759, i64 1
+ %tmp11761 = getelementptr inbounds float* %tmp11760, i64 1
+ %tmp11762 = getelementptr inbounds float* %tmp11761, i64 1
+ %tmp11763 = getelementptr inbounds float* %tmp11762, i64 1
+ %tmp11764 = getelementptr inbounds float* %tmp11763, i64 1
+ %tmp11765 = getelementptr inbounds float* %tmp11764, i64 1
+ %tmp11766 = getelementptr inbounds float* %tmp11765, i64 1
+ %tmp11767 = getelementptr inbounds float* %tmp11766, i64 1
+ %tmp11768 = getelementptr inbounds float* %tmp11767, i64 1
+ %tmp11769 = getelementptr inbounds float* %tmp11768, i64 1
+ %tmp11770 = getelementptr inbounds float* %tmp11769, i64 1
+ %tmp11771 = getelementptr inbounds float* %tmp11770, i64 1
+ %tmp11772 = getelementptr inbounds float* %tmp11771, i64 1
+ %tmp11773 = getelementptr inbounds float* %tmp11772, i64 1
+ %tmp11774 = getelementptr inbounds float* %tmp11773, i64 1
+ %tmp11775 = getelementptr inbounds float* %tmp11774, i64 1
+ %tmp11776 = getelementptr inbounds float* %tmp11775, i64 1
+ %tmp11777 = getelementptr inbounds float* %tmp11776, i64 1
+ %tmp11778 = getelementptr inbounds float* %tmp11777, i64 1
+ %tmp11779 = getelementptr inbounds float* %tmp11778, i64 1
+ %tmp11780 = getelementptr inbounds float* %tmp11779, i64 1
+ %tmp11781 = getelementptr inbounds float* %tmp11780, i64 1
+ %tmp11782 = getelementptr inbounds float* %tmp11781, i64 1
+ %tmp11783 = getelementptr inbounds float* %tmp11782, i64 1
+ %tmp11784 = getelementptr inbounds float* %tmp11783, i64 1
+ %tmp11785 = getelementptr inbounds float* %tmp11784, i64 1
+ %tmp11786 = getelementptr inbounds float* %tmp11785, i64 1
+ %tmp11787 = getelementptr inbounds float* %tmp11786, i64 1
+ %tmp11788 = getelementptr inbounds float* %tmp11787, i64 1
+ %tmp11789 = getelementptr inbounds float* %tmp11788, i64 1
+ %tmp11790 = getelementptr inbounds float* %tmp11789, i64 1
+ %tmp11791 = getelementptr inbounds float* %tmp11790, i64 1
+ %tmp11792 = getelementptr inbounds float* %tmp11791, i64 1
+ %tmp11793 = getelementptr inbounds float* %tmp11792, i64 1
+ %tmp11794 = getelementptr inbounds float* %tmp11793, i64 1
+ %tmp11795 = getelementptr inbounds float* %tmp11794, i64 1
+ %tmp11796 = getelementptr inbounds float* %tmp11795, i64 1
+ %tmp11797 = getelementptr inbounds float* %tmp11796, i64 1
+ %tmp11798 = getelementptr inbounds float* %tmp11797, i64 1
+ %tmp11799 = getelementptr inbounds float* %tmp11798, i64 1
+ %tmp11800 = getelementptr inbounds float* %tmp11799, i64 1
+ %tmp11801 = getelementptr inbounds float* %tmp11800, i64 1
+ %tmp11802 = getelementptr inbounds float* %tmp11801, i64 1
+ %tmp11803 = getelementptr inbounds float* %tmp11802, i64 1
+ %tmp11804 = getelementptr inbounds float* %tmp11803, i64 1
+ %tmp11805 = getelementptr inbounds float* %tmp11804, i64 1
+ %tmp11806 = getelementptr inbounds float* %tmp11805, i64 1
+ %tmp11807 = getelementptr inbounds float* %tmp11806, i64 1
+ %tmp11808 = getelementptr inbounds float* %tmp11807, i64 1
+ %tmp11809 = getelementptr inbounds float* %tmp11808, i64 1
+ %tmp11810 = getelementptr inbounds float* %tmp11809, i64 1
+ %tmp11811 = getelementptr inbounds float* %tmp11810, i64 1
+ %tmp11812 = getelementptr inbounds float* %tmp11811, i64 1
+ %tmp11813 = getelementptr inbounds float* %tmp11812, i64 1
+ %tmp11814 = getelementptr inbounds float* %tmp11813, i64 1
+ %tmp11815 = getelementptr inbounds float* %tmp11814, i64 1
+ %tmp11816 = getelementptr inbounds float* %tmp11815, i64 1
+ %tmp11817 = getelementptr inbounds float* %tmp11816, i64 1
+ %tmp11818 = getelementptr inbounds float* %tmp11817, i64 1
+ %tmp11819 = getelementptr inbounds float* %tmp11818, i64 1
+ %tmp11820 = getelementptr inbounds float* %tmp11819, i64 1
+ %tmp11821 = getelementptr inbounds float* %tmp11820, i64 1
+ %tmp11822 = getelementptr inbounds float* %tmp11821, i64 1
+ %tmp11823 = getelementptr inbounds float* %tmp11822, i64 1
+ %tmp11824 = getelementptr inbounds float* %tmp11823, i64 1
+ %tmp11825 = getelementptr inbounds float* %tmp11824, i64 1
+ %tmp11826 = getelementptr inbounds float* %tmp11825, i64 1
+ %tmp11827 = getelementptr inbounds float* %tmp11826, i64 1
+ %tmp11828 = getelementptr inbounds float* %tmp11827, i64 1
+ %tmp11829 = getelementptr inbounds float* %tmp11828, i64 1
+ %tmp11830 = getelementptr inbounds float* %tmp11829, i64 1
+ %tmp11831 = getelementptr inbounds float* %tmp11830, i64 1
+ %tmp11832 = getelementptr inbounds float* %tmp11831, i64 1
+ %tmp11833 = getelementptr inbounds float* %tmp11832, i64 1
+ %tmp11834 = getelementptr inbounds float* %tmp11833, i64 1
+ %tmp11835 = getelementptr inbounds float* %tmp11834, i64 1
+ %tmp11836 = getelementptr inbounds float* %tmp11835, i64 1
+ %tmp11837 = getelementptr inbounds float* %tmp11836, i64 1
+ %tmp11838 = getelementptr inbounds float* %tmp11837, i64 1
+ %tmp11839 = getelementptr inbounds float* %tmp11838, i64 1
+ %tmp11840 = getelementptr inbounds float* %tmp11839, i64 1
+ %tmp11841 = getelementptr inbounds float* %tmp11840, i64 1
+ %tmp11842 = getelementptr inbounds float* %tmp11841, i64 1
+ %tmp11843 = getelementptr inbounds float* %tmp11842, i64 1
+ %tmp11844 = getelementptr inbounds float* %tmp11843, i64 1
+ %tmp11845 = getelementptr inbounds float* %tmp11844, i64 1
+ %tmp11846 = getelementptr inbounds float* %tmp11845, i64 1
+ %tmp11847 = getelementptr inbounds float* %tmp11846, i64 1
+ %tmp11848 = getelementptr inbounds float* %tmp11847, i64 1
+ %tmp11849 = getelementptr inbounds float* %tmp11848, i64 1
+ %tmp11850 = getelementptr inbounds float* %tmp11849, i64 1
+ %tmp11851 = getelementptr inbounds float* %tmp11850, i64 1
+ %tmp11852 = getelementptr inbounds float* %tmp11851, i64 1
+ %tmp11853 = getelementptr inbounds float* %tmp11852, i64 1
+ %tmp11854 = getelementptr inbounds float* %tmp11853, i64 1
+ %tmp11855 = getelementptr inbounds float* %tmp11854, i64 1
+ %tmp11856 = getelementptr inbounds float* %tmp11855, i64 1
+ %tmp11857 = getelementptr inbounds float* %tmp11856, i64 1
+ %tmp11858 = getelementptr inbounds float* %tmp11857, i64 1
+ %tmp11859 = getelementptr inbounds float* %tmp11858, i64 1
+ %tmp11860 = getelementptr inbounds float* %tmp11859, i64 1
+ %tmp11861 = getelementptr inbounds float* %tmp11860, i64 1
+ %tmp11862 = getelementptr inbounds float* %tmp11861, i64 1
+ %tmp11863 = getelementptr inbounds float* %tmp11862, i64 1
+ %tmp11864 = getelementptr inbounds float* %tmp11863, i64 1
+ %tmp11865 = getelementptr inbounds float* %tmp11864, i64 1
+ %tmp11866 = getelementptr inbounds float* %tmp11865, i64 1
+ %tmp11867 = getelementptr inbounds float* %tmp11866, i64 1
+ %tmp11868 = getelementptr inbounds float* %tmp11867, i64 1
+ %tmp11869 = getelementptr inbounds float* %tmp11868, i64 1
+ %tmp11870 = getelementptr inbounds float* %tmp11869, i64 1
+ %tmp11871 = getelementptr inbounds float* %tmp11870, i64 1
+ %tmp11872 = getelementptr inbounds float* %tmp11871, i64 1
+ %tmp11873 = getelementptr inbounds float* %tmp11872, i64 1
+ %tmp11874 = getelementptr inbounds float* %tmp11873, i64 1
+ %tmp11875 = getelementptr inbounds float* %tmp11874, i64 1
+ %tmp11876 = getelementptr inbounds float* %tmp11875, i64 1
+ %tmp11877 = getelementptr inbounds float* %tmp11876, i64 1
+ %tmp11878 = getelementptr inbounds float* %tmp11877, i64 1
+ %tmp11879 = getelementptr inbounds float* %tmp11878, i64 1
+ %tmp11880 = getelementptr inbounds float* %tmp11879, i64 1
+ %tmp11881 = getelementptr inbounds float* %tmp11880, i64 1
+ %tmp11882 = getelementptr inbounds float* %tmp11881, i64 1
+ %tmp11883 = getelementptr inbounds float* %tmp11882, i64 1
+ %tmp11884 = getelementptr inbounds float* %tmp11883, i64 1
+ %tmp11885 = getelementptr inbounds float* %tmp11884, i64 1
+ %tmp11886 = getelementptr inbounds float* %tmp11885, i64 1
+ %tmp11887 = getelementptr inbounds float* %tmp11886, i64 1
+ %tmp11888 = getelementptr inbounds float* %tmp11887, i64 1
+ %tmp11889 = getelementptr inbounds float* %tmp11888, i64 1
+ %tmp11890 = getelementptr inbounds float* %tmp11889, i64 1
+ %tmp11891 = getelementptr inbounds float* %tmp11890, i64 1
+ %tmp11892 = getelementptr inbounds float* %tmp11891, i64 1
+ %tmp11893 = getelementptr inbounds float* %tmp11892, i64 1
+ %tmp11894 = getelementptr inbounds float* %tmp11893, i64 1
+ %tmp11895 = getelementptr inbounds float* %tmp11894, i64 1
+ %tmp11896 = getelementptr inbounds float* %tmp11895, i64 1
+ %tmp11897 = getelementptr inbounds float* %tmp11896, i64 1
+ %tmp11898 = getelementptr inbounds float* %tmp11897, i64 1
+ %tmp11899 = getelementptr inbounds float* %tmp11898, i64 1
+ %tmp11900 = getelementptr inbounds float* %tmp11899, i64 1
+ %tmp11901 = getelementptr inbounds float* %tmp11900, i64 1
+ %tmp11902 = getelementptr inbounds float* %tmp11901, i64 1
+ %tmp11903 = getelementptr inbounds float* %tmp11902, i64 1
+ %tmp11904 = getelementptr inbounds float* %tmp11903, i64 1
+ %tmp11905 = getelementptr inbounds float* %tmp11904, i64 1
+ %tmp11906 = getelementptr inbounds float* %tmp11905, i64 1
+ %tmp11907 = getelementptr inbounds float* %tmp11906, i64 1
+ %tmp11908 = getelementptr inbounds float* %tmp11907, i64 1
+ %tmp11909 = getelementptr inbounds float* %tmp11908, i64 1
+ %tmp11910 = getelementptr inbounds float* %tmp11909, i64 1
+ %tmp11911 = getelementptr inbounds float* %tmp11910, i64 1
+ %tmp11912 = getelementptr inbounds float* %tmp11911, i64 1
+ %tmp11913 = getelementptr inbounds float* %tmp11912, i64 1
+ %tmp11914 = getelementptr inbounds float* %tmp11913, i64 1
+ %tmp11915 = getelementptr inbounds float* %tmp11914, i64 1
+ %tmp11916 = getelementptr inbounds float* %tmp11915, i64 1
+ %tmp11917 = getelementptr inbounds float* %tmp11916, i64 1
+ %tmp11918 = getelementptr inbounds float* %tmp11917, i64 1
+ %tmp11919 = getelementptr inbounds float* %tmp11918, i64 1
+ %tmp11920 = getelementptr inbounds float* %tmp11919, i64 1
+ %tmp11921 = getelementptr inbounds float* %tmp11920, i64 1
+ %tmp11922 = getelementptr inbounds float* %tmp11921, i64 1
+ %tmp11923 = getelementptr inbounds float* %tmp11922, i64 1
+ %tmp11924 = getelementptr inbounds float* %tmp11923, i64 1
+ %tmp11925 = getelementptr inbounds float* %tmp11924, i64 1
+ %tmp11926 = getelementptr inbounds float* %tmp11925, i64 1
+ %tmp11927 = getelementptr inbounds float* %tmp11926, i64 1
+ %tmp11928 = getelementptr inbounds float* %tmp11927, i64 1
+ %tmp11929 = getelementptr inbounds float* %tmp11928, i64 1
+ %tmp11930 = getelementptr inbounds float* %tmp11929, i64 1
+ %tmp11931 = getelementptr inbounds float* %tmp11930, i64 1
+ %tmp11932 = getelementptr inbounds float* %tmp11931, i64 1
+ %tmp11933 = getelementptr inbounds float* %tmp11932, i64 1
+ %tmp11934 = getelementptr inbounds float* %tmp11933, i64 1
+ %tmp11935 = getelementptr inbounds float* %tmp11934, i64 1
+ %tmp11936 = getelementptr inbounds float* %tmp11935, i64 1
+ %tmp11937 = getelementptr inbounds float* %tmp11936, i64 1
+ %tmp11938 = getelementptr inbounds float* %tmp11937, i64 1
+ %tmp11939 = getelementptr inbounds float* %tmp11938, i64 1
+ %tmp11940 = getelementptr inbounds float* %tmp11939, i64 1
+ %tmp11941 = getelementptr inbounds float* %tmp11940, i64 1
+ %tmp11942 = getelementptr inbounds float* %tmp11941, i64 1
+ %tmp11943 = getelementptr inbounds float* %tmp11942, i64 1
+ %tmp11944 = getelementptr inbounds float* %tmp11943, i64 1
+ %tmp11945 = getelementptr inbounds float* %tmp11944, i64 1
+ %tmp11946 = getelementptr inbounds float* %tmp11945, i64 1
+ %tmp11947 = getelementptr inbounds float* %tmp11946, i64 1
+ %tmp11948 = getelementptr inbounds float* %tmp11947, i64 1
+ %tmp11949 = getelementptr inbounds float* %tmp11948, i64 1
+ %tmp11950 = getelementptr inbounds float* %tmp11949, i64 1
+ %tmp11951 = getelementptr inbounds float* %tmp11950, i64 1
+ %tmp11952 = getelementptr inbounds float* %tmp11951, i64 1
+ %tmp11953 = getelementptr inbounds float* %tmp11952, i64 1
+ %tmp11954 = getelementptr inbounds float* %tmp11953, i64 1
+ %tmp11955 = getelementptr inbounds float* %tmp11954, i64 1
+ %tmp11956 = getelementptr inbounds float* %tmp11955, i64 1
+ %tmp11957 = getelementptr inbounds float* %tmp11956, i64 1
+ %tmp11958 = getelementptr inbounds float* %tmp11957, i64 1
+ %tmp11959 = getelementptr inbounds float* %tmp11958, i64 1
+ %tmp11960 = getelementptr inbounds float* %tmp11959, i64 1
+ %tmp11961 = getelementptr inbounds float* %tmp11960, i64 1
+ %tmp11962 = getelementptr inbounds float* %tmp11961, i64 1
+ %tmp11963 = getelementptr inbounds float* %tmp11962, i64 1
+ %tmp11964 = getelementptr inbounds float* %tmp11963, i64 1
+ %tmp11965 = getelementptr inbounds float* %tmp11964, i64 1
+ %tmp11966 = getelementptr inbounds float* %tmp11965, i64 1
+ %tmp11967 = getelementptr inbounds float* %tmp11966, i64 1
+ %tmp11968 = getelementptr inbounds float* %tmp11967, i64 1
+ %tmp11969 = getelementptr inbounds float* %tmp11968, i64 1
+ %tmp11970 = getelementptr inbounds float* %tmp11969, i64 1
+ %tmp11971 = getelementptr inbounds float* %tmp11970, i64 1
+ %tmp11972 = getelementptr inbounds float* %tmp11971, i64 1
+ %tmp11973 = getelementptr inbounds float* %tmp11972, i64 1
+ %tmp11974 = getelementptr inbounds float* %tmp11973, i64 1
+ %tmp11975 = getelementptr inbounds float* %tmp11974, i64 1
+ %tmp11976 = getelementptr inbounds float* %tmp11975, i64 1
+ %tmp11977 = getelementptr inbounds float* %tmp11976, i64 1
+ %tmp11978 = getelementptr inbounds float* %tmp11977, i64 1
+ %tmp11979 = getelementptr inbounds float* %tmp11978, i64 1
+ %tmp11980 = getelementptr inbounds float* %tmp11979, i64 1
+ %tmp11981 = getelementptr inbounds float* %tmp11980, i64 1
+ %tmp11982 = getelementptr inbounds float* %tmp11981, i64 1
+ %tmp11983 = getelementptr inbounds float* %tmp11982, i64 1
+ %tmp11984 = getelementptr inbounds float* %tmp11983, i64 1
+ %tmp11985 = getelementptr inbounds float* %tmp11984, i64 1
+ %tmp11986 = getelementptr inbounds float* %tmp11985, i64 1
+ %tmp11987 = getelementptr inbounds float* %tmp11986, i64 1
+ %tmp11988 = getelementptr inbounds float* %tmp11987, i64 1
+ %tmp11989 = getelementptr inbounds float* %tmp11988, i64 1
+ %tmp11990 = getelementptr inbounds float* %tmp11989, i64 1
+ %tmp11991 = getelementptr inbounds float* %tmp11990, i64 1
+ %tmp11992 = getelementptr inbounds float* %tmp11991, i64 1
+ %tmp11993 = getelementptr inbounds float* %tmp11992, i64 1
+ %tmp11994 = getelementptr inbounds float* %tmp11993, i64 1
+ %tmp11995 = getelementptr inbounds float* %tmp11994, i64 1
+ %tmp11996 = getelementptr inbounds float* %tmp11995, i64 1
+ %tmp11997 = getelementptr inbounds float* %tmp11996, i64 1
+ %tmp11998 = getelementptr inbounds float* %tmp11997, i64 1
+ %tmp11999 = getelementptr inbounds float* %tmp11998, i64 1
+ %tmp12000 = getelementptr inbounds float* %tmp11999, i64 1
+ %tmp12001 = getelementptr inbounds float* %tmp12000, i64 1
+ %tmp12002 = getelementptr inbounds float* %tmp12001, i64 1
+ %tmp12003 = getelementptr inbounds float* %tmp12002, i64 1
+ %tmp12004 = getelementptr inbounds float* %tmp12003, i64 1
+ %tmp12005 = getelementptr inbounds float* %tmp12004, i64 1
+ %tmp12006 = getelementptr inbounds float* %tmp12005, i64 1
+ %tmp12007 = getelementptr inbounds float* %tmp12006, i64 1
+ %tmp12008 = getelementptr inbounds float* %tmp12007, i64 1
+ %tmp12009 = getelementptr inbounds float* %tmp12008, i64 1
+ %tmp12010 = getelementptr inbounds float* %tmp12009, i64 1
+ %tmp12011 = getelementptr inbounds float* %tmp12010, i64 1
+ %tmp12012 = getelementptr inbounds float* %tmp12011, i64 1
+ %tmp12013 = getelementptr inbounds float* %tmp12012, i64 1
+ %tmp12014 = getelementptr inbounds float* %tmp12013, i64 1
+ %tmp12015 = getelementptr inbounds float* %tmp12014, i64 1
+ %tmp12016 = getelementptr inbounds float* %tmp12015, i64 1
+ %tmp12017 = getelementptr inbounds float* %tmp12016, i64 1
+ %tmp12018 = getelementptr inbounds float* %tmp12017, i64 1
+ %tmp12019 = getelementptr inbounds float* %tmp12018, i64 1
+ %tmp12020 = getelementptr inbounds float* %tmp12019, i64 1
+ %tmp12021 = getelementptr inbounds float* %tmp12020, i64 1
+ %tmp12022 = getelementptr inbounds float* %tmp12021, i64 1
+ %tmp12023 = getelementptr inbounds float* %tmp12022, i64 1
+ %tmp12024 = getelementptr inbounds float* %tmp12023, i64 1
+ %tmp12025 = getelementptr inbounds float* %tmp12024, i64 1
+ %tmp12026 = getelementptr inbounds float* %tmp12025, i64 1
+ %tmp12027 = getelementptr inbounds float* %tmp12026, i64 1
+ %tmp12028 = getelementptr inbounds float* %tmp12027, i64 1
+ %tmp12029 = getelementptr inbounds float* %tmp12028, i64 1
+ %tmp12030 = getelementptr inbounds float* %tmp12029, i64 1
+ %tmp12031 = getelementptr inbounds float* %tmp12030, i64 1
+ %tmp12032 = getelementptr inbounds float* %tmp12031, i64 1
+ %tmp12033 = getelementptr inbounds float* %tmp12032, i64 1
+ %tmp12034 = getelementptr inbounds float* %tmp12033, i64 1
+ %tmp12035 = getelementptr inbounds float* %tmp12034, i64 1
+ %tmp12036 = getelementptr inbounds float* %tmp12035, i64 1
+ %tmp12037 = getelementptr inbounds float* %tmp12036, i64 1
+ %tmp12038 = getelementptr inbounds float* %tmp12037, i64 1
+ %tmp12039 = getelementptr inbounds float* %tmp12038, i64 1
+ %tmp12040 = getelementptr inbounds float* %tmp12039, i64 1
+ %tmp12041 = getelementptr inbounds float* %tmp12040, i64 1
+ %tmp12042 = getelementptr inbounds float* %tmp12041, i64 1
+ %tmp12043 = getelementptr inbounds float* %tmp12042, i64 1
+ %tmp12044 = getelementptr inbounds float* %tmp12043, i64 1
+ %tmp12045 = getelementptr inbounds float* %tmp12044, i64 1
+ %tmp12046 = getelementptr inbounds float* %tmp12045, i64 1
+ %tmp12047 = getelementptr inbounds float* %tmp12046, i64 1
+ %tmp12048 = getelementptr inbounds float* %tmp12047, i64 1
+ %tmp12049 = getelementptr inbounds float* %tmp12048, i64 1
+ %tmp12050 = getelementptr inbounds float* %tmp12049, i64 1
+ %tmp12051 = getelementptr inbounds float* %tmp12050, i64 1
+ %tmp12052 = getelementptr inbounds float* %tmp12051, i64 1
+ %tmp12053 = getelementptr inbounds float* %tmp12052, i64 1
+ %tmp12054 = getelementptr inbounds float* %tmp12053, i64 1
+ %tmp12055 = getelementptr inbounds float* %tmp12054, i64 1
+ %tmp12056 = getelementptr inbounds float* %tmp12055, i64 1
+ %tmp12057 = getelementptr inbounds float* %tmp12056, i64 1
+ %tmp12058 = getelementptr inbounds float* %tmp12057, i64 1
+ %tmp12059 = getelementptr inbounds float* %tmp12058, i64 1
+ %tmp12060 = getelementptr inbounds float* %tmp12059, i64 1
+ %tmp12061 = getelementptr inbounds float* %tmp12060, i64 1
+ %tmp12062 = getelementptr inbounds float* %tmp12061, i64 1
+ %tmp12063 = getelementptr inbounds float* %tmp12062, i64 1
+ %tmp12064 = getelementptr inbounds float* %tmp12063, i64 1
+ %tmp12065 = getelementptr inbounds float* %tmp12064, i64 1
+ %tmp12066 = getelementptr inbounds float* %tmp12065, i64 1
+ %tmp12067 = getelementptr inbounds float* %tmp12066, i64 1
+ %tmp12068 = getelementptr inbounds float* %tmp12067, i64 1
+ %tmp12069 = getelementptr inbounds float* %tmp12068, i64 1
+ %tmp12070 = getelementptr inbounds float* %tmp12069, i64 1
+ %tmp12071 = getelementptr inbounds float* %tmp12070, i64 1
+ %tmp12072 = getelementptr inbounds float* %tmp12071, i64 1
+ %tmp12073 = getelementptr inbounds float* %tmp12072, i64 1
+ %tmp12074 = getelementptr inbounds float* %tmp12073, i64 1
+ %tmp12075 = getelementptr inbounds float* %tmp12074, i64 1
+ %tmp12076 = getelementptr inbounds float* %tmp12075, i64 1
+ %tmp12077 = getelementptr inbounds float* %tmp12076, i64 1
+ %tmp12078 = getelementptr inbounds float* %tmp12077, i64 1
+ %tmp12079 = getelementptr inbounds float* %tmp12078, i64 1
+ %tmp12080 = getelementptr inbounds float* %tmp12079, i64 1
+ %tmp12081 = getelementptr inbounds float* %tmp12080, i64 1
+ %tmp12082 = getelementptr inbounds float* %tmp12081, i64 1
+ %tmp12083 = getelementptr inbounds float* %tmp12082, i64 1
+ %tmp12084 = getelementptr inbounds float* %tmp12083, i64 1
+ %tmp12085 = getelementptr inbounds float* %tmp12084, i64 1
+ %tmp12086 = getelementptr inbounds float* %tmp12085, i64 1
+ %tmp12087 = getelementptr inbounds float* %tmp12086, i64 1
+ %tmp12088 = getelementptr inbounds float* %tmp12087, i64 1
+ %tmp12089 = getelementptr inbounds float* %tmp12088, i64 1
+ %tmp12090 = getelementptr inbounds float* %tmp12089, i64 1
+ %tmp12091 = getelementptr inbounds float* %tmp12090, i64 1
+ %tmp12092 = getelementptr inbounds float* %tmp12091, i64 1
+ %tmp12093 = getelementptr inbounds float* %tmp12092, i64 1
+ %tmp12094 = getelementptr inbounds float* %tmp12093, i64 1
+ %tmp12095 = getelementptr inbounds float* %tmp12094, i64 1
+ %tmp12096 = getelementptr inbounds float* %tmp12095, i64 1
+ %tmp12097 = getelementptr inbounds float* %tmp12096, i64 1
+ %tmp12098 = getelementptr inbounds float* %tmp12097, i64 1
+ %tmp12099 = getelementptr inbounds float* %tmp12098, i64 1
+ %tmp12100 = getelementptr inbounds float* %tmp12099, i64 1
+ %tmp12101 = getelementptr inbounds float* %tmp12100, i64 1
+ %tmp12102 = getelementptr inbounds float* %tmp12101, i64 1
+ %tmp12103 = getelementptr inbounds float* %tmp12102, i64 1
+ %tmp12104 = getelementptr inbounds float* %tmp12103, i64 1
+ %tmp12105 = getelementptr inbounds float* %tmp12104, i64 1
+ %tmp12106 = getelementptr inbounds float* %tmp12105, i64 1
+ %tmp12107 = getelementptr inbounds float* %tmp12106, i64 1
+ %tmp12108 = getelementptr inbounds float* %tmp12107, i64 1
+ %tmp12109 = getelementptr inbounds float* %tmp12108, i64 1
+ %tmp12110 = getelementptr inbounds float* %tmp12109, i64 1
+ %tmp12111 = getelementptr inbounds float* %tmp12110, i64 1
+ %tmp12112 = getelementptr inbounds float* %tmp12111, i64 1
+ %tmp12113 = getelementptr inbounds float* %tmp12112, i64 1
+ %tmp12114 = getelementptr inbounds float* %tmp12113, i64 1
+ %tmp12115 = getelementptr inbounds float* %tmp12114, i64 1
+ %tmp12116 = getelementptr inbounds float* %tmp12115, i64 1
+ %tmp12117 = getelementptr inbounds float* %tmp12116, i64 1
+ %tmp12118 = getelementptr inbounds float* %tmp12117, i64 1
+ %tmp12119 = getelementptr inbounds float* %tmp12118, i64 1
+ %tmp12120 = getelementptr inbounds float* %tmp12119, i64 1
+ %tmp12121 = getelementptr inbounds float* %tmp12120, i64 1
+ %tmp12122 = getelementptr inbounds float* %tmp12121, i64 1
+ %tmp12123 = getelementptr inbounds float* %tmp12122, i64 1
+ %tmp12124 = getelementptr inbounds float* %tmp12123, i64 1
+ %tmp12125 = getelementptr inbounds float* %tmp12124, i64 1
+ %tmp12126 = getelementptr inbounds float* %tmp12125, i64 1
+ %tmp12127 = getelementptr inbounds float* %tmp12126, i64 1
+ %tmp12128 = getelementptr inbounds float* %tmp12127, i64 1
+ %tmp12129 = getelementptr inbounds float* %tmp12128, i64 1
+ %tmp12130 = getelementptr inbounds float* %tmp12129, i64 1
+ %tmp12131 = getelementptr inbounds float* %tmp12130, i64 1
+ %tmp12132 = getelementptr inbounds float* %tmp12131, i64 1
+ %tmp12133 = getelementptr inbounds float* %tmp12132, i64 1
+ %tmp12134 = getelementptr inbounds float* %tmp12133, i64 1
+ %tmp12135 = getelementptr inbounds float* %tmp12134, i64 1
+ %tmp12136 = getelementptr inbounds float* %tmp12135, i64 1
+ %tmp12137 = getelementptr inbounds float* %tmp12136, i64 1
+ %tmp12138 = getelementptr inbounds float* %tmp12137, i64 1
+ %tmp12139 = getelementptr inbounds float* %tmp12138, i64 1
+ %tmp12140 = getelementptr inbounds float* %tmp12139, i64 1
+ %tmp12141 = getelementptr inbounds float* %tmp12140, i64 1
+ %tmp12142 = getelementptr inbounds float* %tmp12141, i64 1
+ %tmp12143 = getelementptr inbounds float* %tmp12142, i64 1
+ %tmp12144 = getelementptr inbounds float* %tmp12143, i64 1
+ %tmp12145 = getelementptr inbounds float* %tmp12144, i64 1
+ %tmp12146 = getelementptr inbounds float* %tmp12145, i64 1
+ %tmp12147 = getelementptr inbounds float* %tmp12146, i64 1
+ %tmp12148 = getelementptr inbounds float* %tmp12147, i64 1
+ %tmp12149 = getelementptr inbounds float* %tmp12148, i64 1
+ %tmp12150 = getelementptr inbounds float* %tmp12149, i64 1
+ %tmp12151 = getelementptr inbounds float* %tmp12150, i64 1
+ %tmp12152 = getelementptr inbounds float* %tmp12151, i64 1
+ %tmp12153 = getelementptr inbounds float* %tmp12152, i64 1
+ %tmp12154 = getelementptr inbounds float* %tmp12153, i64 1
+ %tmp12155 = getelementptr inbounds float* %tmp12154, i64 1
+ %tmp12156 = getelementptr inbounds float* %tmp12155, i64 1
+ %tmp12157 = getelementptr inbounds float* %tmp12156, i64 1
+ %tmp12158 = getelementptr inbounds float* %tmp12157, i64 1
+ %tmp12159 = getelementptr inbounds float* %tmp12158, i64 1
+ %tmp12160 = getelementptr inbounds float* %tmp12159, i64 1
+ %tmp12161 = getelementptr inbounds float* %tmp12160, i64 1
+ %tmp12162 = getelementptr inbounds float* %tmp12161, i64 1
+ %tmp12163 = getelementptr inbounds float* %tmp12162, i64 1
+ %tmp12164 = getelementptr inbounds float* %tmp12163, i64 1
+ %tmp12165 = getelementptr inbounds float* %tmp12164, i64 1
+ %tmp12166 = getelementptr inbounds float* %tmp12165, i64 1
+ %tmp12167 = getelementptr inbounds float* %tmp12166, i64 1
+ %tmp12168 = getelementptr inbounds float* %tmp12167, i64 1
+ %tmp12169 = getelementptr inbounds float* %tmp12168, i64 1
+ %tmp12170 = getelementptr inbounds float* %tmp12169, i64 1
+ %tmp12171 = getelementptr inbounds float* %tmp12170, i64 1
+ %tmp12172 = getelementptr inbounds float* %tmp12171, i64 1
+ %tmp12173 = getelementptr inbounds float* %tmp12172, i64 1
+ %tmp12174 = getelementptr inbounds float* %tmp12173, i64 1
+ %tmp12175 = getelementptr inbounds float* %tmp12174, i64 1
+ %tmp12176 = getelementptr inbounds float* %tmp12175, i64 1
+ %tmp12177 = getelementptr inbounds float* %tmp12176, i64 1
+ %tmp12178 = getelementptr inbounds float* %tmp12177, i64 1
+ %tmp12179 = getelementptr inbounds float* %tmp12178, i64 1
+ %tmp12180 = getelementptr inbounds float* %tmp12179, i64 1
+ %tmp12181 = getelementptr inbounds float* %tmp12180, i64 1
+ %tmp12182 = getelementptr inbounds float* %tmp12181, i64 1
+ %tmp12183 = getelementptr inbounds float* %tmp12182, i64 1
+ %tmp12184 = getelementptr inbounds float* %tmp12183, i64 1
+ %tmp12185 = getelementptr inbounds float* %tmp12184, i64 1
+ %tmp12186 = getelementptr inbounds float* %tmp12185, i64 1
+ %tmp12187 = getelementptr inbounds float* %tmp12186, i64 1
+ %tmp12188 = getelementptr inbounds float* %tmp12187, i64 1
+ %tmp12189 = getelementptr inbounds float* %tmp12188, i64 1
+ %tmp12190 = getelementptr inbounds float* %tmp12189, i64 1
+ %tmp12191 = getelementptr inbounds float* %tmp12190, i64 1
+ %tmp12192 = getelementptr inbounds float* %tmp12191, i64 1
+ %tmp12193 = getelementptr inbounds float* %tmp12192, i64 1
+ %tmp12194 = getelementptr inbounds float* %tmp12193, i64 1
+ %tmp12195 = getelementptr inbounds float* %tmp12194, i64 1
+ %tmp12196 = getelementptr inbounds float* %tmp12195, i64 1
+ %tmp12197 = getelementptr inbounds float* %tmp12196, i64 1
+ %tmp12198 = getelementptr inbounds float* %tmp12197, i64 1
+ %tmp12199 = getelementptr inbounds float* %tmp12198, i64 1
+ %tmp12200 = getelementptr inbounds float* %tmp12199, i64 1
+ %tmp12201 = getelementptr inbounds float* %tmp12200, i64 1
+ %tmp12202 = getelementptr inbounds float* %tmp12201, i64 1
+ %tmp12203 = getelementptr inbounds float* %tmp12202, i64 1
+ %tmp12204 = getelementptr inbounds float* %tmp12203, i64 1
+ %tmp12205 = getelementptr inbounds float* %tmp12204, i64 1
+ %tmp12206 = getelementptr inbounds float* %tmp12205, i64 1
+ %tmp12207 = getelementptr inbounds float* %tmp12206, i64 1
+ %tmp12208 = getelementptr inbounds float* %tmp12207, i64 1
+ %tmp12209 = getelementptr inbounds float* %tmp12208, i64 1
+ %tmp12210 = getelementptr inbounds float* %tmp12209, i64 1
+ %tmp12211 = getelementptr inbounds float* %tmp12210, i64 1
+ %tmp12212 = getelementptr inbounds float* %tmp12211, i64 1
+ %tmp12213 = getelementptr inbounds float* %tmp12212, i64 1
+ %tmp12214 = getelementptr inbounds float* %tmp12213, i64 1
+ %tmp12215 = getelementptr inbounds float* %tmp12214, i64 1
+ %tmp12216 = getelementptr inbounds float* %tmp12215, i64 1
+ %tmp12217 = getelementptr inbounds float* %tmp12216, i64 1
+ %tmp12218 = getelementptr inbounds float* %tmp12217, i64 1
+ %tmp12219 = getelementptr inbounds float* %tmp12218, i64 1
+ %tmp12220 = getelementptr inbounds float* %tmp12219, i64 1
+ %tmp12221 = getelementptr inbounds float* %tmp12220, i64 1
+ %tmp12222 = getelementptr inbounds float* %tmp12221, i64 1
+ %tmp12223 = getelementptr inbounds float* %tmp12222, i64 1
+ %tmp12224 = getelementptr inbounds float* %tmp12223, i64 1
+ %tmp12225 = getelementptr inbounds float* %tmp12224, i64 1
+ %tmp12226 = getelementptr inbounds float* %tmp12225, i64 1
+ %tmp12227 = getelementptr inbounds float* %tmp12226, i64 1
+ %tmp12228 = getelementptr inbounds float* %tmp12227, i64 1
+ %tmp12229 = getelementptr inbounds float* %tmp12228, i64 1
+ %tmp12230 = getelementptr inbounds float* %tmp12229, i64 1
+ %tmp12231 = getelementptr inbounds float* %tmp12230, i64 1
+ %tmp12232 = getelementptr inbounds float* %tmp12231, i64 1
+ %tmp12233 = getelementptr inbounds float* %tmp12232, i64 1
+ %tmp12234 = getelementptr inbounds float* %tmp12233, i64 1
+ %tmp12235 = getelementptr inbounds float* %tmp12234, i64 1
+ %tmp12236 = getelementptr inbounds float* %tmp12235, i64 1
+ %tmp12237 = getelementptr inbounds float* %tmp12236, i64 1
+ %tmp12238 = getelementptr inbounds float* %tmp12237, i64 1
+ %tmp12239 = getelementptr inbounds float* %tmp12238, i64 1
+ %tmp12240 = getelementptr inbounds float* %tmp12239, i64 1
+ %tmp12241 = getelementptr inbounds float* %tmp12240, i64 1
+ %tmp12242 = getelementptr inbounds float* %tmp12241, i64 1
+ %tmp12243 = getelementptr inbounds float* %tmp12242, i64 1
+ %tmp12244 = getelementptr inbounds float* %tmp12243, i64 1
+ %tmp12245 = getelementptr inbounds float* %tmp12244, i64 1
+ %tmp12246 = getelementptr inbounds float* %tmp12245, i64 1
+ %tmp12247 = getelementptr inbounds float* %tmp12246, i64 1
+ %tmp12248 = getelementptr inbounds float* %tmp12247, i64 1
+ %tmp12249 = getelementptr inbounds float* %tmp12248, i64 1
+ %tmp12250 = getelementptr inbounds float* %tmp12249, i64 1
+ %tmp12251 = getelementptr inbounds float* %tmp12250, i64 1
+ %tmp12252 = getelementptr inbounds float* %tmp12251, i64 1
+ %tmp12253 = getelementptr inbounds float* %tmp12252, i64 1
+ %tmp12254 = getelementptr inbounds float* %tmp12253, i64 1
+ %tmp12255 = getelementptr inbounds float* %tmp12254, i64 1
+ %tmp12256 = getelementptr inbounds float* %tmp12255, i64 1
+ %tmp12257 = getelementptr inbounds float* %tmp12256, i64 1
+ %tmp12258 = getelementptr inbounds float* %tmp12257, i64 1
+ %tmp12259 = getelementptr inbounds float* %tmp12258, i64 1
+ %tmp12260 = getelementptr inbounds float* %tmp12259, i64 1
+ %tmp12261 = getelementptr inbounds float* %tmp12260, i64 1
+ %tmp12262 = getelementptr inbounds float* %tmp12261, i64 1
+ %tmp12263 = getelementptr inbounds float* %tmp12262, i64 1
+ %tmp12264 = getelementptr inbounds float* %tmp12263, i64 1
+ %tmp12265 = getelementptr inbounds float* %tmp12264, i64 1
+ %tmp12266 = getelementptr inbounds float* %tmp12265, i64 1
+ %tmp12267 = getelementptr inbounds float* %tmp12266, i64 1
+ %tmp12268 = getelementptr inbounds float* %tmp12267, i64 1
+ %tmp12269 = getelementptr inbounds float* %tmp12268, i64 1
+ %tmp12270 = getelementptr inbounds float* %tmp12269, i64 1
+ %tmp12271 = getelementptr inbounds float* %tmp12270, i64 1
+ %tmp12272 = getelementptr inbounds float* %tmp12271, i64 1
+ %tmp12273 = getelementptr inbounds float* %tmp12272, i64 1
+ %tmp12274 = getelementptr inbounds float* %tmp12273, i64 1
+ %tmp12275 = getelementptr inbounds float* %tmp12274, i64 1
+ %tmp12276 = getelementptr inbounds float* %tmp12275, i64 1
+ %tmp12277 = getelementptr inbounds float* %tmp12276, i64 1
+ %tmp12278 = getelementptr inbounds float* %tmp12277, i64 1
+ %tmp12279 = getelementptr inbounds float* %tmp12278, i64 1
+ %tmp12280 = getelementptr inbounds float* %tmp12279, i64 1
+ %tmp12281 = getelementptr inbounds float* %tmp12280, i64 1
+ %tmp12282 = getelementptr inbounds float* %tmp12281, i64 1
+ %tmp12283 = getelementptr inbounds float* %tmp12282, i64 1
+ %tmp12284 = getelementptr inbounds float* %tmp12283, i64 1
+ %tmp12285 = getelementptr inbounds float* %tmp12284, i64 1
+ %tmp12286 = getelementptr inbounds float* %tmp12285, i64 1
+ %tmp12287 = getelementptr inbounds float* %tmp12286, i64 1
+ %tmp12288 = getelementptr inbounds float* %tmp12287, i64 1
+ %tmp12289 = getelementptr inbounds float* %tmp12288, i64 1
+ %tmp12290 = getelementptr inbounds float* %tmp12289, i64 1
+ %tmp12291 = getelementptr inbounds float* %tmp12290, i64 1
+ %tmp12292 = getelementptr inbounds float* %tmp12291, i64 1
+ %tmp12293 = getelementptr inbounds float* %tmp12292, i64 1
+ %tmp12294 = getelementptr inbounds float* %tmp12293, i64 1
+ %tmp12295 = getelementptr inbounds float* %tmp12294, i64 1
+ %tmp12296 = getelementptr inbounds float* %tmp12295, i64 1
+ %tmp12297 = getelementptr inbounds float* %tmp12296, i64 1
+ %tmp12298 = getelementptr inbounds float* %tmp12297, i64 1
+ %tmp12299 = getelementptr inbounds float* %tmp12298, i64 1
+ %tmp12300 = getelementptr inbounds float* %tmp12299, i64 1
+ %tmp12301 = getelementptr inbounds float* %tmp12300, i64 1
+ %tmp12302 = getelementptr inbounds float* %tmp12301, i64 1
+ %tmp12303 = getelementptr inbounds float* %tmp12302, i64 1
+ %tmp12304 = getelementptr inbounds float* %tmp12303, i64 1
+ %tmp12305 = getelementptr inbounds float* %tmp12304, i64 1
+ %tmp12306 = getelementptr inbounds float* %tmp12305, i64 1
+ %tmp12307 = getelementptr inbounds float* %tmp12306, i64 1
+ %tmp12308 = getelementptr inbounds float* %tmp12307, i64 1
+ %tmp12309 = getelementptr inbounds float* %tmp12308, i64 1
+ %tmp12310 = getelementptr inbounds float* %tmp12309, i64 1
+ %tmp12311 = getelementptr inbounds float* %tmp12310, i64 1
+ %tmp12312 = getelementptr inbounds float* %tmp12311, i64 1
+ %tmp12313 = getelementptr inbounds float* %tmp12312, i64 1
+ %tmp12314 = getelementptr inbounds float* %tmp12313, i64 1
+ %tmp12315 = getelementptr inbounds float* %tmp12314, i64 1
+ %tmp12316 = getelementptr inbounds float* %tmp12315, i64 1
+ %tmp12317 = getelementptr inbounds float* %tmp12316, i64 1
+ %tmp12318 = getelementptr inbounds float* %tmp12317, i64 1
+ %tmp12319 = getelementptr inbounds float* %tmp12318, i64 1
+ %tmp12320 = getelementptr inbounds float* %tmp12319, i64 1
+ %tmp12321 = getelementptr inbounds float* %tmp12320, i64 1
+ %tmp12322 = getelementptr inbounds float* %tmp12321, i64 1
+ %tmp12323 = getelementptr inbounds float* %tmp12322, i64 1
+ %tmp12324 = getelementptr inbounds float* %tmp12323, i64 1
+ %tmp12325 = getelementptr inbounds float* %tmp12324, i64 1
+ %tmp12326 = getelementptr inbounds float* %tmp12325, i64 1
+ %tmp12327 = getelementptr inbounds float* %tmp12326, i64 1
+ %tmp12328 = getelementptr inbounds float* %tmp12327, i64 1
+ %tmp12329 = getelementptr inbounds float* %tmp12328, i64 1
+ %tmp12330 = getelementptr inbounds float* %tmp12329, i64 1
+ %tmp12331 = getelementptr inbounds float* %tmp12330, i64 1
+ %tmp12332 = getelementptr inbounds float* %tmp12331, i64 1
+ %tmp12333 = getelementptr inbounds float* %tmp12332, i64 1
+ %tmp12334 = getelementptr inbounds float* %tmp12333, i64 1
+ %tmp12335 = getelementptr inbounds float* %tmp12334, i64 1
+ %tmp12336 = getelementptr inbounds float* %tmp12335, i64 1
+ %tmp12337 = getelementptr inbounds float* %tmp12336, i64 1
+ %tmp12338 = getelementptr inbounds float* %tmp12337, i64 1
+ %tmp12339 = getelementptr inbounds float* %tmp12338, i64 1
+ %tmp12340 = getelementptr inbounds float* %tmp12339, i64 1
+ %tmp12341 = getelementptr inbounds float* %tmp12340, i64 1
+ %tmp12342 = getelementptr inbounds float* %tmp12341, i64 1
+ %tmp12343 = getelementptr inbounds float* %tmp12342, i64 1
+ %tmp12344 = getelementptr inbounds float* %tmp12343, i64 1
+ %tmp12345 = getelementptr inbounds float* %tmp12344, i64 1
+ %tmp12346 = getelementptr inbounds float* %tmp12345, i64 1
+ %tmp12347 = getelementptr inbounds float* %tmp12346, i64 1
+ %tmp12348 = getelementptr inbounds float* %tmp12347, i64 1
+ %tmp12349 = getelementptr inbounds float* %tmp12348, i64 1
+ %tmp12350 = getelementptr inbounds float* %tmp12349, i64 1
+ %tmp12351 = getelementptr inbounds float* %tmp12350, i64 1
+ %tmp12352 = getelementptr inbounds float* %tmp12351, i64 1
+ %tmp12353 = getelementptr inbounds float* %tmp12352, i64 1
+ %tmp12354 = getelementptr inbounds float* %tmp12353, i64 1
+ %tmp12355 = getelementptr inbounds float* %tmp12354, i64 1
+ %tmp12356 = getelementptr inbounds float* %tmp12355, i64 1
+ %tmp12357 = getelementptr inbounds float* %tmp12356, i64 1
+ %tmp12358 = getelementptr inbounds float* %tmp12357, i64 1
+ %tmp12359 = getelementptr inbounds float* %tmp12358, i64 1
+ %tmp12360 = getelementptr inbounds float* %tmp12359, i64 1
+ %tmp12361 = getelementptr inbounds float* %tmp12360, i64 1
+ %tmp12362 = getelementptr inbounds float* %tmp12361, i64 1
+ %tmp12363 = getelementptr inbounds float* %tmp12362, i64 1
+ %tmp12364 = getelementptr inbounds float* %tmp12363, i64 1
+ %tmp12365 = getelementptr inbounds float* %tmp12364, i64 1
+ %tmp12366 = getelementptr inbounds float* %tmp12365, i64 1
+ %tmp12367 = getelementptr inbounds float* %tmp12366, i64 1
+ %tmp12368 = getelementptr inbounds float* %tmp12367, i64 1
+ %tmp12369 = getelementptr inbounds float* %tmp12368, i64 1
+ %tmp12370 = getelementptr inbounds float* %tmp12369, i64 1
+ %tmp12371 = getelementptr inbounds float* %tmp12370, i64 1
+ %tmp12372 = getelementptr inbounds float* %tmp12371, i64 1
+ %tmp12373 = getelementptr inbounds float* %tmp12372, i64 1
+ %tmp12374 = getelementptr inbounds float* %tmp12373, i64 1
+ %tmp12375 = getelementptr inbounds float* %tmp12374, i64 1
+ %tmp12376 = getelementptr inbounds float* %tmp12375, i64 1
+ %tmp12377 = getelementptr inbounds float* %tmp12376, i64 1
+ %tmp12378 = getelementptr inbounds float* %tmp12377, i64 1
+ %tmp12379 = getelementptr inbounds float* %tmp12378, i64 1
+ %tmp12380 = getelementptr inbounds float* %tmp12379, i64 1
+ %tmp12381 = getelementptr inbounds float* %tmp12380, i64 1
+ %tmp12382 = getelementptr inbounds float* %tmp12381, i64 1
+ %tmp12383 = getelementptr inbounds float* %tmp12382, i64 1
+ %tmp12384 = getelementptr inbounds float* %tmp12383, i64 1
+ %tmp12385 = getelementptr inbounds float* %tmp12384, i64 1
+ %tmp12386 = getelementptr inbounds float* %tmp12385, i64 1
+ %tmp12387 = getelementptr inbounds float* %tmp12386, i64 1
+ %tmp12388 = getelementptr inbounds float* %tmp12387, i64 1
+ %tmp12389 = getelementptr inbounds float* %tmp12388, i64 1
+ %tmp12390 = getelementptr inbounds float* %tmp12389, i64 1
+ %tmp12391 = getelementptr inbounds float* %tmp12390, i64 1
+ %tmp12392 = getelementptr inbounds float* %tmp12391, i64 1
+ %tmp12393 = getelementptr inbounds float* %tmp12392, i64 1
+ %tmp12394 = getelementptr inbounds float* %tmp12393, i64 1
+ %tmp12395 = getelementptr inbounds float* %tmp12394, i64 1
+ %tmp12396 = getelementptr inbounds float* %tmp12395, i64 1
+ %tmp12397 = getelementptr inbounds float* %tmp12396, i64 1
+ %tmp12398 = getelementptr inbounds float* %tmp12397, i64 1
+ %tmp12399 = getelementptr inbounds float* %tmp12398, i64 1
+ %tmp12400 = getelementptr inbounds float* %tmp12399, i64 1
+ %tmp12401 = getelementptr inbounds float* %tmp12400, i64 1
+ %tmp12402 = getelementptr inbounds float* %tmp12401, i64 1
+ %tmp12403 = getelementptr inbounds float* %tmp12402, i64 1
+ %tmp12404 = getelementptr inbounds float* %tmp12403, i64 1
+ %tmp12405 = getelementptr inbounds float* %tmp12404, i64 1
+ %tmp12406 = getelementptr inbounds float* %tmp12405, i64 1
+ %tmp12407 = getelementptr inbounds float* %tmp12406, i64 1
+ %tmp12408 = getelementptr inbounds float* %tmp12407, i64 1
+ %tmp12409 = getelementptr inbounds float* %tmp12408, i64 1
+ %tmp12410 = getelementptr inbounds float* %tmp12409, i64 1
+ %tmp12411 = getelementptr inbounds float* %tmp12410, i64 1
+ %tmp12412 = getelementptr inbounds float* %tmp12411, i64 1
+ %tmp12413 = getelementptr inbounds float* %tmp12412, i64 1
+ %tmp12414 = getelementptr inbounds float* %tmp12413, i64 1
+ %tmp12415 = getelementptr inbounds float* %tmp12414, i64 1
+ %tmp12416 = getelementptr inbounds float* %tmp12415, i64 1
+ %tmp12417 = getelementptr inbounds float* %tmp12416, i64 1
+ %tmp12418 = getelementptr inbounds float* %tmp12417, i64 1
+ %tmp12419 = getelementptr inbounds float* %tmp12418, i64 1
+ %tmp12420 = getelementptr inbounds float* %tmp12419, i64 1
+ %tmp12421 = getelementptr inbounds float* %tmp12420, i64 1
+ %tmp12422 = getelementptr inbounds float* %tmp12421, i64 1
+ %tmp12423 = getelementptr inbounds float* %tmp12422, i64 1
+ %tmp12424 = getelementptr inbounds float* %tmp12423, i64 1
+ %tmp12425 = getelementptr inbounds float* %tmp12424, i64 1
+ %tmp12426 = getelementptr inbounds float* %tmp12425, i64 1
+ %tmp12427 = getelementptr inbounds float* %tmp12426, i64 1
+ %tmp12428 = getelementptr inbounds float* %tmp12427, i64 1
+ %tmp12429 = getelementptr inbounds float* %tmp12428, i64 1
+ %tmp12430 = getelementptr inbounds float* %tmp12429, i64 1
+ %tmp12431 = getelementptr inbounds float* %tmp12430, i64 1
+ %tmp12432 = getelementptr inbounds float* %tmp12431, i64 1
+ %tmp12433 = getelementptr inbounds float* %tmp12432, i64 1
+ %tmp12434 = getelementptr inbounds float* %tmp12433, i64 1
+ %tmp12435 = getelementptr inbounds float* %tmp12434, i64 1
+ %tmp12436 = getelementptr inbounds float* %tmp12435, i64 1
+ %tmp12437 = getelementptr inbounds float* %tmp12436, i64 1
+ %tmp12438 = getelementptr inbounds float* %tmp12437, i64 1
+ %tmp12439 = getelementptr inbounds float* %tmp12438, i64 1
+ %tmp12440 = getelementptr inbounds float* %tmp12439, i64 1
+ %tmp12441 = getelementptr inbounds float* %tmp12440, i64 1
+ %tmp12442 = getelementptr inbounds float* %tmp12441, i64 1
+ %tmp12443 = getelementptr inbounds float* %tmp12442, i64 1
+ %tmp12444 = getelementptr inbounds float* %tmp12443, i64 1
+ %tmp12445 = getelementptr inbounds float* %tmp12444, i64 1
+ %tmp12446 = getelementptr inbounds float* %tmp12445, i64 1
+ %tmp12447 = getelementptr inbounds float* %tmp12446, i64 1
+ %tmp12448 = getelementptr inbounds float* %tmp12447, i64 1
+ %tmp12449 = getelementptr inbounds float* %tmp12448, i64 1
+ %tmp12450 = getelementptr inbounds float* %tmp12449, i64 1
+ %tmp12451 = getelementptr inbounds float* %tmp12450, i64 1
+ %tmp12452 = getelementptr inbounds float* %tmp12451, i64 1
+ %tmp12453 = getelementptr inbounds float* %tmp12452, i64 1
+ %tmp12454 = getelementptr inbounds float* %tmp12453, i64 1
+ %tmp12455 = getelementptr inbounds float* %tmp12454, i64 1
+ %tmp12456 = getelementptr inbounds float* %tmp12455, i64 1
+ %tmp12457 = getelementptr inbounds float* %tmp12456, i64 1
+ %tmp12458 = getelementptr inbounds float* %tmp12457, i64 1
+ %tmp12459 = getelementptr inbounds float* %tmp12458, i64 1
+ %tmp12460 = getelementptr inbounds float* %tmp12459, i64 1
+ %tmp12461 = getelementptr inbounds float* %tmp12460, i64 1
+ %tmp12462 = getelementptr inbounds float* %tmp12461, i64 1
+ %tmp12463 = getelementptr inbounds float* %tmp12462, i64 1
+ %tmp12464 = getelementptr inbounds float* %tmp12463, i64 1
+ %tmp12465 = getelementptr inbounds float* %tmp12464, i64 1
+ %tmp12466 = getelementptr inbounds float* %tmp12465, i64 1
+ %tmp12467 = getelementptr inbounds float* %tmp12466, i64 1
+ %tmp12468 = getelementptr inbounds float* %tmp12467, i64 1
+ %tmp12469 = getelementptr inbounds float* %tmp12468, i64 1
+ %tmp12470 = getelementptr inbounds float* %tmp12469, i64 1
+ %tmp12471 = getelementptr inbounds float* %tmp12470, i64 1
+ %tmp12472 = getelementptr inbounds float* %tmp12471, i64 1
+ %tmp12473 = getelementptr inbounds float* %tmp12472, i64 1
+ %tmp12474 = getelementptr inbounds float* %tmp12473, i64 1
+ %tmp12475 = getelementptr inbounds float* %tmp12474, i64 1
+ %tmp12476 = getelementptr inbounds float* %tmp12475, i64 1
+ %tmp12477 = getelementptr inbounds float* %tmp12476, i64 1
+ %tmp12478 = getelementptr inbounds float* %tmp12477, i64 1
+ %tmp12479 = getelementptr inbounds float* %tmp12478, i64 1
+ %tmp12480 = getelementptr inbounds float* %tmp12479, i64 1
+ %tmp12481 = getelementptr inbounds float* %tmp12480, i64 1
+ %tmp12482 = getelementptr inbounds float* %tmp12481, i64 1
+ %tmp12483 = getelementptr inbounds float* %tmp12482, i64 1
+ %tmp12484 = getelementptr inbounds float* %tmp12483, i64 1
+ %tmp12485 = getelementptr inbounds float* %tmp12484, i64 1
+ %tmp12486 = getelementptr inbounds float* %tmp12485, i64 1
+ %tmp12487 = getelementptr inbounds float* %tmp12486, i64 1
+ %tmp12488 = getelementptr inbounds float* %tmp12487, i64 1
+ %tmp12489 = getelementptr inbounds float* %tmp12488, i64 1
+ %tmp12490 = getelementptr inbounds float* %tmp12489, i64 1
+ %tmp12491 = getelementptr inbounds float* %tmp12490, i64 1
+ %tmp12492 = getelementptr inbounds float* %tmp12491, i64 1
+ %tmp12493 = getelementptr inbounds float* %tmp12492, i64 1
+ %tmp12494 = getelementptr inbounds float* %tmp12493, i64 1
+ %tmp12495 = getelementptr inbounds float* %tmp12494, i64 1
+ %tmp12496 = getelementptr inbounds float* %tmp12495, i64 1
+ %tmp12497 = getelementptr inbounds float* %tmp12496, i64 1
+ %tmp12498 = getelementptr inbounds float* %tmp12497, i64 1
+ %tmp12499 = getelementptr inbounds float* %tmp12498, i64 1
+ %tmp12500 = getelementptr inbounds float* %tmp12499, i64 1
+ %tmp12501 = getelementptr inbounds float* %tmp12500, i64 1
+ %tmp12502 = getelementptr inbounds float* %tmp12501, i64 1
+ %tmp12503 = getelementptr inbounds float* %tmp12502, i64 1
+ %tmp12504 = getelementptr inbounds float* %tmp12503, i64 1
+ %tmp12505 = getelementptr inbounds float* %tmp12504, i64 1
+ %tmp12506 = getelementptr inbounds float* %tmp12505, i64 1
+ %tmp12507 = getelementptr inbounds float* %tmp12506, i64 1
+ %tmp12508 = getelementptr inbounds float* %tmp12507, i64 1
+ %tmp12509 = getelementptr inbounds float* %tmp12508, i64 1
+ %tmp12510 = getelementptr inbounds float* %tmp12509, i64 1
+ %tmp12511 = getelementptr inbounds float* %tmp12510, i64 1
+ %tmp12512 = getelementptr inbounds float* %tmp12511, i64 1
+ %tmp12513 = getelementptr inbounds float* %tmp12512, i64 1
+ %tmp12514 = getelementptr inbounds float* %tmp12513, i64 1
+ %tmp12515 = getelementptr inbounds float* %tmp12514, i64 1
+ %tmp12516 = getelementptr inbounds float* %tmp12515, i64 1
+ %tmp12517 = getelementptr inbounds float* %tmp12516, i64 1
+ %tmp12518 = getelementptr inbounds float* %tmp12517, i64 1
+ %tmp12519 = getelementptr inbounds float* %tmp12518, i64 1
+ %tmp12520 = getelementptr inbounds float* %tmp12519, i64 1
+ %tmp12521 = getelementptr inbounds float* %tmp12520, i64 1
+ %tmp12522 = getelementptr inbounds float* %tmp12521, i64 1
+ %tmp12523 = getelementptr inbounds float* %tmp12522, i64 1
+ %tmp12524 = getelementptr inbounds float* %tmp12523, i64 1
+ %tmp12525 = getelementptr inbounds float* %tmp12524, i64 1
+ %tmp12526 = getelementptr inbounds float* %tmp12525, i64 1
+ %tmp12527 = getelementptr inbounds float* %tmp12526, i64 1
+ %tmp12528 = getelementptr inbounds float* %tmp12527, i64 1
+ %tmp12529 = getelementptr inbounds float* %tmp12528, i64 1
+ %tmp12530 = getelementptr inbounds float* %tmp12529, i64 1
+ %tmp12531 = getelementptr inbounds float* %tmp12530, i64 1
+ %tmp12532 = getelementptr inbounds float* %tmp12531, i64 1
+ %tmp12533 = getelementptr inbounds float* %tmp12532, i64 1
+ %tmp12534 = getelementptr inbounds float* %tmp12533, i64 1
+ %tmp12535 = getelementptr inbounds float* %tmp12534, i64 1
+ %tmp12536 = getelementptr inbounds float* %tmp12535, i64 1
+ %tmp12537 = getelementptr inbounds float* %tmp12536, i64 1
+ %tmp12538 = getelementptr inbounds float* %tmp12537, i64 1
+ %tmp12539 = getelementptr inbounds float* %tmp12538, i64 1
+ %tmp12540 = getelementptr inbounds float* %tmp12539, i64 1
+ %tmp12541 = getelementptr inbounds float* %tmp12540, i64 1
+ %tmp12542 = getelementptr inbounds float* %tmp12541, i64 1
+ %tmp12543 = getelementptr inbounds float* %tmp12542, i64 1
+ %tmp12544 = getelementptr inbounds float* %tmp12543, i64 1
+ %tmp12545 = getelementptr inbounds float* %tmp12544, i64 1
+ %tmp12546 = getelementptr inbounds float* %tmp12545, i64 1
+ %tmp12547 = getelementptr inbounds float* %tmp12546, i64 1
+ %tmp12548 = getelementptr inbounds float* %tmp12547, i64 1
+ %tmp12549 = getelementptr inbounds float* %tmp12548, i64 1
+ %tmp12550 = getelementptr inbounds float* %tmp12549, i64 1
+ %tmp12551 = getelementptr inbounds float* %tmp12550, i64 1
+ %tmp12552 = getelementptr inbounds float* %tmp12551, i64 1
+ %tmp12553 = getelementptr inbounds float* %tmp12552, i64 1
+ %tmp12554 = getelementptr inbounds float* %tmp12553, i64 1
+ %tmp12555 = getelementptr inbounds float* %tmp12554, i64 1
+ %tmp12556 = getelementptr inbounds float* %tmp12555, i64 1
+ %tmp12557 = getelementptr inbounds float* %tmp12556, i64 1
+ %tmp12558 = getelementptr inbounds float* %tmp12557, i64 1
+ %tmp12559 = getelementptr inbounds float* %tmp12558, i64 1
+ %tmp12560 = getelementptr inbounds float* %tmp12559, i64 1
+ %tmp12561 = getelementptr inbounds float* %tmp12560, i64 1
+ %tmp12562 = getelementptr inbounds float* %tmp12561, i64 1
+ %tmp12563 = getelementptr inbounds float* %tmp12562, i64 1
+ %tmp12564 = getelementptr inbounds float* %tmp12563, i64 1
+ %tmp12565 = getelementptr inbounds float* %tmp12564, i64 1
+ %tmp12566 = getelementptr inbounds float* %tmp12565, i64 1
+ %tmp12567 = getelementptr inbounds float* %tmp12566, i64 1
+ %tmp12568 = getelementptr inbounds float* %tmp12567, i64 1
+ %tmp12569 = getelementptr inbounds float* %tmp12568, i64 1
+ %tmp12570 = getelementptr inbounds float* %tmp12569, i64 1
+ %tmp12571 = getelementptr inbounds float* %tmp12570, i64 1
+ %tmp12572 = getelementptr inbounds float* %tmp12571, i64 1
+ %tmp12573 = getelementptr inbounds float* %tmp12572, i64 1
+ %tmp12574 = getelementptr inbounds float* %tmp12573, i64 1
+ %tmp12575 = getelementptr inbounds float* %tmp12574, i64 1
+ %tmp12576 = getelementptr inbounds float* %tmp12575, i64 1
+ %tmp12577 = getelementptr inbounds float* %tmp12576, i64 1
+ %tmp12578 = getelementptr inbounds float* %tmp12577, i64 1
+ %tmp12579 = getelementptr inbounds float* %tmp12578, i64 1
+ %tmp12580 = getelementptr inbounds float* %tmp12579, i64 1
+ %tmp12581 = getelementptr inbounds float* %tmp12580, i64 1
+ %tmp12582 = getelementptr inbounds float* %tmp12581, i64 1
+ %tmp12583 = getelementptr inbounds float* %tmp12582, i64 1
+ %tmp12584 = getelementptr inbounds float* %tmp12583, i64 1
+ %tmp12585 = getelementptr inbounds float* %tmp12584, i64 1
+ %tmp12586 = getelementptr inbounds float* %tmp12585, i64 1
+ %tmp12587 = getelementptr inbounds float* %tmp12586, i64 1
+ %tmp12588 = getelementptr inbounds float* %tmp12587, i64 1
+ %tmp12589 = getelementptr inbounds float* %tmp12588, i64 1
+ %tmp12590 = getelementptr inbounds float* %tmp12589, i64 1
+ %tmp12591 = getelementptr inbounds float* %tmp12590, i64 1
+ %tmp12592 = getelementptr inbounds float* %tmp12591, i64 1
+ %tmp12593 = getelementptr inbounds float* %tmp12592, i64 1
+ %tmp12594 = getelementptr inbounds float* %tmp12593, i64 1
+ %tmp12595 = getelementptr inbounds float* %tmp12594, i64 1
+ %tmp12596 = getelementptr inbounds float* %tmp12595, i64 1
+ %tmp12597 = getelementptr inbounds float* %tmp12596, i64 1
+ %tmp12598 = getelementptr inbounds float* %tmp12597, i64 1
+ %tmp12599 = getelementptr inbounds float* %tmp12598, i64 1
+ %tmp12600 = getelementptr inbounds float* %tmp12599, i64 1
+ %tmp12601 = getelementptr inbounds float* %tmp12600, i64 1
+ %tmp12602 = getelementptr inbounds float* %tmp12601, i64 1
+ %tmp12603 = getelementptr inbounds float* %tmp12602, i64 1
+ %tmp12604 = getelementptr inbounds float* %tmp12603, i64 1
+ %tmp12605 = getelementptr inbounds float* %tmp12604, i64 1
+ %tmp12606 = getelementptr inbounds float* %tmp12605, i64 1
+ %tmp12607 = getelementptr inbounds float* %tmp12606, i64 1
+ %tmp12608 = getelementptr inbounds float* %tmp12607, i64 1
+ %tmp12609 = getelementptr inbounds float* %tmp12608, i64 1
+ %tmp12610 = getelementptr inbounds float* %tmp12609, i64 1
+ %tmp12611 = getelementptr inbounds float* %tmp12610, i64 1
+ %tmp12612 = getelementptr inbounds float* %tmp12611, i64 1
+ %tmp12613 = getelementptr inbounds float* %tmp12612, i64 1
+ %tmp12614 = getelementptr inbounds float* %tmp12613, i64 1
+ %tmp12615 = getelementptr inbounds float* %tmp12614, i64 1
+ %tmp12616 = getelementptr inbounds float* %tmp12615, i64 1
+ %tmp12617 = getelementptr inbounds float* %tmp12616, i64 1
+ %tmp12618 = getelementptr inbounds float* %tmp12617, i64 1
+ %tmp12619 = getelementptr inbounds float* %tmp12618, i64 1
+ %tmp12620 = getelementptr inbounds float* %tmp12619, i64 1
+ %tmp12621 = getelementptr inbounds float* %tmp12620, i64 1
+ %tmp12622 = getelementptr inbounds float* %tmp12621, i64 1
+ %tmp12623 = getelementptr inbounds float* %tmp12622, i64 1
+ %tmp12624 = getelementptr inbounds float* %tmp12623, i64 1
+ %tmp12625 = getelementptr inbounds float* %tmp12624, i64 1
+ %tmp12626 = getelementptr inbounds float* %tmp12625, i64 1
+ %tmp12627 = getelementptr inbounds float* %tmp12626, i64 1
+ %tmp12628 = getelementptr inbounds float* %tmp12627, i64 1
+ %tmp12629 = getelementptr inbounds float* %tmp12628, i64 1
+ %tmp12630 = getelementptr inbounds float* %tmp12629, i64 1
+ %tmp12631 = getelementptr inbounds float* %tmp12630, i64 1
+ %tmp12632 = getelementptr inbounds float* %tmp12631, i64 1
+ %tmp12633 = getelementptr inbounds float* %tmp12632, i64 1
+ %tmp12634 = getelementptr inbounds float* %tmp12633, i64 1
+ %tmp12635 = getelementptr inbounds float* %tmp12634, i64 1
+ %tmp12636 = getelementptr inbounds float* %tmp12635, i64 1
+ %tmp12637 = getelementptr inbounds float* %tmp12636, i64 1
+ %tmp12638 = getelementptr inbounds float* %tmp12637, i64 1
+ %tmp12639 = getelementptr inbounds float* %tmp12638, i64 1
+ %tmp12640 = getelementptr inbounds float* %tmp12639, i64 1
+ %tmp12641 = getelementptr inbounds float* %tmp12640, i64 1
+ %tmp12642 = getelementptr inbounds float* %tmp12641, i64 1
+ %tmp12643 = getelementptr inbounds float* %tmp12642, i64 1
+ %tmp12644 = getelementptr inbounds float* %tmp12643, i64 1
+ %tmp12645 = getelementptr inbounds float* %tmp12644, i64 1
+ %tmp12646 = getelementptr inbounds float* %tmp12645, i64 1
+ %tmp12647 = getelementptr inbounds float* %tmp12646, i64 1
+ %tmp12648 = getelementptr inbounds float* %tmp12647, i64 1
+ %tmp12649 = getelementptr inbounds float* %tmp12648, i64 1
+ %tmp12650 = getelementptr inbounds float* %tmp12649, i64 1
+ %tmp12651 = getelementptr inbounds float* %tmp12650, i64 1
+ %tmp12652 = getelementptr inbounds float* %tmp12651, i64 1
+ %tmp12653 = getelementptr inbounds float* %tmp12652, i64 1
+ %tmp12654 = getelementptr inbounds float* %tmp12653, i64 1
+ %tmp12655 = getelementptr inbounds float* %tmp12654, i64 1
+ %tmp12656 = getelementptr inbounds float* %tmp12655, i64 1
+ %tmp12657 = getelementptr inbounds float* %tmp12656, i64 1
+ %tmp12658 = getelementptr inbounds float* %tmp12657, i64 1
+ %tmp12659 = getelementptr inbounds float* %tmp12658, i64 1
+ %tmp12660 = getelementptr inbounds float* %tmp12659, i64 1
+ %tmp12661 = getelementptr inbounds float* %tmp12660, i64 1
+ %tmp12662 = getelementptr inbounds float* %tmp12661, i64 1
+ %tmp12663 = getelementptr inbounds float* %tmp12662, i64 1
+ %tmp12664 = getelementptr inbounds float* %tmp12663, i64 1
+ %tmp12665 = getelementptr inbounds float* %tmp12664, i64 1
+ %tmp12666 = getelementptr inbounds float* %tmp12665, i64 1
+ %tmp12667 = getelementptr inbounds float* %tmp12666, i64 1
+ %tmp12668 = getelementptr inbounds float* %tmp12667, i64 1
+ %tmp12669 = getelementptr inbounds float* %tmp12668, i64 1
+ %tmp12670 = getelementptr inbounds float* %tmp12669, i64 1
+ %tmp12671 = getelementptr inbounds float* %tmp12670, i64 1
+ %tmp12672 = getelementptr inbounds float* %tmp12671, i64 1
+ %tmp12673 = getelementptr inbounds float* %tmp12672, i64 1
+ %tmp12674 = getelementptr inbounds float* %tmp12673, i64 1
+ %tmp12675 = getelementptr inbounds float* %tmp12674, i64 1
+ %tmp12676 = getelementptr inbounds float* %tmp12675, i64 1
+ %tmp12677 = getelementptr inbounds float* %tmp12676, i64 1
+ %tmp12678 = getelementptr inbounds float* %tmp12677, i64 1
+ %tmp12679 = getelementptr inbounds float* %tmp12678, i64 1
+ %tmp12680 = getelementptr inbounds float* %tmp12679, i64 1
+ %tmp12681 = getelementptr inbounds float* %tmp12680, i64 1
+ %tmp12682 = getelementptr inbounds float* %tmp12681, i64 1
+ %tmp12683 = getelementptr inbounds float* %tmp12682, i64 1
+ %tmp12684 = getelementptr inbounds float* %tmp12683, i64 1
+ %tmp12685 = getelementptr inbounds float* %tmp12684, i64 1
+ %tmp12686 = getelementptr inbounds float* %tmp12685, i64 1
+ %tmp12687 = getelementptr inbounds float* %tmp12686, i64 1
+ %tmp12688 = getelementptr inbounds float* %tmp12687, i64 1
+ %tmp12689 = getelementptr inbounds float* %tmp12688, i64 1
+ %tmp12690 = getelementptr inbounds float* %tmp12689, i64 1
+ %tmp12691 = getelementptr inbounds float* %tmp12690, i64 1
+ %tmp12692 = getelementptr inbounds float* %tmp12691, i64 1
+ %tmp12693 = getelementptr inbounds float* %tmp12692, i64 1
+ %tmp12694 = getelementptr inbounds float* %tmp12693, i64 1
+ %tmp12695 = getelementptr inbounds float* %tmp12694, i64 1
+ %tmp12696 = getelementptr inbounds float* %tmp12695, i64 1
+ %tmp12697 = getelementptr inbounds float* %tmp12696, i64 1
+ %tmp12698 = getelementptr inbounds float* %tmp12697, i64 1
+ %tmp12699 = getelementptr inbounds float* %tmp12698, i64 1
+ %tmp12700 = getelementptr inbounds float* %tmp12699, i64 1
+ %tmp12701 = getelementptr inbounds float* %tmp12700, i64 1
+ %tmp12702 = getelementptr inbounds float* %tmp12701, i64 1
+ %tmp12703 = getelementptr inbounds float* %tmp12702, i64 1
+ %tmp12704 = getelementptr inbounds float* %tmp12703, i64 1
+ %tmp12705 = getelementptr inbounds float* %tmp12704, i64 1
+ %tmp12706 = getelementptr inbounds float* %tmp12705, i64 1
+ %tmp12707 = getelementptr inbounds float* %tmp12706, i64 1
+ %tmp12708 = getelementptr inbounds float* %tmp12707, i64 1
+ %tmp12709 = getelementptr inbounds float* %tmp12708, i64 1
+ %tmp12710 = getelementptr inbounds float* %tmp12709, i64 1
+ %tmp12711 = getelementptr inbounds float* %tmp12710, i64 1
+ %tmp12712 = getelementptr inbounds float* %tmp12711, i64 1
+ %tmp12713 = getelementptr inbounds float* %tmp12712, i64 1
+ %tmp12714 = getelementptr inbounds float* %tmp12713, i64 1
+ %tmp12715 = getelementptr inbounds float* %tmp12714, i64 1
+ %tmp12716 = getelementptr inbounds float* %tmp12715, i64 1
+ %tmp12717 = getelementptr inbounds float* %tmp12716, i64 1
+ %tmp12718 = getelementptr inbounds float* %tmp12717, i64 1
+ %tmp12719 = getelementptr inbounds float* %tmp12718, i64 1
+ %tmp12720 = getelementptr inbounds float* %tmp12719, i64 1
+ %tmp12721 = getelementptr inbounds float* %tmp12720, i64 1
+ %tmp12722 = getelementptr inbounds float* %tmp12721, i64 1
+ %tmp12723 = getelementptr inbounds float* %tmp12722, i64 1
+ %tmp12724 = getelementptr inbounds float* %tmp12723, i64 1
+ %tmp12725 = getelementptr inbounds float* %tmp12724, i64 1
+ %tmp12726 = getelementptr inbounds float* %tmp12725, i64 1
+ %tmp12727 = getelementptr inbounds float* %tmp12726, i64 1
+ %tmp12728 = getelementptr inbounds float* %tmp12727, i64 1
+ %tmp12729 = getelementptr inbounds float* %tmp12728, i64 1
+ %tmp12730 = getelementptr inbounds float* %tmp12729, i64 1
+ %tmp12731 = getelementptr inbounds float* %tmp12730, i64 1
+ %tmp12732 = getelementptr inbounds float* %tmp12731, i64 1
+ %tmp12733 = getelementptr inbounds float* %tmp12732, i64 1
+ %tmp12734 = getelementptr inbounds float* %tmp12733, i64 1
+ %tmp12735 = getelementptr inbounds float* %tmp12734, i64 1
+ %tmp12736 = getelementptr inbounds float* %tmp12735, i64 1
+ %tmp12737 = getelementptr inbounds float* %tmp12736, i64 1
+ %tmp12738 = getelementptr inbounds float* %tmp12737, i64 1
+ %tmp12739 = getelementptr inbounds float* %tmp12738, i64 1
+ %tmp12740 = getelementptr inbounds float* %tmp12739, i64 1
+ %tmp12741 = getelementptr inbounds float* %tmp12740, i64 1
+ %tmp12742 = getelementptr inbounds float* %tmp12741, i64 1
+ %tmp12743 = getelementptr inbounds float* %tmp12742, i64 1
+ %tmp12744 = getelementptr inbounds float* %tmp12743, i64 1
+ %tmp12745 = getelementptr inbounds float* %tmp12744, i64 1
+ %tmp12746 = getelementptr inbounds float* %tmp12745, i64 1
+ %tmp12747 = getelementptr inbounds float* %tmp12746, i64 1
+ %tmp12748 = getelementptr inbounds float* %tmp12747, i64 1
+ %tmp12749 = getelementptr inbounds float* %tmp12748, i64 1
+ %tmp12750 = getelementptr inbounds float* %tmp12749, i64 1
+ %tmp12751 = getelementptr inbounds float* %tmp12750, i64 1
+ %tmp12752 = getelementptr inbounds float* %tmp12751, i64 1
+ %tmp12753 = getelementptr inbounds float* %tmp12752, i64 1
+ %tmp12754 = getelementptr inbounds float* %tmp12753, i64 1
+ %tmp12755 = getelementptr inbounds float* %tmp12754, i64 1
+ %tmp12756 = getelementptr inbounds float* %tmp12755, i64 1
+ %tmp12757 = getelementptr inbounds float* %tmp12756, i64 1
+ %tmp12758 = getelementptr inbounds float* %tmp12757, i64 1
+ %tmp12759 = getelementptr inbounds float* %tmp12758, i64 1
+ %tmp12760 = getelementptr inbounds float* %tmp12759, i64 1
+ %tmp12761 = getelementptr inbounds float* %tmp12760, i64 1
+ %tmp12762 = getelementptr inbounds float* %tmp12761, i64 1
+ %tmp12763 = getelementptr inbounds float* %tmp12762, i64 1
+ %tmp12764 = getelementptr inbounds float* %tmp12763, i64 1
+ %tmp12765 = getelementptr inbounds float* %tmp12764, i64 1
+ %tmp12766 = getelementptr inbounds float* %tmp12765, i64 1
+ %tmp12767 = getelementptr inbounds float* %tmp12766, i64 1
+ %tmp12768 = getelementptr inbounds float* %tmp12767, i64 1
+ %tmp12769 = getelementptr inbounds float* %tmp12768, i64 1
+ %tmp12770 = getelementptr inbounds float* %tmp12769, i64 1
+ %tmp12771 = getelementptr inbounds float* %tmp12770, i64 1
+ %tmp12772 = getelementptr inbounds float* %tmp12771, i64 1
+ %tmp12773 = getelementptr inbounds float* %tmp12772, i64 1
+ %tmp12774 = getelementptr inbounds float* %tmp12773, i64 1
+ %tmp12775 = getelementptr inbounds float* %tmp12774, i64 1
+ %tmp12776 = getelementptr inbounds float* %tmp12775, i64 1
+ %tmp12777 = getelementptr inbounds float* %tmp12776, i64 1
+ %tmp12778 = getelementptr inbounds float* %tmp12777, i64 1
+ %tmp12779 = getelementptr inbounds float* %tmp12778, i64 1
+ %tmp12780 = getelementptr inbounds float* %tmp12779, i64 1
+ %tmp12781 = getelementptr inbounds float* %tmp12780, i64 1
+ %tmp12782 = getelementptr inbounds float* %tmp12781, i64 1
+ %tmp12783 = getelementptr inbounds float* %tmp12782, i64 1
+ %tmp12784 = getelementptr inbounds float* %tmp12783, i64 1
+ %tmp12785 = getelementptr inbounds float* %tmp12784, i64 1
+ %tmp12786 = getelementptr inbounds float* %tmp12785, i64 1
+ %tmp12787 = getelementptr inbounds float* %tmp12786, i64 1
+ %tmp12788 = getelementptr inbounds float* %tmp12787, i64 1
+ %tmp12789 = getelementptr inbounds float* %tmp12788, i64 1
+ %tmp12790 = getelementptr inbounds float* %tmp12789, i64 1
+ %tmp12791 = getelementptr inbounds float* %tmp12790, i64 1
+ %tmp12792 = getelementptr inbounds float* %tmp12791, i64 1
+ %tmp12793 = getelementptr inbounds float* %tmp12792, i64 1
+ %tmp12794 = getelementptr inbounds float* %tmp12793, i64 1
+ %tmp12795 = getelementptr inbounds float* %tmp12794, i64 1
+ %tmp12796 = getelementptr inbounds float* %tmp12795, i64 1
+ %tmp12797 = getelementptr inbounds float* %tmp12796, i64 1
+ %tmp12798 = getelementptr inbounds float* %tmp12797, i64 1
+ %tmp12799 = getelementptr inbounds float* %tmp12798, i64 1
+ %tmp12800 = getelementptr inbounds float* %tmp12799, i64 1
+ %tmp12801 = getelementptr inbounds float* %tmp12800, i64 1
+ %tmp12802 = getelementptr inbounds float* %tmp12801, i64 1
+ %tmp12803 = getelementptr inbounds float* %tmp12802, i64 1
+ %tmp12804 = getelementptr inbounds float* %tmp12803, i64 1
+ %tmp12805 = getelementptr inbounds float* %tmp12804, i64 1
+ %tmp12806 = getelementptr inbounds float* %tmp12805, i64 1
+ %tmp12807 = getelementptr inbounds float* %tmp12806, i64 1
+ %tmp12808 = getelementptr inbounds float* %tmp12807, i64 1
+ %tmp12809 = getelementptr inbounds float* %tmp12808, i64 1
+ %tmp12810 = getelementptr inbounds float* %tmp12809, i64 1
+ %tmp12811 = getelementptr inbounds float* %tmp12810, i64 1
+ %tmp12812 = getelementptr inbounds float* %tmp12811, i64 1
+ %tmp12813 = getelementptr inbounds float* %tmp12812, i64 1
+ %tmp12814 = getelementptr inbounds float* %tmp12813, i64 1
+ %tmp12815 = getelementptr inbounds float* %tmp12814, i64 1
+ %tmp12816 = getelementptr inbounds float* %tmp12815, i64 1
+ %tmp12817 = getelementptr inbounds float* %tmp12816, i64 1
+ %tmp12818 = getelementptr inbounds float* %tmp12817, i64 1
+ %tmp12819 = getelementptr inbounds float* %tmp12818, i64 1
+ %tmp12820 = getelementptr inbounds float* %tmp12819, i64 1
+ %tmp12821 = getelementptr inbounds float* %tmp12820, i64 1
+ %tmp12822 = getelementptr inbounds float* %tmp12821, i64 1
+ %tmp12823 = getelementptr inbounds float* %tmp12822, i64 1
+ %tmp12824 = getelementptr inbounds float* %tmp12823, i64 1
+ %tmp12825 = getelementptr inbounds float* %tmp12824, i64 1
+ %tmp12826 = getelementptr inbounds float* %tmp12825, i64 1
+ %tmp12827 = getelementptr inbounds float* %tmp12826, i64 1
+ %tmp12828 = getelementptr inbounds float* %tmp12827, i64 1
+ %tmp12829 = getelementptr inbounds float* %tmp12828, i64 1
+ %tmp12830 = getelementptr inbounds float* %tmp12829, i64 1
+ %tmp12831 = getelementptr inbounds float* %tmp12830, i64 1
+ %tmp12832 = getelementptr inbounds float* %tmp12831, i64 1
+ %tmp12833 = getelementptr inbounds float* %tmp12832, i64 1
+ %tmp12834 = getelementptr inbounds float* %tmp12833, i64 1
+ %tmp12835 = getelementptr inbounds float* %tmp12834, i64 1
+ %tmp12836 = getelementptr inbounds float* %tmp12835, i64 1
+ %tmp12837 = getelementptr inbounds float* %tmp12836, i64 1
+ %tmp12838 = getelementptr inbounds float* %tmp12837, i64 1
+ %tmp12839 = getelementptr inbounds float* %tmp12838, i64 1
+ %tmp12840 = getelementptr inbounds float* %tmp12839, i64 1
+ %tmp12841 = getelementptr inbounds float* %tmp12840, i64 1
+ %tmp12842 = getelementptr inbounds float* %tmp12841, i64 1
+ %tmp12843 = getelementptr inbounds float* %tmp12842, i64 1
+ %tmp12844 = getelementptr inbounds float* %tmp12843, i64 1
+ %tmp12845 = getelementptr inbounds float* %tmp12844, i64 1
+ %tmp12846 = getelementptr inbounds float* %tmp12845, i64 1
+ %tmp12847 = getelementptr inbounds float* %tmp12846, i64 1
+ %tmp12848 = getelementptr inbounds float* %tmp12847, i64 1
+ %tmp12849 = getelementptr inbounds float* %tmp12848, i64 1
+ %tmp12850 = getelementptr inbounds float* %tmp12849, i64 1
+ %tmp12851 = getelementptr inbounds float* %tmp12850, i64 1
+ %tmp12852 = getelementptr inbounds float* %tmp12851, i64 1
+ %tmp12853 = getelementptr inbounds float* %tmp12852, i64 1
+ %tmp12854 = getelementptr inbounds float* %tmp12853, i64 1
+ %tmp12855 = getelementptr inbounds float* %tmp12854, i64 1
+ %tmp12856 = getelementptr inbounds float* %tmp12855, i64 1
+ %tmp12857 = getelementptr inbounds float* %tmp12856, i64 1
+ %tmp12858 = getelementptr inbounds float* %tmp12857, i64 1
+ %tmp12859 = getelementptr inbounds float* %tmp12858, i64 1
+ %tmp12860 = getelementptr inbounds float* %tmp12859, i64 1
+ %tmp12861 = getelementptr inbounds float* %tmp12860, i64 1
+ %tmp12862 = getelementptr inbounds float* %tmp12861, i64 1
+ %tmp12863 = getelementptr inbounds float* %tmp12862, i64 1
+ %tmp12864 = getelementptr inbounds float* %tmp12863, i64 1
+ %tmp12865 = getelementptr inbounds float* %tmp12864, i64 1
+ %tmp12866 = getelementptr inbounds float* %tmp12865, i64 1
+ %tmp12867 = getelementptr inbounds float* %tmp12866, i64 1
+ %tmp12868 = getelementptr inbounds float* %tmp12867, i64 1
+ %tmp12869 = getelementptr inbounds float* %tmp12868, i64 1
+ %tmp12870 = getelementptr inbounds float* %tmp12869, i64 1
+ %tmp12871 = getelementptr inbounds float* %tmp12870, i64 1
+ %tmp12872 = getelementptr inbounds float* %tmp12871, i64 1
+ %tmp12873 = getelementptr inbounds float* %tmp12872, i64 1
+ %tmp12874 = getelementptr inbounds float* %tmp12873, i64 1
+ %tmp12875 = getelementptr inbounds float* %tmp12874, i64 1
+ %tmp12876 = getelementptr inbounds float* %tmp12875, i64 1
+ %tmp12877 = getelementptr inbounds float* %tmp12876, i64 1
+ %tmp12878 = getelementptr inbounds float* %tmp12877, i64 1
+ %tmp12879 = getelementptr inbounds float* %tmp12878, i64 1
+ %tmp12880 = getelementptr inbounds float* %tmp12879, i64 1
+ %tmp12881 = getelementptr inbounds float* %tmp12880, i64 1
+ %tmp12882 = getelementptr inbounds float* %tmp12881, i64 1
+ %tmp12883 = getelementptr inbounds float* %tmp12882, i64 1
+ %tmp12884 = getelementptr inbounds float* %tmp12883, i64 1
+ %tmp12885 = getelementptr inbounds float* %tmp12884, i64 1
+ %tmp12886 = getelementptr inbounds float* %tmp12885, i64 1
+ %tmp12887 = getelementptr inbounds float* %tmp12886, i64 1
+ %tmp12888 = getelementptr inbounds float* %tmp12887, i64 1
+ %tmp12889 = getelementptr inbounds float* %tmp12888, i64 1
+ %tmp12890 = getelementptr inbounds float* %tmp12889, i64 1
+ %tmp12891 = getelementptr inbounds float* %tmp12890, i64 1
+ %tmp12892 = getelementptr inbounds float* %tmp12891, i64 1
+ %tmp12893 = getelementptr inbounds float* %tmp12892, i64 1
+ %tmp12894 = getelementptr inbounds float* %tmp12893, i64 1
+ %tmp12895 = getelementptr inbounds float* %tmp12894, i64 1
+ %tmp12896 = getelementptr inbounds float* %tmp12895, i64 1
+ %tmp12897 = getelementptr inbounds float* %tmp12896, i64 1
+ %tmp12898 = getelementptr inbounds float* %tmp12897, i64 1
+ %tmp12899 = getelementptr inbounds float* %tmp12898, i64 1
+ %tmp12900 = getelementptr inbounds float* %tmp12899, i64 1
+ %tmp12901 = getelementptr inbounds float* %tmp12900, i64 1
+ %tmp12902 = getelementptr inbounds float* %tmp12901, i64 1
+ %tmp12903 = getelementptr inbounds float* %tmp12902, i64 1
+ %tmp12904 = getelementptr inbounds float* %tmp12903, i64 1
+ %tmp12905 = getelementptr inbounds float* %tmp12904, i64 1
+ %tmp12906 = getelementptr inbounds float* %tmp12905, i64 1
+ %tmp12907 = getelementptr inbounds float* %tmp12906, i64 1
+ %tmp12908 = getelementptr inbounds float* %tmp12907, i64 1
+ %tmp12909 = getelementptr inbounds float* %tmp12908, i64 1
+ %tmp12910 = getelementptr inbounds float* %tmp12909, i64 1
+ %tmp12911 = getelementptr inbounds float* %tmp12910, i64 1
+ %tmp12912 = getelementptr inbounds float* %tmp12911, i64 1
+ %tmp12913 = getelementptr inbounds float* %tmp12912, i64 1
+ %tmp12914 = getelementptr inbounds float* %tmp12913, i64 1
+ %tmp12915 = getelementptr inbounds float* %tmp12914, i64 1
+ %tmp12916 = getelementptr inbounds float* %tmp12915, i64 1
+ %tmp12917 = getelementptr inbounds float* %tmp12916, i64 1
+ %tmp12918 = getelementptr inbounds float* %tmp12917, i64 1
+ %tmp12919 = getelementptr inbounds float* %tmp12918, i64 1
+ %tmp12920 = getelementptr inbounds float* %tmp12919, i64 1
+ %tmp12921 = getelementptr inbounds float* %tmp12920, i64 1
+ %tmp12922 = getelementptr inbounds float* %tmp12921, i64 1
+ %tmp12923 = getelementptr inbounds float* %tmp12922, i64 1
+ %tmp12924 = getelementptr inbounds float* %tmp12923, i64 1
+ %tmp12925 = getelementptr inbounds float* %tmp12924, i64 1
+ %tmp12926 = getelementptr inbounds float* %tmp12925, i64 1
+ %tmp12927 = getelementptr inbounds float* %tmp12926, i64 1
+ %tmp12928 = getelementptr inbounds float* %tmp12927, i64 1
+ %tmp12929 = getelementptr inbounds float* %tmp12928, i64 1
+ %tmp12930 = getelementptr inbounds float* %tmp12929, i64 1
+ %tmp12931 = getelementptr inbounds float* %tmp12930, i64 1
+ %tmp12932 = getelementptr inbounds float* %tmp12931, i64 1
+ %tmp12933 = getelementptr inbounds float* %tmp12932, i64 1
+ %tmp12934 = getelementptr inbounds float* %tmp12933, i64 1
+ %tmp12935 = getelementptr inbounds float* %tmp12934, i64 1
+ %tmp12936 = getelementptr inbounds float* %tmp12935, i64 1
+ %tmp12937 = getelementptr inbounds float* %tmp12936, i64 1
+ %tmp12938 = getelementptr inbounds float* %tmp12937, i64 1
+ %tmp12939 = getelementptr inbounds float* %tmp12938, i64 1
+ %tmp12940 = getelementptr inbounds float* %tmp12939, i64 1
+ %tmp12941 = getelementptr inbounds float* %tmp12940, i64 1
+ %tmp12942 = getelementptr inbounds float* %tmp12941, i64 1
+ %tmp12943 = getelementptr inbounds float* %tmp12942, i64 1
+ %tmp12944 = getelementptr inbounds float* %tmp12943, i64 1
+ %tmp12945 = getelementptr inbounds float* %tmp12944, i64 1
+ %tmp12946 = getelementptr inbounds float* %tmp12945, i64 1
+ %tmp12947 = getelementptr inbounds float* %tmp12946, i64 1
+ %tmp12948 = getelementptr inbounds float* %tmp12947, i64 1
+ %tmp12949 = getelementptr inbounds float* %tmp12948, i64 1
+ %tmp12950 = getelementptr inbounds float* %tmp12949, i64 1
+ %tmp12951 = getelementptr inbounds float* %tmp12950, i64 1
+ %tmp12952 = getelementptr inbounds float* %tmp12951, i64 1
+ %tmp12953 = getelementptr inbounds float* %tmp12952, i64 1
+ %tmp12954 = getelementptr inbounds float* %tmp12953, i64 1
+ %tmp12955 = getelementptr inbounds float* %tmp12954, i64 1
+ %tmp12956 = getelementptr inbounds float* %tmp12955, i64 1
+ %tmp12957 = getelementptr inbounds float* %tmp12956, i64 1
+ %tmp12958 = getelementptr inbounds float* %tmp12957, i64 1
+ %tmp12959 = getelementptr inbounds float* %tmp12958, i64 1
+ %tmp12960 = getelementptr inbounds float* %tmp12959, i64 1
+ %tmp12961 = getelementptr inbounds float* %tmp12960, i64 1
+ %tmp12962 = getelementptr inbounds float* %tmp12961, i64 1
+ %tmp12963 = getelementptr inbounds float* %tmp12962, i64 1
+ %tmp12964 = getelementptr inbounds float* %tmp12963, i64 1
+ %tmp12965 = getelementptr inbounds float* %tmp12964, i64 1
+ %tmp12966 = getelementptr inbounds float* %tmp12965, i64 1
+ %tmp12967 = getelementptr inbounds float* %tmp12966, i64 1
+ %tmp12968 = getelementptr inbounds float* %tmp12967, i64 1
+ %tmp12969 = getelementptr inbounds float* %tmp12968, i64 1
+ %tmp12970 = getelementptr inbounds float* %tmp12969, i64 1
+ %tmp12971 = getelementptr inbounds float* %tmp12970, i64 1
+ %tmp12972 = getelementptr inbounds float* %tmp12971, i64 1
+ %tmp12973 = getelementptr inbounds float* %tmp12972, i64 1
+ %tmp12974 = getelementptr inbounds float* %tmp12973, i64 1
+ %tmp12975 = getelementptr inbounds float* %tmp12974, i64 1
+ %tmp12976 = getelementptr inbounds float* %tmp12975, i64 1
+ %tmp12977 = getelementptr inbounds float* %tmp12976, i64 1
+ %tmp12978 = getelementptr inbounds float* %tmp12977, i64 1
+ %tmp12979 = getelementptr inbounds float* %tmp12978, i64 1
+ %tmp12980 = getelementptr inbounds float* %tmp12979, i64 1
+ %tmp12981 = getelementptr inbounds float* %tmp12980, i64 1
+ %tmp12982 = getelementptr inbounds float* %tmp12981, i64 1
+ %tmp12983 = getelementptr inbounds float* %tmp12982, i64 1
+ %tmp12984 = getelementptr inbounds float* %tmp12983, i64 1
+ %tmp12985 = getelementptr inbounds float* %tmp12984, i64 1
+ %tmp12986 = getelementptr inbounds float* %tmp12985, i64 1
+ %tmp12987 = getelementptr inbounds float* %tmp12986, i64 1
+ %tmp12988 = getelementptr inbounds float* %tmp12987, i64 1
+ %tmp12989 = getelementptr inbounds float* %tmp12988, i64 1
+ %tmp12990 = getelementptr inbounds float* %tmp12989, i64 1
+ %tmp12991 = getelementptr inbounds float* %tmp12990, i64 1
+ %tmp12992 = getelementptr inbounds float* %tmp12991, i64 1
+ %tmp12993 = getelementptr inbounds float* %tmp12992, i64 1
+ %tmp12994 = getelementptr inbounds float* %tmp12993, i64 1
+ %tmp12995 = getelementptr inbounds float* %tmp12994, i64 1
+ %tmp12996 = getelementptr inbounds float* %tmp12995, i64 1
+ %tmp12997 = getelementptr inbounds float* %tmp12996, i64 1
+ %tmp12998 = getelementptr inbounds float* %tmp12997, i64 1
+ %tmp12999 = getelementptr inbounds float* %tmp12998, i64 1
+ %tmp13000 = getelementptr inbounds float* %tmp12999, i64 1
+ %tmp13001 = getelementptr inbounds float* %tmp13000, i64 1
+ %tmp13002 = getelementptr inbounds float* %tmp13001, i64 1
+ %tmp13003 = getelementptr inbounds float* %tmp13002, i64 1
+ %tmp13004 = getelementptr inbounds float* %tmp13003, i64 1
+ %tmp13005 = getelementptr inbounds float* %tmp13004, i64 1
+ %tmp13006 = getelementptr inbounds float* %tmp13005, i64 1
+ %tmp13007 = getelementptr inbounds float* %tmp13006, i64 1
+ %tmp13008 = getelementptr inbounds float* %tmp13007, i64 1
+ %tmp13009 = getelementptr inbounds float* %tmp13008, i64 1
+ %tmp13010 = getelementptr inbounds float* %tmp13009, i64 1
+ %tmp13011 = getelementptr inbounds float* %tmp13010, i64 1
+ %tmp13012 = getelementptr inbounds float* %tmp13011, i64 1
+ %tmp13013 = getelementptr inbounds float* %tmp13012, i64 1
+ %tmp13014 = getelementptr inbounds float* %tmp13013, i64 1
+ %tmp13015 = getelementptr inbounds float* %tmp13014, i64 1
+ %tmp13016 = getelementptr inbounds float* %tmp13015, i64 1
+ %tmp13017 = getelementptr inbounds float* %tmp13016, i64 1
+ %tmp13018 = getelementptr inbounds float* %tmp13017, i64 1
+ %tmp13019 = getelementptr inbounds float* %tmp13018, i64 1
+ %tmp13020 = getelementptr inbounds float* %tmp13019, i64 1
+ %tmp13021 = getelementptr inbounds float* %tmp13020, i64 1
+ %tmp13022 = getelementptr inbounds float* %tmp13021, i64 1
+ %tmp13023 = getelementptr inbounds float* %tmp13022, i64 1
+ %tmp13024 = getelementptr inbounds float* %tmp13023, i64 1
+ %tmp13025 = getelementptr inbounds float* %tmp13024, i64 1
+ %tmp13026 = getelementptr inbounds float* %tmp13025, i64 1
+ %tmp13027 = getelementptr inbounds float* %tmp13026, i64 1
+ %tmp13028 = getelementptr inbounds float* %tmp13027, i64 1
+ %tmp13029 = getelementptr inbounds float* %tmp13028, i64 1
+ %tmp13030 = getelementptr inbounds float* %tmp13029, i64 1
+ %tmp13031 = getelementptr inbounds float* %tmp13030, i64 1
+ %tmp13032 = getelementptr inbounds float* %tmp13031, i64 1
+ %tmp13033 = getelementptr inbounds float* %tmp13032, i64 1
+ %tmp13034 = getelementptr inbounds float* %tmp13033, i64 1
+ %tmp13035 = getelementptr inbounds float* %tmp13034, i64 1
+ %tmp13036 = getelementptr inbounds float* %tmp13035, i64 1
+ %tmp13037 = getelementptr inbounds float* %tmp13036, i64 1
+ %tmp13038 = getelementptr inbounds float* %tmp13037, i64 1
+ %tmp13039 = getelementptr inbounds float* %tmp13038, i64 1
+ %tmp13040 = getelementptr inbounds float* %tmp13039, i64 1
+ %tmp13041 = getelementptr inbounds float* %tmp13040, i64 1
+ %tmp13042 = getelementptr inbounds float* %tmp13041, i64 1
+ %tmp13043 = getelementptr inbounds float* %tmp13042, i64 1
+ %tmp13044 = getelementptr inbounds float* %tmp13043, i64 1
+ %tmp13045 = getelementptr inbounds float* %tmp13044, i64 1
+ %tmp13046 = getelementptr inbounds float* %tmp13045, i64 1
+ %tmp13047 = getelementptr inbounds float* %tmp13046, i64 1
+ %tmp13048 = getelementptr inbounds float* %tmp13047, i64 1
+ %tmp13049 = getelementptr inbounds float* %tmp13048, i64 1
+ %tmp13050 = getelementptr inbounds float* %tmp13049, i64 1
+ %tmp13051 = getelementptr inbounds float* %tmp13050, i64 1
+ %tmp13052 = getelementptr inbounds float* %tmp13051, i64 1
+ %tmp13053 = getelementptr inbounds float* %tmp13052, i64 1
+ %tmp13054 = getelementptr inbounds float* %tmp13053, i64 1
+ %tmp13055 = getelementptr inbounds float* %tmp13054, i64 1
+ %tmp13056 = getelementptr inbounds float* %tmp13055, i64 1
+ %tmp13057 = getelementptr inbounds float* %tmp13056, i64 1
+ %tmp13058 = getelementptr inbounds float* %tmp13057, i64 1
+ %tmp13059 = getelementptr inbounds float* %tmp13058, i64 1
+ %tmp13060 = getelementptr inbounds float* %tmp13059, i64 1
+ %tmp13061 = getelementptr inbounds float* %tmp13060, i64 1
+ %tmp13062 = getelementptr inbounds float* %tmp13061, i64 1
+ %tmp13063 = getelementptr inbounds float* %tmp13062, i64 1
+ %tmp13064 = getelementptr inbounds float* %tmp13063, i64 1
+ %tmp13065 = getelementptr inbounds float* %tmp13064, i64 1
+ %tmp13066 = getelementptr inbounds float* %tmp13065, i64 1
+ %tmp13067 = getelementptr inbounds float* %tmp13066, i64 1
+ %tmp13068 = getelementptr inbounds float* %tmp13067, i64 1
+ %tmp13069 = getelementptr inbounds float* %tmp13068, i64 1
+ %tmp13070 = getelementptr inbounds float* %tmp13069, i64 1
+ %tmp13071 = getelementptr inbounds float* %tmp13070, i64 1
+ %tmp13072 = getelementptr inbounds float* %tmp13071, i64 1
+ %tmp13073 = getelementptr inbounds float* %tmp13072, i64 1
+ %tmp13074 = getelementptr inbounds float* %tmp13073, i64 1
+ %tmp13075 = getelementptr inbounds float* %tmp13074, i64 1
+ %tmp13076 = getelementptr inbounds float* %tmp13075, i64 1
+ %tmp13077 = getelementptr inbounds float* %tmp13076, i64 1
+ %tmp13078 = getelementptr inbounds float* %tmp13077, i64 1
+ %tmp13079 = getelementptr inbounds float* %tmp13078, i64 1
+ %tmp13080 = getelementptr inbounds float* %tmp13079, i64 1
+ %tmp13081 = getelementptr inbounds float* %tmp13080, i64 1
+ %tmp13082 = getelementptr inbounds float* %tmp13081, i64 1
+ %tmp13083 = getelementptr inbounds float* %tmp13082, i64 1
+ %tmp13084 = getelementptr inbounds float* %tmp13083, i64 1
+ %tmp13085 = getelementptr inbounds float* %tmp13084, i64 1
+ %tmp13086 = getelementptr inbounds float* %tmp13085, i64 1
+ %tmp13087 = getelementptr inbounds float* %tmp13086, i64 1
+ %tmp13088 = getelementptr inbounds float* %tmp13087, i64 1
+ %tmp13089 = getelementptr inbounds float* %tmp13088, i64 1
+ %tmp13090 = getelementptr inbounds float* %tmp13089, i64 1
+ %tmp13091 = getelementptr inbounds float* %tmp13090, i64 1
+ %tmp13092 = getelementptr inbounds float* %tmp13091, i64 1
+ %tmp13093 = getelementptr inbounds float* %tmp13092, i64 1
+ %tmp13094 = getelementptr inbounds float* %tmp13093, i64 1
+ %tmp13095 = getelementptr inbounds float* %tmp13094, i64 1
+ %tmp13096 = getelementptr inbounds float* %tmp13095, i64 1
+ %tmp13097 = getelementptr inbounds float* %tmp13096, i64 1
+ %tmp13098 = getelementptr inbounds float* %tmp13097, i64 1
+ %tmp13099 = getelementptr inbounds float* %tmp13098, i64 1
+ %tmp13100 = getelementptr inbounds float* %tmp13099, i64 1
+ %tmp13101 = getelementptr inbounds float* %tmp13100, i64 1
+ %tmp13102 = getelementptr inbounds float* %tmp13101, i64 1
+ %tmp13103 = getelementptr inbounds float* %tmp13102, i64 1
+ %tmp13104 = getelementptr inbounds float* %tmp13103, i64 1
+ %tmp13105 = getelementptr inbounds float* %tmp13104, i64 1
+ %tmp13106 = getelementptr inbounds float* %tmp13105, i64 1
+ %tmp13107 = getelementptr inbounds float* %tmp13106, i64 1
+ %tmp13108 = getelementptr inbounds float* %tmp13107, i64 1
+ %tmp13109 = getelementptr inbounds float* %tmp13108, i64 1
+ %tmp13110 = getelementptr inbounds float* %tmp13109, i64 1
+ %tmp13111 = getelementptr inbounds float* %tmp13110, i64 1
+ %tmp13112 = getelementptr inbounds float* %tmp13111, i64 1
+ %tmp13113 = getelementptr inbounds float* %tmp13112, i64 1
+ %tmp13114 = getelementptr inbounds float* %tmp13113, i64 1
+ %tmp13115 = getelementptr inbounds float* %tmp13114, i64 1
+ %tmp13116 = getelementptr inbounds float* %tmp13115, i64 1
+ %tmp13117 = getelementptr inbounds float* %tmp13116, i64 1
+ %tmp13118 = getelementptr inbounds float* %tmp13117, i64 1
+ %tmp13119 = getelementptr inbounds float* %tmp13118, i64 1
+ %tmp13120 = getelementptr inbounds float* %tmp13119, i64 1
+ %tmp13121 = getelementptr inbounds float* %tmp13120, i64 1
+ %tmp13122 = getelementptr inbounds float* %tmp13121, i64 1
+ %tmp13123 = getelementptr inbounds float* %tmp13122, i64 1
+ %tmp13124 = getelementptr inbounds float* %tmp13123, i64 1
+ %tmp13125 = getelementptr inbounds float* %tmp13124, i64 1
+ %tmp13126 = getelementptr inbounds float* %tmp13125, i64 1
+ %tmp13127 = getelementptr inbounds float* %tmp13126, i64 1
+ %tmp13128 = getelementptr inbounds float* %tmp13127, i64 1
+ %tmp13129 = getelementptr inbounds float* %tmp13128, i64 1
+ %tmp13130 = getelementptr inbounds float* %tmp13129, i64 1
+ %tmp13131 = getelementptr inbounds float* %tmp13130, i64 1
+ %tmp13132 = getelementptr inbounds float* %tmp13131, i64 1
+ %tmp13133 = getelementptr inbounds float* %tmp13132, i64 1
+ %tmp13134 = getelementptr inbounds float* %tmp13133, i64 1
+ %tmp13135 = getelementptr inbounds float* %tmp13134, i64 1
+ %tmp13136 = getelementptr inbounds float* %tmp13135, i64 1
+ %tmp13137 = getelementptr inbounds float* %tmp13136, i64 1
+ %tmp13138 = getelementptr inbounds float* %tmp13137, i64 1
+ %tmp13139 = getelementptr inbounds float* %tmp13138, i64 1
+ %tmp13140 = getelementptr inbounds float* %tmp13139, i64 1
+ %tmp13141 = getelementptr inbounds float* %tmp13140, i64 1
+ %tmp13142 = getelementptr inbounds float* %tmp13141, i64 1
+ %tmp13143 = getelementptr inbounds float* %tmp13142, i64 1
+ %tmp13144 = getelementptr inbounds float* %tmp13143, i64 1
+ %tmp13145 = getelementptr inbounds float* %tmp13144, i64 1
+ %tmp13146 = getelementptr inbounds float* %tmp13145, i64 1
+ %tmp13147 = getelementptr inbounds float* %tmp13146, i64 1
+ %tmp13148 = getelementptr inbounds float* %tmp13147, i64 1
+ %tmp13149 = getelementptr inbounds float* %tmp13148, i64 1
+ %tmp13150 = getelementptr inbounds float* %tmp13149, i64 1
+ %tmp13151 = getelementptr inbounds float* %tmp13150, i64 1
+ %tmp13152 = getelementptr inbounds float* %tmp13151, i64 1
+ %tmp13153 = getelementptr inbounds float* %tmp13152, i64 1
+ %tmp13154 = getelementptr inbounds float* %tmp13153, i64 1
+ %tmp13155 = getelementptr inbounds float* %tmp13154, i64 1
+ %tmp13156 = getelementptr inbounds float* %tmp13155, i64 1
+ %tmp13157 = getelementptr inbounds float* %tmp13156, i64 1
+ %tmp13158 = getelementptr inbounds float* %tmp13157, i64 1
+ %tmp13159 = getelementptr inbounds float* %tmp13158, i64 1
+ %tmp13160 = getelementptr inbounds float* %tmp13159, i64 1
+ %tmp13161 = getelementptr inbounds float* %tmp13160, i64 1
+ %tmp13162 = getelementptr inbounds float* %tmp13161, i64 1
+ %tmp13163 = getelementptr inbounds float* %tmp13162, i64 1
+ %tmp13164 = getelementptr inbounds float* %tmp13163, i64 1
+ %tmp13165 = getelementptr inbounds float* %tmp13164, i64 1
+ %tmp13166 = getelementptr inbounds float* %tmp13165, i64 1
+ %tmp13167 = getelementptr inbounds float* %tmp13166, i64 1
+ %tmp13168 = getelementptr inbounds float* %tmp13167, i64 1
+ %tmp13169 = getelementptr inbounds float* %tmp13168, i64 1
+ %tmp13170 = getelementptr inbounds float* %tmp13169, i64 1
+ %tmp13171 = getelementptr inbounds float* %tmp13170, i64 1
+ %tmp13172 = getelementptr inbounds float* %tmp13171, i64 1
+ %tmp13173 = getelementptr inbounds float* %tmp13172, i64 1
+ %tmp13174 = getelementptr inbounds float* %tmp13173, i64 1
+ %tmp13175 = getelementptr inbounds float* %tmp13174, i64 1
+ %tmp13176 = getelementptr inbounds float* %tmp13175, i64 1
+ %tmp13177 = getelementptr inbounds float* %tmp13176, i64 1
+ %tmp13178 = getelementptr inbounds float* %tmp13177, i64 1
+ %tmp13179 = getelementptr inbounds float* %tmp13178, i64 1
+ %tmp13180 = getelementptr inbounds float* %tmp13179, i64 1
+ %tmp13181 = getelementptr inbounds float* %tmp13180, i64 1
+ %tmp13182 = getelementptr inbounds float* %tmp13181, i64 1
+ %tmp13183 = getelementptr inbounds float* %tmp13182, i64 1
+ %tmp13184 = getelementptr inbounds float* %tmp13183, i64 1
+ %tmp13185 = getelementptr inbounds float* %tmp13184, i64 1
+ %tmp13186 = getelementptr inbounds float* %tmp13185, i64 1
+ %tmp13187 = getelementptr inbounds float* %tmp13186, i64 1
+ %tmp13188 = getelementptr inbounds float* %tmp13187, i64 1
+ %tmp13189 = getelementptr inbounds float* %tmp13188, i64 1
+ %tmp13190 = getelementptr inbounds float* %tmp13189, i64 1
+ %tmp13191 = getelementptr inbounds float* %tmp13190, i64 1
+ %tmp13192 = getelementptr inbounds float* %tmp13191, i64 1
+ %tmp13193 = getelementptr inbounds float* %tmp13192, i64 1
+ %tmp13194 = getelementptr inbounds float* %tmp13193, i64 1
+ %tmp13195 = getelementptr inbounds float* %tmp13194, i64 1
+ %tmp13196 = getelementptr inbounds float* %tmp13195, i64 1
+ %tmp13197 = getelementptr inbounds float* %tmp13196, i64 1
+ %tmp13198 = getelementptr inbounds float* %tmp13197, i64 1
+ %tmp13199 = getelementptr inbounds float* %tmp13198, i64 1
+ %tmp13200 = getelementptr inbounds float* %tmp13199, i64 1
+ %tmp13201 = getelementptr inbounds float* %tmp13200, i64 1
+ %tmp13202 = getelementptr inbounds float* %tmp13201, i64 1
+ %tmp13203 = getelementptr inbounds float* %tmp13202, i64 1
+ %tmp13204 = getelementptr inbounds float* %tmp13203, i64 1
+ %tmp13205 = getelementptr inbounds float* %tmp13204, i64 1
+ %tmp13206 = getelementptr inbounds float* %tmp13205, i64 1
+ %tmp13207 = getelementptr inbounds float* %tmp13206, i64 1
+ %tmp13208 = getelementptr inbounds float* %tmp13207, i64 1
+ %tmp13209 = getelementptr inbounds float* %tmp13208, i64 1
+ %tmp13210 = getelementptr inbounds float* %tmp13209, i64 1
+ %tmp13211 = getelementptr inbounds float* %tmp13210, i64 1
+ %tmp13212 = getelementptr inbounds float* %tmp13211, i64 1
+ %tmp13213 = getelementptr inbounds float* %tmp13212, i64 1
+ %tmp13214 = getelementptr inbounds float* %tmp13213, i64 1
+ %tmp13215 = getelementptr inbounds float* %tmp13214, i64 1
+ %tmp13216 = getelementptr inbounds float* %tmp13215, i64 1
+ %tmp13217 = getelementptr inbounds float* %tmp13216, i64 1
+ %tmp13218 = getelementptr inbounds float* %tmp13217, i64 1
+ %tmp13219 = getelementptr inbounds float* %tmp13218, i64 1
+ %tmp13220 = getelementptr inbounds float* %tmp13219, i64 1
+ %tmp13221 = getelementptr inbounds float* %tmp13220, i64 1
+ %tmp13222 = getelementptr inbounds float* %tmp13221, i64 1
+ %tmp13223 = getelementptr inbounds float* %tmp13222, i64 1
+ %tmp13224 = getelementptr inbounds float* %tmp13223, i64 1
+ %tmp13225 = getelementptr inbounds float* %tmp13224, i64 1
+ %tmp13226 = getelementptr inbounds float* %tmp13225, i64 1
+ %tmp13227 = getelementptr inbounds float* %tmp13226, i64 1
+ %tmp13228 = getelementptr inbounds float* %tmp13227, i64 1
+ %tmp13229 = getelementptr inbounds float* %tmp13228, i64 1
+ %tmp13230 = getelementptr inbounds float* %tmp13229, i64 1
+ %tmp13231 = getelementptr inbounds float* %tmp13230, i64 1
+ %tmp13232 = getelementptr inbounds float* %tmp13231, i64 1
+ %tmp13233 = getelementptr inbounds float* %tmp13232, i64 1
+ %tmp13234 = getelementptr inbounds float* %tmp13233, i64 1
+ %tmp13235 = getelementptr inbounds float* %tmp13234, i64 1
+ %tmp13236 = getelementptr inbounds float* %tmp13235, i64 1
+ %tmp13237 = getelementptr inbounds float* %tmp13236, i64 1
+ %tmp13238 = getelementptr inbounds float* %tmp13237, i64 1
+ %tmp13239 = getelementptr inbounds float* %tmp13238, i64 1
+ %tmp13240 = getelementptr inbounds float* %tmp13239, i64 1
+ %tmp13241 = getelementptr inbounds float* %tmp13240, i64 1
+ %tmp13242 = getelementptr inbounds float* %tmp13241, i64 1
+ %tmp13243 = getelementptr inbounds float* %tmp13242, i64 1
+ %tmp13244 = getelementptr inbounds float* %tmp13243, i64 1
+ %tmp13245 = getelementptr inbounds float* %tmp13244, i64 1
+ %tmp13246 = getelementptr inbounds float* %tmp13245, i64 1
+ %tmp13247 = getelementptr inbounds float* %tmp13246, i64 1
+ %tmp13248 = getelementptr inbounds float* %tmp13247, i64 1
+ %tmp13249 = getelementptr inbounds float* %tmp13248, i64 1
+ %tmp13250 = getelementptr inbounds float* %tmp13249, i64 1
+ %tmp13251 = getelementptr inbounds float* %tmp13250, i64 1
+ %tmp13252 = getelementptr inbounds float* %tmp13251, i64 1
+ %tmp13253 = getelementptr inbounds float* %tmp13252, i64 1
+ %tmp13254 = getelementptr inbounds float* %tmp13253, i64 1
+ %tmp13255 = getelementptr inbounds float* %tmp13254, i64 1
+ %tmp13256 = getelementptr inbounds float* %tmp13255, i64 1
+ %tmp13257 = getelementptr inbounds float* %tmp13256, i64 1
+ %tmp13258 = getelementptr inbounds float* %tmp13257, i64 1
+ %tmp13259 = getelementptr inbounds float* %tmp13258, i64 1
+ %tmp13260 = getelementptr inbounds float* %tmp13259, i64 1
+ %tmp13261 = getelementptr inbounds float* %tmp13260, i64 1
+ %tmp13262 = getelementptr inbounds float* %tmp13261, i64 1
+ %tmp13263 = getelementptr inbounds float* %tmp13262, i64 1
+ %tmp13264 = getelementptr inbounds float* %tmp13263, i64 1
+ %tmp13265 = getelementptr inbounds float* %tmp13264, i64 1
+ %tmp13266 = getelementptr inbounds float* %tmp13265, i64 1
+ %tmp13267 = getelementptr inbounds float* %tmp13266, i64 1
+ %tmp13268 = getelementptr inbounds float* %tmp13267, i64 1
+ %tmp13269 = getelementptr inbounds float* %tmp13268, i64 1
+ %tmp13270 = getelementptr inbounds float* %tmp13269, i64 1
+ %tmp13271 = getelementptr inbounds float* %tmp13270, i64 1
+ %tmp13272 = getelementptr inbounds float* %tmp13271, i64 1
+ %tmp13273 = getelementptr inbounds float* %tmp13272, i64 1
+ %tmp13274 = getelementptr inbounds float* %tmp13273, i64 1
+ %tmp13275 = getelementptr inbounds float* %tmp13274, i64 1
+ %tmp13276 = getelementptr inbounds float* %tmp13275, i64 1
+ %tmp13277 = getelementptr inbounds float* %tmp13276, i64 1
+ %tmp13278 = getelementptr inbounds float* %tmp13277, i64 1
+ %tmp13279 = getelementptr inbounds float* %tmp13278, i64 1
+ %tmp13280 = getelementptr inbounds float* %tmp13279, i64 1
+ %tmp13281 = getelementptr inbounds float* %tmp13280, i64 1
+ %tmp13282 = getelementptr inbounds float* %tmp13281, i64 1
+ %tmp13283 = getelementptr inbounds float* %tmp13282, i64 1
+ %tmp13284 = getelementptr inbounds float* %tmp13283, i64 1
+ %tmp13285 = getelementptr inbounds float* %tmp13284, i64 1
+ %tmp13286 = getelementptr inbounds float* %tmp13285, i64 1
+ %tmp13287 = getelementptr inbounds float* %tmp13286, i64 1
+ %tmp13288 = getelementptr inbounds float* %tmp13287, i64 1
+ %tmp13289 = getelementptr inbounds float* %tmp13288, i64 1
+ %tmp13290 = getelementptr inbounds float* %tmp13289, i64 1
+ %tmp13291 = getelementptr inbounds float* %tmp13290, i64 1
+ %tmp13292 = getelementptr inbounds float* %tmp13291, i64 1
+ %tmp13293 = getelementptr inbounds float* %tmp13292, i64 1
+ %tmp13294 = getelementptr inbounds float* %tmp13293, i64 1
+ %tmp13295 = getelementptr inbounds float* %tmp13294, i64 1
+ %tmp13296 = getelementptr inbounds float* %tmp13295, i64 1
+ %tmp13297 = getelementptr inbounds float* %tmp13296, i64 1
+ %tmp13298 = getelementptr inbounds float* %tmp13297, i64 1
+ %tmp13299 = getelementptr inbounds float* %tmp13298, i64 1
+ %tmp13300 = getelementptr inbounds float* %tmp13299, i64 1
+ %tmp13301 = getelementptr inbounds float* %tmp13300, i64 1
+ %tmp13302 = getelementptr inbounds float* %tmp13301, i64 1
+ %tmp13303 = getelementptr inbounds float* %tmp13302, i64 1
+ %tmp13304 = getelementptr inbounds float* %tmp13303, i64 1
+ %tmp13305 = getelementptr inbounds float* %tmp13304, i64 1
+ %tmp13306 = getelementptr inbounds float* %tmp13305, i64 1
+ %tmp13307 = getelementptr inbounds float* %tmp13306, i64 1
+ %tmp13308 = getelementptr inbounds float* %tmp13307, i64 1
+ %tmp13309 = getelementptr inbounds float* %tmp13308, i64 1
+ %tmp13310 = getelementptr inbounds float* %tmp13309, i64 1
+ %tmp13311 = getelementptr inbounds float* %tmp13310, i64 1
+ %tmp13312 = getelementptr inbounds float* %tmp13311, i64 1
+ %tmp13313 = getelementptr inbounds float* %tmp13312, i64 1
+ %tmp13314 = getelementptr inbounds float* %tmp13313, i64 1
+ %tmp13315 = getelementptr inbounds float* %tmp13314, i64 1
+ %tmp13316 = getelementptr inbounds float* %tmp13315, i64 1
+ %tmp13317 = getelementptr inbounds float* %tmp13316, i64 1
+ %tmp13318 = getelementptr inbounds float* %tmp13317, i64 1
+ %tmp13319 = getelementptr inbounds float* %tmp13318, i64 1
+ %tmp13320 = getelementptr inbounds float* %tmp13319, i64 1
+ %tmp13321 = getelementptr inbounds float* %tmp13320, i64 1
+ %tmp13322 = getelementptr inbounds float* %tmp13321, i64 1
+ %tmp13323 = getelementptr inbounds float* %tmp13322, i64 1
+ %tmp13324 = getelementptr inbounds float* %tmp13323, i64 1
+ %tmp13325 = getelementptr inbounds float* %tmp13324, i64 1
+ %tmp13326 = getelementptr inbounds float* %tmp13325, i64 1
+ %tmp13327 = getelementptr inbounds float* %tmp13326, i64 1
+ %tmp13328 = getelementptr inbounds float* %tmp13327, i64 1
+ %tmp13329 = getelementptr inbounds float* %tmp13328, i64 1
+ %tmp13330 = getelementptr inbounds float* %tmp13329, i64 1
+ %tmp13331 = getelementptr inbounds float* %tmp13330, i64 1
+ %tmp13332 = getelementptr inbounds float* %tmp13331, i64 1
+ %tmp13333 = getelementptr inbounds float* %tmp13332, i64 1
+ %tmp13334 = getelementptr inbounds float* %tmp13333, i64 1
+ %tmp13335 = getelementptr inbounds float* %tmp13334, i64 1
+ %tmp13336 = getelementptr inbounds float* %tmp13335, i64 1
+ %tmp13337 = getelementptr inbounds float* %tmp13336, i64 1
+ %tmp13338 = getelementptr inbounds float* %tmp13337, i64 1
+ %tmp13339 = getelementptr inbounds float* %tmp13338, i64 1
+ %tmp13340 = getelementptr inbounds float* %tmp13339, i64 1
+ %tmp13341 = getelementptr inbounds float* %tmp13340, i64 1
+ %tmp13342 = getelementptr inbounds float* %tmp13341, i64 1
+ %tmp13343 = getelementptr inbounds float* %tmp13342, i64 1
+ %tmp13344 = getelementptr inbounds float* %tmp13343, i64 1
+ %tmp13345 = getelementptr inbounds float* %tmp13344, i64 1
+ %tmp13346 = getelementptr inbounds float* %tmp13345, i64 1
+ %tmp13347 = getelementptr inbounds float* %tmp13346, i64 1
+ %tmp13348 = getelementptr inbounds float* %tmp13347, i64 1
+ %tmp13349 = getelementptr inbounds float* %tmp13348, i64 1
+ %tmp13350 = getelementptr inbounds float* %tmp13349, i64 1
+ %tmp13351 = getelementptr inbounds float* %tmp13350, i64 1
+ %tmp13352 = getelementptr inbounds float* %tmp13351, i64 1
+ %tmp13353 = getelementptr inbounds float* %tmp13352, i64 1
+ %tmp13354 = getelementptr inbounds float* %tmp13353, i64 1
+ %tmp13355 = getelementptr inbounds float* %tmp13354, i64 1
+ %tmp13356 = getelementptr inbounds float* %tmp13355, i64 1
+ %tmp13357 = getelementptr inbounds float* %tmp13356, i64 1
+ %tmp13358 = getelementptr inbounds float* %tmp13357, i64 1
+ %tmp13359 = getelementptr inbounds float* %tmp13358, i64 1
+ %tmp13360 = getelementptr inbounds float* %tmp13359, i64 1
+ %tmp13361 = getelementptr inbounds float* %tmp13360, i64 1
+ %tmp13362 = getelementptr inbounds float* %tmp13361, i64 1
+ %tmp13363 = getelementptr inbounds float* %tmp13362, i64 1
+ %tmp13364 = getelementptr inbounds float* %tmp13363, i64 1
+ %tmp13365 = getelementptr inbounds float* %tmp13364, i64 1
+ %tmp13366 = getelementptr inbounds float* %tmp13365, i64 1
+ %tmp13367 = getelementptr inbounds float* %tmp13366, i64 1
+ %tmp13368 = getelementptr inbounds float* %tmp13367, i64 1
+ %tmp13369 = getelementptr inbounds float* %tmp13368, i64 1
+ %tmp13370 = getelementptr inbounds float* %tmp13369, i64 1
+ %tmp13371 = getelementptr inbounds float* %tmp13370, i64 1
+ %tmp13372 = getelementptr inbounds float* %tmp13371, i64 1
+ %tmp13373 = getelementptr inbounds float* %tmp13372, i64 1
+ %tmp13374 = getelementptr inbounds float* %tmp13373, i64 1
+ %tmp13375 = getelementptr inbounds float* %tmp13374, i64 1
+ %tmp13376 = getelementptr inbounds float* %tmp13375, i64 1
+ %tmp13377 = getelementptr inbounds float* %tmp13376, i64 1
+ %tmp13378 = getelementptr inbounds float* %tmp13377, i64 1
+ %tmp13379 = getelementptr inbounds float* %tmp13378, i64 1
+ %tmp13380 = getelementptr inbounds float* %tmp13379, i64 1
+ %tmp13381 = getelementptr inbounds float* %tmp13380, i64 1
+ %tmp13382 = getelementptr inbounds float* %tmp13381, i64 1
+ %tmp13383 = getelementptr inbounds float* %tmp13382, i64 1
+ %tmp13384 = getelementptr inbounds float* %tmp13383, i64 1
+ %tmp13385 = getelementptr inbounds float* %tmp13384, i64 1
+ %tmp13386 = getelementptr inbounds float* %tmp13385, i64 1
+ %tmp13387 = getelementptr inbounds float* %tmp13386, i64 1
+ %tmp13388 = getelementptr inbounds float* %tmp13387, i64 1
+ %tmp13389 = getelementptr inbounds float* %tmp13388, i64 1
+ %tmp13390 = getelementptr inbounds float* %tmp13389, i64 1
+ %tmp13391 = getelementptr inbounds float* %tmp13390, i64 1
+ %tmp13392 = getelementptr inbounds float* %tmp13391, i64 1
+ %tmp13393 = getelementptr inbounds float* %tmp13392, i64 1
+ %tmp13394 = getelementptr inbounds float* %tmp13393, i64 1
+ %tmp13395 = getelementptr inbounds float* %tmp13394, i64 1
+ %tmp13396 = getelementptr inbounds float* %tmp13395, i64 1
+ %tmp13397 = getelementptr inbounds float* %tmp13396, i64 1
+ %tmp13398 = getelementptr inbounds float* %tmp13397, i64 1
+ %tmp13399 = getelementptr inbounds float* %tmp13398, i64 1
+ %tmp13400 = getelementptr inbounds float* %tmp13399, i64 1
+ %tmp13401 = getelementptr inbounds float* %tmp13400, i64 1
+ %tmp13402 = getelementptr inbounds float* %tmp13401, i64 1
+ %tmp13403 = getelementptr inbounds float* %tmp13402, i64 1
+ %tmp13404 = getelementptr inbounds float* %tmp13403, i64 1
+ %tmp13405 = getelementptr inbounds float* %tmp13404, i64 1
+ %tmp13406 = getelementptr inbounds float* %tmp13405, i64 1
+ %tmp13407 = getelementptr inbounds float* %tmp13406, i64 1
+ %tmp13408 = getelementptr inbounds float* %tmp13407, i64 1
+ %tmp13409 = getelementptr inbounds float* %tmp13408, i64 1
+ %tmp13410 = getelementptr inbounds float* %tmp13409, i64 1
+ %tmp13411 = getelementptr inbounds float* %tmp13410, i64 1
+ %tmp13412 = getelementptr inbounds float* %tmp13411, i64 1
+ %tmp13413 = getelementptr inbounds float* %tmp13412, i64 1
+ %tmp13414 = getelementptr inbounds float* %tmp13413, i64 1
+ %tmp13415 = getelementptr inbounds float* %tmp13414, i64 1
+ %tmp13416 = getelementptr inbounds float* %tmp13415, i64 1
+ %tmp13417 = getelementptr inbounds float* %tmp13416, i64 1
+ %tmp13418 = getelementptr inbounds float* %tmp13417, i64 1
+ %tmp13419 = getelementptr inbounds float* %tmp13418, i64 1
+ %tmp13420 = getelementptr inbounds float* %tmp13419, i64 1
+ %tmp13421 = getelementptr inbounds float* %tmp13420, i64 1
+ %tmp13422 = getelementptr inbounds float* %tmp13421, i64 1
+ %tmp13423 = getelementptr inbounds float* %tmp13422, i64 1
+ %tmp13424 = getelementptr inbounds float* %tmp13423, i64 1
+ %tmp13425 = getelementptr inbounds float* %tmp13424, i64 1
+ %tmp13426 = getelementptr inbounds float* %tmp13425, i64 1
+ %tmp13427 = getelementptr inbounds float* %tmp13426, i64 1
+ %tmp13428 = getelementptr inbounds float* %tmp13427, i64 1
+ %tmp13429 = getelementptr inbounds float* %tmp13428, i64 1
+ %tmp13430 = getelementptr inbounds float* %tmp13429, i64 1
+ %tmp13431 = getelementptr inbounds float* %tmp13430, i64 1
+ %tmp13432 = getelementptr inbounds float* %tmp13431, i64 1
+ %tmp13433 = getelementptr inbounds float* %tmp13432, i64 1
+ %tmp13434 = getelementptr inbounds float* %tmp13433, i64 1
+ %tmp13435 = getelementptr inbounds float* %tmp13434, i64 1
+ %tmp13436 = getelementptr inbounds float* %tmp13435, i64 1
+ %tmp13437 = getelementptr inbounds float* %tmp13436, i64 1
+ %tmp13438 = getelementptr inbounds float* %tmp13437, i64 1
+ %tmp13439 = getelementptr inbounds float* %tmp13438, i64 1
+ %tmp13440 = getelementptr inbounds float* %tmp13439, i64 1
+ %tmp13441 = getelementptr inbounds float* %tmp13440, i64 1
+ %tmp13442 = getelementptr inbounds float* %tmp13441, i64 1
+ %tmp13443 = getelementptr inbounds float* %tmp13442, i64 1
+ %tmp13444 = getelementptr inbounds float* %tmp13443, i64 1
+ %tmp13445 = getelementptr inbounds float* %tmp13444, i64 1
+ %tmp13446 = getelementptr inbounds float* %tmp13445, i64 1
+ %tmp13447 = getelementptr inbounds float* %tmp13446, i64 1
+ %tmp13448 = getelementptr inbounds float* %tmp13447, i64 1
+ %tmp13449 = getelementptr inbounds float* %tmp13448, i64 1
+ %tmp13450 = getelementptr inbounds float* %tmp13449, i64 1
+ %tmp13451 = getelementptr inbounds float* %tmp13450, i64 1
+ %tmp13452 = getelementptr inbounds float* %tmp13451, i64 1
+ %tmp13453 = getelementptr inbounds float* %tmp13452, i64 1
+ %tmp13454 = getelementptr inbounds float* %tmp13453, i64 1
+ %tmp13455 = getelementptr inbounds float* %tmp13454, i64 1
+ %tmp13456 = getelementptr inbounds float* %tmp13455, i64 1
+ %tmp13457 = getelementptr inbounds float* %tmp13456, i64 1
+ %tmp13458 = getelementptr inbounds float* %tmp13457, i64 1
+ %tmp13459 = getelementptr inbounds float* %tmp13458, i64 1
+ %tmp13460 = getelementptr inbounds float* %tmp13459, i64 1
+ %tmp13461 = getelementptr inbounds float* %tmp13460, i64 1
+ %tmp13462 = getelementptr inbounds float* %tmp13461, i64 1
+ %tmp13463 = getelementptr inbounds float* %tmp13462, i64 1
+ %tmp13464 = getelementptr inbounds float* %tmp13463, i64 1
+ %tmp13465 = getelementptr inbounds float* %tmp13464, i64 1
+ %tmp13466 = getelementptr inbounds float* %tmp13465, i64 1
+ %tmp13467 = getelementptr inbounds float* %tmp13466, i64 1
+ %tmp13468 = getelementptr inbounds float* %tmp13467, i64 1
+ %tmp13469 = getelementptr inbounds float* %tmp13468, i64 1
+ %tmp13470 = getelementptr inbounds float* %tmp13469, i64 1
+ %tmp13471 = getelementptr inbounds float* %tmp13470, i64 1
+ %tmp13472 = getelementptr inbounds float* %tmp13471, i64 1
+ %tmp13473 = getelementptr inbounds float* %tmp13472, i64 1
+ %tmp13474 = getelementptr inbounds float* %tmp13473, i64 1
+ %tmp13475 = getelementptr inbounds float* %tmp13474, i64 1
+ %tmp13476 = getelementptr inbounds float* %tmp13475, i64 1
+ %tmp13477 = getelementptr inbounds float* %tmp13476, i64 1
+ %tmp13478 = getelementptr inbounds float* %tmp13477, i64 1
+ %tmp13479 = getelementptr inbounds float* %tmp13478, i64 1
+ %tmp13480 = getelementptr inbounds float* %tmp13479, i64 1
+ %tmp13481 = getelementptr inbounds float* %tmp13480, i64 1
+ %tmp13482 = getelementptr inbounds float* %tmp13481, i64 1
+ %tmp13483 = getelementptr inbounds float* %tmp13482, i64 1
+ %tmp13484 = getelementptr inbounds float* %tmp13483, i64 1
+ %tmp13485 = getelementptr inbounds float* %tmp13484, i64 1
+ %tmp13486 = getelementptr inbounds float* %tmp13485, i64 1
+ %tmp13487 = getelementptr inbounds float* %tmp13486, i64 1
+ %tmp13488 = getelementptr inbounds float* %tmp13487, i64 1
+ %tmp13489 = getelementptr inbounds float* %tmp13488, i64 1
+ %tmp13490 = getelementptr inbounds float* %tmp13489, i64 1
+ %tmp13491 = getelementptr inbounds float* %tmp13490, i64 1
+ %tmp13492 = getelementptr inbounds float* %tmp13491, i64 1
+ %tmp13493 = getelementptr inbounds float* %tmp13492, i64 1
+ %tmp13494 = getelementptr inbounds float* %tmp13493, i64 1
+ %tmp13495 = getelementptr inbounds float* %tmp13494, i64 1
+ %tmp13496 = getelementptr inbounds float* %tmp13495, i64 1
+ %tmp13497 = getelementptr inbounds float* %tmp13496, i64 1
+ %tmp13498 = getelementptr inbounds float* %tmp13497, i64 1
+ %tmp13499 = getelementptr inbounds float* %tmp13498, i64 1
+ %tmp13500 = getelementptr inbounds float* %tmp13499, i64 1
+ %tmp13501 = getelementptr inbounds float* %tmp13500, i64 1
+ %tmp13502 = getelementptr inbounds float* %tmp13501, i64 1
+ %tmp13503 = getelementptr inbounds float* %tmp13502, i64 1
+ %tmp13504 = getelementptr inbounds float* %tmp13503, i64 1
+ %tmp13505 = getelementptr inbounds float* %tmp13504, i64 1
+ %tmp13506 = getelementptr inbounds float* %tmp13505, i64 1
+ %tmp13507 = getelementptr inbounds float* %tmp13506, i64 1
+ %tmp13508 = getelementptr inbounds float* %tmp13507, i64 1
+ %tmp13509 = getelementptr inbounds float* %tmp13508, i64 1
+ %tmp13510 = getelementptr inbounds float* %tmp13509, i64 1
+ %tmp13511 = getelementptr inbounds float* %tmp13510, i64 1
+ %tmp13512 = getelementptr inbounds float* %tmp13511, i64 1
+ %tmp13513 = getelementptr inbounds float* %tmp13512, i64 1
+ %tmp13514 = getelementptr inbounds float* %tmp13513, i64 1
+ %tmp13515 = getelementptr inbounds float* %tmp13514, i64 1
+ %tmp13516 = getelementptr inbounds float* %tmp13515, i64 1
+ %tmp13517 = getelementptr inbounds float* %tmp13516, i64 1
+ %tmp13518 = getelementptr inbounds float* %tmp13517, i64 1
+ %tmp13519 = getelementptr inbounds float* %tmp13518, i64 1
+ %tmp13520 = getelementptr inbounds float* %tmp13519, i64 1
+ %tmp13521 = getelementptr inbounds float* %tmp13520, i64 1
+ %tmp13522 = getelementptr inbounds float* %tmp13521, i64 1
+ %tmp13523 = getelementptr inbounds float* %tmp13522, i64 1
+ %tmp13524 = getelementptr inbounds float* %tmp13523, i64 1
+ %tmp13525 = getelementptr inbounds float* %tmp13524, i64 1
+ %tmp13526 = getelementptr inbounds float* %tmp13525, i64 1
+ %tmp13527 = getelementptr inbounds float* %tmp13526, i64 1
+ %tmp13528 = getelementptr inbounds float* %tmp13527, i64 1
+ %tmp13529 = getelementptr inbounds float* %tmp13528, i64 1
+ %tmp13530 = getelementptr inbounds float* %tmp13529, i64 1
+ %tmp13531 = getelementptr inbounds float* %tmp13530, i64 1
+ %tmp13532 = getelementptr inbounds float* %tmp13531, i64 1
+ %tmp13533 = getelementptr inbounds float* %tmp13532, i64 1
+ %tmp13534 = getelementptr inbounds float* %tmp13533, i64 1
+ %tmp13535 = getelementptr inbounds float* %tmp13534, i64 1
+ %tmp13536 = getelementptr inbounds float* %tmp13535, i64 1
+ %tmp13537 = getelementptr inbounds float* %tmp13536, i64 1
+ %tmp13538 = getelementptr inbounds float* %tmp13537, i64 1
+ %tmp13539 = getelementptr inbounds float* %tmp13538, i64 1
+ %tmp13540 = getelementptr inbounds float* %tmp13539, i64 1
+ %tmp13541 = getelementptr inbounds float* %tmp13540, i64 1
+ %tmp13542 = getelementptr inbounds float* %tmp13541, i64 1
+ %tmp13543 = getelementptr inbounds float* %tmp13542, i64 1
+ %tmp13544 = getelementptr inbounds float* %tmp13543, i64 1
+ %tmp13545 = getelementptr inbounds float* %tmp13544, i64 1
+ %tmp13546 = getelementptr inbounds float* %tmp13545, i64 1
+ %tmp13547 = getelementptr inbounds float* %tmp13546, i64 1
+ %tmp13548 = getelementptr inbounds float* %tmp13547, i64 1
+ %tmp13549 = getelementptr inbounds float* %tmp13548, i64 1
+ %tmp13550 = getelementptr inbounds float* %tmp13549, i64 1
+ %tmp13551 = getelementptr inbounds float* %tmp13550, i64 1
+ %tmp13552 = getelementptr inbounds float* %tmp13551, i64 1
+ %tmp13553 = getelementptr inbounds float* %tmp13552, i64 1
+ %tmp13554 = getelementptr inbounds float* %tmp13553, i64 1
+ %tmp13555 = getelementptr inbounds float* %tmp13554, i64 1
+ %tmp13556 = getelementptr inbounds float* %tmp13555, i64 1
+ %tmp13557 = getelementptr inbounds float* %tmp13556, i64 1
+ %tmp13558 = getelementptr inbounds float* %tmp13557, i64 1
+ %tmp13559 = getelementptr inbounds float* %tmp13558, i64 1
+ %tmp13560 = getelementptr inbounds float* %tmp13559, i64 1
+ %tmp13561 = getelementptr inbounds float* %tmp13560, i64 1
+ %tmp13562 = getelementptr inbounds float* %tmp13561, i64 1
+ %tmp13563 = getelementptr inbounds float* %tmp13562, i64 1
+ %tmp13564 = getelementptr inbounds float* %tmp13563, i64 1
+ %tmp13565 = getelementptr inbounds float* %tmp13564, i64 1
+ %tmp13566 = getelementptr inbounds float* %tmp13565, i64 1
+ %tmp13567 = getelementptr inbounds float* %tmp13566, i64 1
+ %tmp13568 = getelementptr inbounds float* %tmp13567, i64 1
+ %tmp13569 = getelementptr inbounds float* %tmp13568, i64 1
+ %tmp13570 = getelementptr inbounds float* %tmp13569, i64 1
+ %tmp13571 = getelementptr inbounds float* %tmp13570, i64 1
+ %tmp13572 = getelementptr inbounds float* %tmp13571, i64 1
+ %tmp13573 = getelementptr inbounds float* %tmp13572, i64 1
+ %tmp13574 = getelementptr inbounds float* %tmp13573, i64 1
+ %tmp13575 = getelementptr inbounds float* %tmp13574, i64 1
+ %tmp13576 = getelementptr inbounds float* %tmp13575, i64 1
+ %tmp13577 = getelementptr inbounds float* %tmp13576, i64 1
+ %tmp13578 = getelementptr inbounds float* %tmp13577, i64 1
+ %tmp13579 = getelementptr inbounds float* %tmp13578, i64 1
+ %tmp13580 = getelementptr inbounds float* %tmp13579, i64 1
+ %tmp13581 = getelementptr inbounds float* %tmp13580, i64 1
+ %tmp13582 = getelementptr inbounds float* %tmp13581, i64 1
+ %tmp13583 = getelementptr inbounds float* %tmp13582, i64 1
+ %tmp13584 = getelementptr inbounds float* %tmp13583, i64 1
+ %tmp13585 = getelementptr inbounds float* %tmp13584, i64 1
+ %tmp13586 = getelementptr inbounds float* %tmp13585, i64 1
+ %tmp13587 = getelementptr inbounds float* %tmp13586, i64 1
+ %tmp13588 = getelementptr inbounds float* %tmp13587, i64 1
+ %tmp13589 = getelementptr inbounds float* %tmp13588, i64 1
+ %tmp13590 = getelementptr inbounds float* %tmp13589, i64 1
+ %tmp13591 = getelementptr inbounds float* %tmp13590, i64 1
+ %tmp13592 = getelementptr inbounds float* %tmp13591, i64 1
+ %tmp13593 = getelementptr inbounds float* %tmp13592, i64 1
+ %tmp13594 = getelementptr inbounds float* %tmp13593, i64 1
+ %tmp13595 = getelementptr inbounds float* %tmp13594, i64 1
+ %tmp13596 = getelementptr inbounds float* %tmp13595, i64 1
+ %tmp13597 = getelementptr inbounds float* %tmp13596, i64 1
+ %tmp13598 = getelementptr inbounds float* %tmp13597, i64 1
+ %tmp13599 = getelementptr inbounds float* %tmp13598, i64 1
+ %tmp13600 = getelementptr inbounds float* %tmp13599, i64 1
+ %tmp13601 = getelementptr inbounds float* %tmp13600, i64 1
+ %tmp13602 = getelementptr inbounds float* %tmp13601, i64 1
+ %tmp13603 = getelementptr inbounds float* %tmp13602, i64 1
+ %tmp13604 = getelementptr inbounds float* %tmp13603, i64 1
+ %tmp13605 = getelementptr inbounds float* %tmp13604, i64 1
+ %tmp13606 = getelementptr inbounds float* %tmp13605, i64 1
+ %tmp13607 = getelementptr inbounds float* %tmp13606, i64 1
+ %tmp13608 = getelementptr inbounds float* %tmp13607, i64 1
+ %tmp13609 = getelementptr inbounds float* %tmp13608, i64 1
+ %tmp13610 = getelementptr inbounds float* %tmp13609, i64 1
+ %tmp13611 = getelementptr inbounds float* %tmp13610, i64 1
+ %tmp13612 = getelementptr inbounds float* %tmp13611, i64 1
+ %tmp13613 = getelementptr inbounds float* %tmp13612, i64 1
+ %tmp13614 = getelementptr inbounds float* %tmp13613, i64 1
+ %tmp13615 = getelementptr inbounds float* %tmp13614, i64 1
+ %tmp13616 = getelementptr inbounds float* %tmp13615, i64 1
+ %tmp13617 = getelementptr inbounds float* %tmp13616, i64 1
+ %tmp13618 = getelementptr inbounds float* %tmp13617, i64 1
+ %tmp13619 = getelementptr inbounds float* %tmp13618, i64 1
+ %tmp13620 = getelementptr inbounds float* %tmp13619, i64 1
+ %tmp13621 = getelementptr inbounds float* %tmp13620, i64 1
+ %tmp13622 = getelementptr inbounds float* %tmp13621, i64 1
+ %tmp13623 = getelementptr inbounds float* %tmp13622, i64 1
+ %tmp13624 = getelementptr inbounds float* %tmp13623, i64 1
+ %tmp13625 = getelementptr inbounds float* %tmp13624, i64 1
+ %tmp13626 = getelementptr inbounds float* %tmp13625, i64 1
+ %tmp13627 = getelementptr inbounds float* %tmp13626, i64 1
+ %tmp13628 = getelementptr inbounds float* %tmp13627, i64 1
+ %tmp13629 = getelementptr inbounds float* %tmp13628, i64 1
+ %tmp13630 = getelementptr inbounds float* %tmp13629, i64 1
+ %tmp13631 = getelementptr inbounds float* %tmp13630, i64 1
+ %tmp13632 = getelementptr inbounds float* %tmp13631, i64 1
+ %tmp13633 = getelementptr inbounds float* %tmp13632, i64 1
+ %tmp13634 = getelementptr inbounds float* %tmp13633, i64 1
+ %tmp13635 = getelementptr inbounds float* %tmp13634, i64 1
+ %tmp13636 = getelementptr inbounds float* %tmp13635, i64 1
+ %tmp13637 = getelementptr inbounds float* %tmp13636, i64 1
+ %tmp13638 = getelementptr inbounds float* %tmp13637, i64 1
+ %tmp13639 = getelementptr inbounds float* %tmp13638, i64 1
+ %tmp13640 = getelementptr inbounds float* %tmp13639, i64 1
+ %tmp13641 = getelementptr inbounds float* %tmp13640, i64 1
+ %tmp13642 = getelementptr inbounds float* %tmp13641, i64 1
+ %tmp13643 = getelementptr inbounds float* %tmp13642, i64 1
+ %tmp13644 = getelementptr inbounds float* %tmp13643, i64 1
+ %tmp13645 = getelementptr inbounds float* %tmp13644, i64 1
+ %tmp13646 = getelementptr inbounds float* %tmp13645, i64 1
+ %tmp13647 = getelementptr inbounds float* %tmp13646, i64 1
+ %tmp13648 = getelementptr inbounds float* %tmp13647, i64 1
+ %tmp13649 = getelementptr inbounds float* %tmp13648, i64 1
+ %tmp13650 = getelementptr inbounds float* %tmp13649, i64 1
+ %tmp13651 = getelementptr inbounds float* %tmp13650, i64 1
+ %tmp13652 = getelementptr inbounds float* %tmp13651, i64 1
+ %tmp13653 = getelementptr inbounds float* %tmp13652, i64 1
+ %tmp13654 = getelementptr inbounds float* %tmp13653, i64 1
+ %tmp13655 = getelementptr inbounds float* %tmp13654, i64 1
+ %tmp13656 = getelementptr inbounds float* %tmp13655, i64 1
+ %tmp13657 = getelementptr inbounds float* %tmp13656, i64 1
+ %tmp13658 = getelementptr inbounds float* %tmp13657, i64 1
+ %tmp13659 = getelementptr inbounds float* %tmp13658, i64 1
+ %tmp13660 = getelementptr inbounds float* %tmp13659, i64 1
+ %tmp13661 = getelementptr inbounds float* %tmp13660, i64 1
+ %tmp13662 = getelementptr inbounds float* %tmp13661, i64 1
+ %tmp13663 = getelementptr inbounds float* %tmp13662, i64 1
+ %tmp13664 = getelementptr inbounds float* %tmp13663, i64 1
+ %tmp13665 = getelementptr inbounds float* %tmp13664, i64 1
+ %tmp13666 = getelementptr inbounds float* %tmp13665, i64 1
+ %tmp13667 = getelementptr inbounds float* %tmp13666, i64 1
+ %tmp13668 = getelementptr inbounds float* %tmp13667, i64 1
+ %tmp13669 = getelementptr inbounds float* %tmp13668, i64 1
+ %tmp13670 = getelementptr inbounds float* %tmp13669, i64 1
+ %tmp13671 = getelementptr inbounds float* %tmp13670, i64 1
+ %tmp13672 = getelementptr inbounds float* %tmp13671, i64 1
+ %tmp13673 = getelementptr inbounds float* %tmp13672, i64 1
+ %tmp13674 = getelementptr inbounds float* %tmp13673, i64 1
+ %tmp13675 = getelementptr inbounds float* %tmp13674, i64 1
+ %tmp13676 = getelementptr inbounds float* %tmp13675, i64 1
+ %tmp13677 = getelementptr inbounds float* %tmp13676, i64 1
+ %tmp13678 = getelementptr inbounds float* %tmp13677, i64 1
+ %tmp13679 = getelementptr inbounds float* %tmp13678, i64 1
+ %tmp13680 = getelementptr inbounds float* %tmp13679, i64 1
+ %tmp13681 = getelementptr inbounds float* %tmp13680, i64 1
+ %tmp13682 = getelementptr inbounds float* %tmp13681, i64 1
+ %tmp13683 = getelementptr inbounds float* %tmp13682, i64 1
+ %tmp13684 = getelementptr inbounds float* %tmp13683, i64 1
+ %tmp13685 = getelementptr inbounds float* %tmp13684, i64 1
+ %tmp13686 = getelementptr inbounds float* %tmp13685, i64 1
+ %tmp13687 = getelementptr inbounds float* %tmp13686, i64 1
+ %tmp13688 = getelementptr inbounds float* %tmp13687, i64 1
+ %tmp13689 = getelementptr inbounds float* %tmp13688, i64 1
+ %tmp13690 = getelementptr inbounds float* %tmp13689, i64 1
+ %tmp13691 = getelementptr inbounds float* %tmp13690, i64 1
+ %tmp13692 = getelementptr inbounds float* %tmp13691, i64 1
+ %tmp13693 = getelementptr inbounds float* %tmp13692, i64 1
+ %tmp13694 = getelementptr inbounds float* %tmp13693, i64 1
+ %tmp13695 = getelementptr inbounds float* %tmp13694, i64 1
+ %tmp13696 = getelementptr inbounds float* %tmp13695, i64 1
+ %tmp13697 = getelementptr inbounds float* %tmp13696, i64 1
+ %tmp13698 = getelementptr inbounds float* %tmp13697, i64 1
+ %tmp13699 = getelementptr inbounds float* %tmp13698, i64 1
+ %tmp13700 = getelementptr inbounds float* %tmp13699, i64 1
+ %tmp13701 = getelementptr inbounds float* %tmp13700, i64 1
+ %tmp13702 = getelementptr inbounds float* %tmp13701, i64 1
+ %tmp13703 = getelementptr inbounds float* %tmp13702, i64 1
+ %tmp13704 = getelementptr inbounds float* %tmp13703, i64 1
+ %tmp13705 = getelementptr inbounds float* %tmp13704, i64 1
+ %tmp13706 = getelementptr inbounds float* %tmp13705, i64 1
+ %tmp13707 = getelementptr inbounds float* %tmp13706, i64 1
+ %tmp13708 = getelementptr inbounds float* %tmp13707, i64 1
+ %tmp13709 = getelementptr inbounds float* %tmp13708, i64 1
+ %tmp13710 = getelementptr inbounds float* %tmp13709, i64 1
+ %tmp13711 = getelementptr inbounds float* %tmp13710, i64 1
+ %tmp13712 = getelementptr inbounds float* %tmp13711, i64 1
+ %tmp13713 = getelementptr inbounds float* %tmp13712, i64 1
+ %tmp13714 = getelementptr inbounds float* %tmp13713, i64 1
+ %tmp13715 = getelementptr inbounds float* %tmp13714, i64 1
+ %tmp13716 = getelementptr inbounds float* %tmp13715, i64 1
+ %tmp13717 = getelementptr inbounds float* %tmp13716, i64 1
+ %tmp13718 = getelementptr inbounds float* %tmp13717, i64 1
+ %tmp13719 = getelementptr inbounds float* %tmp13718, i64 1
+ %tmp13720 = getelementptr inbounds float* %tmp13719, i64 1
+ %tmp13721 = getelementptr inbounds float* %tmp13720, i64 1
+ %tmp13722 = getelementptr inbounds float* %tmp13721, i64 1
+ %tmp13723 = getelementptr inbounds float* %tmp13722, i64 1
+ %tmp13724 = getelementptr inbounds float* %tmp13723, i64 1
+ %tmp13725 = getelementptr inbounds float* %tmp13724, i64 1
+ %tmp13726 = getelementptr inbounds float* %tmp13725, i64 1
+ %tmp13727 = getelementptr inbounds float* %tmp13726, i64 1
+ %tmp13728 = getelementptr inbounds float* %tmp13727, i64 1
+ %tmp13729 = getelementptr inbounds float* %tmp13728, i64 1
+ %tmp13730 = getelementptr inbounds float* %tmp13729, i64 1
+ %tmp13731 = getelementptr inbounds float* %tmp13730, i64 1
+ %tmp13732 = getelementptr inbounds float* %tmp13731, i64 1
+ %tmp13733 = getelementptr inbounds float* %tmp13732, i64 1
+ %tmp13734 = getelementptr inbounds float* %tmp13733, i64 1
+ %tmp13735 = getelementptr inbounds float* %tmp13734, i64 1
+ %tmp13736 = getelementptr inbounds float* %tmp13735, i64 1
+ %tmp13737 = getelementptr inbounds float* %tmp13736, i64 1
+ %tmp13738 = getelementptr inbounds float* %tmp13737, i64 1
+ %tmp13739 = getelementptr inbounds float* %tmp13738, i64 1
+ %tmp13740 = getelementptr inbounds float* %tmp13739, i64 1
+ %tmp13741 = getelementptr inbounds float* %tmp13740, i64 1
+ %tmp13742 = getelementptr inbounds float* %tmp13741, i64 1
+ %tmp13743 = getelementptr inbounds float* %tmp13742, i64 1
+ %tmp13744 = getelementptr inbounds float* %tmp13743, i64 1
+ %tmp13745 = getelementptr inbounds float* %tmp13744, i64 1
+ %tmp13746 = getelementptr inbounds float* %tmp13745, i64 1
+ %tmp13747 = getelementptr inbounds float* %tmp13746, i64 1
+ %tmp13748 = getelementptr inbounds float* %tmp13747, i64 1
+ %tmp13749 = getelementptr inbounds float* %tmp13748, i64 1
+ %tmp13750 = getelementptr inbounds float* %tmp13749, i64 1
+ %tmp13751 = getelementptr inbounds float* %tmp13750, i64 1
+ %tmp13752 = getelementptr inbounds float* %tmp13751, i64 1
+ %tmp13753 = getelementptr inbounds float* %tmp13752, i64 1
+ %tmp13754 = getelementptr inbounds float* %tmp13753, i64 1
+ %tmp13755 = getelementptr inbounds float* %tmp13754, i64 1
+ %tmp13756 = getelementptr inbounds float* %tmp13755, i64 1
+ %tmp13757 = getelementptr inbounds float* %tmp13756, i64 1
+ %tmp13758 = getelementptr inbounds float* %tmp13757, i64 1
+ %tmp13759 = getelementptr inbounds float* %tmp13758, i64 1
+ %tmp13760 = getelementptr inbounds float* %tmp13759, i64 1
+ %tmp13761 = getelementptr inbounds float* %tmp13760, i64 1
+ %tmp13762 = getelementptr inbounds float* %tmp13761, i64 1
+ %tmp13763 = getelementptr inbounds float* %tmp13762, i64 1
+ %tmp13764 = getelementptr inbounds float* %tmp13763, i64 1
+ %tmp13765 = getelementptr inbounds float* %tmp13764, i64 1
+ %tmp13766 = getelementptr inbounds float* %tmp13765, i64 1
+ %tmp13767 = getelementptr inbounds float* %tmp13766, i64 1
+ %tmp13768 = getelementptr inbounds float* %tmp13767, i64 1
+ %tmp13769 = getelementptr inbounds float* %tmp13768, i64 1
+ %tmp13770 = getelementptr inbounds float* %tmp13769, i64 1
+ %tmp13771 = getelementptr inbounds float* %tmp13770, i64 1
+ %tmp13772 = getelementptr inbounds float* %tmp13771, i64 1
+ %tmp13773 = getelementptr inbounds float* %tmp13772, i64 1
+ %tmp13774 = getelementptr inbounds float* %tmp13773, i64 1
+ %tmp13775 = getelementptr inbounds float* %tmp13774, i64 1
+ %tmp13776 = getelementptr inbounds float* %tmp13775, i64 1
+ %tmp13777 = getelementptr inbounds float* %tmp13776, i64 1
+ %tmp13778 = getelementptr inbounds float* %tmp13777, i64 1
+ %tmp13779 = getelementptr inbounds float* %tmp13778, i64 1
+ %tmp13780 = getelementptr inbounds float* %tmp13779, i64 1
+ %tmp13781 = getelementptr inbounds float* %tmp13780, i64 1
+ %tmp13782 = getelementptr inbounds float* %tmp13781, i64 1
+ %tmp13783 = getelementptr inbounds float* %tmp13782, i64 1
+ %tmp13784 = getelementptr inbounds float* %tmp13783, i64 1
+ %tmp13785 = getelementptr inbounds float* %tmp13784, i64 1
+ %tmp13786 = getelementptr inbounds float* %tmp13785, i64 1
+ %tmp13787 = getelementptr inbounds float* %tmp13786, i64 1
+ %tmp13788 = getelementptr inbounds float* %tmp13787, i64 1
+ %tmp13789 = getelementptr inbounds float* %tmp13788, i64 1
+ %tmp13790 = getelementptr inbounds float* %tmp13789, i64 1
+ %tmp13791 = getelementptr inbounds float* %tmp13790, i64 1
+ %tmp13792 = getelementptr inbounds float* %tmp13791, i64 1
+ %tmp13793 = getelementptr inbounds float* %tmp13792, i64 1
+ %tmp13794 = getelementptr inbounds float* %tmp13793, i64 1
+ %tmp13795 = getelementptr inbounds float* %tmp13794, i64 1
+ %tmp13796 = getelementptr inbounds float* %tmp13795, i64 1
+ %tmp13797 = getelementptr inbounds float* %tmp13796, i64 1
+ %tmp13798 = getelementptr inbounds float* %tmp13797, i64 1
+ %tmp13799 = getelementptr inbounds float* %tmp13798, i64 1
+ %tmp13800 = getelementptr inbounds float* %tmp13799, i64 1
+ %tmp13801 = getelementptr inbounds float* %tmp13800, i64 1
+ %tmp13802 = getelementptr inbounds float* %tmp13801, i64 1
+ %tmp13803 = getelementptr inbounds float* %tmp13802, i64 1
+ %tmp13804 = getelementptr inbounds float* %tmp13803, i64 1
+ %tmp13805 = getelementptr inbounds float* %tmp13804, i64 1
+ %tmp13806 = getelementptr inbounds float* %tmp13805, i64 1
+ %tmp13807 = getelementptr inbounds float* %tmp13806, i64 1
+ %tmp13808 = getelementptr inbounds float* %tmp13807, i64 1
+ %tmp13809 = getelementptr inbounds float* %tmp13808, i64 1
+ %tmp13810 = getelementptr inbounds float* %tmp13809, i64 1
+ %tmp13811 = getelementptr inbounds float* %tmp13810, i64 1
+ %tmp13812 = getelementptr inbounds float* %tmp13811, i64 1
+ %tmp13813 = getelementptr inbounds float* %tmp13812, i64 1
+ %tmp13814 = getelementptr inbounds float* %tmp13813, i64 1
+ %tmp13815 = getelementptr inbounds float* %tmp13814, i64 1
+ %tmp13816 = getelementptr inbounds float* %tmp13815, i64 1
+ %tmp13817 = getelementptr inbounds float* %tmp13816, i64 1
+ %tmp13818 = getelementptr inbounds float* %tmp13817, i64 1
+ %tmp13819 = getelementptr inbounds float* %tmp13818, i64 1
+ %tmp13820 = getelementptr inbounds float* %tmp13819, i64 1
+ %tmp13821 = getelementptr inbounds float* %tmp13820, i64 1
+ %tmp13822 = getelementptr inbounds float* %tmp13821, i64 1
+ %tmp13823 = getelementptr inbounds float* %tmp13822, i64 1
+ %tmp13824 = getelementptr inbounds float* %tmp13823, i64 1
+ %tmp13825 = getelementptr inbounds float* %tmp13824, i64 1
+ %tmp13826 = getelementptr inbounds float* %tmp13825, i64 1
+ %tmp13827 = getelementptr inbounds float* %tmp13826, i64 1
+ %tmp13828 = getelementptr inbounds float* %tmp13827, i64 1
+ %tmp13829 = getelementptr inbounds float* %tmp13828, i64 1
+ %tmp13830 = getelementptr inbounds float* %tmp13829, i64 1
+ %tmp13831 = getelementptr inbounds float* %tmp13830, i64 1
+ %tmp13832 = getelementptr inbounds float* %tmp13831, i64 1
+ %tmp13833 = getelementptr inbounds float* %tmp13832, i64 1
+ %tmp13834 = getelementptr inbounds float* %tmp13833, i64 1
+ %tmp13835 = getelementptr inbounds float* %tmp13834, i64 1
+ %tmp13836 = getelementptr inbounds float* %tmp13835, i64 1
+ %tmp13837 = getelementptr inbounds float* %tmp13836, i64 1
+ %tmp13838 = getelementptr inbounds float* %tmp13837, i64 1
+ %tmp13839 = getelementptr inbounds float* %tmp13838, i64 1
+ %tmp13840 = getelementptr inbounds float* %tmp13839, i64 1
+ %tmp13841 = getelementptr inbounds float* %tmp13840, i64 1
+ %tmp13842 = getelementptr inbounds float* %tmp13841, i64 1
+ %tmp13843 = getelementptr inbounds float* %tmp13842, i64 1
+ %tmp13844 = getelementptr inbounds float* %tmp13843, i64 1
+ %tmp13845 = getelementptr inbounds float* %tmp13844, i64 1
+ %tmp13846 = getelementptr inbounds float* %tmp13845, i64 1
+ %tmp13847 = getelementptr inbounds float* %tmp13846, i64 1
+ %tmp13848 = getelementptr inbounds float* %tmp13847, i64 1
+ %tmp13849 = getelementptr inbounds float* %tmp13848, i64 1
+ %tmp13850 = getelementptr inbounds float* %tmp13849, i64 1
+ %tmp13851 = getelementptr inbounds float* %tmp13850, i64 1
+ %tmp13852 = getelementptr inbounds float* %tmp13851, i64 1
+ %tmp13853 = getelementptr inbounds float* %tmp13852, i64 1
+ %tmp13854 = getelementptr inbounds float* %tmp13853, i64 1
+ %tmp13855 = getelementptr inbounds float* %tmp13854, i64 1
+ %tmp13856 = getelementptr inbounds float* %tmp13855, i64 1
+ %tmp13857 = getelementptr inbounds float* %tmp13856, i64 1
+ %tmp13858 = getelementptr inbounds float* %tmp13857, i64 1
+ %tmp13859 = getelementptr inbounds float* %tmp13858, i64 1
+ %tmp13860 = getelementptr inbounds float* %tmp13859, i64 1
+ %tmp13861 = getelementptr inbounds float* %tmp13860, i64 1
+ %tmp13862 = getelementptr inbounds float* %tmp13861, i64 1
+ %tmp13863 = getelementptr inbounds float* %tmp13862, i64 1
+ %tmp13864 = getelementptr inbounds float* %tmp13863, i64 1
+ %tmp13865 = getelementptr inbounds float* %tmp13864, i64 1
+ %tmp13866 = getelementptr inbounds float* %tmp13865, i64 1
+ %tmp13867 = getelementptr inbounds float* %tmp13866, i64 1
+ %tmp13868 = getelementptr inbounds float* %tmp13867, i64 1
+ %tmp13869 = getelementptr inbounds float* %tmp13868, i64 1
+ %tmp13870 = getelementptr inbounds float* %tmp13869, i64 1
+ %tmp13871 = getelementptr inbounds float* %tmp13870, i64 1
+ %tmp13872 = getelementptr inbounds float* %tmp13871, i64 1
+ %tmp13873 = getelementptr inbounds float* %tmp13872, i64 1
+ %tmp13874 = getelementptr inbounds float* %tmp13873, i64 1
+ %tmp13875 = getelementptr inbounds float* %tmp13874, i64 1
+ %tmp13876 = getelementptr inbounds float* %tmp13875, i64 1
+ %tmp13877 = getelementptr inbounds float* %tmp13876, i64 1
+ %tmp13878 = getelementptr inbounds float* %tmp13877, i64 1
+ %tmp13879 = getelementptr inbounds float* %tmp13878, i64 1
+ %tmp13880 = getelementptr inbounds float* %tmp13879, i64 1
+ %tmp13881 = getelementptr inbounds float* %tmp13880, i64 1
+ %tmp13882 = getelementptr inbounds float* %tmp13881, i64 1
+ %tmp13883 = getelementptr inbounds float* %tmp13882, i64 1
+ %tmp13884 = getelementptr inbounds float* %tmp13883, i64 1
+ %tmp13885 = getelementptr inbounds float* %tmp13884, i64 1
+ %tmp13886 = getelementptr inbounds float* %tmp13885, i64 1
+ %tmp13887 = getelementptr inbounds float* %tmp13886, i64 1
+ %tmp13888 = getelementptr inbounds float* %tmp13887, i64 1
+ %tmp13889 = getelementptr inbounds float* %tmp13888, i64 1
+ %tmp13890 = getelementptr inbounds float* %tmp13889, i64 1
+ %tmp13891 = getelementptr inbounds float* %tmp13890, i64 1
+ %tmp13892 = getelementptr inbounds float* %tmp13891, i64 1
+ %tmp13893 = getelementptr inbounds float* %tmp13892, i64 1
+ %tmp13894 = getelementptr inbounds float* %tmp13893, i64 1
+ %tmp13895 = getelementptr inbounds float* %tmp13894, i64 1
+ %tmp13896 = getelementptr inbounds float* %tmp13895, i64 1
+ %tmp13897 = getelementptr inbounds float* %tmp13896, i64 1
+ %tmp13898 = getelementptr inbounds float* %tmp13897, i64 1
+ %tmp13899 = getelementptr inbounds float* %tmp13898, i64 1
+ %tmp13900 = getelementptr inbounds float* %tmp13899, i64 1
+ %tmp13901 = getelementptr inbounds float* %tmp13900, i64 1
+ %tmp13902 = getelementptr inbounds float* %tmp13901, i64 1
+ %tmp13903 = getelementptr inbounds float* %tmp13902, i64 1
+ %tmp13904 = getelementptr inbounds float* %tmp13903, i64 1
+ %tmp13905 = getelementptr inbounds float* %tmp13904, i64 1
+ %tmp13906 = getelementptr inbounds float* %tmp13905, i64 1
+ %tmp13907 = getelementptr inbounds float* %tmp13906, i64 1
+ %tmp13908 = getelementptr inbounds float* %tmp13907, i64 1
+ %tmp13909 = getelementptr inbounds float* %tmp13908, i64 1
+ %tmp13910 = getelementptr inbounds float* %tmp13909, i64 1
+ %tmp13911 = getelementptr inbounds float* %tmp13910, i64 1
+ %tmp13912 = getelementptr inbounds float* %tmp13911, i64 1
+ %tmp13913 = getelementptr inbounds float* %tmp13912, i64 1
+ %tmp13914 = getelementptr inbounds float* %tmp13913, i64 1
+ %tmp13915 = getelementptr inbounds float* %tmp13914, i64 1
+ %tmp13916 = getelementptr inbounds float* %tmp13915, i64 1
+ %tmp13917 = getelementptr inbounds float* %tmp13916, i64 1
+ %tmp13918 = getelementptr inbounds float* %tmp13917, i64 1
+ %tmp13919 = getelementptr inbounds float* %tmp13918, i64 1
+ %tmp13920 = getelementptr inbounds float* %tmp13919, i64 1
+ %tmp13921 = getelementptr inbounds float* %tmp13920, i64 1
+ %tmp13922 = getelementptr inbounds float* %tmp13921, i64 1
+ %tmp13923 = getelementptr inbounds float* %tmp13922, i64 1
+ %tmp13924 = getelementptr inbounds float* %tmp13923, i64 1
+ %tmp13925 = getelementptr inbounds float* %tmp13924, i64 1
+ %tmp13926 = getelementptr inbounds float* %tmp13925, i64 1
+ %tmp13927 = getelementptr inbounds float* %tmp13926, i64 1
+ %tmp13928 = getelementptr inbounds float* %tmp13927, i64 1
+ %tmp13929 = getelementptr inbounds float* %tmp13928, i64 1
+ %tmp13930 = getelementptr inbounds float* %tmp13929, i64 1
+ %tmp13931 = getelementptr inbounds float* %tmp13930, i64 1
+ %tmp13932 = getelementptr inbounds float* %tmp13931, i64 1
+ %tmp13933 = getelementptr inbounds float* %tmp13932, i64 1
+ %tmp13934 = getelementptr inbounds float* %tmp13933, i64 1
+ %tmp13935 = getelementptr inbounds float* %tmp13934, i64 1
+ %tmp13936 = getelementptr inbounds float* %tmp13935, i64 1
+ %tmp13937 = getelementptr inbounds float* %tmp13936, i64 1
+ %tmp13938 = getelementptr inbounds float* %tmp13937, i64 1
+ %tmp13939 = getelementptr inbounds float* %tmp13938, i64 1
+ %tmp13940 = getelementptr inbounds float* %tmp13939, i64 1
+ %tmp13941 = getelementptr inbounds float* %tmp13940, i64 1
+ %tmp13942 = getelementptr inbounds float* %tmp13941, i64 1
+ %tmp13943 = getelementptr inbounds float* %tmp13942, i64 1
+ %tmp13944 = getelementptr inbounds float* %tmp13943, i64 1
+ %tmp13945 = getelementptr inbounds float* %tmp13944, i64 1
+ %tmp13946 = getelementptr inbounds float* %tmp13945, i64 1
+ %tmp13947 = getelementptr inbounds float* %tmp13946, i64 1
+ %tmp13948 = getelementptr inbounds float* %tmp13947, i64 1
+ %tmp13949 = getelementptr inbounds float* %tmp13948, i64 1
+ %tmp13950 = getelementptr inbounds float* %tmp13949, i64 1
+ %tmp13951 = getelementptr inbounds float* %tmp13950, i64 1
+ %tmp13952 = getelementptr inbounds float* %tmp13951, i64 1
+ %tmp13953 = getelementptr inbounds float* %tmp13952, i64 1
+ %tmp13954 = getelementptr inbounds float* %tmp13953, i64 1
+ %tmp13955 = getelementptr inbounds float* %tmp13954, i64 1
+ %tmp13956 = getelementptr inbounds float* %tmp13955, i64 1
+ %tmp13957 = getelementptr inbounds float* %tmp13956, i64 1
+ %tmp13958 = getelementptr inbounds float* %tmp13957, i64 1
+ %tmp13959 = getelementptr inbounds float* %tmp13958, i64 1
+ %tmp13960 = getelementptr inbounds float* %tmp13959, i64 1
+ %tmp13961 = getelementptr inbounds float* %tmp13960, i64 1
+ %tmp13962 = getelementptr inbounds float* %tmp13961, i64 1
+ %tmp13963 = getelementptr inbounds float* %tmp13962, i64 1
+ %tmp13964 = getelementptr inbounds float* %tmp13963, i64 1
+ %tmp13965 = getelementptr inbounds float* %tmp13964, i64 1
+ %tmp13966 = getelementptr inbounds float* %tmp13965, i64 1
+ %tmp13967 = getelementptr inbounds float* %tmp13966, i64 1
+ %tmp13968 = getelementptr inbounds float* %tmp13967, i64 1
+ %tmp13969 = getelementptr inbounds float* %tmp13968, i64 1
+ %tmp13970 = getelementptr inbounds float* %tmp13969, i64 1
+ %tmp13971 = getelementptr inbounds float* %tmp13970, i64 1
+ %tmp13972 = getelementptr inbounds float* %tmp13971, i64 1
+ %tmp13973 = getelementptr inbounds float* %tmp13972, i64 1
+ %tmp13974 = getelementptr inbounds float* %tmp13973, i64 1
+ %tmp13975 = getelementptr inbounds float* %tmp13974, i64 1
+ %tmp13976 = getelementptr inbounds float* %tmp13975, i64 1
+ %tmp13977 = getelementptr inbounds float* %tmp13976, i64 1
+ %tmp13978 = getelementptr inbounds float* %tmp13977, i64 1
+ %tmp13979 = getelementptr inbounds float* %tmp13978, i64 1
+ %tmp13980 = getelementptr inbounds float* %tmp13979, i64 1
+ %tmp13981 = getelementptr inbounds float* %tmp13980, i64 1
+ %tmp13982 = getelementptr inbounds float* %tmp13981, i64 1
+ %tmp13983 = getelementptr inbounds float* %tmp13982, i64 1
+ %tmp13984 = getelementptr inbounds float* %tmp13983, i64 1
+ %tmp13985 = getelementptr inbounds float* %tmp13984, i64 1
+ %tmp13986 = getelementptr inbounds float* %tmp13985, i64 1
+ %tmp13987 = getelementptr inbounds float* %tmp13986, i64 1
+ %tmp13988 = getelementptr inbounds float* %tmp13987, i64 1
+ %tmp13989 = getelementptr inbounds float* %tmp13988, i64 1
+ %tmp13990 = getelementptr inbounds float* %tmp13989, i64 1
+ %tmp13991 = getelementptr inbounds float* %tmp13990, i64 1
+ %tmp13992 = getelementptr inbounds float* %tmp13991, i64 1
+ %tmp13993 = getelementptr inbounds float* %tmp13992, i64 1
+ %tmp13994 = getelementptr inbounds float* %tmp13993, i64 1
+ %tmp13995 = getelementptr inbounds float* %tmp13994, i64 1
+ %tmp13996 = getelementptr inbounds float* %tmp13995, i64 1
+ %tmp13997 = getelementptr inbounds float* %tmp13996, i64 1
+ %tmp13998 = getelementptr inbounds float* %tmp13997, i64 1
+ %tmp13999 = getelementptr inbounds float* %tmp13998, i64 1
+ %tmp14000 = getelementptr inbounds float* %tmp13999, i64 1
+ %tmp14001 = getelementptr inbounds float* %tmp14000, i64 1
+ %tmp14002 = getelementptr inbounds float* %tmp14001, i64 1
+ %tmp14003 = getelementptr inbounds float* %tmp14002, i64 1
+ %tmp14004 = getelementptr inbounds float* %tmp14003, i64 1
+ %tmp14005 = getelementptr inbounds float* %tmp14004, i64 1
+ %tmp14006 = getelementptr inbounds float* %tmp14005, i64 1
+ %tmp14007 = getelementptr inbounds float* %tmp14006, i64 1
+ %tmp14008 = getelementptr inbounds float* %tmp14007, i64 1
+ %tmp14009 = getelementptr inbounds float* %tmp14008, i64 1
+ %tmp14010 = getelementptr inbounds float* %tmp14009, i64 1
+ %tmp14011 = getelementptr inbounds float* %tmp14010, i64 1
+ %tmp14012 = getelementptr inbounds float* %tmp14011, i64 1
+ %tmp14013 = getelementptr inbounds float* %tmp14012, i64 1
+ %tmp14014 = getelementptr inbounds float* %tmp14013, i64 1
+ %tmp14015 = getelementptr inbounds float* %tmp14014, i64 1
+ %tmp14016 = getelementptr inbounds float* %tmp14015, i64 1
+ %tmp14017 = getelementptr inbounds float* %tmp14016, i64 1
+ %tmp14018 = getelementptr inbounds float* %tmp14017, i64 1
+ %tmp14019 = getelementptr inbounds float* %tmp14018, i64 1
+ %tmp14020 = getelementptr inbounds float* %tmp14019, i64 1
+ %tmp14021 = getelementptr inbounds float* %tmp14020, i64 1
+ %tmp14022 = getelementptr inbounds float* %tmp14021, i64 1
+ %tmp14023 = getelementptr inbounds float* %tmp14022, i64 1
+ %tmp14024 = getelementptr inbounds float* %tmp14023, i64 1
+ %tmp14025 = getelementptr inbounds float* %tmp14024, i64 1
+ %tmp14026 = getelementptr inbounds float* %tmp14025, i64 1
+ %tmp14027 = getelementptr inbounds float* %tmp14026, i64 1
+ %tmp14028 = getelementptr inbounds float* %tmp14027, i64 1
+ %tmp14029 = getelementptr inbounds float* %tmp14028, i64 1
+ %tmp14030 = getelementptr inbounds float* %tmp14029, i64 1
+ %tmp14031 = getelementptr inbounds float* %tmp14030, i64 1
+ %tmp14032 = getelementptr inbounds float* %tmp14031, i64 1
+ %tmp14033 = getelementptr inbounds float* %tmp14032, i64 1
+ %tmp14034 = getelementptr inbounds float* %tmp14033, i64 1
+ %tmp14035 = getelementptr inbounds float* %tmp14034, i64 1
+ %tmp14036 = getelementptr inbounds float* %tmp14035, i64 1
+ %tmp14037 = getelementptr inbounds float* %tmp14036, i64 1
+ %tmp14038 = getelementptr inbounds float* %tmp14037, i64 1
+ %tmp14039 = getelementptr inbounds float* %tmp14038, i64 1
+ %tmp14040 = getelementptr inbounds float* %tmp14039, i64 1
+ %tmp14041 = getelementptr inbounds float* %tmp14040, i64 1
+ %tmp14042 = getelementptr inbounds float* %tmp14041, i64 1
+ %tmp14043 = getelementptr inbounds float* %tmp14042, i64 1
+ %tmp14044 = getelementptr inbounds float* %tmp14043, i64 1
+ %tmp14045 = getelementptr inbounds float* %tmp14044, i64 1
+ %tmp14046 = getelementptr inbounds float* %tmp14045, i64 1
+ %tmp14047 = getelementptr inbounds float* %tmp14046, i64 1
+ %tmp14048 = getelementptr inbounds float* %tmp14047, i64 1
+ %tmp14049 = getelementptr inbounds float* %tmp14048, i64 1
+ %tmp14050 = getelementptr inbounds float* %tmp14049, i64 1
+ %tmp14051 = getelementptr inbounds float* %tmp14050, i64 1
+ %tmp14052 = getelementptr inbounds float* %tmp14051, i64 1
+ %tmp14053 = getelementptr inbounds float* %tmp14052, i64 1
+ %tmp14054 = getelementptr inbounds float* %tmp14053, i64 1
+ %tmp14055 = getelementptr inbounds float* %tmp14054, i64 1
+ %tmp14056 = getelementptr inbounds float* %tmp14055, i64 1
+ %tmp14057 = getelementptr inbounds float* %tmp14056, i64 1
+ %tmp14058 = getelementptr inbounds float* %tmp14057, i64 1
+ %tmp14059 = getelementptr inbounds float* %tmp14058, i64 1
+ %tmp14060 = getelementptr inbounds float* %tmp14059, i64 1
+ %tmp14061 = getelementptr inbounds float* %tmp14060, i64 1
+ %tmp14062 = getelementptr inbounds float* %tmp14061, i64 1
+ %tmp14063 = getelementptr inbounds float* %tmp14062, i64 1
+ %tmp14064 = getelementptr inbounds float* %tmp14063, i64 1
+ %tmp14065 = getelementptr inbounds float* %tmp14064, i64 1
+ %tmp14066 = getelementptr inbounds float* %tmp14065, i64 1
+ %tmp14067 = getelementptr inbounds float* %tmp14066, i64 1
+ %tmp14068 = getelementptr inbounds float* %tmp14067, i64 1
+ %tmp14069 = getelementptr inbounds float* %tmp14068, i64 1
+ %tmp14070 = getelementptr inbounds float* %tmp14069, i64 1
+ %tmp14071 = getelementptr inbounds float* %tmp14070, i64 1
+ %tmp14072 = getelementptr inbounds float* %tmp14071, i64 1
+ %tmp14073 = getelementptr inbounds float* %tmp14072, i64 1
+ %tmp14074 = getelementptr inbounds float* %tmp14073, i64 1
+ %tmp14075 = getelementptr inbounds float* %tmp14074, i64 1
+ %tmp14076 = getelementptr inbounds float* %tmp14075, i64 1
+ %tmp14077 = getelementptr inbounds float* %tmp14076, i64 1
+ %tmp14078 = getelementptr inbounds float* %tmp14077, i64 1
+ %tmp14079 = getelementptr inbounds float* %tmp14078, i64 1
+ %tmp14080 = getelementptr inbounds float* %tmp14079, i64 1
+ %tmp14081 = getelementptr inbounds float* %tmp14080, i64 1
+ %tmp14082 = getelementptr inbounds float* %tmp14081, i64 1
+ %tmp14083 = getelementptr inbounds float* %tmp14082, i64 1
+ %tmp14084 = getelementptr inbounds float* %tmp14083, i64 1
+ %tmp14085 = getelementptr inbounds float* %tmp14084, i64 1
+ %tmp14086 = getelementptr inbounds float* %tmp14085, i64 1
+ %tmp14087 = getelementptr inbounds float* %tmp14086, i64 1
+ %tmp14088 = getelementptr inbounds float* %tmp14087, i64 1
+ %tmp14089 = getelementptr inbounds float* %tmp14088, i64 1
+ %tmp14090 = getelementptr inbounds float* %tmp14089, i64 1
+ %tmp14091 = getelementptr inbounds float* %tmp14090, i64 1
+ %tmp14092 = getelementptr inbounds float* %tmp14091, i64 1
+ %tmp14093 = getelementptr inbounds float* %tmp14092, i64 1
+ %tmp14094 = getelementptr inbounds float* %tmp14093, i64 1
+ %tmp14095 = getelementptr inbounds float* %tmp14094, i64 1
+ %tmp14096 = getelementptr inbounds float* %tmp14095, i64 1
+ %tmp14097 = getelementptr inbounds float* %tmp14096, i64 1
+ %tmp14098 = getelementptr inbounds float* %tmp14097, i64 1
+ %tmp14099 = getelementptr inbounds float* %tmp14098, i64 1
+ %tmp14100 = getelementptr inbounds float* %tmp14099, i64 1
+ %tmp14101 = getelementptr inbounds float* %tmp14100, i64 1
+ %tmp14102 = getelementptr inbounds float* %tmp14101, i64 1
+ %tmp14103 = getelementptr inbounds float* %tmp14102, i64 1
+ %tmp14104 = getelementptr inbounds float* %tmp14103, i64 1
+ %tmp14105 = getelementptr inbounds float* %tmp14104, i64 1
+ %tmp14106 = getelementptr inbounds float* %tmp14105, i64 1
+ %tmp14107 = getelementptr inbounds float* %tmp14106, i64 1
+ %tmp14108 = getelementptr inbounds float* %tmp14107, i64 1
+ %tmp14109 = getelementptr inbounds float* %tmp14108, i64 1
+ %tmp14110 = getelementptr inbounds float* %tmp14109, i64 1
+ %tmp14111 = getelementptr inbounds float* %tmp14110, i64 1
+ %tmp14112 = getelementptr inbounds float* %tmp14111, i64 1
+ %tmp14113 = getelementptr inbounds float* %tmp14112, i64 1
+ %tmp14114 = getelementptr inbounds float* %tmp14113, i64 1
+ %tmp14115 = getelementptr inbounds float* %tmp14114, i64 1
+ %tmp14116 = getelementptr inbounds float* %tmp14115, i64 1
+ %tmp14117 = getelementptr inbounds float* %tmp14116, i64 1
+ %tmp14118 = getelementptr inbounds float* %tmp14117, i64 1
+ %tmp14119 = getelementptr inbounds float* %tmp14118, i64 1
+ %tmp14120 = getelementptr inbounds float* %tmp14119, i64 1
+ %tmp14121 = getelementptr inbounds float* %tmp14120, i64 1
+ %tmp14122 = getelementptr inbounds float* %tmp14121, i64 1
+ %tmp14123 = getelementptr inbounds float* %tmp14122, i64 1
+ %tmp14124 = getelementptr inbounds float* %tmp14123, i64 1
+ %tmp14125 = getelementptr inbounds float* %tmp14124, i64 1
+ %tmp14126 = getelementptr inbounds float* %tmp14125, i64 1
+ %tmp14127 = getelementptr inbounds float* %tmp14126, i64 1
+ %tmp14128 = getelementptr inbounds float* %tmp14127, i64 1
+ %tmp14129 = getelementptr inbounds float* %tmp14128, i64 1
+ %tmp14130 = getelementptr inbounds float* %tmp14129, i64 1
+ %tmp14131 = getelementptr inbounds float* %tmp14130, i64 1
+ %tmp14132 = getelementptr inbounds float* %tmp14131, i64 1
+ %tmp14133 = getelementptr inbounds float* %tmp14132, i64 1
+ %tmp14134 = getelementptr inbounds float* %tmp14133, i64 1
+ %tmp14135 = getelementptr inbounds float* %tmp14134, i64 1
+ %tmp14136 = getelementptr inbounds float* %tmp14135, i64 1
+ %tmp14137 = getelementptr inbounds float* %tmp14136, i64 1
+ %tmp14138 = getelementptr inbounds float* %tmp14137, i64 1
+ %tmp14139 = getelementptr inbounds float* %tmp14138, i64 1
+ %tmp14140 = getelementptr inbounds float* %tmp14139, i64 1
+ %tmp14141 = getelementptr inbounds float* %tmp14140, i64 1
+ %tmp14142 = getelementptr inbounds float* %tmp14141, i64 1
+ %tmp14143 = getelementptr inbounds float* %tmp14142, i64 1
+ %tmp14144 = getelementptr inbounds float* %tmp14143, i64 1
+ %tmp14145 = getelementptr inbounds float* %tmp14144, i64 1
+ %tmp14146 = getelementptr inbounds float* %tmp14145, i64 1
+ %tmp14147 = getelementptr inbounds float* %tmp14146, i64 1
+ %tmp14148 = getelementptr inbounds float* %tmp14147, i64 1
+ %tmp14149 = getelementptr inbounds float* %tmp14148, i64 1
+ %tmp14150 = getelementptr inbounds float* %tmp14149, i64 1
+ %tmp14151 = getelementptr inbounds float* %tmp14150, i64 1
+ %tmp14152 = getelementptr inbounds float* %tmp14151, i64 1
+ %tmp14153 = getelementptr inbounds float* %tmp14152, i64 1
+ %tmp14154 = getelementptr inbounds float* %tmp14153, i64 1
+ %tmp14155 = getelementptr inbounds float* %tmp14154, i64 1
+ %tmp14156 = getelementptr inbounds float* %tmp14155, i64 1
+ %tmp14157 = getelementptr inbounds float* %tmp14156, i64 1
+ %tmp14158 = getelementptr inbounds float* %tmp14157, i64 1
+ %tmp14159 = getelementptr inbounds float* %tmp14158, i64 1
+ %tmp14160 = getelementptr inbounds float* %tmp14159, i64 1
+ %tmp14161 = getelementptr inbounds float* %tmp14160, i64 1
+ %tmp14162 = getelementptr inbounds float* %tmp14161, i64 1
+ %tmp14163 = getelementptr inbounds float* %tmp14162, i64 1
+ %tmp14164 = getelementptr inbounds float* %tmp14163, i64 1
+ %tmp14165 = getelementptr inbounds float* %tmp14164, i64 1
+ %tmp14166 = getelementptr inbounds float* %tmp14165, i64 1
+ %tmp14167 = getelementptr inbounds float* %tmp14166, i64 1
+ %tmp14168 = getelementptr inbounds float* %tmp14167, i64 1
+ %tmp14169 = getelementptr inbounds float* %tmp14168, i64 1
+ %tmp14170 = getelementptr inbounds float* %tmp14169, i64 1
+ %tmp14171 = getelementptr inbounds float* %tmp14170, i64 1
+ %tmp14172 = getelementptr inbounds float* %tmp14171, i64 1
+ %tmp14173 = getelementptr inbounds float* %tmp14172, i64 1
+ %tmp14174 = getelementptr inbounds float* %tmp14173, i64 1
+ %tmp14175 = getelementptr inbounds float* %tmp14174, i64 1
+ %tmp14176 = getelementptr inbounds float* %tmp14175, i64 1
+ %tmp14177 = getelementptr inbounds float* %tmp14176, i64 1
+ %tmp14178 = getelementptr inbounds float* %tmp14177, i64 1
+ %tmp14179 = getelementptr inbounds float* %tmp14178, i64 1
+ %tmp14180 = getelementptr inbounds float* %tmp14179, i64 1
+ %tmp14181 = getelementptr inbounds float* %tmp14180, i64 1
+ %tmp14182 = getelementptr inbounds float* %tmp14181, i64 1
+ %tmp14183 = getelementptr inbounds float* %tmp14182, i64 1
+ %tmp14184 = getelementptr inbounds float* %tmp14183, i64 1
+ %tmp14185 = getelementptr inbounds float* %tmp14184, i64 1
+ %tmp14186 = getelementptr inbounds float* %tmp14185, i64 1
+ %tmp14187 = getelementptr inbounds float* %tmp14186, i64 1
+ %tmp14188 = getelementptr inbounds float* %tmp14187, i64 1
+ %tmp14189 = getelementptr inbounds float* %tmp14188, i64 1
+ %tmp14190 = getelementptr inbounds float* %tmp14189, i64 1
+ %tmp14191 = getelementptr inbounds float* %tmp14190, i64 1
+ %tmp14192 = getelementptr inbounds float* %tmp14191, i64 1
+ %tmp14193 = getelementptr inbounds float* %tmp14192, i64 1
+ %tmp14194 = getelementptr inbounds float* %tmp14193, i64 1
+ %tmp14195 = getelementptr inbounds float* %tmp14194, i64 1
+ %tmp14196 = getelementptr inbounds float* %tmp14195, i64 1
+ %tmp14197 = getelementptr inbounds float* %tmp14196, i64 1
+ %tmp14198 = getelementptr inbounds float* %tmp14197, i64 1
+ %tmp14199 = getelementptr inbounds float* %tmp14198, i64 1
+ %tmp14200 = getelementptr inbounds float* %tmp14199, i64 1
+ %tmp14201 = getelementptr inbounds float* %tmp14200, i64 1
+ %tmp14202 = getelementptr inbounds float* %tmp14201, i64 1
+ %tmp14203 = getelementptr inbounds float* %tmp14202, i64 1
+ %tmp14204 = getelementptr inbounds float* %tmp14203, i64 1
+ %tmp14205 = getelementptr inbounds float* %tmp14204, i64 1
+ %tmp14206 = getelementptr inbounds float* %tmp14205, i64 1
+ %tmp14207 = getelementptr inbounds float* %tmp14206, i64 1
+ %tmp14208 = getelementptr inbounds float* %tmp14207, i64 1
+ %tmp14209 = getelementptr inbounds float* %tmp14208, i64 1
+ %tmp14210 = getelementptr inbounds float* %tmp14209, i64 1
+ %tmp14211 = getelementptr inbounds float* %tmp14210, i64 1
+ %tmp14212 = getelementptr inbounds float* %tmp14211, i64 1
+ %tmp14213 = getelementptr inbounds float* %tmp14212, i64 1
+ %tmp14214 = getelementptr inbounds float* %tmp14213, i64 1
+ %tmp14215 = getelementptr inbounds float* %tmp14214, i64 1
+ %tmp14216 = getelementptr inbounds float* %tmp14215, i64 1
+ %tmp14217 = getelementptr inbounds float* %tmp14216, i64 1
+ %tmp14218 = getelementptr inbounds float* %tmp14217, i64 1
+ %tmp14219 = getelementptr inbounds float* %tmp14218, i64 1
+ %tmp14220 = getelementptr inbounds float* %tmp14219, i64 1
+ %tmp14221 = getelementptr inbounds float* %tmp14220, i64 1
+ %tmp14222 = getelementptr inbounds float* %tmp14221, i64 1
+ %tmp14223 = getelementptr inbounds float* %tmp14222, i64 1
+ %tmp14224 = getelementptr inbounds float* %tmp14223, i64 1
+ %tmp14225 = getelementptr inbounds float* %tmp14224, i64 1
+ %tmp14226 = getelementptr inbounds float* %tmp14225, i64 1
+ %tmp14227 = getelementptr inbounds float* %tmp14226, i64 1
+ %tmp14228 = getelementptr inbounds float* %tmp14227, i64 1
+ %tmp14229 = getelementptr inbounds float* %tmp14228, i64 1
+ %tmp14230 = getelementptr inbounds float* %tmp14229, i64 1
+ %tmp14231 = getelementptr inbounds float* %tmp14230, i64 1
+ %tmp14232 = getelementptr inbounds float* %tmp14231, i64 1
+ %tmp14233 = getelementptr inbounds float* %tmp14232, i64 1
+ %tmp14234 = getelementptr inbounds float* %tmp14233, i64 1
+ %tmp14235 = getelementptr inbounds float* %tmp14234, i64 1
+ %tmp14236 = getelementptr inbounds float* %tmp14235, i64 1
+ %tmp14237 = getelementptr inbounds float* %tmp14236, i64 1
+ %tmp14238 = getelementptr inbounds float* %tmp14237, i64 1
+ %tmp14239 = getelementptr inbounds float* %tmp14238, i64 1
+ %tmp14240 = getelementptr inbounds float* %tmp14239, i64 1
+ %tmp14241 = getelementptr inbounds float* %tmp14240, i64 1
+ %tmp14242 = getelementptr inbounds float* %tmp14241, i64 1
+ %tmp14243 = getelementptr inbounds float* %tmp14242, i64 1
+ %tmp14244 = getelementptr inbounds float* %tmp14243, i64 1
+ %tmp14245 = getelementptr inbounds float* %tmp14244, i64 1
+ %tmp14246 = getelementptr inbounds float* %tmp14245, i64 1
+ %tmp14247 = getelementptr inbounds float* %tmp14246, i64 1
+ %tmp14248 = getelementptr inbounds float* %tmp14247, i64 1
+ %tmp14249 = getelementptr inbounds float* %tmp14248, i64 1
+ %tmp14250 = getelementptr inbounds float* %tmp14249, i64 1
+ %tmp14251 = getelementptr inbounds float* %tmp14250, i64 1
+ %tmp14252 = getelementptr inbounds float* %tmp14251, i64 1
+ %tmp14253 = getelementptr inbounds float* %tmp14252, i64 1
+ %tmp14254 = getelementptr inbounds float* %tmp14253, i64 1
+ %tmp14255 = getelementptr inbounds float* %tmp14254, i64 1
+ %tmp14256 = getelementptr inbounds float* %tmp14255, i64 1
+ %tmp14257 = getelementptr inbounds float* %tmp14256, i64 1
+ %tmp14258 = getelementptr inbounds float* %tmp14257, i64 1
+ %tmp14259 = getelementptr inbounds float* %tmp14258, i64 1
+ %tmp14260 = getelementptr inbounds float* %tmp14259, i64 1
+ %tmp14261 = getelementptr inbounds float* %tmp14260, i64 1
+ %tmp14262 = getelementptr inbounds float* %tmp14261, i64 1
+ %tmp14263 = getelementptr inbounds float* %tmp14262, i64 1
+ %tmp14264 = getelementptr inbounds float* %tmp14263, i64 1
+ %tmp14265 = getelementptr inbounds float* %tmp14264, i64 1
+ %tmp14266 = getelementptr inbounds float* %tmp14265, i64 1
+ %tmp14267 = getelementptr inbounds float* %tmp14266, i64 1
+ %tmp14268 = getelementptr inbounds float* %tmp14267, i64 1
+ %tmp14269 = getelementptr inbounds float* %tmp14268, i64 1
+ %tmp14270 = getelementptr inbounds float* %tmp14269, i64 1
+ %tmp14271 = getelementptr inbounds float* %tmp14270, i64 1
+ %tmp14272 = getelementptr inbounds float* %tmp14271, i64 1
+ %tmp14273 = getelementptr inbounds float* %tmp14272, i64 1
+ %tmp14274 = getelementptr inbounds float* %tmp14273, i64 1
+ %tmp14275 = getelementptr inbounds float* %tmp14274, i64 1
+ %tmp14276 = getelementptr inbounds float* %tmp14275, i64 1
+ %tmp14277 = getelementptr inbounds float* %tmp14276, i64 1
+ %tmp14278 = getelementptr inbounds float* %tmp14277, i64 1
+ %tmp14279 = getelementptr inbounds float* %tmp14278, i64 1
+ %tmp14280 = getelementptr inbounds float* %tmp14279, i64 1
+ %tmp14281 = getelementptr inbounds float* %tmp14280, i64 1
+ %tmp14282 = getelementptr inbounds float* %tmp14281, i64 1
+ %tmp14283 = getelementptr inbounds float* %tmp14282, i64 1
+ %tmp14284 = getelementptr inbounds float* %tmp14283, i64 1
+ %tmp14285 = getelementptr inbounds float* %tmp14284, i64 1
+ %tmp14286 = getelementptr inbounds float* %tmp14285, i64 1
+ %tmp14287 = getelementptr inbounds float* %tmp14286, i64 1
+ %tmp14288 = getelementptr inbounds float* %tmp14287, i64 1
+ %tmp14289 = getelementptr inbounds float* %tmp14288, i64 1
+ %tmp14290 = getelementptr inbounds float* %tmp14289, i64 1
+ %tmp14291 = getelementptr inbounds float* %tmp14290, i64 1
+ %tmp14292 = getelementptr inbounds float* %tmp14291, i64 1
+ %tmp14293 = getelementptr inbounds float* %tmp14292, i64 1
+ %tmp14294 = getelementptr inbounds float* %tmp14293, i64 1
+ %tmp14295 = getelementptr inbounds float* %tmp14294, i64 1
+ %tmp14296 = getelementptr inbounds float* %tmp14295, i64 1
+ %tmp14297 = getelementptr inbounds float* %tmp14296, i64 1
+ %tmp14298 = getelementptr inbounds float* %tmp14297, i64 1
+ %tmp14299 = getelementptr inbounds float* %tmp14298, i64 1
+ %tmp14300 = getelementptr inbounds float* %tmp14299, i64 1
+ %tmp14301 = getelementptr inbounds float* %tmp14300, i64 1
+ %tmp14302 = getelementptr inbounds float* %tmp14301, i64 1
+ %tmp14303 = getelementptr inbounds float* %tmp14302, i64 1
+ %tmp14304 = getelementptr inbounds float* %tmp14303, i64 1
+ %tmp14305 = getelementptr inbounds float* %tmp14304, i64 1
+ %tmp14306 = getelementptr inbounds float* %tmp14305, i64 1
+ %tmp14307 = getelementptr inbounds float* %tmp14306, i64 1
+ %tmp14308 = getelementptr inbounds float* %tmp14307, i64 1
+ %tmp14309 = getelementptr inbounds float* %tmp14308, i64 1
+ %tmp14310 = getelementptr inbounds float* %tmp14309, i64 1
+ %tmp14311 = getelementptr inbounds float* %tmp14310, i64 1
+ %tmp14312 = getelementptr inbounds float* %tmp14311, i64 1
+ %tmp14313 = getelementptr inbounds float* %tmp14312, i64 1
+ %tmp14314 = getelementptr inbounds float* %tmp14313, i64 1
+ %tmp14315 = getelementptr inbounds float* %tmp14314, i64 1
+ %tmp14316 = getelementptr inbounds float* %tmp14315, i64 1
+ %tmp14317 = getelementptr inbounds float* %tmp14316, i64 1
+ %tmp14318 = getelementptr inbounds float* %tmp14317, i64 1
+ %tmp14319 = getelementptr inbounds float* %tmp14318, i64 1
+ %tmp14320 = getelementptr inbounds float* %tmp14319, i64 1
+ %tmp14321 = getelementptr inbounds float* %tmp14320, i64 1
+ %tmp14322 = getelementptr inbounds float* %tmp14321, i64 1
+ %tmp14323 = getelementptr inbounds float* %tmp14322, i64 1
+ %tmp14324 = getelementptr inbounds float* %tmp14323, i64 1
+ %tmp14325 = getelementptr inbounds float* %tmp14324, i64 1
+ %tmp14326 = getelementptr inbounds float* %tmp14325, i64 1
+ %tmp14327 = getelementptr inbounds float* %tmp14326, i64 1
+ %tmp14328 = getelementptr inbounds float* %tmp14327, i64 1
+ %tmp14329 = getelementptr inbounds float* %tmp14328, i64 1
+ %tmp14330 = getelementptr inbounds float* %tmp14329, i64 1
+ %tmp14331 = getelementptr inbounds float* %tmp14330, i64 1
+ %tmp14332 = getelementptr inbounds float* %tmp14331, i64 1
+ %tmp14333 = getelementptr inbounds float* %tmp14332, i64 1
+ %tmp14334 = getelementptr inbounds float* %tmp14333, i64 1
+ %tmp14335 = getelementptr inbounds float* %tmp14334, i64 1
+ %tmp14336 = getelementptr inbounds float* %tmp14335, i64 1
+ %tmp14337 = getelementptr inbounds float* %tmp14336, i64 1
+ %tmp14338 = getelementptr inbounds float* %tmp14337, i64 1
+ %tmp14339 = getelementptr inbounds float* %tmp14338, i64 1
+ %tmp14340 = getelementptr inbounds float* %tmp14339, i64 1
+ %tmp14341 = getelementptr inbounds float* %tmp14340, i64 1
+ %tmp14342 = getelementptr inbounds float* %tmp14341, i64 1
+ %tmp14343 = getelementptr inbounds float* %tmp14342, i64 1
+ %tmp14344 = getelementptr inbounds float* %tmp14343, i64 1
+ %tmp14345 = getelementptr inbounds float* %tmp14344, i64 1
+ %tmp14346 = getelementptr inbounds float* %tmp14345, i64 1
+ %tmp14347 = getelementptr inbounds float* %tmp14346, i64 1
+ %tmp14348 = getelementptr inbounds float* %tmp14347, i64 1
+ %tmp14349 = getelementptr inbounds float* %tmp14348, i64 1
+ %tmp14350 = getelementptr inbounds float* %tmp14349, i64 1
+ %tmp14351 = getelementptr inbounds float* %tmp14350, i64 1
+ %tmp14352 = getelementptr inbounds float* %tmp14351, i64 1
+ %tmp14353 = getelementptr inbounds float* %tmp14352, i64 1
+ %tmp14354 = getelementptr inbounds float* %tmp14353, i64 1
+ %tmp14355 = getelementptr inbounds float* %tmp14354, i64 1
+ %tmp14356 = getelementptr inbounds float* %tmp14355, i64 1
+ %tmp14357 = getelementptr inbounds float* %tmp14356, i64 1
+ %tmp14358 = getelementptr inbounds float* %tmp14357, i64 1
+ %tmp14359 = getelementptr inbounds float* %tmp14358, i64 1
+ %tmp14360 = getelementptr inbounds float* %tmp14359, i64 1
+ %tmp14361 = getelementptr inbounds float* %tmp14360, i64 1
+ %tmp14362 = getelementptr inbounds float* %tmp14361, i64 1
+ %tmp14363 = getelementptr inbounds float* %tmp14362, i64 1
+ %tmp14364 = getelementptr inbounds float* %tmp14363, i64 1
+ %tmp14365 = getelementptr inbounds float* %tmp14364, i64 1
+ %tmp14366 = getelementptr inbounds float* %tmp14365, i64 1
+ %tmp14367 = getelementptr inbounds float* %tmp14366, i64 1
+ %tmp14368 = getelementptr inbounds float* %tmp14367, i64 1
+ %tmp14369 = getelementptr inbounds float* %tmp14368, i64 1
+ %tmp14370 = getelementptr inbounds float* %tmp14369, i64 1
+ %tmp14371 = getelementptr inbounds float* %tmp14370, i64 1
+ %tmp14372 = getelementptr inbounds float* %tmp14371, i64 1
+ %tmp14373 = getelementptr inbounds float* %tmp14372, i64 1
+ %tmp14374 = getelementptr inbounds float* %tmp14373, i64 1
+ %tmp14375 = getelementptr inbounds float* %tmp14374, i64 1
+ %tmp14376 = getelementptr inbounds float* %tmp14375, i64 1
+ %tmp14377 = getelementptr inbounds float* %tmp14376, i64 1
+ %tmp14378 = getelementptr inbounds float* %tmp14377, i64 1
+ %tmp14379 = getelementptr inbounds float* %tmp14378, i64 1
+ %tmp14380 = getelementptr inbounds float* %tmp14379, i64 1
+ %tmp14381 = getelementptr inbounds float* %tmp14380, i64 1
+ %tmp14382 = getelementptr inbounds float* %tmp14381, i64 1
+ %tmp14383 = getelementptr inbounds float* %tmp14382, i64 1
+ %tmp14384 = getelementptr inbounds float* %tmp14383, i64 1
+ %tmp14385 = getelementptr inbounds float* %tmp14384, i64 1
+ %tmp14386 = getelementptr inbounds float* %tmp14385, i64 1
+ %tmp14387 = getelementptr inbounds float* %tmp14386, i64 1
+ %tmp14388 = getelementptr inbounds float* %tmp14387, i64 1
+ %tmp14389 = getelementptr inbounds float* %tmp14388, i64 1
+ %tmp14390 = getelementptr inbounds float* %tmp14389, i64 1
+ %tmp14391 = getelementptr inbounds float* %tmp14390, i64 1
+ %tmp14392 = getelementptr inbounds float* %tmp14391, i64 1
+ %tmp14393 = getelementptr inbounds float* %tmp14392, i64 1
+ %tmp14394 = getelementptr inbounds float* %tmp14393, i64 1
+ %tmp14395 = getelementptr inbounds float* %tmp14394, i64 1
+ %tmp14396 = getelementptr inbounds float* %tmp14395, i64 1
+ %tmp14397 = getelementptr inbounds float* %tmp14396, i64 1
+ %tmp14398 = getelementptr inbounds float* %tmp14397, i64 1
+ %tmp14399 = getelementptr inbounds float* %tmp14398, i64 1
+ %tmp14400 = getelementptr inbounds float* %tmp14399, i64 1
+ %tmp14401 = getelementptr inbounds float* %tmp14400, i64 1
+ %tmp14402 = getelementptr inbounds float* %tmp14401, i64 1
+ %tmp14403 = getelementptr inbounds float* %tmp14402, i64 1
+ %tmp14404 = getelementptr inbounds float* %tmp14403, i64 1
+ %tmp14405 = getelementptr inbounds float* %tmp14404, i64 1
+ %tmp14406 = getelementptr inbounds float* %tmp14405, i64 1
+ %tmp14407 = getelementptr inbounds float* %tmp14406, i64 1
+ %tmp14408 = getelementptr inbounds float* %tmp14407, i64 1
+ %tmp14409 = getelementptr inbounds float* %tmp14408, i64 1
+ %tmp14410 = getelementptr inbounds float* %tmp14409, i64 1
+ %tmp14411 = getelementptr inbounds float* %tmp14410, i64 1
+ %tmp14412 = getelementptr inbounds float* %tmp14411, i64 1
+ %tmp14413 = getelementptr inbounds float* %tmp14412, i64 1
+ %tmp14414 = getelementptr inbounds float* %tmp14413, i64 1
+ %tmp14415 = getelementptr inbounds float* %tmp14414, i64 1
+ %tmp14416 = getelementptr inbounds float* %tmp14415, i64 1
+ %tmp14417 = getelementptr inbounds float* %tmp14416, i64 1
+ %tmp14418 = getelementptr inbounds float* %tmp14417, i64 1
+ %tmp14419 = getelementptr inbounds float* %tmp14418, i64 1
+ %tmp14420 = getelementptr inbounds float* %tmp14419, i64 1
+ %tmp14421 = getelementptr inbounds float* %tmp14420, i64 1
+ %tmp14422 = getelementptr inbounds float* %tmp14421, i64 1
+ %tmp14423 = getelementptr inbounds float* %tmp14422, i64 1
+ %tmp14424 = getelementptr inbounds float* %tmp14423, i64 1
+ %tmp14425 = getelementptr inbounds float* %tmp14424, i64 1
+ %tmp14426 = getelementptr inbounds float* %tmp14425, i64 1
+ %tmp14427 = getelementptr inbounds float* %tmp14426, i64 1
+ %tmp14428 = getelementptr inbounds float* %tmp14427, i64 1
+ %tmp14429 = getelementptr inbounds float* %tmp14428, i64 1
+ %tmp14430 = getelementptr inbounds float* %tmp14429, i64 1
+ %tmp14431 = getelementptr inbounds float* %tmp14430, i64 1
+ %tmp14432 = getelementptr inbounds float* %tmp14431, i64 1
+ %tmp14433 = getelementptr inbounds float* %tmp14432, i64 1
+ %tmp14434 = getelementptr inbounds float* %tmp14433, i64 1
+ %tmp14435 = getelementptr inbounds float* %tmp14434, i64 1
+ %tmp14436 = getelementptr inbounds float* %tmp14435, i64 1
+ %tmp14437 = getelementptr inbounds float* %tmp14436, i64 1
+ %tmp14438 = getelementptr inbounds float* %tmp14437, i64 1
+ %tmp14439 = getelementptr inbounds float* %tmp14438, i64 1
+ %tmp14440 = getelementptr inbounds float* %tmp14439, i64 1
+ %tmp14441 = getelementptr inbounds float* %tmp14440, i64 1
+ %tmp14442 = getelementptr inbounds float* %tmp14441, i64 1
+ %tmp14443 = getelementptr inbounds float* %tmp14442, i64 1
+ %tmp14444 = getelementptr inbounds float* %tmp14443, i64 1
+ %tmp14445 = getelementptr inbounds float* %tmp14444, i64 1
+ %tmp14446 = getelementptr inbounds float* %tmp14445, i64 1
+ %tmp14447 = getelementptr inbounds float* %tmp14446, i64 1
+ %tmp14448 = getelementptr inbounds float* %tmp14447, i64 1
+ %tmp14449 = getelementptr inbounds float* %tmp14448, i64 1
+ %tmp14450 = getelementptr inbounds float* %tmp14449, i64 1
+ %tmp14451 = getelementptr inbounds float* %tmp14450, i64 1
+ %tmp14452 = getelementptr inbounds float* %tmp14451, i64 1
+ %tmp14453 = getelementptr inbounds float* %tmp14452, i64 1
+ %tmp14454 = getelementptr inbounds float* %tmp14453, i64 1
+ %tmp14455 = getelementptr inbounds float* %tmp14454, i64 1
+ %tmp14456 = getelementptr inbounds float* %tmp14455, i64 1
+ %tmp14457 = getelementptr inbounds float* %tmp14456, i64 1
+ %tmp14458 = getelementptr inbounds float* %tmp14457, i64 1
+ %tmp14459 = getelementptr inbounds float* %tmp14458, i64 1
+ %tmp14460 = getelementptr inbounds float* %tmp14459, i64 1
+ %tmp14461 = getelementptr inbounds float* %tmp14460, i64 1
+ %tmp14462 = getelementptr inbounds float* %tmp14461, i64 1
+ %tmp14463 = getelementptr inbounds float* %tmp14462, i64 1
+ %tmp14464 = getelementptr inbounds float* %tmp14463, i64 1
+ %tmp14465 = getelementptr inbounds float* %tmp14464, i64 1
+ %tmp14466 = getelementptr inbounds float* %tmp14465, i64 1
+ %tmp14467 = getelementptr inbounds float* %tmp14466, i64 1
+ %tmp14468 = getelementptr inbounds float* %tmp14467, i64 1
+ %tmp14469 = getelementptr inbounds float* %tmp14468, i64 1
+ %tmp14470 = getelementptr inbounds float* %tmp14469, i64 1
+ %tmp14471 = getelementptr inbounds float* %tmp14470, i64 1
+ %tmp14472 = getelementptr inbounds float* %tmp14471, i64 1
+ %tmp14473 = getelementptr inbounds float* %tmp14472, i64 1
+ %tmp14474 = getelementptr inbounds float* %tmp14473, i64 1
+ %tmp14475 = getelementptr inbounds float* %tmp14474, i64 1
+ %tmp14476 = getelementptr inbounds float* %tmp14475, i64 1
+ %tmp14477 = getelementptr inbounds float* %tmp14476, i64 1
+ %tmp14478 = getelementptr inbounds float* %tmp14477, i64 1
+ %tmp14479 = getelementptr inbounds float* %tmp14478, i64 1
+ %tmp14480 = getelementptr inbounds float* %tmp14479, i64 1
+ %tmp14481 = getelementptr inbounds float* %tmp14480, i64 1
+ %tmp14482 = getelementptr inbounds float* %tmp14481, i64 1
+ %tmp14483 = getelementptr inbounds float* %tmp14482, i64 1
+ %tmp14484 = getelementptr inbounds float* %tmp14483, i64 1
+ %tmp14485 = getelementptr inbounds float* %tmp14484, i64 1
+ %tmp14486 = getelementptr inbounds float* %tmp14485, i64 1
+ %tmp14487 = getelementptr inbounds float* %tmp14486, i64 1
+ %tmp14488 = getelementptr inbounds float* %tmp14487, i64 1
+ %tmp14489 = getelementptr inbounds float* %tmp14488, i64 1
+ %tmp14490 = getelementptr inbounds float* %tmp14489, i64 1
+ %tmp14491 = getelementptr inbounds float* %tmp14490, i64 1
+ %tmp14492 = getelementptr inbounds float* %tmp14491, i64 1
+ %tmp14493 = getelementptr inbounds float* %tmp14492, i64 1
+ %tmp14494 = getelementptr inbounds float* %tmp14493, i64 1
+ %tmp14495 = getelementptr inbounds float* %tmp14494, i64 1
+ %tmp14496 = getelementptr inbounds float* %tmp14495, i64 1
+ %tmp14497 = getelementptr inbounds float* %tmp14496, i64 1
+ %tmp14498 = getelementptr inbounds float* %tmp14497, i64 1
+ %tmp14499 = getelementptr inbounds float* %tmp14498, i64 1
+ %tmp14500 = getelementptr inbounds float* %tmp14499, i64 1
+ %tmp14501 = getelementptr inbounds float* %tmp14500, i64 1
+ %tmp14502 = getelementptr inbounds float* %tmp14501, i64 1
+ %tmp14503 = getelementptr inbounds float* %tmp14502, i64 1
+ %tmp14504 = getelementptr inbounds float* %tmp14503, i64 1
+ %tmp14505 = getelementptr inbounds float* %tmp14504, i64 1
+ %tmp14506 = getelementptr inbounds float* %tmp14505, i64 1
+ %tmp14507 = getelementptr inbounds float* %tmp14506, i64 1
+ %tmp14508 = getelementptr inbounds float* %tmp14507, i64 1
+ %tmp14509 = getelementptr inbounds float* %tmp14508, i64 1
+ %tmp14510 = getelementptr inbounds float* %tmp14509, i64 1
+ %tmp14511 = getelementptr inbounds float* %tmp14510, i64 1
+ %tmp14512 = getelementptr inbounds float* %tmp14511, i64 1
+ %tmp14513 = getelementptr inbounds float* %tmp14512, i64 1
+ %tmp14514 = getelementptr inbounds float* %tmp14513, i64 1
+ %tmp14515 = getelementptr inbounds float* %tmp14514, i64 1
+ %tmp14516 = getelementptr inbounds float* %tmp14515, i64 1
+ %tmp14517 = getelementptr inbounds float* %tmp14516, i64 1
+ %tmp14518 = getelementptr inbounds float* %tmp14517, i64 1
+ %tmp14519 = getelementptr inbounds float* %tmp14518, i64 1
+ %tmp14520 = getelementptr inbounds float* %tmp14519, i64 1
+ %tmp14521 = getelementptr inbounds float* %tmp14520, i64 1
+ %tmp14522 = getelementptr inbounds float* %tmp14521, i64 1
+ %tmp14523 = getelementptr inbounds float* %tmp14522, i64 1
+ %tmp14524 = getelementptr inbounds float* %tmp14523, i64 1
+ %tmp14525 = getelementptr inbounds float* %tmp14524, i64 1
+ %tmp14526 = getelementptr inbounds float* %tmp14525, i64 1
+ %tmp14527 = getelementptr inbounds float* %tmp14526, i64 1
+ %tmp14528 = getelementptr inbounds float* %tmp14527, i64 1
+ %tmp14529 = getelementptr inbounds float* %tmp14528, i64 1
+ %tmp14530 = getelementptr inbounds float* %tmp14529, i64 1
+ %tmp14531 = getelementptr inbounds float* %tmp14530, i64 1
+ %tmp14532 = getelementptr inbounds float* %tmp14531, i64 1
+ %tmp14533 = getelementptr inbounds float* %tmp14532, i64 1
+ %tmp14534 = getelementptr inbounds float* %tmp14533, i64 1
+ %tmp14535 = getelementptr inbounds float* %tmp14534, i64 1
+ %tmp14536 = getelementptr inbounds float* %tmp14535, i64 1
+ %tmp14537 = getelementptr inbounds float* %tmp14536, i64 1
+ %tmp14538 = getelementptr inbounds float* %tmp14537, i64 1
+ %tmp14539 = getelementptr inbounds float* %tmp14538, i64 1
+ %tmp14540 = getelementptr inbounds float* %tmp14539, i64 1
+ %tmp14541 = getelementptr inbounds float* %tmp14540, i64 1
+ %tmp14542 = getelementptr inbounds float* %tmp14541, i64 1
+ %tmp14543 = getelementptr inbounds float* %tmp14542, i64 1
+ %tmp14544 = getelementptr inbounds float* %tmp14543, i64 1
+ %tmp14545 = getelementptr inbounds float* %tmp14544, i64 1
+ %tmp14546 = getelementptr inbounds float* %tmp14545, i64 1
+ %tmp14547 = getelementptr inbounds float* %tmp14546, i64 1
+ %tmp14548 = getelementptr inbounds float* %tmp14547, i64 1
+ %tmp14549 = getelementptr inbounds float* %tmp14548, i64 1
+ %tmp14550 = getelementptr inbounds float* %tmp14549, i64 1
+ %tmp14551 = getelementptr inbounds float* %tmp14550, i64 1
+ %tmp14552 = getelementptr inbounds float* %tmp14551, i64 1
+ %tmp14553 = getelementptr inbounds float* %tmp14552, i64 1
+ %tmp14554 = getelementptr inbounds float* %tmp14553, i64 1
+ %tmp14555 = getelementptr inbounds float* %tmp14554, i64 1
+ %tmp14556 = getelementptr inbounds float* %tmp14555, i64 1
+ %tmp14557 = getelementptr inbounds float* %tmp14556, i64 1
+ %tmp14558 = getelementptr inbounds float* %tmp14557, i64 1
+ %tmp14559 = getelementptr inbounds float* %tmp14558, i64 1
+ %tmp14560 = getelementptr inbounds float* %tmp14559, i64 1
+ %tmp14561 = getelementptr inbounds float* %tmp14560, i64 1
+ %tmp14562 = getelementptr inbounds float* %tmp14561, i64 1
+ %tmp14563 = getelementptr inbounds float* %tmp14562, i64 1
+ %tmp14564 = getelementptr inbounds float* %tmp14563, i64 1
+ %tmp14565 = getelementptr inbounds float* %tmp14564, i64 1
+ %tmp14566 = getelementptr inbounds float* %tmp14565, i64 1
+ %tmp14567 = getelementptr inbounds float* %tmp14566, i64 1
+ %tmp14568 = getelementptr inbounds float* %tmp14567, i64 1
+ %tmp14569 = getelementptr inbounds float* %tmp14568, i64 1
+ %tmp14570 = getelementptr inbounds float* %tmp14569, i64 1
+ %tmp14571 = getelementptr inbounds float* %tmp14570, i64 1
+ %tmp14572 = getelementptr inbounds float* %tmp14571, i64 1
+ %tmp14573 = getelementptr inbounds float* %tmp14572, i64 1
+ %tmp14574 = getelementptr inbounds float* %tmp14573, i64 1
+ %tmp14575 = getelementptr inbounds float* %tmp14574, i64 1
+ %tmp14576 = getelementptr inbounds float* %tmp14575, i64 1
+ %tmp14577 = getelementptr inbounds float* %tmp14576, i64 1
+ %tmp14578 = getelementptr inbounds float* %tmp14577, i64 1
+ %tmp14579 = getelementptr inbounds float* %tmp14578, i64 1
+ %tmp14580 = getelementptr inbounds float* %tmp14579, i64 1
+ %tmp14581 = getelementptr inbounds float* %tmp14580, i64 1
+ %tmp14582 = getelementptr inbounds float* %tmp14581, i64 1
+ %tmp14583 = getelementptr inbounds float* %tmp14582, i64 1
+ %tmp14584 = getelementptr inbounds float* %tmp14583, i64 1
+ %tmp14585 = getelementptr inbounds float* %tmp14584, i64 1
+ %tmp14586 = getelementptr inbounds float* %tmp14585, i64 1
+ %tmp14587 = getelementptr inbounds float* %tmp14586, i64 1
+ %tmp14588 = getelementptr inbounds float* %tmp14587, i64 1
+ %tmp14589 = getelementptr inbounds float* %tmp14588, i64 1
+ %tmp14590 = getelementptr inbounds float* %tmp14589, i64 1
+ %tmp14591 = getelementptr inbounds float* %tmp14590, i64 1
+ %tmp14592 = getelementptr inbounds float* %tmp14591, i64 1
+ %tmp14593 = getelementptr inbounds float* %tmp14592, i64 1
+ %tmp14594 = getelementptr inbounds float* %tmp14593, i64 1
+ %tmp14595 = getelementptr inbounds float* %tmp14594, i64 1
+ %tmp14596 = getelementptr inbounds float* %tmp14595, i64 1
+ %tmp14597 = getelementptr inbounds float* %tmp14596, i64 1
+ %tmp14598 = getelementptr inbounds float* %tmp14597, i64 1
+ %tmp14599 = getelementptr inbounds float* %tmp14598, i64 1
+ %tmp14600 = getelementptr inbounds float* %tmp14599, i64 1
+ %tmp14601 = getelementptr inbounds float* %tmp14600, i64 1
+ %tmp14602 = getelementptr inbounds float* %tmp14601, i64 1
+ %tmp14603 = getelementptr inbounds float* %tmp14602, i64 1
+ %tmp14604 = getelementptr inbounds float* %tmp14603, i64 1
+ %tmp14605 = getelementptr inbounds float* %tmp14604, i64 1
+ %tmp14606 = getelementptr inbounds float* %tmp14605, i64 1
+ %tmp14607 = getelementptr inbounds float* %tmp14606, i64 1
+ %tmp14608 = getelementptr inbounds float* %tmp14607, i64 1
+ %tmp14609 = getelementptr inbounds float* %tmp14608, i64 1
+ %tmp14610 = getelementptr inbounds float* %tmp14609, i64 1
+ %tmp14611 = getelementptr inbounds float* %tmp14610, i64 1
+ %tmp14612 = getelementptr inbounds float* %tmp14611, i64 1
+ %tmp14613 = getelementptr inbounds float* %tmp14612, i64 1
+ %tmp14614 = getelementptr inbounds float* %tmp14613, i64 1
+ %tmp14615 = getelementptr inbounds float* %tmp14614, i64 1
+ %tmp14616 = getelementptr inbounds float* %tmp14615, i64 1
+ %tmp14617 = getelementptr inbounds float* %tmp14616, i64 1
+ %tmp14618 = getelementptr inbounds float* %tmp14617, i64 1
+ %tmp14619 = getelementptr inbounds float* %tmp14618, i64 1
+ %tmp14620 = getelementptr inbounds float* %tmp14619, i64 1
+ %tmp14621 = getelementptr inbounds float* %tmp14620, i64 1
+ %tmp14622 = getelementptr inbounds float* %tmp14621, i64 1
+ %tmp14623 = getelementptr inbounds float* %tmp14622, i64 1
+ %tmp14624 = getelementptr inbounds float* %tmp14623, i64 1
+ %tmp14625 = getelementptr inbounds float* %tmp14624, i64 1
+ %tmp14626 = getelementptr inbounds float* %tmp14625, i64 1
+ %tmp14627 = getelementptr inbounds float* %tmp14626, i64 1
+ %tmp14628 = getelementptr inbounds float* %tmp14627, i64 1
+ %tmp14629 = getelementptr inbounds float* %tmp14628, i64 1
+ %tmp14630 = getelementptr inbounds float* %tmp14629, i64 1
+ %tmp14631 = getelementptr inbounds float* %tmp14630, i64 1
+ %tmp14632 = getelementptr inbounds float* %tmp14631, i64 1
+ %tmp14633 = getelementptr inbounds float* %tmp14632, i64 1
+ %tmp14634 = getelementptr inbounds float* %tmp14633, i64 1
+ %tmp14635 = getelementptr inbounds float* %tmp14634, i64 1
+ %tmp14636 = getelementptr inbounds float* %tmp14635, i64 1
+ %tmp14637 = getelementptr inbounds float* %tmp14636, i64 1
+ %tmp14638 = getelementptr inbounds float* %tmp14637, i64 1
+ %tmp14639 = getelementptr inbounds float* %tmp14638, i64 1
+ %tmp14640 = getelementptr inbounds float* %tmp14639, i64 1
+ %tmp14641 = getelementptr inbounds float* %tmp14640, i64 1
+ %tmp14642 = getelementptr inbounds float* %tmp14641, i64 1
+ %tmp14643 = getelementptr inbounds float* %tmp14642, i64 1
+ %tmp14644 = getelementptr inbounds float* %tmp14643, i64 1
+ %tmp14645 = getelementptr inbounds float* %tmp14644, i64 1
+ %tmp14646 = getelementptr inbounds float* %tmp14645, i64 1
+ %tmp14647 = getelementptr inbounds float* %tmp14646, i64 1
+ %tmp14648 = getelementptr inbounds float* %tmp14647, i64 1
+ %tmp14649 = getelementptr inbounds float* %tmp14648, i64 1
+ %tmp14650 = getelementptr inbounds float* %tmp14649, i64 1
+ %tmp14651 = getelementptr inbounds float* %tmp14650, i64 1
+ %tmp14652 = getelementptr inbounds float* %tmp14651, i64 1
+ %tmp14653 = getelementptr inbounds float* %tmp14652, i64 1
+ %tmp14654 = getelementptr inbounds float* %tmp14653, i64 1
+ %tmp14655 = getelementptr inbounds float* %tmp14654, i64 1
+ %tmp14656 = getelementptr inbounds float* %tmp14655, i64 1
+ %tmp14657 = getelementptr inbounds float* %tmp14656, i64 1
+ %tmp14658 = getelementptr inbounds float* %tmp14657, i64 1
+ %tmp14659 = getelementptr inbounds float* %tmp14658, i64 1
+ %tmp14660 = getelementptr inbounds float* %tmp14659, i64 1
+ %tmp14661 = getelementptr inbounds float* %tmp14660, i64 1
+ %tmp14662 = getelementptr inbounds float* %tmp14661, i64 1
+ %tmp14663 = getelementptr inbounds float* %tmp14662, i64 1
+ %tmp14664 = getelementptr inbounds float* %tmp14663, i64 1
+ %tmp14665 = getelementptr inbounds float* %tmp14664, i64 1
+ %tmp14666 = getelementptr inbounds float* %tmp14665, i64 1
+ %tmp14667 = getelementptr inbounds float* %tmp14666, i64 1
+ %tmp14668 = getelementptr inbounds float* %tmp14667, i64 1
+ %tmp14669 = getelementptr inbounds float* %tmp14668, i64 1
+ %tmp14670 = getelementptr inbounds float* %tmp14669, i64 1
+ %tmp14671 = getelementptr inbounds float* %tmp14670, i64 1
+ %tmp14672 = getelementptr inbounds float* %tmp14671, i64 1
+ %tmp14673 = getelementptr inbounds float* %tmp14672, i64 1
+ %tmp14674 = getelementptr inbounds float* %tmp14673, i64 1
+ %tmp14675 = getelementptr inbounds float* %tmp14674, i64 1
+ %tmp14676 = getelementptr inbounds float* %tmp14675, i64 1
+ %tmp14677 = getelementptr inbounds float* %tmp14676, i64 1
+ %tmp14678 = getelementptr inbounds float* %tmp14677, i64 1
+ %tmp14679 = getelementptr inbounds float* %tmp14678, i64 1
+ %tmp14680 = getelementptr inbounds float* %tmp14679, i64 1
+ %tmp14681 = getelementptr inbounds float* %tmp14680, i64 1
+ %tmp14682 = getelementptr inbounds float* %tmp14681, i64 1
+ %tmp14683 = getelementptr inbounds float* %tmp14682, i64 1
+ %tmp14684 = getelementptr inbounds float* %tmp14683, i64 1
+ %tmp14685 = getelementptr inbounds float* %tmp14684, i64 1
+ %tmp14686 = getelementptr inbounds float* %tmp14685, i64 1
+ %tmp14687 = getelementptr inbounds float* %tmp14686, i64 1
+ %tmp14688 = getelementptr inbounds float* %tmp14687, i64 1
+ %tmp14689 = getelementptr inbounds float* %tmp14688, i64 1
+ %tmp14690 = getelementptr inbounds float* %tmp14689, i64 1
+ %tmp14691 = getelementptr inbounds float* %tmp14690, i64 1
+ %tmp14692 = getelementptr inbounds float* %tmp14691, i64 1
+ %tmp14693 = getelementptr inbounds float* %tmp14692, i64 1
+ %tmp14694 = getelementptr inbounds float* %tmp14693, i64 1
+ %tmp14695 = getelementptr inbounds float* %tmp14694, i64 1
+ %tmp14696 = getelementptr inbounds float* %tmp14695, i64 1
+ %tmp14697 = getelementptr inbounds float* %tmp14696, i64 1
+ %tmp14698 = getelementptr inbounds float* %tmp14697, i64 1
+ %tmp14699 = getelementptr inbounds float* %tmp14698, i64 1
+ %tmp14700 = getelementptr inbounds float* %tmp14699, i64 1
+ %tmp14701 = getelementptr inbounds float* %tmp14700, i64 1
+ %tmp14702 = getelementptr inbounds float* %tmp14701, i64 1
+ %tmp14703 = getelementptr inbounds float* %tmp14702, i64 1
+ %tmp14704 = getelementptr inbounds float* %tmp14703, i64 1
+ %tmp14705 = getelementptr inbounds float* %tmp14704, i64 1
+ %tmp14706 = getelementptr inbounds float* %tmp14705, i64 1
+ %tmp14707 = getelementptr inbounds float* %tmp14706, i64 1
+ %tmp14708 = getelementptr inbounds float* %tmp14707, i64 1
+ %tmp14709 = getelementptr inbounds float* %tmp14708, i64 1
+ %tmp14710 = getelementptr inbounds float* %tmp14709, i64 1
+ %tmp14711 = getelementptr inbounds float* %tmp14710, i64 1
+ %tmp14712 = getelementptr inbounds float* %tmp14711, i64 1
+ %tmp14713 = getelementptr inbounds float* %tmp14712, i64 1
+ %tmp14714 = getelementptr inbounds float* %tmp14713, i64 1
+ %tmp14715 = getelementptr inbounds float* %tmp14714, i64 1
+ %tmp14716 = getelementptr inbounds float* %tmp14715, i64 1
+ %tmp14717 = getelementptr inbounds float* %tmp14716, i64 1
+ %tmp14718 = getelementptr inbounds float* %tmp14717, i64 1
+ %tmp14719 = getelementptr inbounds float* %tmp14718, i64 1
+ %tmp14720 = getelementptr inbounds float* %tmp14719, i64 1
+ %tmp14721 = getelementptr inbounds float* %tmp14720, i64 1
+ %tmp14722 = getelementptr inbounds float* %tmp14721, i64 1
+ %tmp14723 = getelementptr inbounds float* %tmp14722, i64 1
+ %tmp14724 = getelementptr inbounds float* %tmp14723, i64 1
+ %tmp14725 = getelementptr inbounds float* %tmp14724, i64 1
+ %tmp14726 = getelementptr inbounds float* %tmp14725, i64 1
+ %tmp14727 = getelementptr inbounds float* %tmp14726, i64 1
+ %tmp14728 = getelementptr inbounds float* %tmp14727, i64 1
+ %tmp14729 = getelementptr inbounds float* %tmp14728, i64 1
+ %tmp14730 = getelementptr inbounds float* %tmp14729, i64 1
+ %tmp14731 = getelementptr inbounds float* %tmp14730, i64 1
+ %tmp14732 = getelementptr inbounds float* %tmp14731, i64 1
+ %tmp14733 = getelementptr inbounds float* %tmp14732, i64 1
+ %tmp14734 = getelementptr inbounds float* %tmp14733, i64 1
+ %tmp14735 = getelementptr inbounds float* %tmp14734, i64 1
+ %tmp14736 = getelementptr inbounds float* %tmp14735, i64 1
+ %tmp14737 = getelementptr inbounds float* %tmp14736, i64 1
+ %tmp14738 = getelementptr inbounds float* %tmp14737, i64 1
+ %tmp14739 = getelementptr inbounds float* %tmp14738, i64 1
+ %tmp14740 = getelementptr inbounds float* %tmp14739, i64 1
+ %tmp14741 = getelementptr inbounds float* %tmp14740, i64 1
+ %tmp14742 = getelementptr inbounds float* %tmp14741, i64 1
+ %tmp14743 = getelementptr inbounds float* %tmp14742, i64 1
+ %tmp14744 = getelementptr inbounds float* %tmp14743, i64 1
+ %tmp14745 = getelementptr inbounds float* %tmp14744, i64 1
+ %tmp14746 = getelementptr inbounds float* %tmp14745, i64 1
+ %tmp14747 = getelementptr inbounds float* %tmp14746, i64 1
+ %tmp14748 = getelementptr inbounds float* %tmp14747, i64 1
+ %tmp14749 = getelementptr inbounds float* %tmp14748, i64 1
+ %tmp14750 = getelementptr inbounds float* %tmp14749, i64 1
+ %tmp14751 = getelementptr inbounds float* %tmp14750, i64 1
+ %tmp14752 = getelementptr inbounds float* %tmp14751, i64 1
+ %tmp14753 = getelementptr inbounds float* %tmp14752, i64 1
+ %tmp14754 = getelementptr inbounds float* %tmp14753, i64 1
+ %tmp14755 = getelementptr inbounds float* %tmp14754, i64 1
+ %tmp14756 = getelementptr inbounds float* %tmp14755, i64 1
+ %tmp14757 = getelementptr inbounds float* %tmp14756, i64 1
+ %tmp14758 = getelementptr inbounds float* %tmp14757, i64 1
+ %tmp14759 = getelementptr inbounds float* %tmp14758, i64 1
+ %tmp14760 = getelementptr inbounds float* %tmp14759, i64 1
+ %tmp14761 = getelementptr inbounds float* %tmp14760, i64 1
+ %tmp14762 = getelementptr inbounds float* %tmp14761, i64 1
+ %tmp14763 = getelementptr inbounds float* %tmp14762, i64 1
+ %tmp14764 = getelementptr inbounds float* %tmp14763, i64 1
+ %tmp14765 = getelementptr inbounds float* %tmp14764, i64 1
+ %tmp14766 = getelementptr inbounds float* %tmp14765, i64 1
+ %tmp14767 = getelementptr inbounds float* %tmp14766, i64 1
+ %tmp14768 = getelementptr inbounds float* %tmp14767, i64 1
+ %tmp14769 = getelementptr inbounds float* %tmp14768, i64 1
+ %tmp14770 = getelementptr inbounds float* %tmp14769, i64 1
+ %tmp14771 = getelementptr inbounds float* %tmp14770, i64 1
+ %tmp14772 = getelementptr inbounds float* %tmp14771, i64 1
+ %tmp14773 = getelementptr inbounds float* %tmp14772, i64 1
+ %tmp14774 = getelementptr inbounds float* %tmp14773, i64 1
+ %tmp14775 = getelementptr inbounds float* %tmp14774, i64 1
+ %tmp14776 = getelementptr inbounds float* %tmp14775, i64 1
+ %tmp14777 = getelementptr inbounds float* %tmp14776, i64 1
+ %tmp14778 = getelementptr inbounds float* %tmp14777, i64 1
+ %tmp14779 = getelementptr inbounds float* %tmp14778, i64 1
+ %tmp14780 = getelementptr inbounds float* %tmp14779, i64 1
+ %tmp14781 = getelementptr inbounds float* %tmp14780, i64 1
+ %tmp14782 = getelementptr inbounds float* %tmp14781, i64 1
+ %tmp14783 = getelementptr inbounds float* %tmp14782, i64 1
+ %tmp14784 = getelementptr inbounds float* %tmp14783, i64 1
+ %tmp14785 = getelementptr inbounds float* %tmp14784, i64 1
+ %tmp14786 = getelementptr inbounds float* %tmp14785, i64 1
+ %tmp14787 = getelementptr inbounds float* %tmp14786, i64 1
+ %tmp14788 = getelementptr inbounds float* %tmp14787, i64 1
+ %tmp14789 = getelementptr inbounds float* %tmp14788, i64 1
+ %tmp14790 = getelementptr inbounds float* %tmp14789, i64 1
+ %tmp14791 = getelementptr inbounds float* %tmp14790, i64 1
+ %tmp14792 = getelementptr inbounds float* %tmp14791, i64 1
+ %tmp14793 = getelementptr inbounds float* %tmp14792, i64 1
+ %tmp14794 = getelementptr inbounds float* %tmp14793, i64 1
+ %tmp14795 = getelementptr inbounds float* %tmp14794, i64 1
+ %tmp14796 = getelementptr inbounds float* %tmp14795, i64 1
+ %tmp14797 = getelementptr inbounds float* %tmp14796, i64 1
+ %tmp14798 = getelementptr inbounds float* %tmp14797, i64 1
+ %tmp14799 = getelementptr inbounds float* %tmp14798, i64 1
+ %tmp14800 = getelementptr inbounds float* %tmp14799, i64 1
+ %tmp14801 = getelementptr inbounds float* %tmp14800, i64 1
+ %tmp14802 = getelementptr inbounds float* %tmp14801, i64 1
+ %tmp14803 = getelementptr inbounds float* %tmp14802, i64 1
+ %tmp14804 = getelementptr inbounds float* %tmp14803, i64 1
+ %tmp14805 = getelementptr inbounds float* %tmp14804, i64 1
+ %tmp14806 = getelementptr inbounds float* %tmp14805, i64 1
+ %tmp14807 = getelementptr inbounds float* %tmp14806, i64 1
+ %tmp14808 = getelementptr inbounds float* %tmp14807, i64 1
+ %tmp14809 = getelementptr inbounds float* %tmp14808, i64 1
+ %tmp14810 = getelementptr inbounds float* %tmp14809, i64 1
+ %tmp14811 = getelementptr inbounds float* %tmp14810, i64 1
+ %tmp14812 = getelementptr inbounds float* %tmp14811, i64 1
+ %tmp14813 = getelementptr inbounds float* %tmp14812, i64 1
+ %tmp14814 = getelementptr inbounds float* %tmp14813, i64 1
+ %tmp14815 = getelementptr inbounds float* %tmp14814, i64 1
+ %tmp14816 = getelementptr inbounds float* %tmp14815, i64 1
+ %tmp14817 = getelementptr inbounds float* %tmp14816, i64 1
+ %tmp14818 = getelementptr inbounds float* %tmp14817, i64 1
+ %tmp14819 = getelementptr inbounds float* %tmp14818, i64 1
+ %tmp14820 = getelementptr inbounds float* %tmp14819, i64 1
+ %tmp14821 = getelementptr inbounds float* %tmp14820, i64 1
+ %tmp14822 = getelementptr inbounds float* %tmp14821, i64 1
+ %tmp14823 = getelementptr inbounds float* %tmp14822, i64 1
+ %tmp14824 = getelementptr inbounds float* %tmp14823, i64 1
+ %tmp14825 = getelementptr inbounds float* %tmp14824, i64 1
+ %tmp14826 = getelementptr inbounds float* %tmp14825, i64 1
+ %tmp14827 = getelementptr inbounds float* %tmp14826, i64 1
+ %tmp14828 = getelementptr inbounds float* %tmp14827, i64 1
+ %tmp14829 = getelementptr inbounds float* %tmp14828, i64 1
+ %tmp14830 = getelementptr inbounds float* %tmp14829, i64 1
+ %tmp14831 = getelementptr inbounds float* %tmp14830, i64 1
+ %tmp14832 = getelementptr inbounds float* %tmp14831, i64 1
+ %tmp14833 = getelementptr inbounds float* %tmp14832, i64 1
+ %tmp14834 = getelementptr inbounds float* %tmp14833, i64 1
+ %tmp14835 = getelementptr inbounds float* %tmp14834, i64 1
+ %tmp14836 = getelementptr inbounds float* %tmp14835, i64 1
+ %tmp14837 = getelementptr inbounds float* %tmp14836, i64 1
+ %tmp14838 = getelementptr inbounds float* %tmp14837, i64 1
+ %tmp14839 = getelementptr inbounds float* %tmp14838, i64 1
+ %tmp14840 = getelementptr inbounds float* %tmp14839, i64 1
+ %tmp14841 = getelementptr inbounds float* %tmp14840, i64 1
+ %tmp14842 = getelementptr inbounds float* %tmp14841, i64 1
+ %tmp14843 = getelementptr inbounds float* %tmp14842, i64 1
+ %tmp14844 = getelementptr inbounds float* %tmp14843, i64 1
+ %tmp14845 = getelementptr inbounds float* %tmp14844, i64 1
+ %tmp14846 = getelementptr inbounds float* %tmp14845, i64 1
+ %tmp14847 = getelementptr inbounds float* %tmp14846, i64 1
+ %tmp14848 = getelementptr inbounds float* %tmp14847, i64 1
+ %tmp14849 = getelementptr inbounds float* %tmp14848, i64 1
+ %tmp14850 = getelementptr inbounds float* %tmp14849, i64 1
+ %tmp14851 = getelementptr inbounds float* %tmp14850, i64 1
+ %tmp14852 = getelementptr inbounds float* %tmp14851, i64 1
+ %tmp14853 = getelementptr inbounds float* %tmp14852, i64 1
+ %tmp14854 = getelementptr inbounds float* %tmp14853, i64 1
+ %tmp14855 = getelementptr inbounds float* %tmp14854, i64 1
+ %tmp14856 = getelementptr inbounds float* %tmp14855, i64 1
+ %tmp14857 = getelementptr inbounds float* %tmp14856, i64 1
+ %tmp14858 = getelementptr inbounds float* %tmp14857, i64 1
+ %tmp14859 = getelementptr inbounds float* %tmp14858, i64 1
+ %tmp14860 = getelementptr inbounds float* %tmp14859, i64 1
+ %tmp14861 = getelementptr inbounds float* %tmp14860, i64 1
+ %tmp14862 = getelementptr inbounds float* %tmp14861, i64 1
+ %tmp14863 = getelementptr inbounds float* %tmp14862, i64 1
+ %tmp14864 = getelementptr inbounds float* %tmp14863, i64 1
+ %tmp14865 = getelementptr inbounds float* %tmp14864, i64 1
+ %tmp14866 = getelementptr inbounds float* %tmp14865, i64 1
+ %tmp14867 = getelementptr inbounds float* %tmp14866, i64 1
+ %tmp14868 = getelementptr inbounds float* %tmp14867, i64 1
+ %tmp14869 = getelementptr inbounds float* %tmp14868, i64 1
+ %tmp14870 = getelementptr inbounds float* %tmp14869, i64 1
+ %tmp14871 = getelementptr inbounds float* %tmp14870, i64 1
+ %tmp14872 = getelementptr inbounds float* %tmp14871, i64 1
+ %tmp14873 = getelementptr inbounds float* %tmp14872, i64 1
+ %tmp14874 = getelementptr inbounds float* %tmp14873, i64 1
+ %tmp14875 = getelementptr inbounds float* %tmp14874, i64 1
+ %tmp14876 = getelementptr inbounds float* %tmp14875, i64 1
+ %tmp14877 = getelementptr inbounds float* %tmp14876, i64 1
+ %tmp14878 = getelementptr inbounds float* %tmp14877, i64 1
+ %tmp14879 = getelementptr inbounds float* %tmp14878, i64 1
+ %tmp14880 = getelementptr inbounds float* %tmp14879, i64 1
+ %tmp14881 = getelementptr inbounds float* %tmp14880, i64 1
+ %tmp14882 = getelementptr inbounds float* %tmp14881, i64 1
+ %tmp14883 = getelementptr inbounds float* %tmp14882, i64 1
+ %tmp14884 = getelementptr inbounds float* %tmp14883, i64 1
+ %tmp14885 = getelementptr inbounds float* %tmp14884, i64 1
+ %tmp14886 = getelementptr inbounds float* %tmp14885, i64 1
+ %tmp14887 = getelementptr inbounds float* %tmp14886, i64 1
+ %tmp14888 = getelementptr inbounds float* %tmp14887, i64 1
+ %tmp14889 = getelementptr inbounds float* %tmp14888, i64 1
+ %tmp14890 = getelementptr inbounds float* %tmp14889, i64 1
+ %tmp14891 = getelementptr inbounds float* %tmp14890, i64 1
+ %tmp14892 = getelementptr inbounds float* %tmp14891, i64 1
+ %tmp14893 = getelementptr inbounds float* %tmp14892, i64 1
+ %tmp14894 = getelementptr inbounds float* %tmp14893, i64 1
+ %tmp14895 = getelementptr inbounds float* %tmp14894, i64 1
+ %tmp14896 = getelementptr inbounds float* %tmp14895, i64 1
+ %tmp14897 = getelementptr inbounds float* %tmp14896, i64 1
+ %tmp14898 = getelementptr inbounds float* %tmp14897, i64 1
+ %tmp14899 = getelementptr inbounds float* %tmp14898, i64 1
+ %tmp14900 = getelementptr inbounds float* %tmp14899, i64 1
+ %tmp14901 = getelementptr inbounds float* %tmp14900, i64 1
+ %tmp14902 = getelementptr inbounds float* %tmp14901, i64 1
+ %tmp14903 = getelementptr inbounds float* %tmp14902, i64 1
+ %tmp14904 = getelementptr inbounds float* %tmp14903, i64 1
+ %tmp14905 = getelementptr inbounds float* %tmp14904, i64 1
+ %tmp14906 = getelementptr inbounds float* %tmp14905, i64 1
+ %tmp14907 = getelementptr inbounds float* %tmp14906, i64 1
+ %tmp14908 = getelementptr inbounds float* %tmp14907, i64 1
+ %tmp14909 = getelementptr inbounds float* %tmp14908, i64 1
+ %tmp14910 = getelementptr inbounds float* %tmp14909, i64 1
+ %tmp14911 = getelementptr inbounds float* %tmp14910, i64 1
+ %tmp14912 = getelementptr inbounds float* %tmp14911, i64 1
+ %tmp14913 = getelementptr inbounds float* %tmp14912, i64 1
+ %tmp14914 = getelementptr inbounds float* %tmp14913, i64 1
+ %tmp14915 = getelementptr inbounds float* %tmp14914, i64 1
+ %tmp14916 = getelementptr inbounds float* %tmp14915, i64 1
+ %tmp14917 = getelementptr inbounds float* %tmp14916, i64 1
+ %tmp14918 = getelementptr inbounds float* %tmp14917, i64 1
+ %tmp14919 = getelementptr inbounds float* %tmp14918, i64 1
+ %tmp14920 = getelementptr inbounds float* %tmp14919, i64 1
+ %tmp14921 = getelementptr inbounds float* %tmp14920, i64 1
+ %tmp14922 = getelementptr inbounds float* %tmp14921, i64 1
+ %tmp14923 = getelementptr inbounds float* %tmp14922, i64 1
+ %tmp14924 = getelementptr inbounds float* %tmp14923, i64 1
+ %tmp14925 = getelementptr inbounds float* %tmp14924, i64 1
+ %tmp14926 = getelementptr inbounds float* %tmp14925, i64 1
+ %tmp14927 = getelementptr inbounds float* %tmp14926, i64 1
+ %tmp14928 = getelementptr inbounds float* %tmp14927, i64 1
+ %tmp14929 = getelementptr inbounds float* %tmp14928, i64 1
+ %tmp14930 = getelementptr inbounds float* %tmp14929, i64 1
+ %tmp14931 = getelementptr inbounds float* %tmp14930, i64 1
+ %tmp14932 = getelementptr inbounds float* %tmp14931, i64 1
+ %tmp14933 = getelementptr inbounds float* %tmp14932, i64 1
+ %tmp14934 = getelementptr inbounds float* %tmp14933, i64 1
+ %tmp14935 = getelementptr inbounds float* %tmp14934, i64 1
+ %tmp14936 = getelementptr inbounds float* %tmp14935, i64 1
+ %tmp14937 = getelementptr inbounds float* %tmp14936, i64 1
+ %tmp14938 = getelementptr inbounds float* %tmp14937, i64 1
+ %tmp14939 = getelementptr inbounds float* %tmp14938, i64 1
+ %tmp14940 = getelementptr inbounds float* %tmp14939, i64 1
+ %tmp14941 = getelementptr inbounds float* %tmp14940, i64 1
+ %tmp14942 = getelementptr inbounds float* %tmp14941, i64 1
+ %tmp14943 = getelementptr inbounds float* %tmp14942, i64 1
+ %tmp14944 = getelementptr inbounds float* %tmp14943, i64 1
+ %tmp14945 = getelementptr inbounds float* %tmp14944, i64 1
+ %tmp14946 = getelementptr inbounds float* %tmp14945, i64 1
+ %tmp14947 = getelementptr inbounds float* %tmp14946, i64 1
+ %tmp14948 = getelementptr inbounds float* %tmp14947, i64 1
+ %tmp14949 = getelementptr inbounds float* %tmp14948, i64 1
+ %tmp14950 = getelementptr inbounds float* %tmp14949, i64 1
+ %tmp14951 = getelementptr inbounds float* %tmp14950, i64 1
+ %tmp14952 = getelementptr inbounds float* %tmp14951, i64 1
+ %tmp14953 = getelementptr inbounds float* %tmp14952, i64 1
+ %tmp14954 = getelementptr inbounds float* %tmp14953, i64 1
+ %tmp14955 = getelementptr inbounds float* %tmp14954, i64 1
+ %tmp14956 = getelementptr inbounds float* %tmp14955, i64 1
+ %tmp14957 = getelementptr inbounds float* %tmp14956, i64 1
+ %tmp14958 = getelementptr inbounds float* %tmp14957, i64 1
+ %tmp14959 = getelementptr inbounds float* %tmp14958, i64 1
+ %tmp14960 = getelementptr inbounds float* %tmp14959, i64 1
+ %tmp14961 = getelementptr inbounds float* %tmp14960, i64 1
+ %tmp14962 = getelementptr inbounds float* %tmp14961, i64 1
+ %tmp14963 = getelementptr inbounds float* %tmp14962, i64 1
+ %tmp14964 = getelementptr inbounds float* %tmp14963, i64 1
+ %tmp14965 = getelementptr inbounds float* %tmp14964, i64 1
+ %tmp14966 = getelementptr inbounds float* %tmp14965, i64 1
+ %tmp14967 = getelementptr inbounds float* %tmp14966, i64 1
+ %tmp14968 = getelementptr inbounds float* %tmp14967, i64 1
+ %tmp14969 = getelementptr inbounds float* %tmp14968, i64 1
+ %tmp14970 = getelementptr inbounds float* %tmp14969, i64 1
+ %tmp14971 = getelementptr inbounds float* %tmp14970, i64 1
+ %tmp14972 = getelementptr inbounds float* %tmp14971, i64 1
+ %tmp14973 = getelementptr inbounds float* %tmp14972, i64 1
+ %tmp14974 = getelementptr inbounds float* %tmp14973, i64 1
+ %tmp14975 = getelementptr inbounds float* %tmp14974, i64 1
+ %tmp14976 = getelementptr inbounds float* %tmp14975, i64 1
+ %tmp14977 = getelementptr inbounds float* %tmp14976, i64 1
+ %tmp14978 = getelementptr inbounds float* %tmp14977, i64 1
+ %tmp14979 = getelementptr inbounds float* %tmp14978, i64 1
+ %tmp14980 = getelementptr inbounds float* %tmp14979, i64 1
+ %tmp14981 = getelementptr inbounds float* %tmp14980, i64 1
+ %tmp14982 = getelementptr inbounds float* %tmp14981, i64 1
+ %tmp14983 = getelementptr inbounds float* %tmp14982, i64 1
+ %tmp14984 = getelementptr inbounds float* %tmp14983, i64 1
+ %tmp14985 = getelementptr inbounds float* %tmp14984, i64 1
+ %tmp14986 = getelementptr inbounds float* %tmp14985, i64 1
+ %tmp14987 = getelementptr inbounds float* %tmp14986, i64 1
+ %tmp14988 = getelementptr inbounds float* %tmp14987, i64 1
+ %tmp14989 = getelementptr inbounds float* %tmp14988, i64 1
+ %tmp14990 = getelementptr inbounds float* %tmp14989, i64 1
+ %tmp14991 = getelementptr inbounds float* %tmp14990, i64 1
+ %tmp14992 = getelementptr inbounds float* %tmp14991, i64 1
+ %tmp14993 = getelementptr inbounds float* %tmp14992, i64 1
+ %tmp14994 = getelementptr inbounds float* %tmp14993, i64 1
+ %tmp14995 = getelementptr inbounds float* %tmp14994, i64 1
+ %tmp14996 = getelementptr inbounds float* %tmp14995, i64 1
+ %tmp14997 = getelementptr inbounds float* %tmp14996, i64 1
+ %tmp14998 = getelementptr inbounds float* %tmp14997, i64 1
+ %tmp14999 = getelementptr inbounds float* %tmp14998, i64 1
+ %tmp15000 = getelementptr inbounds float* %tmp14999, i64 1
+ %tmp15001 = getelementptr inbounds float* %tmp15000, i64 1
+ %tmp15002 = getelementptr inbounds float* %tmp15001, i64 1
+ %tmp15003 = getelementptr inbounds float* %tmp15002, i64 1
+ %tmp15004 = getelementptr inbounds float* %tmp15003, i64 1
+ %tmp15005 = getelementptr inbounds float* %tmp15004, i64 1
+ %tmp15006 = getelementptr inbounds float* %tmp15005, i64 1
+ %tmp15007 = getelementptr inbounds float* %tmp15006, i64 1
+ %tmp15008 = getelementptr inbounds float* %tmp15007, i64 1
+ %tmp15009 = getelementptr inbounds float* %tmp15008, i64 1
+ %tmp15010 = getelementptr inbounds float* %tmp15009, i64 1
+ %tmp15011 = getelementptr inbounds float* %tmp15010, i64 1
+ %tmp15012 = getelementptr inbounds float* %tmp15011, i64 1
+ %tmp15013 = getelementptr inbounds float* %tmp15012, i64 1
+ %tmp15014 = getelementptr inbounds float* %tmp15013, i64 1
+ %tmp15015 = getelementptr inbounds float* %tmp15014, i64 1
+ %tmp15016 = getelementptr inbounds float* %tmp15015, i64 1
+ %tmp15017 = getelementptr inbounds float* %tmp15016, i64 1
+ %tmp15018 = getelementptr inbounds float* %tmp15017, i64 1
+ %tmp15019 = getelementptr inbounds float* %tmp15018, i64 1
+ %tmp15020 = getelementptr inbounds float* %tmp15019, i64 1
+ %tmp15021 = getelementptr inbounds float* %tmp15020, i64 1
+ %tmp15022 = getelementptr inbounds float* %tmp15021, i64 1
+ %tmp15023 = getelementptr inbounds float* %tmp15022, i64 1
+ %tmp15024 = getelementptr inbounds float* %tmp15023, i64 1
+ %tmp15025 = getelementptr inbounds float* %tmp15024, i64 1
+ %tmp15026 = getelementptr inbounds float* %tmp15025, i64 1
+ %tmp15027 = getelementptr inbounds float* %tmp15026, i64 1
+ %tmp15028 = getelementptr inbounds float* %tmp15027, i64 1
+ %tmp15029 = getelementptr inbounds float* %tmp15028, i64 1
+ %tmp15030 = getelementptr inbounds float* %tmp15029, i64 1
+ %tmp15031 = getelementptr inbounds float* %tmp15030, i64 1
+ %tmp15032 = getelementptr inbounds float* %tmp15031, i64 1
+ %tmp15033 = getelementptr inbounds float* %tmp15032, i64 1
+ %tmp15034 = getelementptr inbounds float* %tmp15033, i64 1
+ %tmp15035 = getelementptr inbounds float* %tmp15034, i64 1
+ %tmp15036 = getelementptr inbounds float* %tmp15035, i64 1
+ %tmp15037 = getelementptr inbounds float* %tmp15036, i64 1
+ %tmp15038 = getelementptr inbounds float* %tmp15037, i64 1
+ %tmp15039 = getelementptr inbounds float* %tmp15038, i64 1
+ %tmp15040 = getelementptr inbounds float* %tmp15039, i64 1
+ %tmp15041 = getelementptr inbounds float* %tmp15040, i64 1
+ %tmp15042 = getelementptr inbounds float* %tmp15041, i64 1
+ %tmp15043 = getelementptr inbounds float* %tmp15042, i64 1
+ %tmp15044 = getelementptr inbounds float* %tmp15043, i64 1
+ %tmp15045 = getelementptr inbounds float* %tmp15044, i64 1
+ %tmp15046 = getelementptr inbounds float* %tmp15045, i64 1
+ %tmp15047 = getelementptr inbounds float* %tmp15046, i64 1
+ %tmp15048 = getelementptr inbounds float* %tmp15047, i64 1
+ %tmp15049 = getelementptr inbounds float* %tmp15048, i64 1
+ %tmp15050 = getelementptr inbounds float* %tmp15049, i64 1
+ %tmp15051 = getelementptr inbounds float* %tmp15050, i64 1
+ %tmp15052 = getelementptr inbounds float* %tmp15051, i64 1
+ %tmp15053 = getelementptr inbounds float* %tmp15052, i64 1
+ %tmp15054 = getelementptr inbounds float* %tmp15053, i64 1
+ %tmp15055 = getelementptr inbounds float* %tmp15054, i64 1
+ %tmp15056 = getelementptr inbounds float* %tmp15055, i64 1
+ %tmp15057 = getelementptr inbounds float* %tmp15056, i64 1
+ %tmp15058 = getelementptr inbounds float* %tmp15057, i64 1
+ %tmp15059 = getelementptr inbounds float* %tmp15058, i64 1
+ %tmp15060 = getelementptr inbounds float* %tmp15059, i64 1
+ %tmp15061 = getelementptr inbounds float* %tmp15060, i64 1
+ %tmp15062 = getelementptr inbounds float* %tmp15061, i64 1
+ %tmp15063 = getelementptr inbounds float* %tmp15062, i64 1
+ %tmp15064 = getelementptr inbounds float* %tmp15063, i64 1
+ %tmp15065 = getelementptr inbounds float* %tmp15064, i64 1
+ %tmp15066 = getelementptr inbounds float* %tmp15065, i64 1
+ %tmp15067 = getelementptr inbounds float* %tmp15066, i64 1
+ %tmp15068 = getelementptr inbounds float* %tmp15067, i64 1
+ %tmp15069 = getelementptr inbounds float* %tmp15068, i64 1
+ %tmp15070 = getelementptr inbounds float* %tmp15069, i64 1
+ %tmp15071 = getelementptr inbounds float* %tmp15070, i64 1
+ %tmp15072 = getelementptr inbounds float* %tmp15071, i64 1
+ %tmp15073 = getelementptr inbounds float* %tmp15072, i64 1
+ %tmp15074 = getelementptr inbounds float* %tmp15073, i64 1
+ %tmp15075 = getelementptr inbounds float* %tmp15074, i64 1
+ %tmp15076 = getelementptr inbounds float* %tmp15075, i64 1
+ %tmp15077 = getelementptr inbounds float* %tmp15076, i64 1
+ %tmp15078 = getelementptr inbounds float* %tmp15077, i64 1
+ %tmp15079 = getelementptr inbounds float* %tmp15078, i64 1
+ %tmp15080 = getelementptr inbounds float* %tmp15079, i64 1
+ %tmp15081 = getelementptr inbounds float* %tmp15080, i64 1
+ %tmp15082 = getelementptr inbounds float* %tmp15081, i64 1
+ %tmp15083 = getelementptr inbounds float* %tmp15082, i64 1
+ %tmp15084 = getelementptr inbounds float* %tmp15083, i64 1
+ %tmp15085 = getelementptr inbounds float* %tmp15084, i64 1
+ %tmp15086 = getelementptr inbounds float* %tmp15085, i64 1
+ %tmp15087 = getelementptr inbounds float* %tmp15086, i64 1
+ %tmp15088 = getelementptr inbounds float* %tmp15087, i64 1
+ %tmp15089 = getelementptr inbounds float* %tmp15088, i64 1
+ %tmp15090 = getelementptr inbounds float* %tmp15089, i64 1
+ %tmp15091 = getelementptr inbounds float* %tmp15090, i64 1
+ %tmp15092 = getelementptr inbounds float* %tmp15091, i64 1
+ %tmp15093 = getelementptr inbounds float* %tmp15092, i64 1
+ %tmp15094 = getelementptr inbounds float* %tmp15093, i64 1
+ %tmp15095 = getelementptr inbounds float* %tmp15094, i64 1
+ %tmp15096 = getelementptr inbounds float* %tmp15095, i64 1
+ %tmp15097 = getelementptr inbounds float* %tmp15096, i64 1
+ %tmp15098 = getelementptr inbounds float* %tmp15097, i64 1
+ %tmp15099 = getelementptr inbounds float* %tmp15098, i64 1
+ %tmp15100 = getelementptr inbounds float* %tmp15099, i64 1
+ %tmp15101 = getelementptr inbounds float* %tmp15100, i64 1
+ %tmp15102 = getelementptr inbounds float* %tmp15101, i64 1
+ %tmp15103 = getelementptr inbounds float* %tmp15102, i64 1
+ %tmp15104 = getelementptr inbounds float* %tmp15103, i64 1
+ %tmp15105 = getelementptr inbounds float* %tmp15104, i64 1
+ %tmp15106 = getelementptr inbounds float* %tmp15105, i64 1
+ %tmp15107 = getelementptr inbounds float* %tmp15106, i64 1
+ %tmp15108 = getelementptr inbounds float* %tmp15107, i64 1
+ %tmp15109 = getelementptr inbounds float* %tmp15108, i64 1
+ %tmp15110 = getelementptr inbounds float* %tmp15109, i64 1
+ %tmp15111 = getelementptr inbounds float* %tmp15110, i64 1
+ %tmp15112 = getelementptr inbounds float* %tmp15111, i64 1
+ %tmp15113 = getelementptr inbounds float* %tmp15112, i64 1
+ %tmp15114 = getelementptr inbounds float* %tmp15113, i64 1
+ %tmp15115 = getelementptr inbounds float* %tmp15114, i64 1
+ %tmp15116 = getelementptr inbounds float* %tmp15115, i64 1
+ %tmp15117 = getelementptr inbounds float* %tmp15116, i64 1
+ %tmp15118 = getelementptr inbounds float* %tmp15117, i64 1
+ %tmp15119 = getelementptr inbounds float* %tmp15118, i64 1
+ %tmp15120 = getelementptr inbounds float* %tmp15119, i64 1
+ %tmp15121 = getelementptr inbounds float* %tmp15120, i64 1
+ %tmp15122 = getelementptr inbounds float* %tmp15121, i64 1
+ %tmp15123 = getelementptr inbounds float* %tmp15122, i64 1
+ %tmp15124 = getelementptr inbounds float* %tmp15123, i64 1
+ %tmp15125 = getelementptr inbounds float* %tmp15124, i64 1
+ %tmp15126 = getelementptr inbounds float* %tmp15125, i64 1
+ %tmp15127 = getelementptr inbounds float* %tmp15126, i64 1
+ %tmp15128 = getelementptr inbounds float* %tmp15127, i64 1
+ %tmp15129 = getelementptr inbounds float* %tmp15128, i64 1
+ %tmp15130 = getelementptr inbounds float* %tmp15129, i64 1
+ %tmp15131 = getelementptr inbounds float* %tmp15130, i64 1
+ %tmp15132 = getelementptr inbounds float* %tmp15131, i64 1
+ %tmp15133 = getelementptr inbounds float* %tmp15132, i64 1
+ %tmp15134 = getelementptr inbounds float* %tmp15133, i64 1
+ %tmp15135 = getelementptr inbounds float* %tmp15134, i64 1
+ %tmp15136 = getelementptr inbounds float* %tmp15135, i64 1
+ %tmp15137 = getelementptr inbounds float* %tmp15136, i64 1
+ %tmp15138 = getelementptr inbounds float* %tmp15137, i64 1
+ %tmp15139 = getelementptr inbounds float* %tmp15138, i64 1
+ %tmp15140 = getelementptr inbounds float* %tmp15139, i64 1
+ %tmp15141 = getelementptr inbounds float* %tmp15140, i64 1
+ %tmp15142 = getelementptr inbounds float* %tmp15141, i64 1
+ %tmp15143 = getelementptr inbounds float* %tmp15142, i64 1
+ %tmp15144 = getelementptr inbounds float* %tmp15143, i64 1
+ %tmp15145 = getelementptr inbounds float* %tmp15144, i64 1
+ %tmp15146 = getelementptr inbounds float* %tmp15145, i64 1
+ %tmp15147 = getelementptr inbounds float* %tmp15146, i64 1
+ %tmp15148 = getelementptr inbounds float* %tmp15147, i64 1
+ %tmp15149 = getelementptr inbounds float* %tmp15148, i64 1
+ %tmp15150 = getelementptr inbounds float* %tmp15149, i64 1
+ %tmp15151 = getelementptr inbounds float* %tmp15150, i64 1
+ %tmp15152 = getelementptr inbounds float* %tmp15151, i64 1
+ %tmp15153 = getelementptr inbounds float* %tmp15152, i64 1
+ %tmp15154 = getelementptr inbounds float* %tmp15153, i64 1
+ %tmp15155 = getelementptr inbounds float* %tmp15154, i64 1
+ %tmp15156 = getelementptr inbounds float* %tmp15155, i64 1
+ %tmp15157 = getelementptr inbounds float* %tmp15156, i64 1
+ %tmp15158 = getelementptr inbounds float* %tmp15157, i64 1
+ %tmp15159 = getelementptr inbounds float* %tmp15158, i64 1
+ %tmp15160 = getelementptr inbounds float* %tmp15159, i64 1
+ %tmp15161 = getelementptr inbounds float* %tmp15160, i64 1
+ %tmp15162 = getelementptr inbounds float* %tmp15161, i64 1
+ %tmp15163 = getelementptr inbounds float* %tmp15162, i64 1
+ %tmp15164 = getelementptr inbounds float* %tmp15163, i64 1
+ %tmp15165 = getelementptr inbounds float* %tmp15164, i64 1
+ %tmp15166 = getelementptr inbounds float* %tmp15165, i64 1
+ %tmp15167 = getelementptr inbounds float* %tmp15166, i64 1
+ %tmp15168 = getelementptr inbounds float* %tmp15167, i64 1
+ %tmp15169 = getelementptr inbounds float* %tmp15168, i64 1
+ %tmp15170 = getelementptr inbounds float* %tmp15169, i64 1
+ %tmp15171 = getelementptr inbounds float* %tmp15170, i64 1
+ %tmp15172 = getelementptr inbounds float* %tmp15171, i64 1
+ %tmp15173 = getelementptr inbounds float* %tmp15172, i64 1
+ %tmp15174 = getelementptr inbounds float* %tmp15173, i64 1
+ %tmp15175 = getelementptr inbounds float* %tmp15174, i64 1
+ %tmp15176 = getelementptr inbounds float* %tmp15175, i64 1
+ %tmp15177 = getelementptr inbounds float* %tmp15176, i64 1
+ %tmp15178 = getelementptr inbounds float* %tmp15177, i64 1
+ %tmp15179 = getelementptr inbounds float* %tmp15178, i64 1
+ %tmp15180 = getelementptr inbounds float* %tmp15179, i64 1
+ %tmp15181 = getelementptr inbounds float* %tmp15180, i64 1
+ %tmp15182 = getelementptr inbounds float* %tmp15181, i64 1
+ %tmp15183 = getelementptr inbounds float* %tmp15182, i64 1
+ %tmp15184 = getelementptr inbounds float* %tmp15183, i64 1
+ %tmp15185 = getelementptr inbounds float* %tmp15184, i64 1
+ %tmp15186 = getelementptr inbounds float* %tmp15185, i64 1
+ %tmp15187 = getelementptr inbounds float* %tmp15186, i64 1
+ %tmp15188 = getelementptr inbounds float* %tmp15187, i64 1
+ %tmp15189 = getelementptr inbounds float* %tmp15188, i64 1
+ %tmp15190 = getelementptr inbounds float* %tmp15189, i64 1
+ %tmp15191 = getelementptr inbounds float* %tmp15190, i64 1
+ %tmp15192 = getelementptr inbounds float* %tmp15191, i64 1
+ %tmp15193 = getelementptr inbounds float* %tmp15192, i64 1
+ %tmp15194 = getelementptr inbounds float* %tmp15193, i64 1
+ %tmp15195 = getelementptr inbounds float* %tmp15194, i64 1
+ %tmp15196 = getelementptr inbounds float* %tmp15195, i64 1
+ %tmp15197 = getelementptr inbounds float* %tmp15196, i64 1
+ %tmp15198 = getelementptr inbounds float* %tmp15197, i64 1
+ %tmp15199 = getelementptr inbounds float* %tmp15198, i64 1
+ %tmp15200 = getelementptr inbounds float* %tmp15199, i64 1
+ %tmp15201 = getelementptr inbounds float* %tmp15200, i64 1
+ %tmp15202 = getelementptr inbounds float* %tmp15201, i64 1
+ %tmp15203 = getelementptr inbounds float* %tmp15202, i64 1
+ %tmp15204 = getelementptr inbounds float* %tmp15203, i64 1
+ %tmp15205 = getelementptr inbounds float* %tmp15204, i64 1
+ %tmp15206 = getelementptr inbounds float* %tmp15205, i64 1
+ %tmp15207 = getelementptr inbounds float* %tmp15206, i64 1
+ %tmp15208 = getelementptr inbounds float* %tmp15207, i64 1
+ %tmp15209 = getelementptr inbounds float* %tmp15208, i64 1
+ %tmp15210 = getelementptr inbounds float* %tmp15209, i64 1
+ %tmp15211 = getelementptr inbounds float* %tmp15210, i64 1
+ %tmp15212 = getelementptr inbounds float* %tmp15211, i64 1
+ %tmp15213 = getelementptr inbounds float* %tmp15212, i64 1
+ %tmp15214 = getelementptr inbounds float* %tmp15213, i64 1
+ %tmp15215 = getelementptr inbounds float* %tmp15214, i64 1
+ %tmp15216 = getelementptr inbounds float* %tmp15215, i64 1
+ %tmp15217 = getelementptr inbounds float* %tmp15216, i64 1
+ %tmp15218 = getelementptr inbounds float* %tmp15217, i64 1
+ %tmp15219 = getelementptr inbounds float* %tmp15218, i64 1
+ %tmp15220 = getelementptr inbounds float* %tmp15219, i64 1
+ %tmp15221 = getelementptr inbounds float* %tmp15220, i64 1
+ %tmp15222 = getelementptr inbounds float* %tmp15221, i64 1
+ %tmp15223 = getelementptr inbounds float* %tmp15222, i64 1
+ %tmp15224 = getelementptr inbounds float* %tmp15223, i64 1
+ %tmp15225 = getelementptr inbounds float* %tmp15224, i64 1
+ %tmp15226 = getelementptr inbounds float* %tmp15225, i64 1
+ %tmp15227 = getelementptr inbounds float* %tmp15226, i64 1
+ %tmp15228 = getelementptr inbounds float* %tmp15227, i64 1
+ %tmp15229 = getelementptr inbounds float* %tmp15228, i64 1
+ %tmp15230 = getelementptr inbounds float* %tmp15229, i64 1
+ %tmp15231 = getelementptr inbounds float* %tmp15230, i64 1
+ %tmp15232 = getelementptr inbounds float* %tmp15231, i64 1
+ %tmp15233 = getelementptr inbounds float* %tmp15232, i64 1
+ %tmp15234 = getelementptr inbounds float* %tmp15233, i64 1
+ %tmp15235 = getelementptr inbounds float* %tmp15234, i64 1
+ %tmp15236 = getelementptr inbounds float* %tmp15235, i64 1
+ %tmp15237 = getelementptr inbounds float* %tmp15236, i64 1
+ %tmp15238 = getelementptr inbounds float* %tmp15237, i64 1
+ %tmp15239 = getelementptr inbounds float* %tmp15238, i64 1
+ %tmp15240 = getelementptr inbounds float* %tmp15239, i64 1
+ %tmp15241 = getelementptr inbounds float* %tmp15240, i64 1
+ %tmp15242 = getelementptr inbounds float* %tmp15241, i64 1
+ %tmp15243 = getelementptr inbounds float* %tmp15242, i64 1
+ %tmp15244 = getelementptr inbounds float* %tmp15243, i64 1
+ %tmp15245 = getelementptr inbounds float* %tmp15244, i64 1
+ %tmp15246 = getelementptr inbounds float* %tmp15245, i64 1
+ %tmp15247 = getelementptr inbounds float* %tmp15246, i64 1
+ %tmp15248 = getelementptr inbounds float* %tmp15247, i64 1
+ %tmp15249 = getelementptr inbounds float* %tmp15248, i64 1
+ %tmp15250 = getelementptr inbounds float* %tmp15249, i64 1
+ %tmp15251 = getelementptr inbounds float* %tmp15250, i64 1
+ %tmp15252 = getelementptr inbounds float* %tmp15251, i64 1
+ %tmp15253 = getelementptr inbounds float* %tmp15252, i64 1
+ %tmp15254 = getelementptr inbounds float* %tmp15253, i64 1
+ %tmp15255 = getelementptr inbounds float* %tmp15254, i64 1
+ %tmp15256 = getelementptr inbounds float* %tmp15255, i64 1
+ %tmp15257 = getelementptr inbounds float* %tmp15256, i64 1
+ %tmp15258 = getelementptr inbounds float* %tmp15257, i64 1
+ %tmp15259 = getelementptr inbounds float* %tmp15258, i64 1
+ %tmp15260 = getelementptr inbounds float* %tmp15259, i64 1
+ %tmp15261 = getelementptr inbounds float* %tmp15260, i64 1
+ %tmp15262 = getelementptr inbounds float* %tmp15261, i64 1
+ %tmp15263 = getelementptr inbounds float* %tmp15262, i64 1
+ %tmp15264 = getelementptr inbounds float* %tmp15263, i64 1
+ %tmp15265 = getelementptr inbounds float* %tmp15264, i64 1
+ %tmp15266 = getelementptr inbounds float* %tmp15265, i64 1
+ %tmp15267 = getelementptr inbounds float* %tmp15266, i64 1
+ %tmp15268 = getelementptr inbounds float* %tmp15267, i64 1
+ %tmp15269 = getelementptr inbounds float* %tmp15268, i64 1
+ %tmp15270 = getelementptr inbounds float* %tmp15269, i64 1
+ %tmp15271 = getelementptr inbounds float* %tmp15270, i64 1
+ %tmp15272 = getelementptr inbounds float* %tmp15271, i64 1
+ %tmp15273 = getelementptr inbounds float* %tmp15272, i64 1
+ %tmp15274 = getelementptr inbounds float* %tmp15273, i64 1
+ %tmp15275 = getelementptr inbounds float* %tmp15274, i64 1
+ %tmp15276 = getelementptr inbounds float* %tmp15275, i64 1
+ %tmp15277 = getelementptr inbounds float* %tmp15276, i64 1
+ %tmp15278 = getelementptr inbounds float* %tmp15277, i64 1
+ %tmp15279 = getelementptr inbounds float* %tmp15278, i64 1
+ %tmp15280 = getelementptr inbounds float* %tmp15279, i64 1
+ %tmp15281 = getelementptr inbounds float* %tmp15280, i64 1
+ %tmp15282 = getelementptr inbounds float* %tmp15281, i64 1
+ %tmp15283 = getelementptr inbounds float* %tmp15282, i64 1
+ %tmp15284 = getelementptr inbounds float* %tmp15283, i64 1
+ %tmp15285 = getelementptr inbounds float* %tmp15284, i64 1
+ %tmp15286 = getelementptr inbounds float* %tmp15285, i64 1
+ %tmp15287 = getelementptr inbounds float* %tmp15286, i64 1
+ %tmp15288 = getelementptr inbounds float* %tmp15287, i64 1
+ %tmp15289 = getelementptr inbounds float* %tmp15288, i64 1
+ %tmp15290 = getelementptr inbounds float* %tmp15289, i64 1
+ %tmp15291 = getelementptr inbounds float* %tmp15290, i64 1
+ %tmp15292 = getelementptr inbounds float* %tmp15291, i64 1
+ %tmp15293 = getelementptr inbounds float* %tmp15292, i64 1
+ %tmp15294 = getelementptr inbounds float* %tmp15293, i64 1
+ %tmp15295 = getelementptr inbounds float* %tmp15294, i64 1
+ %tmp15296 = getelementptr inbounds float* %tmp15295, i64 1
+ %tmp15297 = getelementptr inbounds float* %tmp15296, i64 1
+ %tmp15298 = getelementptr inbounds float* %tmp15297, i64 1
+ %tmp15299 = getelementptr inbounds float* %tmp15298, i64 1
+ %tmp15300 = getelementptr inbounds float* %tmp15299, i64 1
+ %tmp15301 = getelementptr inbounds float* %tmp15300, i64 1
+ %tmp15302 = getelementptr inbounds float* %tmp15301, i64 1
+ %tmp15303 = getelementptr inbounds float* %tmp15302, i64 1
+ %tmp15304 = getelementptr inbounds float* %tmp15303, i64 1
+ %tmp15305 = getelementptr inbounds float* %tmp15304, i64 1
+ %tmp15306 = getelementptr inbounds float* %tmp15305, i64 1
+ %tmp15307 = getelementptr inbounds float* %tmp15306, i64 1
+ %tmp15308 = getelementptr inbounds float* %tmp15307, i64 1
+ %tmp15309 = getelementptr inbounds float* %tmp15308, i64 1
+ %tmp15310 = getelementptr inbounds float* %tmp15309, i64 1
+ %tmp15311 = getelementptr inbounds float* %tmp15310, i64 1
+ %tmp15312 = getelementptr inbounds float* %tmp15311, i64 1
+ %tmp15313 = getelementptr inbounds float* %tmp15312, i64 1
+ %tmp15314 = getelementptr inbounds float* %tmp15313, i64 1
+ %tmp15315 = getelementptr inbounds float* %tmp15314, i64 1
+ %tmp15316 = getelementptr inbounds float* %tmp15315, i64 1
+ %tmp15317 = getelementptr inbounds float* %tmp15316, i64 1
+ %tmp15318 = getelementptr inbounds float* %tmp15317, i64 1
+ %tmp15319 = getelementptr inbounds float* %tmp15318, i64 1
+ %tmp15320 = getelementptr inbounds float* %tmp15319, i64 1
+ %tmp15321 = getelementptr inbounds float* %tmp15320, i64 1
+ %tmp15322 = getelementptr inbounds float* %tmp15321, i64 1
+ %tmp15323 = getelementptr inbounds float* %tmp15322, i64 1
+ %tmp15324 = getelementptr inbounds float* %tmp15323, i64 1
+ %tmp15325 = getelementptr inbounds float* %tmp15324, i64 1
+ %tmp15326 = getelementptr inbounds float* %tmp15325, i64 1
+ %tmp15327 = getelementptr inbounds float* %tmp15326, i64 1
+ %tmp15328 = getelementptr inbounds float* %tmp15327, i64 1
+ %tmp15329 = getelementptr inbounds float* %tmp15328, i64 1
+ %tmp15330 = getelementptr inbounds float* %tmp15329, i64 1
+ %tmp15331 = getelementptr inbounds float* %tmp15330, i64 1
+ %tmp15332 = getelementptr inbounds float* %tmp15331, i64 1
+ %tmp15333 = getelementptr inbounds float* %tmp15332, i64 1
+ %tmp15334 = getelementptr inbounds float* %tmp15333, i64 1
+ %tmp15335 = getelementptr inbounds float* %tmp15334, i64 1
+ %tmp15336 = getelementptr inbounds float* %tmp15335, i64 1
+ %tmp15337 = getelementptr inbounds float* %tmp15336, i64 1
+ %tmp15338 = getelementptr inbounds float* %tmp15337, i64 1
+ %tmp15339 = getelementptr inbounds float* %tmp15338, i64 1
+ %tmp15340 = getelementptr inbounds float* %tmp15339, i64 1
+ %tmp15341 = getelementptr inbounds float* %tmp15340, i64 1
+ %tmp15342 = getelementptr inbounds float* %tmp15341, i64 1
+ %tmp15343 = getelementptr inbounds float* %tmp15342, i64 1
+ %tmp15344 = getelementptr inbounds float* %tmp15343, i64 1
+ %tmp15345 = getelementptr inbounds float* %tmp15344, i64 1
+ %tmp15346 = getelementptr inbounds float* %tmp15345, i64 1
+ %tmp15347 = getelementptr inbounds float* %tmp15346, i64 1
+ %tmp15348 = getelementptr inbounds float* %tmp15347, i64 1
+ %tmp15349 = getelementptr inbounds float* %tmp15348, i64 1
+ %tmp15350 = getelementptr inbounds float* %tmp15349, i64 1
+ %tmp15351 = getelementptr inbounds float* %tmp15350, i64 1
+ %tmp15352 = getelementptr inbounds float* %tmp15351, i64 1
+ %tmp15353 = getelementptr inbounds float* %tmp15352, i64 1
+ %tmp15354 = getelementptr inbounds float* %tmp15353, i64 1
+ %tmp15355 = getelementptr inbounds float* %tmp15354, i64 1
+ %tmp15356 = getelementptr inbounds float* %tmp15355, i64 1
+ %tmp15357 = getelementptr inbounds float* %tmp15356, i64 1
+ %tmp15358 = getelementptr inbounds float* %tmp15357, i64 1
+ %tmp15359 = getelementptr inbounds float* %tmp15358, i64 1
+ %tmp15360 = getelementptr inbounds float* %tmp15359, i64 1
+ %tmp15361 = getelementptr inbounds float* %tmp15360, i64 1
+ %tmp15362 = getelementptr inbounds float* %tmp15361, i64 1
+ %tmp15363 = getelementptr inbounds float* %tmp15362, i64 1
+ %tmp15364 = getelementptr inbounds float* %tmp15363, i64 1
+ %tmp15365 = getelementptr inbounds float* %tmp15364, i64 1
+ %tmp15366 = getelementptr inbounds float* %tmp15365, i64 1
+ %tmp15367 = getelementptr inbounds float* %tmp15366, i64 1
+ %tmp15368 = getelementptr inbounds float* %tmp15367, i64 1
+ %tmp15369 = getelementptr inbounds float* %tmp15368, i64 1
+ %tmp15370 = getelementptr inbounds float* %tmp15369, i64 1
+ %tmp15371 = getelementptr inbounds float* %tmp15370, i64 1
+ %tmp15372 = getelementptr inbounds float* %tmp15371, i64 1
+ %tmp15373 = getelementptr inbounds float* %tmp15372, i64 1
+ %tmp15374 = getelementptr inbounds float* %tmp15373, i64 1
+ %tmp15375 = getelementptr inbounds float* %tmp15374, i64 1
+ %tmp15376 = getelementptr inbounds float* %tmp15375, i64 1
+ %tmp15377 = getelementptr inbounds float* %tmp15376, i64 1
+ %tmp15378 = getelementptr inbounds float* %tmp15377, i64 1
+ %tmp15379 = getelementptr inbounds float* %tmp15378, i64 1
+ %tmp15380 = getelementptr inbounds float* %tmp15379, i64 1
+ %tmp15381 = getelementptr inbounds float* %tmp15380, i64 1
+ %tmp15382 = getelementptr inbounds float* %tmp15381, i64 1
+ %tmp15383 = getelementptr inbounds float* %tmp15382, i64 1
+ %tmp15384 = getelementptr inbounds float* %tmp15383, i64 1
+ %tmp15385 = getelementptr inbounds float* %tmp15384, i64 1
+ %tmp15386 = getelementptr inbounds float* %tmp15385, i64 1
+ %tmp15387 = getelementptr inbounds float* %tmp15386, i64 1
+ %tmp15388 = getelementptr inbounds float* %tmp15387, i64 1
+ %tmp15389 = getelementptr inbounds float* %tmp15388, i64 1
+ %tmp15390 = getelementptr inbounds float* %tmp15389, i64 1
+ %tmp15391 = getelementptr inbounds float* %tmp15390, i64 1
+ %tmp15392 = getelementptr inbounds float* %tmp15391, i64 1
+ %tmp15393 = getelementptr inbounds float* %tmp15392, i64 1
+ %tmp15394 = getelementptr inbounds float* %tmp15393, i64 1
+ %tmp15395 = getelementptr inbounds float* %tmp15394, i64 1
+ %tmp15396 = getelementptr inbounds float* %tmp15395, i64 1
+ %tmp15397 = getelementptr inbounds float* %tmp15396, i64 1
+ %tmp15398 = getelementptr inbounds float* %tmp15397, i64 1
+ %tmp15399 = getelementptr inbounds float* %tmp15398, i64 1
+ %tmp15400 = getelementptr inbounds float* %tmp15399, i64 1
+ %tmp15401 = getelementptr inbounds float* %tmp15400, i64 1
+ %tmp15402 = getelementptr inbounds float* %tmp15401, i64 1
+ %tmp15403 = getelementptr inbounds float* %tmp15402, i64 1
+ %tmp15404 = getelementptr inbounds float* %tmp15403, i64 1
+ %tmp15405 = getelementptr inbounds float* %tmp15404, i64 1
+ %tmp15406 = getelementptr inbounds float* %tmp15405, i64 1
+ %tmp15407 = getelementptr inbounds float* %tmp15406, i64 1
+ %tmp15408 = getelementptr inbounds float* %tmp15407, i64 1
+ %tmp15409 = getelementptr inbounds float* %tmp15408, i64 1
+ %tmp15410 = getelementptr inbounds float* %tmp15409, i64 1
+ %tmp15411 = getelementptr inbounds float* %tmp15410, i64 1
+ %tmp15412 = getelementptr inbounds float* %tmp15411, i64 1
+ %tmp15413 = getelementptr inbounds float* %tmp15412, i64 1
+ %tmp15414 = getelementptr inbounds float* %tmp15413, i64 1
+ %tmp15415 = getelementptr inbounds float* %tmp15414, i64 1
+ %tmp15416 = getelementptr inbounds float* %tmp15415, i64 1
+ %tmp15417 = getelementptr inbounds float* %tmp15416, i64 1
+ %tmp15418 = getelementptr inbounds float* %tmp15417, i64 1
+ %tmp15419 = getelementptr inbounds float* %tmp15418, i64 1
+ %tmp15420 = getelementptr inbounds float* %tmp15419, i64 1
+ %tmp15421 = getelementptr inbounds float* %tmp15420, i64 1
+ %tmp15422 = getelementptr inbounds float* %tmp15421, i64 1
+ %tmp15423 = getelementptr inbounds float* %tmp15422, i64 1
+ %tmp15424 = getelementptr inbounds float* %tmp15423, i64 1
+ %tmp15425 = getelementptr inbounds float* %tmp15424, i64 1
+ %tmp15426 = getelementptr inbounds float* %tmp15425, i64 1
+ %tmp15427 = getelementptr inbounds float* %tmp15426, i64 1
+ %tmp15428 = getelementptr inbounds float* %tmp15427, i64 1
+ %tmp15429 = getelementptr inbounds float* %tmp15428, i64 1
+ %tmp15430 = getelementptr inbounds float* %tmp15429, i64 1
+ %tmp15431 = getelementptr inbounds float* %tmp15430, i64 1
+ %tmp15432 = getelementptr inbounds float* %tmp15431, i64 1
+ %tmp15433 = getelementptr inbounds float* %tmp15432, i64 1
+ %tmp15434 = getelementptr inbounds float* %tmp15433, i64 1
+ %tmp15435 = getelementptr inbounds float* %tmp15434, i64 1
+ %tmp15436 = getelementptr inbounds float* %tmp15435, i64 1
+ %tmp15437 = getelementptr inbounds float* %tmp15436, i64 1
+ %tmp15438 = getelementptr inbounds float* %tmp15437, i64 1
+ %tmp15439 = getelementptr inbounds float* %tmp15438, i64 1
+ %tmp15440 = getelementptr inbounds float* %tmp15439, i64 1
+ %tmp15441 = getelementptr inbounds float* %tmp15440, i64 1
+ %tmp15442 = getelementptr inbounds float* %tmp15441, i64 1
+ %tmp15443 = getelementptr inbounds float* %tmp15442, i64 1
+ %tmp15444 = getelementptr inbounds float* %tmp15443, i64 1
+ %tmp15445 = getelementptr inbounds float* %tmp15444, i64 1
+ %tmp15446 = getelementptr inbounds float* %tmp15445, i64 1
+ %tmp15447 = getelementptr inbounds float* %tmp15446, i64 1
+ %tmp15448 = getelementptr inbounds float* %tmp15447, i64 1
+ %tmp15449 = getelementptr inbounds float* %tmp15448, i64 1
+ %tmp15450 = getelementptr inbounds float* %tmp15449, i64 1
+ %tmp15451 = getelementptr inbounds float* %tmp15450, i64 1
+ %tmp15452 = getelementptr inbounds float* %tmp15451, i64 1
+ %tmp15453 = getelementptr inbounds float* %tmp15452, i64 1
+ %tmp15454 = getelementptr inbounds float* %tmp15453, i64 1
+ %tmp15455 = getelementptr inbounds float* %tmp15454, i64 1
+ %tmp15456 = getelementptr inbounds float* %tmp15455, i64 1
+ %tmp15457 = getelementptr inbounds float* %tmp15456, i64 1
+ %tmp15458 = getelementptr inbounds float* %tmp15457, i64 1
+ %tmp15459 = getelementptr inbounds float* %tmp15458, i64 1
+ %tmp15460 = getelementptr inbounds float* %tmp15459, i64 1
+ %tmp15461 = getelementptr inbounds float* %tmp15460, i64 1
+ %tmp15462 = getelementptr inbounds float* %tmp15461, i64 1
+ %tmp15463 = getelementptr inbounds float* %tmp15462, i64 1
+ %tmp15464 = getelementptr inbounds float* %tmp15463, i64 1
+ %tmp15465 = getelementptr inbounds float* %tmp15464, i64 1
+ %tmp15466 = getelementptr inbounds float* %tmp15465, i64 1
+ %tmp15467 = getelementptr inbounds float* %tmp15466, i64 1
+ %tmp15468 = getelementptr inbounds float* %tmp15467, i64 1
+ %tmp15469 = getelementptr inbounds float* %tmp15468, i64 1
+ %tmp15470 = getelementptr inbounds float* %tmp15469, i64 1
+ %tmp15471 = getelementptr inbounds float* %tmp15470, i64 1
+ %tmp15472 = getelementptr inbounds float* %tmp15471, i64 1
+ %tmp15473 = getelementptr inbounds float* %tmp15472, i64 1
+ %tmp15474 = getelementptr inbounds float* %tmp15473, i64 1
+ %tmp15475 = getelementptr inbounds float* %tmp15474, i64 1
+ %tmp15476 = getelementptr inbounds float* %tmp15475, i64 1
+ %tmp15477 = getelementptr inbounds float* %tmp15476, i64 1
+ %tmp15478 = getelementptr inbounds float* %tmp15477, i64 1
+ %tmp15479 = getelementptr inbounds float* %tmp15478, i64 1
+ %tmp15480 = getelementptr inbounds float* %tmp15479, i64 1
+ %tmp15481 = getelementptr inbounds float* %tmp15480, i64 1
+ %tmp15482 = getelementptr inbounds float* %tmp15481, i64 1
+ %tmp15483 = getelementptr inbounds float* %tmp15482, i64 1
+ %tmp15484 = getelementptr inbounds float* %tmp15483, i64 1
+ %tmp15485 = getelementptr inbounds float* %tmp15484, i64 1
+ %tmp15486 = getelementptr inbounds float* %tmp15485, i64 1
+ %tmp15487 = getelementptr inbounds float* %tmp15486, i64 1
+ %tmp15488 = getelementptr inbounds float* %tmp15487, i64 1
+ %tmp15489 = getelementptr inbounds float* %tmp15488, i64 1
+ %tmp15490 = getelementptr inbounds float* %tmp15489, i64 1
+ %tmp15491 = getelementptr inbounds float* %tmp15490, i64 1
+ %tmp15492 = getelementptr inbounds float* %tmp15491, i64 1
+ %tmp15493 = getelementptr inbounds float* %tmp15492, i64 1
+ %tmp15494 = getelementptr inbounds float* %tmp15493, i64 1
+ %tmp15495 = getelementptr inbounds float* %tmp15494, i64 1
+ %tmp15496 = getelementptr inbounds float* %tmp15495, i64 1
+ %tmp15497 = getelementptr inbounds float* %tmp15496, i64 1
+ %tmp15498 = getelementptr inbounds float* %tmp15497, i64 1
+ %tmp15499 = getelementptr inbounds float* %tmp15498, i64 1
+ %tmp15500 = getelementptr inbounds float* %tmp15499, i64 1
+ %tmp15501 = getelementptr inbounds float* %tmp15500, i64 1
+ %tmp15502 = getelementptr inbounds float* %tmp15501, i64 1
+ %tmp15503 = getelementptr inbounds float* %tmp15502, i64 1
+ %tmp15504 = getelementptr inbounds float* %tmp15503, i64 1
+ %tmp15505 = getelementptr inbounds float* %tmp15504, i64 1
+ %tmp15506 = getelementptr inbounds float* %tmp15505, i64 1
+ %tmp15507 = getelementptr inbounds float* %tmp15506, i64 1
+ %tmp15508 = getelementptr inbounds float* %tmp15507, i64 1
+ %tmp15509 = getelementptr inbounds float* %tmp15508, i64 1
+ %tmp15510 = getelementptr inbounds float* %tmp15509, i64 1
+ %tmp15511 = getelementptr inbounds float* %tmp15510, i64 1
+ %tmp15512 = getelementptr inbounds float* %tmp15511, i64 1
+ %tmp15513 = getelementptr inbounds float* %tmp15512, i64 1
+ %tmp15514 = getelementptr inbounds float* %tmp15513, i64 1
+ %tmp15515 = getelementptr inbounds float* %tmp15514, i64 1
+ %tmp15516 = getelementptr inbounds float* %tmp15515, i64 1
+ %tmp15517 = getelementptr inbounds float* %tmp15516, i64 1
+ %tmp15518 = getelementptr inbounds float* %tmp15517, i64 1
+ %tmp15519 = getelementptr inbounds float* %tmp15518, i64 1
+ %tmp15520 = getelementptr inbounds float* %tmp15519, i64 1
+ %tmp15521 = getelementptr inbounds float* %tmp15520, i64 1
+ %tmp15522 = getelementptr inbounds float* %tmp15521, i64 1
+ %tmp15523 = getelementptr inbounds float* %tmp15522, i64 1
+ %tmp15524 = getelementptr inbounds float* %tmp15523, i64 1
+ %tmp15525 = getelementptr inbounds float* %tmp15524, i64 1
+ %tmp15526 = getelementptr inbounds float* %tmp15525, i64 1
+ %tmp15527 = getelementptr inbounds float* %tmp15526, i64 1
+ %tmp15528 = getelementptr inbounds float* %tmp15527, i64 1
+ %tmp15529 = getelementptr inbounds float* %tmp15528, i64 1
+ %tmp15530 = getelementptr inbounds float* %tmp15529, i64 1
+ %tmp15531 = getelementptr inbounds float* %tmp15530, i64 1
+ %tmp15532 = getelementptr inbounds float* %tmp15531, i64 1
+ %tmp15533 = getelementptr inbounds float* %tmp15532, i64 1
+ %tmp15534 = getelementptr inbounds float* %tmp15533, i64 1
+ %tmp15535 = getelementptr inbounds float* %tmp15534, i64 1
+ %tmp15536 = getelementptr inbounds float* %tmp15535, i64 1
+ %tmp15537 = getelementptr inbounds float* %tmp15536, i64 1
+ %tmp15538 = getelementptr inbounds float* %tmp15537, i64 1
+ %tmp15539 = getelementptr inbounds float* %tmp15538, i64 1
+ %tmp15540 = getelementptr inbounds float* %tmp15539, i64 1
+ %tmp15541 = getelementptr inbounds float* %tmp15540, i64 1
+ %tmp15542 = getelementptr inbounds float* %tmp15541, i64 1
+ %tmp15543 = getelementptr inbounds float* %tmp15542, i64 1
+ %tmp15544 = getelementptr inbounds float* %tmp15543, i64 1
+ %tmp15545 = getelementptr inbounds float* %tmp15544, i64 1
+ %tmp15546 = getelementptr inbounds float* %tmp15545, i64 1
+ %tmp15547 = getelementptr inbounds float* %tmp15546, i64 1
+ %tmp15548 = getelementptr inbounds float* %tmp15547, i64 1
+ %tmp15549 = getelementptr inbounds float* %tmp15548, i64 1
+ %tmp15550 = getelementptr inbounds float* %tmp15549, i64 1
+ %tmp15551 = getelementptr inbounds float* %tmp15550, i64 1
+ %tmp15552 = getelementptr inbounds float* %tmp15551, i64 1
+ %tmp15553 = getelementptr inbounds float* %tmp15552, i64 1
+ %tmp15554 = getelementptr inbounds float* %tmp15553, i64 1
+ %tmp15555 = getelementptr inbounds float* %tmp15554, i64 1
+ %tmp15556 = getelementptr inbounds float* %tmp15555, i64 1
+ %tmp15557 = getelementptr inbounds float* %tmp15556, i64 1
+ %tmp15558 = getelementptr inbounds float* %tmp15557, i64 1
+ %tmp15559 = getelementptr inbounds float* %tmp15558, i64 1
+ %tmp15560 = getelementptr inbounds float* %tmp15559, i64 1
+ %tmp15561 = getelementptr inbounds float* %tmp15560, i64 1
+ %tmp15562 = getelementptr inbounds float* %tmp15561, i64 1
+ %tmp15563 = getelementptr inbounds float* %tmp15562, i64 1
+ %tmp15564 = getelementptr inbounds float* %tmp15563, i64 1
+ %tmp15565 = getelementptr inbounds float* %tmp15564, i64 1
+ %tmp15566 = getelementptr inbounds float* %tmp15565, i64 1
+ %tmp15567 = getelementptr inbounds float* %tmp15566, i64 1
+ %tmp15568 = getelementptr inbounds float* %tmp15567, i64 1
+ %tmp15569 = getelementptr inbounds float* %tmp15568, i64 1
+ %tmp15570 = getelementptr inbounds float* %tmp15569, i64 1
+ %tmp15571 = getelementptr inbounds float* %tmp15570, i64 1
+ %tmp15572 = getelementptr inbounds float* %tmp15571, i64 1
+ %tmp15573 = getelementptr inbounds float* %tmp15572, i64 1
+ %tmp15574 = getelementptr inbounds float* %tmp15573, i64 1
+ %tmp15575 = getelementptr inbounds float* %tmp15574, i64 1
+ %tmp15576 = getelementptr inbounds float* %tmp15575, i64 1
+ %tmp15577 = getelementptr inbounds float* %tmp15576, i64 1
+ %tmp15578 = getelementptr inbounds float* %tmp15577, i64 1
+ %tmp15579 = getelementptr inbounds float* %tmp15578, i64 1
+ %tmp15580 = getelementptr inbounds float* %tmp15579, i64 1
+ %tmp15581 = getelementptr inbounds float* %tmp15580, i64 1
+ %tmp15582 = getelementptr inbounds float* %tmp15581, i64 1
+ %tmp15583 = getelementptr inbounds float* %tmp15582, i64 1
+ %tmp15584 = getelementptr inbounds float* %tmp15583, i64 1
+ %tmp15585 = getelementptr inbounds float* %tmp15584, i64 1
+ %tmp15586 = getelementptr inbounds float* %tmp15585, i64 1
+ %tmp15587 = getelementptr inbounds float* %tmp15586, i64 1
+ %tmp15588 = getelementptr inbounds float* %tmp15587, i64 1
+ %tmp15589 = getelementptr inbounds float* %tmp15588, i64 1
+ %tmp15590 = getelementptr inbounds float* %tmp15589, i64 1
+ %tmp15591 = getelementptr inbounds float* %tmp15590, i64 1
+ %tmp15592 = getelementptr inbounds float* %tmp15591, i64 1
+ %tmp15593 = getelementptr inbounds float* %tmp15592, i64 1
+ %tmp15594 = getelementptr inbounds float* %tmp15593, i64 1
+ %tmp15595 = getelementptr inbounds float* %tmp15594, i64 1
+ %tmp15596 = getelementptr inbounds float* %tmp15595, i64 1
+ %tmp15597 = getelementptr inbounds float* %tmp15596, i64 1
+ %tmp15598 = getelementptr inbounds float* %tmp15597, i64 1
+ %tmp15599 = getelementptr inbounds float* %tmp15598, i64 1
+ %tmp15600 = getelementptr inbounds float* %tmp15599, i64 1
+ %tmp15601 = getelementptr inbounds float* %tmp15600, i64 1
+ %tmp15602 = getelementptr inbounds float* %tmp15601, i64 1
+ %tmp15603 = getelementptr inbounds float* %tmp15602, i64 1
+ %tmp15604 = getelementptr inbounds float* %tmp15603, i64 1
+ %tmp15605 = getelementptr inbounds float* %tmp15604, i64 1
+ %tmp15606 = getelementptr inbounds float* %tmp15605, i64 1
+ %tmp15607 = getelementptr inbounds float* %tmp15606, i64 1
+ %tmp15608 = getelementptr inbounds float* %tmp15607, i64 1
+ %tmp15609 = getelementptr inbounds float* %tmp15608, i64 1
+ %tmp15610 = getelementptr inbounds float* %tmp15609, i64 1
+ %tmp15611 = getelementptr inbounds float* %tmp15610, i64 1
+ %tmp15612 = getelementptr inbounds float* %tmp15611, i64 1
+ %tmp15613 = getelementptr inbounds float* %tmp15612, i64 1
+ %tmp15614 = getelementptr inbounds float* %tmp15613, i64 1
+ %tmp15615 = getelementptr inbounds float* %tmp15614, i64 1
+ %tmp15616 = getelementptr inbounds float* %tmp15615, i64 1
+ %tmp15617 = getelementptr inbounds float* %tmp15616, i64 1
+ %tmp15618 = getelementptr inbounds float* %tmp15617, i64 1
+ %tmp15619 = getelementptr inbounds float* %tmp15618, i64 1
+ %tmp15620 = getelementptr inbounds float* %tmp15619, i64 1
+ %tmp15621 = getelementptr inbounds float* %tmp15620, i64 1
+ %tmp15622 = getelementptr inbounds float* %tmp15621, i64 1
+ %tmp15623 = getelementptr inbounds float* %tmp15622, i64 1
+ %tmp15624 = getelementptr inbounds float* %tmp15623, i64 1
+ %tmp15625 = getelementptr inbounds float* %tmp15624, i64 1
+ %tmp15626 = getelementptr inbounds float* %tmp15625, i64 1
+ %tmp15627 = getelementptr inbounds float* %tmp15626, i64 1
+ %tmp15628 = getelementptr inbounds float* %tmp15627, i64 1
+ %tmp15629 = getelementptr inbounds float* %tmp15628, i64 1
+ %tmp15630 = getelementptr inbounds float* %tmp15629, i64 1
+ %tmp15631 = getelementptr inbounds float* %tmp15630, i64 1
+ %tmp15632 = getelementptr inbounds float* %tmp15631, i64 1
+ %tmp15633 = getelementptr inbounds float* %tmp15632, i64 1
+ %tmp15634 = getelementptr inbounds float* %tmp15633, i64 1
+ %tmp15635 = getelementptr inbounds float* %tmp15634, i64 1
+ %tmp15636 = getelementptr inbounds float* %tmp15635, i64 1
+ %tmp15637 = getelementptr inbounds float* %tmp15636, i64 1
+ %tmp15638 = getelementptr inbounds float* %tmp15637, i64 1
+ %tmp15639 = getelementptr inbounds float* %tmp15638, i64 1
+ %tmp15640 = getelementptr inbounds float* %tmp15639, i64 1
+ %tmp15641 = getelementptr inbounds float* %tmp15640, i64 1
+ %tmp15642 = getelementptr inbounds float* %tmp15641, i64 1
+ %tmp15643 = getelementptr inbounds float* %tmp15642, i64 1
+ %tmp15644 = getelementptr inbounds float* %tmp15643, i64 1
+ %tmp15645 = getelementptr inbounds float* %tmp15644, i64 1
+ %tmp15646 = getelementptr inbounds float* %tmp15645, i64 1
+ %tmp15647 = getelementptr inbounds float* %tmp15646, i64 1
+ %tmp15648 = getelementptr inbounds float* %tmp15647, i64 1
+ %tmp15649 = getelementptr inbounds float* %tmp15648, i64 1
+ %tmp15650 = getelementptr inbounds float* %tmp15649, i64 1
+ %tmp15651 = getelementptr inbounds float* %tmp15650, i64 1
+ %tmp15652 = getelementptr inbounds float* %tmp15651, i64 1
+ %tmp15653 = getelementptr inbounds float* %tmp15652, i64 1
+ %tmp15654 = getelementptr inbounds float* %tmp15653, i64 1
+ %tmp15655 = getelementptr inbounds float* %tmp15654, i64 1
+ %tmp15656 = getelementptr inbounds float* %tmp15655, i64 1
+ %tmp15657 = getelementptr inbounds float* %tmp15656, i64 1
+ %tmp15658 = getelementptr inbounds float* %tmp15657, i64 1
+ %tmp15659 = getelementptr inbounds float* %tmp15658, i64 1
+ %tmp15660 = getelementptr inbounds float* %tmp15659, i64 1
+ %tmp15661 = getelementptr inbounds float* %tmp15660, i64 1
+ %tmp15662 = getelementptr inbounds float* %tmp15661, i64 1
+ %tmp15663 = getelementptr inbounds float* %tmp15662, i64 1
+ %tmp15664 = getelementptr inbounds float* %tmp15663, i64 1
+ %tmp15665 = getelementptr inbounds float* %tmp15664, i64 1
+ %tmp15666 = getelementptr inbounds float* %tmp15665, i64 1
+ %tmp15667 = getelementptr inbounds float* %tmp15666, i64 1
+ %tmp15668 = getelementptr inbounds float* %tmp15667, i64 1
+ %tmp15669 = getelementptr inbounds float* %tmp15668, i64 1
+ %tmp15670 = getelementptr inbounds float* %tmp15669, i64 1
+ %tmp15671 = getelementptr inbounds float* %tmp15670, i64 1
+ %tmp15672 = getelementptr inbounds float* %tmp15671, i64 1
+ %tmp15673 = getelementptr inbounds float* %tmp15672, i64 1
+ %tmp15674 = getelementptr inbounds float* %tmp15673, i64 1
+ %tmp15675 = getelementptr inbounds float* %tmp15674, i64 1
+ %tmp15676 = getelementptr inbounds float* %tmp15675, i64 1
+ %tmp15677 = getelementptr inbounds float* %tmp15676, i64 1
+ %tmp15678 = getelementptr inbounds float* %tmp15677, i64 1
+ %tmp15679 = getelementptr inbounds float* %tmp15678, i64 1
+ %tmp15680 = getelementptr inbounds float* %tmp15679, i64 1
+ %tmp15681 = getelementptr inbounds float* %tmp15680, i64 1
+ %tmp15682 = getelementptr inbounds float* %tmp15681, i64 1
+ %tmp15683 = getelementptr inbounds float* %tmp15682, i64 1
+ %tmp15684 = getelementptr inbounds float* %tmp15683, i64 1
+ %tmp15685 = getelementptr inbounds float* %tmp15684, i64 1
+ %tmp15686 = getelementptr inbounds float* %tmp15685, i64 1
+ %tmp15687 = getelementptr inbounds float* %tmp15686, i64 1
+ %tmp15688 = getelementptr inbounds float* %tmp15687, i64 1
+ %tmp15689 = getelementptr inbounds float* %tmp15688, i64 1
+ %tmp15690 = getelementptr inbounds float* %tmp15689, i64 1
+ %tmp15691 = getelementptr inbounds float* %tmp15690, i64 1
+ %tmp15692 = getelementptr inbounds float* %tmp15691, i64 1
+ %tmp15693 = getelementptr inbounds float* %tmp15692, i64 1
+ %tmp15694 = getelementptr inbounds float* %tmp15693, i64 1
+ %tmp15695 = getelementptr inbounds float* %tmp15694, i64 1
+ %tmp15696 = getelementptr inbounds float* %tmp15695, i64 1
+ %tmp15697 = getelementptr inbounds float* %tmp15696, i64 1
+ %tmp15698 = getelementptr inbounds float* %tmp15697, i64 1
+ %tmp15699 = getelementptr inbounds float* %tmp15698, i64 1
+ %tmp15700 = getelementptr inbounds float* %tmp15699, i64 1
+ %tmp15701 = getelementptr inbounds float* %tmp15700, i64 1
+ %tmp15702 = getelementptr inbounds float* %tmp15701, i64 1
+ %tmp15703 = getelementptr inbounds float* %tmp15702, i64 1
+ %tmp15704 = getelementptr inbounds float* %tmp15703, i64 1
+ %tmp15705 = getelementptr inbounds float* %tmp15704, i64 1
+ %tmp15706 = getelementptr inbounds float* %tmp15705, i64 1
+ %tmp15707 = getelementptr inbounds float* %tmp15706, i64 1
+ %tmp15708 = getelementptr inbounds float* %tmp15707, i64 1
+ %tmp15709 = getelementptr inbounds float* %tmp15708, i64 1
+ %tmp15710 = getelementptr inbounds float* %tmp15709, i64 1
+ %tmp15711 = getelementptr inbounds float* %tmp15710, i64 1
+ %tmp15712 = getelementptr inbounds float* %tmp15711, i64 1
+ %tmp15713 = getelementptr inbounds float* %tmp15712, i64 1
+ %tmp15714 = getelementptr inbounds float* %tmp15713, i64 1
+ %tmp15715 = getelementptr inbounds float* %tmp15714, i64 1
+ %tmp15716 = getelementptr inbounds float* %tmp15715, i64 1
+ %tmp15717 = getelementptr inbounds float* %tmp15716, i64 1
+ %tmp15718 = getelementptr inbounds float* %tmp15717, i64 1
+ %tmp15719 = getelementptr inbounds float* %tmp15718, i64 1
+ %tmp15720 = getelementptr inbounds float* %tmp15719, i64 1
+ %tmp15721 = getelementptr inbounds float* %tmp15720, i64 1
+ %tmp15722 = getelementptr inbounds float* %tmp15721, i64 1
+ %tmp15723 = getelementptr inbounds float* %tmp15722, i64 1
+ %tmp15724 = getelementptr inbounds float* %tmp15723, i64 1
+ %tmp15725 = getelementptr inbounds float* %tmp15724, i64 1
+ %tmp15726 = getelementptr inbounds float* %tmp15725, i64 1
+ %tmp15727 = getelementptr inbounds float* %tmp15726, i64 1
+ %tmp15728 = getelementptr inbounds float* %tmp15727, i64 1
+ %tmp15729 = getelementptr inbounds float* %tmp15728, i64 1
+ %tmp15730 = getelementptr inbounds float* %tmp15729, i64 1
+ %tmp15731 = getelementptr inbounds float* %tmp15730, i64 1
+ %tmp15732 = getelementptr inbounds float* %tmp15731, i64 1
+ %tmp15733 = getelementptr inbounds float* %tmp15732, i64 1
+ %tmp15734 = getelementptr inbounds float* %tmp15733, i64 1
+ %tmp15735 = getelementptr inbounds float* %tmp15734, i64 1
+ %tmp15736 = getelementptr inbounds float* %tmp15735, i64 1
+ %tmp15737 = getelementptr inbounds float* %tmp15736, i64 1
+ %tmp15738 = getelementptr inbounds float* %tmp15737, i64 1
+ %tmp15739 = getelementptr inbounds float* %tmp15738, i64 1
+ %tmp15740 = getelementptr inbounds float* %tmp15739, i64 1
+ %tmp15741 = getelementptr inbounds float* %tmp15740, i64 1
+ %tmp15742 = getelementptr inbounds float* %tmp15741, i64 1
+ %tmp15743 = getelementptr inbounds float* %tmp15742, i64 1
+ %tmp15744 = getelementptr inbounds float* %tmp15743, i64 1
+ %tmp15745 = getelementptr inbounds float* %tmp15744, i64 1
+ %tmp15746 = getelementptr inbounds float* %tmp15745, i64 1
+ %tmp15747 = getelementptr inbounds float* %tmp15746, i64 1
+ %tmp15748 = getelementptr inbounds float* %tmp15747, i64 1
+ %tmp15749 = getelementptr inbounds float* %tmp15748, i64 1
+ %tmp15750 = getelementptr inbounds float* %tmp15749, i64 1
+ %tmp15751 = getelementptr inbounds float* %tmp15750, i64 1
+ %tmp15752 = getelementptr inbounds float* %tmp15751, i64 1
+ %tmp15753 = getelementptr inbounds float* %tmp15752, i64 1
+ %tmp15754 = getelementptr inbounds float* %tmp15753, i64 1
+ %tmp15755 = getelementptr inbounds float* %tmp15754, i64 1
+ %tmp15756 = getelementptr inbounds float* %tmp15755, i64 1
+ %tmp15757 = getelementptr inbounds float* %tmp15756, i64 1
+ %tmp15758 = getelementptr inbounds float* %tmp15757, i64 1
+ %tmp15759 = getelementptr inbounds float* %tmp15758, i64 1
+ %tmp15760 = getelementptr inbounds float* %tmp15759, i64 1
+ %tmp15761 = getelementptr inbounds float* %tmp15760, i64 1
+ %tmp15762 = getelementptr inbounds float* %tmp15761, i64 1
+ %tmp15763 = getelementptr inbounds float* %tmp15762, i64 1
+ %tmp15764 = getelementptr inbounds float* %tmp15763, i64 1
+ %tmp15765 = getelementptr inbounds float* %tmp15764, i64 1
+ %tmp15766 = getelementptr inbounds float* %tmp15765, i64 1
+ %tmp15767 = getelementptr inbounds float* %tmp15766, i64 1
+ %tmp15768 = getelementptr inbounds float* %tmp15767, i64 1
+ %tmp15769 = getelementptr inbounds float* %tmp15768, i64 1
+ %tmp15770 = getelementptr inbounds float* %tmp15769, i64 1
+ %tmp15771 = getelementptr inbounds float* %tmp15770, i64 1
+ %tmp15772 = getelementptr inbounds float* %tmp15771, i64 1
+ %tmp15773 = getelementptr inbounds float* %tmp15772, i64 1
+ %tmp15774 = getelementptr inbounds float* %tmp15773, i64 1
+ %tmp15775 = getelementptr inbounds float* %tmp15774, i64 1
+ %tmp15776 = getelementptr inbounds float* %tmp15775, i64 1
+ %tmp15777 = getelementptr inbounds float* %tmp15776, i64 1
+ %tmp15778 = getelementptr inbounds float* %tmp15777, i64 1
+ %tmp15779 = getelementptr inbounds float* %tmp15778, i64 1
+ %tmp15780 = getelementptr inbounds float* %tmp15779, i64 1
+ %tmp15781 = getelementptr inbounds float* %tmp15780, i64 1
+ %tmp15782 = getelementptr inbounds float* %tmp15781, i64 1
+ %tmp15783 = getelementptr inbounds float* %tmp15782, i64 1
+ %tmp15784 = getelementptr inbounds float* %tmp15783, i64 1
+ %tmp15785 = getelementptr inbounds float* %tmp15784, i64 1
+ %tmp15786 = getelementptr inbounds float* %tmp15785, i64 1
+ %tmp15787 = getelementptr inbounds float* %tmp15786, i64 1
+ %tmp15788 = getelementptr inbounds float* %tmp15787, i64 1
+ %tmp15789 = getelementptr inbounds float* %tmp15788, i64 1
+ %tmp15790 = getelementptr inbounds float* %tmp15789, i64 1
+ %tmp15791 = getelementptr inbounds float* %tmp15790, i64 1
+ %tmp15792 = getelementptr inbounds float* %tmp15791, i64 1
+ %tmp15793 = getelementptr inbounds float* %tmp15792, i64 1
+ %tmp15794 = getelementptr inbounds float* %tmp15793, i64 1
+ %tmp15795 = getelementptr inbounds float* %tmp15794, i64 1
+ %tmp15796 = getelementptr inbounds float* %tmp15795, i64 1
+ %tmp15797 = getelementptr inbounds float* %tmp15796, i64 1
+ %tmp15798 = getelementptr inbounds float* %tmp15797, i64 1
+ %tmp15799 = getelementptr inbounds float* %tmp15798, i64 1
+ %tmp15800 = getelementptr inbounds float* %tmp15799, i64 1
+ %tmp15801 = getelementptr inbounds float* %tmp15800, i64 1
+ %tmp15802 = getelementptr inbounds float* %tmp15801, i64 1
+ %tmp15803 = getelementptr inbounds float* %tmp15802, i64 1
+ %tmp15804 = getelementptr inbounds float* %tmp15803, i64 1
+ %tmp15805 = getelementptr inbounds float* %tmp15804, i64 1
+ %tmp15806 = getelementptr inbounds float* %tmp15805, i64 1
+ %tmp15807 = getelementptr inbounds float* %tmp15806, i64 1
+ %tmp15808 = getelementptr inbounds float* %tmp15807, i64 1
+ %tmp15809 = getelementptr inbounds float* %tmp15808, i64 1
+ %tmp15810 = getelementptr inbounds float* %tmp15809, i64 1
+ %tmp15811 = getelementptr inbounds float* %tmp15810, i64 1
+ %tmp15812 = getelementptr inbounds float* %tmp15811, i64 1
+ %tmp15813 = getelementptr inbounds float* %tmp15812, i64 1
+ %tmp15814 = getelementptr inbounds float* %tmp15813, i64 1
+ %tmp15815 = getelementptr inbounds float* %tmp15814, i64 1
+ %tmp15816 = getelementptr inbounds float* %tmp15815, i64 1
+ %tmp15817 = getelementptr inbounds float* %tmp15816, i64 1
+ %tmp15818 = getelementptr inbounds float* %tmp15817, i64 1
+ %tmp15819 = getelementptr inbounds float* %tmp15818, i64 1
+ %tmp15820 = getelementptr inbounds float* %tmp15819, i64 1
+ %tmp15821 = getelementptr inbounds float* %tmp15820, i64 1
+ %tmp15822 = getelementptr inbounds float* %tmp15821, i64 1
+ %tmp15823 = getelementptr inbounds float* %tmp15822, i64 1
+ %tmp15824 = getelementptr inbounds float* %tmp15823, i64 1
+ %tmp15825 = getelementptr inbounds float* %tmp15824, i64 1
+ %tmp15826 = getelementptr inbounds float* %tmp15825, i64 1
+ %tmp15827 = getelementptr inbounds float* %tmp15826, i64 1
+ %tmp15828 = getelementptr inbounds float* %tmp15827, i64 1
+ %tmp15829 = getelementptr inbounds float* %tmp15828, i64 1
+ %tmp15830 = getelementptr inbounds float* %tmp15829, i64 1
+ %tmp15831 = getelementptr inbounds float* %tmp15830, i64 1
+ %tmp15832 = getelementptr inbounds float* %tmp15831, i64 1
+ %tmp15833 = getelementptr inbounds float* %tmp15832, i64 1
+ %tmp15834 = getelementptr inbounds float* %tmp15833, i64 1
+ %tmp15835 = getelementptr inbounds float* %tmp15834, i64 1
+ %tmp15836 = getelementptr inbounds float* %tmp15835, i64 1
+ %tmp15837 = getelementptr inbounds float* %tmp15836, i64 1
+ %tmp15838 = getelementptr inbounds float* %tmp15837, i64 1
+ %tmp15839 = getelementptr inbounds float* %tmp15838, i64 1
+ %tmp15840 = getelementptr inbounds float* %tmp15839, i64 1
+ %tmp15841 = getelementptr inbounds float* %tmp15840, i64 1
+ %tmp15842 = getelementptr inbounds float* %tmp15841, i64 1
+ %tmp15843 = getelementptr inbounds float* %tmp15842, i64 1
+ %tmp15844 = getelementptr inbounds float* %tmp15843, i64 1
+ %tmp15845 = getelementptr inbounds float* %tmp15844, i64 1
+ %tmp15846 = getelementptr inbounds float* %tmp15845, i64 1
+ %tmp15847 = getelementptr inbounds float* %tmp15846, i64 1
+ %tmp15848 = getelementptr inbounds float* %tmp15847, i64 1
+ %tmp15849 = getelementptr inbounds float* %tmp15848, i64 1
+ %tmp15850 = getelementptr inbounds float* %tmp15849, i64 1
+ %tmp15851 = getelementptr inbounds float* %tmp15850, i64 1
+ %tmp15852 = getelementptr inbounds float* %tmp15851, i64 1
+ %tmp15853 = getelementptr inbounds float* %tmp15852, i64 1
+ %tmp15854 = getelementptr inbounds float* %tmp15853, i64 1
+ %tmp15855 = getelementptr inbounds float* %tmp15854, i64 1
+ %tmp15856 = getelementptr inbounds float* %tmp15855, i64 1
+ %tmp15857 = getelementptr inbounds float* %tmp15856, i64 1
+ %tmp15858 = getelementptr inbounds float* %tmp15857, i64 1
+ %tmp15859 = getelementptr inbounds float* %tmp15858, i64 1
+ %tmp15860 = getelementptr inbounds float* %tmp15859, i64 1
+ %tmp15861 = getelementptr inbounds float* %tmp15860, i64 1
+ %tmp15862 = getelementptr inbounds float* %tmp15861, i64 1
+ %tmp15863 = getelementptr inbounds float* %tmp15862, i64 1
+ %tmp15864 = getelementptr inbounds float* %tmp15863, i64 1
+ %tmp15865 = getelementptr inbounds float* %tmp15864, i64 1
+ %tmp15866 = getelementptr inbounds float* %tmp15865, i64 1
+ %tmp15867 = getelementptr inbounds float* %tmp15866, i64 1
+ %tmp15868 = getelementptr inbounds float* %tmp15867, i64 1
+ %tmp15869 = getelementptr inbounds float* %tmp15868, i64 1
+ %tmp15870 = getelementptr inbounds float* %tmp15869, i64 1
+ %tmp15871 = getelementptr inbounds float* %tmp15870, i64 1
+ %tmp15872 = getelementptr inbounds float* %tmp15871, i64 1
+ %tmp15873 = getelementptr inbounds float* %tmp15872, i64 1
+ %tmp15874 = getelementptr inbounds float* %tmp15873, i64 1
+ %tmp15875 = getelementptr inbounds float* %tmp15874, i64 1
+ %tmp15876 = getelementptr inbounds float* %tmp15875, i64 1
+ %tmp15877 = getelementptr inbounds float* %tmp15876, i64 1
+ %tmp15878 = getelementptr inbounds float* %tmp15877, i64 1
+ %tmp15879 = getelementptr inbounds float* %tmp15878, i64 1
+ %tmp15880 = getelementptr inbounds float* %tmp15879, i64 1
+ %tmp15881 = getelementptr inbounds float* %tmp15880, i64 1
+ %tmp15882 = getelementptr inbounds float* %tmp15881, i64 1
+ %tmp15883 = getelementptr inbounds float* %tmp15882, i64 1
+ %tmp15884 = getelementptr inbounds float* %tmp15883, i64 1
+ %tmp15885 = getelementptr inbounds float* %tmp15884, i64 1
+ %tmp15886 = getelementptr inbounds float* %tmp15885, i64 1
+ %tmp15887 = getelementptr inbounds float* %tmp15886, i64 1
+ %tmp15888 = getelementptr inbounds float* %tmp15887, i64 1
+ %tmp15889 = getelementptr inbounds float* %tmp15888, i64 1
+ %tmp15890 = getelementptr inbounds float* %tmp15889, i64 1
+ %tmp15891 = getelementptr inbounds float* %tmp15890, i64 1
+ %tmp15892 = getelementptr inbounds float* %tmp15891, i64 1
+ %tmp15893 = getelementptr inbounds float* %tmp15892, i64 1
+ %tmp15894 = getelementptr inbounds float* %tmp15893, i64 1
+ %tmp15895 = getelementptr inbounds float* %tmp15894, i64 1
+ %tmp15896 = getelementptr inbounds float* %tmp15895, i64 1
+ %tmp15897 = getelementptr inbounds float* %tmp15896, i64 1
+ %tmp15898 = getelementptr inbounds float* %tmp15897, i64 1
+ %tmp15899 = getelementptr inbounds float* %tmp15898, i64 1
+ %tmp15900 = getelementptr inbounds float* %tmp15899, i64 1
+ %tmp15901 = getelementptr inbounds float* %tmp15900, i64 1
+ %tmp15902 = getelementptr inbounds float* %tmp15901, i64 1
+ %tmp15903 = getelementptr inbounds float* %tmp15902, i64 1
+ %tmp15904 = getelementptr inbounds float* %tmp15903, i64 1
+ %tmp15905 = getelementptr inbounds float* %tmp15904, i64 1
+ %tmp15906 = getelementptr inbounds float* %tmp15905, i64 1
+ %tmp15907 = getelementptr inbounds float* %tmp15906, i64 1
+ %tmp15908 = getelementptr inbounds float* %tmp15907, i64 1
+ %tmp15909 = getelementptr inbounds float* %tmp15908, i64 1
+ %tmp15910 = getelementptr inbounds float* %tmp15909, i64 1
+ %tmp15911 = getelementptr inbounds float* %tmp15910, i64 1
+ %tmp15912 = getelementptr inbounds float* %tmp15911, i64 1
+ %tmp15913 = getelementptr inbounds float* %tmp15912, i64 1
+ %tmp15914 = getelementptr inbounds float* %tmp15913, i64 1
+ %tmp15915 = getelementptr inbounds float* %tmp15914, i64 1
+ %tmp15916 = getelementptr inbounds float* %tmp15915, i64 1
+ %tmp15917 = getelementptr inbounds float* %tmp15916, i64 1
+ %tmp15918 = getelementptr inbounds float* %tmp15917, i64 1
+ %tmp15919 = getelementptr inbounds float* %tmp15918, i64 1
+ %tmp15920 = getelementptr inbounds float* %tmp15919, i64 1
+ %tmp15921 = getelementptr inbounds float* %tmp15920, i64 1
+ %tmp15922 = getelementptr inbounds float* %tmp15921, i64 1
+ %tmp15923 = getelementptr inbounds float* %tmp15922, i64 1
+ %tmp15924 = getelementptr inbounds float* %tmp15923, i64 1
+ %tmp15925 = getelementptr inbounds float* %tmp15924, i64 1
+ %tmp15926 = getelementptr inbounds float* %tmp15925, i64 1
+ %tmp15927 = getelementptr inbounds float* %tmp15926, i64 1
+ %tmp15928 = getelementptr inbounds float* %tmp15927, i64 1
+ %tmp15929 = getelementptr inbounds float* %tmp15928, i64 1
+ %tmp15930 = getelementptr inbounds float* %tmp15929, i64 1
+ %tmp15931 = getelementptr inbounds float* %tmp15930, i64 1
+ %tmp15932 = getelementptr inbounds float* %tmp15931, i64 1
+ %tmp15933 = getelementptr inbounds float* %tmp15932, i64 1
+ %tmp15934 = getelementptr inbounds float* %tmp15933, i64 1
+ %tmp15935 = getelementptr inbounds float* %tmp15934, i64 1
+ %tmp15936 = getelementptr inbounds float* %tmp15935, i64 1
+ %tmp15937 = getelementptr inbounds float* %tmp15936, i64 1
+ %tmp15938 = getelementptr inbounds float* %tmp15937, i64 1
+ %tmp15939 = getelementptr inbounds float* %tmp15938, i64 1
+ %tmp15940 = getelementptr inbounds float* %tmp15939, i64 1
+ %tmp15941 = getelementptr inbounds float* %tmp15940, i64 1
+ %tmp15942 = getelementptr inbounds float* %tmp15941, i64 1
+ %tmp15943 = getelementptr inbounds float* %tmp15942, i64 1
+ %tmp15944 = getelementptr inbounds float* %tmp15943, i64 1
+ %tmp15945 = getelementptr inbounds float* %tmp15944, i64 1
+ %tmp15946 = getelementptr inbounds float* %tmp15945, i64 1
+ %tmp15947 = getelementptr inbounds float* %tmp15946, i64 1
+ %tmp15948 = getelementptr inbounds float* %tmp15947, i64 1
+ %tmp15949 = getelementptr inbounds float* %tmp15948, i64 1
+ %tmp15950 = getelementptr inbounds float* %tmp15949, i64 1
+ %tmp15951 = getelementptr inbounds float* %tmp15950, i64 1
+ %tmp15952 = getelementptr inbounds float* %tmp15951, i64 1
+ %tmp15953 = getelementptr inbounds float* %tmp15952, i64 1
+ %tmp15954 = getelementptr inbounds float* %tmp15953, i64 1
+ %tmp15955 = getelementptr inbounds float* %tmp15954, i64 1
+ %tmp15956 = getelementptr inbounds float* %tmp15955, i64 1
+ %tmp15957 = getelementptr inbounds float* %tmp15956, i64 1
+ %tmp15958 = getelementptr inbounds float* %tmp15957, i64 1
+ %tmp15959 = getelementptr inbounds float* %tmp15958, i64 1
+ %tmp15960 = getelementptr inbounds float* %tmp15959, i64 1
+ %tmp15961 = getelementptr inbounds float* %tmp15960, i64 1
+ %tmp15962 = getelementptr inbounds float* %tmp15961, i64 1
+ %tmp15963 = getelementptr inbounds float* %tmp15962, i64 1
+ %tmp15964 = getelementptr inbounds float* %tmp15963, i64 1
+ %tmp15965 = getelementptr inbounds float* %tmp15964, i64 1
+ %tmp15966 = getelementptr inbounds float* %tmp15965, i64 1
+ %tmp15967 = getelementptr inbounds float* %tmp15966, i64 1
+ %tmp15968 = getelementptr inbounds float* %tmp15967, i64 1
+ %tmp15969 = getelementptr inbounds float* %tmp15968, i64 1
+ %tmp15970 = getelementptr inbounds float* %tmp15969, i64 1
+ %tmp15971 = getelementptr inbounds float* %tmp15970, i64 1
+ %tmp15972 = getelementptr inbounds float* %tmp15971, i64 1
+ %tmp15973 = getelementptr inbounds float* %tmp15972, i64 1
+ %tmp15974 = getelementptr inbounds float* %tmp15973, i64 1
+ %tmp15975 = getelementptr inbounds float* %tmp15974, i64 1
+ %tmp15976 = getelementptr inbounds float* %tmp15975, i64 1
+ %tmp15977 = getelementptr inbounds float* %tmp15976, i64 1
+ %tmp15978 = getelementptr inbounds float* %tmp15977, i64 1
+ %tmp15979 = getelementptr inbounds float* %tmp15978, i64 1
+ %tmp15980 = getelementptr inbounds float* %tmp15979, i64 1
+ %tmp15981 = getelementptr inbounds float* %tmp15980, i64 1
+ %tmp15982 = getelementptr inbounds float* %tmp15981, i64 1
+ %tmp15983 = getelementptr inbounds float* %tmp15982, i64 1
+ %tmp15984 = getelementptr inbounds float* %tmp15983, i64 1
+ %tmp15985 = getelementptr inbounds float* %tmp15984, i64 1
+ %tmp15986 = getelementptr inbounds float* %tmp15985, i64 1
+ %tmp15987 = getelementptr inbounds float* %tmp15986, i64 1
+ %tmp15988 = getelementptr inbounds float* %tmp15987, i64 1
+ %tmp15989 = getelementptr inbounds float* %tmp15988, i64 1
+ %tmp15990 = getelementptr inbounds float* %tmp15989, i64 1
+ %tmp15991 = getelementptr inbounds float* %tmp15990, i64 1
+ %tmp15992 = getelementptr inbounds float* %tmp15991, i64 1
+ %tmp15993 = getelementptr inbounds float* %tmp15992, i64 1
+ %tmp15994 = getelementptr inbounds float* %tmp15993, i64 1
+ %tmp15995 = getelementptr inbounds float* %tmp15994, i64 1
+ %tmp15996 = getelementptr inbounds float* %tmp15995, i64 1
+ %tmp15997 = getelementptr inbounds float* %tmp15996, i64 1
+ %tmp15998 = getelementptr inbounds float* %tmp15997, i64 1
+ %tmp15999 = getelementptr inbounds float* %tmp15998, i64 1
+ %tmp16000 = getelementptr inbounds float* %tmp15999, i64 1
+ %tmp16001 = getelementptr inbounds float* %tmp16000, i64 1
+ %tmp16002 = getelementptr inbounds float* %tmp16001, i64 1
+ %tmp16003 = getelementptr inbounds float* %tmp16002, i64 1
+ %tmp16004 = getelementptr inbounds float* %tmp16003, i64 1
+ %tmp16005 = getelementptr inbounds float* %tmp16004, i64 1
+ %tmp16006 = getelementptr inbounds float* %tmp16005, i64 1
+ %tmp16007 = getelementptr inbounds float* %tmp16006, i64 1
+ %tmp16008 = getelementptr inbounds float* %tmp16007, i64 1
+ %tmp16009 = getelementptr inbounds float* %tmp16008, i64 1
+ %tmp16010 = getelementptr inbounds float* %tmp16009, i64 1
+ %tmp16011 = getelementptr inbounds float* %tmp16010, i64 1
+ %tmp16012 = getelementptr inbounds float* %tmp16011, i64 1
+ %tmp16013 = getelementptr inbounds float* %tmp16012, i64 1
+ %tmp16014 = getelementptr inbounds float* %tmp16013, i64 1
+ %tmp16015 = getelementptr inbounds float* %tmp16014, i64 1
+ %tmp16016 = getelementptr inbounds float* %tmp16015, i64 1
+ %tmp16017 = getelementptr inbounds float* %tmp16016, i64 1
+ %tmp16018 = getelementptr inbounds float* %tmp16017, i64 1
+ %tmp16019 = getelementptr inbounds float* %tmp16018, i64 1
+ %tmp16020 = getelementptr inbounds float* %tmp16019, i64 1
+ %tmp16021 = getelementptr inbounds float* %tmp16020, i64 1
+ %tmp16022 = getelementptr inbounds float* %tmp16021, i64 1
+ %tmp16023 = getelementptr inbounds float* %tmp16022, i64 1
+ %tmp16024 = getelementptr inbounds float* %tmp16023, i64 1
+ %tmp16025 = getelementptr inbounds float* %tmp16024, i64 1
+ %tmp16026 = getelementptr inbounds float* %tmp16025, i64 1
+ %tmp16027 = getelementptr inbounds float* %tmp16026, i64 1
+ %tmp16028 = getelementptr inbounds float* %tmp16027, i64 1
+ %tmp16029 = getelementptr inbounds float* %tmp16028, i64 1
+ %tmp16030 = getelementptr inbounds float* %tmp16029, i64 1
+ %tmp16031 = getelementptr inbounds float* %tmp16030, i64 1
+ %tmp16032 = getelementptr inbounds float* %tmp16031, i64 1
+ %tmp16033 = getelementptr inbounds float* %tmp16032, i64 1
+ %tmp16034 = getelementptr inbounds float* %tmp16033, i64 1
+ %tmp16035 = getelementptr inbounds float* %tmp16034, i64 1
+ %tmp16036 = getelementptr inbounds float* %tmp16035, i64 1
+ %tmp16037 = getelementptr inbounds float* %tmp16036, i64 1
+ %tmp16038 = getelementptr inbounds float* %tmp16037, i64 1
+ %tmp16039 = getelementptr inbounds float* %tmp16038, i64 1
+ %tmp16040 = getelementptr inbounds float* %tmp16039, i64 1
+ %tmp16041 = getelementptr inbounds float* %tmp16040, i64 1
+ %tmp16042 = getelementptr inbounds float* %tmp16041, i64 1
+ %tmp16043 = getelementptr inbounds float* %tmp16042, i64 1
+ %tmp16044 = getelementptr inbounds float* %tmp16043, i64 1
+ %tmp16045 = getelementptr inbounds float* %tmp16044, i64 1
+ %tmp16046 = getelementptr inbounds float* %tmp16045, i64 1
+ %tmp16047 = getelementptr inbounds float* %tmp16046, i64 1
+ %tmp16048 = getelementptr inbounds float* %tmp16047, i64 1
+ %tmp16049 = getelementptr inbounds float* %tmp16048, i64 1
+ %tmp16050 = getelementptr inbounds float* %tmp16049, i64 1
+ %tmp16051 = getelementptr inbounds float* %tmp16050, i64 1
+ %tmp16052 = getelementptr inbounds float* %tmp16051, i64 1
+ %tmp16053 = getelementptr inbounds float* %tmp16052, i64 1
+ %tmp16054 = getelementptr inbounds float* %tmp16053, i64 1
+ %tmp16055 = getelementptr inbounds float* %tmp16054, i64 1
+ %tmp16056 = getelementptr inbounds float* %tmp16055, i64 1
+ %tmp16057 = getelementptr inbounds float* %tmp16056, i64 1
+ %tmp16058 = getelementptr inbounds float* %tmp16057, i64 1
+ %tmp16059 = getelementptr inbounds float* %tmp16058, i64 1
+ %tmp16060 = getelementptr inbounds float* %tmp16059, i64 1
+ %tmp16061 = getelementptr inbounds float* %tmp16060, i64 1
+ %tmp16062 = getelementptr inbounds float* %tmp16061, i64 1
+ %tmp16063 = getelementptr inbounds float* %tmp16062, i64 1
+ %tmp16064 = getelementptr inbounds float* %tmp16063, i64 1
+ %tmp16065 = getelementptr inbounds float* %tmp16064, i64 1
+ %tmp16066 = getelementptr inbounds float* %tmp16065, i64 1
+ %tmp16067 = getelementptr inbounds float* %tmp16066, i64 1
+ %tmp16068 = getelementptr inbounds float* %tmp16067, i64 1
+ %tmp16069 = getelementptr inbounds float* %tmp16068, i64 1
+ %tmp16070 = getelementptr inbounds float* %tmp16069, i64 1
+ %tmp16071 = getelementptr inbounds float* %tmp16070, i64 1
+ %tmp16072 = getelementptr inbounds float* %tmp16071, i64 1
+ %tmp16073 = getelementptr inbounds float* %tmp16072, i64 1
+ %tmp16074 = getelementptr inbounds float* %tmp16073, i64 1
+ %tmp16075 = getelementptr inbounds float* %tmp16074, i64 1
+ %tmp16076 = getelementptr inbounds float* %tmp16075, i64 1
+ %tmp16077 = getelementptr inbounds float* %tmp16076, i64 1
+ %tmp16078 = getelementptr inbounds float* %tmp16077, i64 1
+ %tmp16079 = getelementptr inbounds float* %tmp16078, i64 1
+ %tmp16080 = getelementptr inbounds float* %tmp16079, i64 1
+ %tmp16081 = getelementptr inbounds float* %tmp16080, i64 1
+ %tmp16082 = getelementptr inbounds float* %tmp16081, i64 1
+ %tmp16083 = getelementptr inbounds float* %tmp16082, i64 1
+ %tmp16084 = getelementptr inbounds float* %tmp16083, i64 1
+ %tmp16085 = getelementptr inbounds float* %tmp16084, i64 1
+ %tmp16086 = getelementptr inbounds float* %tmp16085, i64 1
+ %tmp16087 = getelementptr inbounds float* %tmp16086, i64 1
+ %tmp16088 = getelementptr inbounds float* %tmp16087, i64 1
+ %tmp16089 = getelementptr inbounds float* %tmp16088, i64 1
+ %tmp16090 = getelementptr inbounds float* %tmp16089, i64 1
+ %tmp16091 = getelementptr inbounds float* %tmp16090, i64 1
+ %tmp16092 = getelementptr inbounds float* %tmp16091, i64 1
+ %tmp16093 = getelementptr inbounds float* %tmp16092, i64 1
+ %tmp16094 = getelementptr inbounds float* %tmp16093, i64 1
+ %tmp16095 = getelementptr inbounds float* %tmp16094, i64 1
+ %tmp16096 = getelementptr inbounds float* %tmp16095, i64 1
+ %tmp16097 = getelementptr inbounds float* %tmp16096, i64 1
+ %tmp16098 = getelementptr inbounds float* %tmp16097, i64 1
+ %tmp16099 = getelementptr inbounds float* %tmp16098, i64 1
+ %tmp16100 = getelementptr inbounds float* %tmp16099, i64 1
+ %tmp16101 = getelementptr inbounds float* %tmp16100, i64 1
+ %tmp16102 = getelementptr inbounds float* %tmp16101, i64 1
+ %tmp16103 = getelementptr inbounds float* %tmp16102, i64 1
+ %tmp16104 = getelementptr inbounds float* %tmp16103, i64 1
+ %tmp16105 = getelementptr inbounds float* %tmp16104, i64 1
+ %tmp16106 = getelementptr inbounds float* %tmp16105, i64 1
+ %tmp16107 = getelementptr inbounds float* %tmp16106, i64 1
+ %tmp16108 = getelementptr inbounds float* %tmp16107, i64 1
+ %tmp16109 = getelementptr inbounds float* %tmp16108, i64 1
+ %tmp16110 = getelementptr inbounds float* %tmp16109, i64 1
+ %tmp16111 = getelementptr inbounds float* %tmp16110, i64 1
+ %tmp16112 = getelementptr inbounds float* %tmp16111, i64 1
+ %tmp16113 = getelementptr inbounds float* %tmp16112, i64 1
+ %tmp16114 = getelementptr inbounds float* %tmp16113, i64 1
+ %tmp16115 = getelementptr inbounds float* %tmp16114, i64 1
+ %tmp16116 = getelementptr inbounds float* %tmp16115, i64 1
+ %tmp16117 = getelementptr inbounds float* %tmp16116, i64 1
+ %tmp16118 = getelementptr inbounds float* %tmp16117, i64 1
+ %tmp16119 = getelementptr inbounds float* %tmp16118, i64 1
+ %tmp16120 = getelementptr inbounds float* %tmp16119, i64 1
+ %tmp16121 = getelementptr inbounds float* %tmp16120, i64 1
+ %tmp16122 = getelementptr inbounds float* %tmp16121, i64 1
+ %tmp16123 = getelementptr inbounds float* %tmp16122, i64 1
+ %tmp16124 = getelementptr inbounds float* %tmp16123, i64 1
+ %tmp16125 = getelementptr inbounds float* %tmp16124, i64 1
+ %tmp16126 = getelementptr inbounds float* %tmp16125, i64 1
+ %tmp16127 = getelementptr inbounds float* %tmp16126, i64 1
+ %tmp16128 = getelementptr inbounds float* %tmp16127, i64 1
+ %tmp16129 = getelementptr inbounds float* %tmp16128, i64 1
+ %tmp16130 = getelementptr inbounds float* %tmp16129, i64 1
+ %tmp16131 = getelementptr inbounds float* %tmp16130, i64 1
+ %tmp16132 = getelementptr inbounds float* %tmp16131, i64 1
+ %tmp16133 = getelementptr inbounds float* %tmp16132, i64 1
+ %tmp16134 = getelementptr inbounds float* %tmp16133, i64 1
+ %tmp16135 = getelementptr inbounds float* %tmp16134, i64 1
+ %tmp16136 = getelementptr inbounds float* %tmp16135, i64 1
+ %tmp16137 = getelementptr inbounds float* %tmp16136, i64 1
+ %tmp16138 = getelementptr inbounds float* %tmp16137, i64 1
+ %tmp16139 = getelementptr inbounds float* %tmp16138, i64 1
+ %tmp16140 = getelementptr inbounds float* %tmp16139, i64 1
+ %tmp16141 = getelementptr inbounds float* %tmp16140, i64 1
+ %tmp16142 = getelementptr inbounds float* %tmp16141, i64 1
+ %tmp16143 = getelementptr inbounds float* %tmp16142, i64 1
+ %tmp16144 = getelementptr inbounds float* %tmp16143, i64 1
+ %tmp16145 = getelementptr inbounds float* %tmp16144, i64 1
+ %tmp16146 = getelementptr inbounds float* %tmp16145, i64 1
+ %tmp16147 = getelementptr inbounds float* %tmp16146, i64 1
+ %tmp16148 = getelementptr inbounds float* %tmp16147, i64 1
+ %tmp16149 = getelementptr inbounds float* %tmp16148, i64 1
+ %tmp16150 = getelementptr inbounds float* %tmp16149, i64 1
+ %tmp16151 = getelementptr inbounds float* %tmp16150, i64 1
+ %tmp16152 = getelementptr inbounds float* %tmp16151, i64 1
+ %tmp16153 = getelementptr inbounds float* %tmp16152, i64 1
+ %tmp16154 = getelementptr inbounds float* %tmp16153, i64 1
+ %tmp16155 = getelementptr inbounds float* %tmp16154, i64 1
+ %tmp16156 = getelementptr inbounds float* %tmp16155, i64 1
+ %tmp16157 = getelementptr inbounds float* %tmp16156, i64 1
+ %tmp16158 = getelementptr inbounds float* %tmp16157, i64 1
+ %tmp16159 = getelementptr inbounds float* %tmp16158, i64 1
+ %tmp16160 = getelementptr inbounds float* %tmp16159, i64 1
+ %tmp16161 = getelementptr inbounds float* %tmp16160, i64 1
+ %tmp16162 = getelementptr inbounds float* %tmp16161, i64 1
+ %tmp16163 = getelementptr inbounds float* %tmp16162, i64 1
+ %tmp16164 = getelementptr inbounds float* %tmp16163, i64 1
+ %tmp16165 = getelementptr inbounds float* %tmp16164, i64 1
+ %tmp16166 = getelementptr inbounds float* %tmp16165, i64 1
+ %tmp16167 = getelementptr inbounds float* %tmp16166, i64 1
+ %tmp16168 = getelementptr inbounds float* %tmp16167, i64 1
+ %tmp16169 = getelementptr inbounds float* %tmp16168, i64 1
+ %tmp16170 = getelementptr inbounds float* %tmp16169, i64 1
+ %tmp16171 = getelementptr inbounds float* %tmp16170, i64 1
+ %tmp16172 = getelementptr inbounds float* %tmp16171, i64 1
+ %tmp16173 = getelementptr inbounds float* %tmp16172, i64 1
+ %tmp16174 = getelementptr inbounds float* %tmp16173, i64 1
+ %tmp16175 = getelementptr inbounds float* %tmp16174, i64 1
+ %tmp16176 = getelementptr inbounds float* %tmp16175, i64 1
+ %tmp16177 = getelementptr inbounds float* %tmp16176, i64 1
+ %tmp16178 = getelementptr inbounds float* %tmp16177, i64 1
+ %tmp16179 = getelementptr inbounds float* %tmp16178, i64 1
+ %tmp16180 = getelementptr inbounds float* %tmp16179, i64 1
+ %tmp16181 = getelementptr inbounds float* %tmp16180, i64 1
+ %tmp16182 = getelementptr inbounds float* %tmp16181, i64 1
+ %tmp16183 = getelementptr inbounds float* %tmp16182, i64 1
+ %tmp16184 = getelementptr inbounds float* %tmp16183, i64 1
+ %tmp16185 = getelementptr inbounds float* %tmp16184, i64 1
+ %tmp16186 = getelementptr inbounds float* %tmp16185, i64 1
+ %tmp16187 = getelementptr inbounds float* %tmp16186, i64 1
+ %tmp16188 = getelementptr inbounds float* %tmp16187, i64 1
+ %tmp16189 = getelementptr inbounds float* %tmp16188, i64 1
+ %tmp16190 = getelementptr inbounds float* %tmp16189, i64 1
+ %tmp16191 = getelementptr inbounds float* %tmp16190, i64 1
+ %tmp16192 = getelementptr inbounds float* %tmp16191, i64 1
+ %tmp16193 = getelementptr inbounds float* %tmp16192, i64 1
+ %tmp16194 = getelementptr inbounds float* %tmp16193, i64 1
+ %tmp16195 = getelementptr inbounds float* %tmp16194, i64 1
+ %tmp16196 = getelementptr inbounds float* %tmp16195, i64 1
+ %tmp16197 = getelementptr inbounds float* %tmp16196, i64 1
+ %tmp16198 = getelementptr inbounds float* %tmp16197, i64 1
+ %tmp16199 = getelementptr inbounds float* %tmp16198, i64 1
+ %tmp16200 = getelementptr inbounds float* %tmp16199, i64 1
+ %tmp16201 = getelementptr inbounds float* %tmp16200, i64 1
+ %tmp16202 = getelementptr inbounds float* %tmp16201, i64 1
+ %tmp16203 = getelementptr inbounds float* %tmp16202, i64 1
+ %tmp16204 = getelementptr inbounds float* %tmp16203, i64 1
+ %tmp16205 = getelementptr inbounds float* %tmp16204, i64 1
+ %tmp16206 = getelementptr inbounds float* %tmp16205, i64 1
+ %tmp16207 = getelementptr inbounds float* %tmp16206, i64 1
+ %tmp16208 = getelementptr inbounds float* %tmp16207, i64 1
+ %tmp16209 = getelementptr inbounds float* %tmp16208, i64 1
+ %tmp16210 = getelementptr inbounds float* %tmp16209, i64 1
+ %tmp16211 = getelementptr inbounds float* %tmp16210, i64 1
+ %tmp16212 = getelementptr inbounds float* %tmp16211, i64 1
+ %tmp16213 = getelementptr inbounds float* %tmp16212, i64 1
+ %tmp16214 = getelementptr inbounds float* %tmp16213, i64 1
+ %tmp16215 = getelementptr inbounds float* %tmp16214, i64 1
+ %tmp16216 = getelementptr inbounds float* %tmp16215, i64 1
+ %tmp16217 = getelementptr inbounds float* %tmp16216, i64 1
+ %tmp16218 = getelementptr inbounds float* %tmp16217, i64 1
+ %tmp16219 = getelementptr inbounds float* %tmp16218, i64 1
+ %tmp16220 = getelementptr inbounds float* %tmp16219, i64 1
+ %tmp16221 = getelementptr inbounds float* %tmp16220, i64 1
+ %tmp16222 = getelementptr inbounds float* %tmp16221, i64 1
+ %tmp16223 = getelementptr inbounds float* %tmp16222, i64 1
+ %tmp16224 = getelementptr inbounds float* %tmp16223, i64 1
+ %tmp16225 = getelementptr inbounds float* %tmp16224, i64 1
+ %tmp16226 = getelementptr inbounds float* %tmp16225, i64 1
+ %tmp16227 = getelementptr inbounds float* %tmp16226, i64 1
+ %tmp16228 = getelementptr inbounds float* %tmp16227, i64 1
+ %tmp16229 = getelementptr inbounds float* %tmp16228, i64 1
+ %tmp16230 = getelementptr inbounds float* %tmp16229, i64 1
+ %tmp16231 = getelementptr inbounds float* %tmp16230, i64 1
+ %tmp16232 = getelementptr inbounds float* %tmp16231, i64 1
+ %tmp16233 = getelementptr inbounds float* %tmp16232, i64 1
+ %tmp16234 = getelementptr inbounds float* %tmp16233, i64 1
+ %tmp16235 = getelementptr inbounds float* %tmp16234, i64 1
+ %tmp16236 = getelementptr inbounds float* %tmp16235, i64 1
+ %tmp16237 = getelementptr inbounds float* %tmp16236, i64 1
+ %tmp16238 = getelementptr inbounds float* %tmp16237, i64 1
+ %tmp16239 = getelementptr inbounds float* %tmp16238, i64 1
+ %tmp16240 = getelementptr inbounds float* %tmp16239, i64 1
+ %tmp16241 = getelementptr inbounds float* %tmp16240, i64 1
+ %tmp16242 = getelementptr inbounds float* %tmp16241, i64 1
+ %tmp16243 = getelementptr inbounds float* %tmp16242, i64 1
+ %tmp16244 = getelementptr inbounds float* %tmp16243, i64 1
+ %tmp16245 = getelementptr inbounds float* %tmp16244, i64 1
+ %tmp16246 = getelementptr inbounds float* %tmp16245, i64 1
+ %tmp16247 = getelementptr inbounds float* %tmp16246, i64 1
+ %tmp16248 = getelementptr inbounds float* %tmp16247, i64 1
+ %tmp16249 = getelementptr inbounds float* %tmp16248, i64 1
+ %tmp16250 = getelementptr inbounds float* %tmp16249, i64 1
+ %tmp16251 = getelementptr inbounds float* %tmp16250, i64 1
+ %tmp16252 = getelementptr inbounds float* %tmp16251, i64 1
+ %tmp16253 = getelementptr inbounds float* %tmp16252, i64 1
+ %tmp16254 = getelementptr inbounds float* %tmp16253, i64 1
+ %tmp16255 = getelementptr inbounds float* %tmp16254, i64 1
+ %tmp16256 = getelementptr inbounds float* %tmp16255, i64 1
+ %tmp16257 = getelementptr inbounds float* %tmp16256, i64 1
+ %tmp16258 = getelementptr inbounds float* %tmp16257, i64 1
+ %tmp16259 = getelementptr inbounds float* %tmp16258, i64 1
+ %tmp16260 = getelementptr inbounds float* %tmp16259, i64 1
+ %tmp16261 = getelementptr inbounds float* %tmp16260, i64 1
+ %tmp16262 = getelementptr inbounds float* %tmp16261, i64 1
+ %tmp16263 = getelementptr inbounds float* %tmp16262, i64 1
+ %tmp16264 = getelementptr inbounds float* %tmp16263, i64 1
+ %tmp16265 = getelementptr inbounds float* %tmp16264, i64 1
+ %tmp16266 = getelementptr inbounds float* %tmp16265, i64 1
+ %tmp16267 = getelementptr inbounds float* %tmp16266, i64 1
+ %tmp16268 = getelementptr inbounds float* %tmp16267, i64 1
+ %tmp16269 = getelementptr inbounds float* %tmp16268, i64 1
+ %tmp16270 = getelementptr inbounds float* %tmp16269, i64 1
+ %tmp16271 = getelementptr inbounds float* %tmp16270, i64 1
+ %tmp16272 = getelementptr inbounds float* %tmp16271, i64 1
+ %tmp16273 = getelementptr inbounds float* %tmp16272, i64 1
+ %tmp16274 = getelementptr inbounds float* %tmp16273, i64 1
+ %tmp16275 = getelementptr inbounds float* %tmp16274, i64 1
+ %tmp16276 = getelementptr inbounds float* %tmp16275, i64 1
+ %tmp16277 = getelementptr inbounds float* %tmp16276, i64 1
+ %tmp16278 = getelementptr inbounds float* %tmp16277, i64 1
+ %tmp16279 = getelementptr inbounds float* %tmp16278, i64 1
+ %tmp16280 = getelementptr inbounds float* %tmp16279, i64 1
+ %tmp16281 = getelementptr inbounds float* %tmp16280, i64 1
+ %tmp16282 = getelementptr inbounds float* %tmp16281, i64 1
+ %tmp16283 = getelementptr inbounds float* %tmp16282, i64 1
+ %tmp16284 = getelementptr inbounds float* %tmp16283, i64 1
+ %tmp16285 = getelementptr inbounds float* %tmp16284, i64 1
+ %tmp16286 = getelementptr inbounds float* %tmp16285, i64 1
+ %tmp16287 = getelementptr inbounds float* %tmp16286, i64 1
+ %tmp16288 = getelementptr inbounds float* %tmp16287, i64 1
+ %tmp16289 = getelementptr inbounds float* %tmp16288, i64 1
+ %tmp16290 = getelementptr inbounds float* %tmp16289, i64 1
+ %tmp16291 = getelementptr inbounds float* %tmp16290, i64 1
+ %tmp16292 = getelementptr inbounds float* %tmp16291, i64 1
+ %tmp16293 = getelementptr inbounds float* %tmp16292, i64 1
+ %tmp16294 = getelementptr inbounds float* %tmp16293, i64 1
+ %tmp16295 = getelementptr inbounds float* %tmp16294, i64 1
+ %tmp16296 = getelementptr inbounds float* %tmp16295, i64 1
+ %tmp16297 = getelementptr inbounds float* %tmp16296, i64 1
+ %tmp16298 = getelementptr inbounds float* %tmp16297, i64 1
+ %tmp16299 = getelementptr inbounds float* %tmp16298, i64 1
+ %tmp16300 = getelementptr inbounds float* %tmp16299, i64 1
+ %tmp16301 = getelementptr inbounds float* %tmp16300, i64 1
+ %tmp16302 = getelementptr inbounds float* %tmp16301, i64 1
+ %tmp16303 = getelementptr inbounds float* %tmp16302, i64 1
+ %tmp16304 = getelementptr inbounds float* %tmp16303, i64 1
+ %tmp16305 = getelementptr inbounds float* %tmp16304, i64 1
+ %tmp16306 = getelementptr inbounds float* %tmp16305, i64 1
+ %tmp16307 = getelementptr inbounds float* %tmp16306, i64 1
+ %tmp16308 = getelementptr inbounds float* %tmp16307, i64 1
+ %tmp16309 = getelementptr inbounds float* %tmp16308, i64 1
+ %tmp16310 = getelementptr inbounds float* %tmp16309, i64 1
+ %tmp16311 = getelementptr inbounds float* %tmp16310, i64 1
+ %tmp16312 = getelementptr inbounds float* %tmp16311, i64 1
+ %tmp16313 = getelementptr inbounds float* %tmp16312, i64 1
+ %tmp16314 = getelementptr inbounds float* %tmp16313, i64 1
+ %tmp16315 = getelementptr inbounds float* %tmp16314, i64 1
+ %tmp16316 = getelementptr inbounds float* %tmp16315, i64 1
+ %tmp16317 = getelementptr inbounds float* %tmp16316, i64 1
+ %tmp16318 = getelementptr inbounds float* %tmp16317, i64 1
+ %tmp16319 = getelementptr inbounds float* %tmp16318, i64 1
+ %tmp16320 = getelementptr inbounds float* %tmp16319, i64 1
+ %tmp16321 = getelementptr inbounds float* %tmp16320, i64 1
+ %tmp16322 = getelementptr inbounds float* %tmp16321, i64 1
+ %tmp16323 = getelementptr inbounds float* %tmp16322, i64 1
+ %tmp16324 = getelementptr inbounds float* %tmp16323, i64 1
+ %tmp16325 = getelementptr inbounds float* %tmp16324, i64 1
+ %tmp16326 = getelementptr inbounds float* %tmp16325, i64 1
+ %tmp16327 = getelementptr inbounds float* %tmp16326, i64 1
+ %tmp16328 = getelementptr inbounds float* %tmp16327, i64 1
+ %tmp16329 = getelementptr inbounds float* %tmp16328, i64 1
+ %tmp16330 = getelementptr inbounds float* %tmp16329, i64 1
+ %tmp16331 = getelementptr inbounds float* %tmp16330, i64 1
+ %tmp16332 = getelementptr inbounds float* %tmp16331, i64 1
+ %tmp16333 = getelementptr inbounds float* %tmp16332, i64 1
+ %tmp16334 = getelementptr inbounds float* %tmp16333, i64 1
+ %tmp16335 = getelementptr inbounds float* %tmp16334, i64 1
+ %tmp16336 = getelementptr inbounds float* %tmp16335, i64 1
+ %tmp16337 = getelementptr inbounds float* %tmp16336, i64 1
+ %tmp16338 = getelementptr inbounds float* %tmp16337, i64 1
+ %tmp16339 = getelementptr inbounds float* %tmp16338, i64 1
+ %tmp16340 = getelementptr inbounds float* %tmp16339, i64 1
+ %tmp16341 = getelementptr inbounds float* %tmp16340, i64 1
+ %tmp16342 = getelementptr inbounds float* %tmp16341, i64 1
+ %tmp16343 = getelementptr inbounds float* %tmp16342, i64 1
+ %tmp16344 = getelementptr inbounds float* %tmp16343, i64 1
+ %tmp16345 = getelementptr inbounds float* %tmp16344, i64 1
+ %tmp16346 = getelementptr inbounds float* %tmp16345, i64 1
+ %tmp16347 = getelementptr inbounds float* %tmp16346, i64 1
+ %tmp16348 = getelementptr inbounds float* %tmp16347, i64 1
+ %tmp16349 = getelementptr inbounds float* %tmp16348, i64 1
+ %tmp16350 = getelementptr inbounds float* %tmp16349, i64 1
+ %tmp16351 = getelementptr inbounds float* %tmp16350, i64 1
+ %tmp16352 = getelementptr inbounds float* %tmp16351, i64 1
+ %tmp16353 = getelementptr inbounds float* %tmp16352, i64 1
+ %tmp16354 = getelementptr inbounds float* %tmp16353, i64 1
+ %tmp16355 = getelementptr inbounds float* %tmp16354, i64 1
+ %tmp16356 = getelementptr inbounds float* %tmp16355, i64 1
+ %tmp16357 = getelementptr inbounds float* %tmp16356, i64 1
+ %tmp16358 = getelementptr inbounds float* %tmp16357, i64 1
+ %tmp16359 = getelementptr inbounds float* %tmp16358, i64 1
+ %tmp16360 = getelementptr inbounds float* %tmp16359, i64 1
+ %tmp16361 = getelementptr inbounds float* %tmp16360, i64 1
+ %tmp16362 = getelementptr inbounds float* %tmp16361, i64 1
+ %tmp16363 = getelementptr inbounds float* %tmp16362, i64 1
+ %tmp16364 = getelementptr inbounds float* %tmp16363, i64 1
+ %tmp16365 = getelementptr inbounds float* %tmp16364, i64 1
+ %tmp16366 = getelementptr inbounds float* %tmp16365, i64 1
+ %tmp16367 = getelementptr inbounds float* %tmp16366, i64 1
+ %tmp16368 = getelementptr inbounds float* %tmp16367, i64 1
+ %tmp16369 = getelementptr inbounds float* %tmp16368, i64 1
+ %tmp16370 = getelementptr inbounds float* %tmp16369, i64 1
+ %tmp16371 = getelementptr inbounds float* %tmp16370, i64 1
+ %tmp16372 = getelementptr inbounds float* %tmp16371, i64 1
+ %tmp16373 = getelementptr inbounds float* %tmp16372, i64 1
+ %tmp16374 = getelementptr inbounds float* %tmp16373, i64 1
+ %tmp16375 = getelementptr inbounds float* %tmp16374, i64 1
+ %tmp16376 = getelementptr inbounds float* %tmp16375, i64 1
+ %tmp16377 = getelementptr inbounds float* %tmp16376, i64 1
+ %tmp16378 = getelementptr inbounds float* %tmp16377, i64 1
+ %tmp16379 = getelementptr inbounds float* %tmp16378, i64 1
+ %tmp16380 = getelementptr inbounds float* %tmp16379, i64 1
+ %tmp16381 = getelementptr inbounds float* %tmp16380, i64 1
+ %tmp16382 = getelementptr inbounds float* %tmp16381, i64 1
+ %tmp16383 = getelementptr inbounds float* %tmp16382, i64 1
+ %tmp16384 = getelementptr inbounds float* %tmp16383, i64 1
+ %tmp16385 = getelementptr inbounds float* %tmp16384, i64 1
+ %tmp16386 = getelementptr inbounds float* %tmp16385, i64 1
+ %tmp16387 = getelementptr inbounds float* %tmp16386, i64 1
+ %tmp16388 = getelementptr inbounds float* %tmp16387, i64 1
+ %tmp16389 = getelementptr inbounds float* %tmp16388, i64 1
+ %tmp16390 = getelementptr inbounds float* %tmp16389, i64 1
+ %tmp16391 = getelementptr inbounds float* %tmp16390, i64 1
+ %tmp16392 = getelementptr inbounds float* %tmp16391, i64 1
+ %tmp16393 = getelementptr inbounds float* %tmp16392, i64 1
+ %tmp16394 = getelementptr inbounds float* %tmp16393, i64 1
+ %tmp16395 = getelementptr inbounds float* %tmp16394, i64 1
+ %tmp16396 = getelementptr inbounds float* %tmp16395, i64 1
+ %tmp16397 = getelementptr inbounds float* %tmp16396, i64 1
+ %tmp16398 = getelementptr inbounds float* %tmp16397, i64 1
+ %tmp16399 = getelementptr inbounds float* %tmp16398, i64 1
+ %tmp16400 = getelementptr inbounds float* %tmp16399, i64 1
+ %tmp16401 = getelementptr inbounds float* %tmp16400, i64 1
+ %tmp16402 = getelementptr inbounds float* %tmp16401, i64 1
+ %tmp16403 = getelementptr inbounds float* %tmp16402, i64 1
+ %tmp16404 = getelementptr inbounds float* %tmp16403, i64 1
+ %tmp16405 = getelementptr inbounds float* %tmp16404, i64 1
+ %tmp16406 = getelementptr inbounds float* %tmp16405, i64 1
+ %tmp16407 = getelementptr inbounds float* %tmp16406, i64 1
+ %tmp16408 = getelementptr inbounds float* %tmp16407, i64 1
+ %tmp16409 = getelementptr inbounds float* %tmp16408, i64 1
+ %tmp16410 = getelementptr inbounds float* %tmp16409, i64 1
+ %tmp16411 = getelementptr inbounds float* %tmp16410, i64 1
+ %tmp16412 = getelementptr inbounds float* %tmp16411, i64 1
+ %tmp16413 = getelementptr inbounds float* %tmp16412, i64 1
+ %tmp16414 = getelementptr inbounds float* %tmp16413, i64 1
+ %tmp16415 = getelementptr inbounds float* %tmp16414, i64 1
+ %tmp16416 = getelementptr inbounds float* %tmp16415, i64 1
+ %tmp16417 = getelementptr inbounds float* %tmp16416, i64 1
+ %tmp16418 = getelementptr inbounds float* %tmp16417, i64 1
+ %tmp16419 = getelementptr inbounds float* %tmp16418, i64 1
+ %tmp16420 = getelementptr inbounds float* %tmp16419, i64 1
+ %tmp16421 = getelementptr inbounds float* %tmp16420, i64 1
+ %tmp16422 = getelementptr inbounds float* %tmp16421, i64 1
+ %tmp16423 = getelementptr inbounds float* %tmp16422, i64 1
+ %tmp16424 = getelementptr inbounds float* %tmp16423, i64 1
+ %tmp16425 = getelementptr inbounds float* %tmp16424, i64 1
+ %tmp16426 = getelementptr inbounds float* %tmp16425, i64 1
+ %tmp16427 = getelementptr inbounds float* %tmp16426, i64 1
+ %tmp16428 = getelementptr inbounds float* %tmp16427, i64 1
+ %tmp16429 = getelementptr inbounds float* %tmp16428, i64 1
+ %tmp16430 = getelementptr inbounds float* %tmp16429, i64 1
+ %tmp16431 = getelementptr inbounds float* %tmp16430, i64 1
+ %tmp16432 = getelementptr inbounds float* %tmp16431, i64 1
+ %tmp16433 = getelementptr inbounds float* %tmp16432, i64 1
+ %tmp16434 = getelementptr inbounds float* %tmp16433, i64 1
+ %tmp16435 = getelementptr inbounds float* %tmp16434, i64 1
+ %tmp16436 = getelementptr inbounds float* %tmp16435, i64 1
+ %tmp16437 = getelementptr inbounds float* %tmp16436, i64 1
+ %tmp16438 = getelementptr inbounds float* %tmp16437, i64 1
+ %tmp16439 = getelementptr inbounds float* %tmp16438, i64 1
+ %tmp16440 = getelementptr inbounds float* %tmp16439, i64 1
+ %tmp16441 = getelementptr inbounds float* %tmp16440, i64 1
+ %tmp16442 = getelementptr inbounds float* %tmp16441, i64 1
+ %tmp16443 = getelementptr inbounds float* %tmp16442, i64 1
+ %tmp16444 = getelementptr inbounds float* %tmp16443, i64 1
+ %tmp16445 = getelementptr inbounds float* %tmp16444, i64 1
+ %tmp16446 = getelementptr inbounds float* %tmp16445, i64 1
+ %tmp16447 = getelementptr inbounds float* %tmp16446, i64 1
+ %tmp16448 = getelementptr inbounds float* %tmp16447, i64 1
+ %tmp16449 = getelementptr inbounds float* %tmp16448, i64 1
+ %tmp16450 = getelementptr inbounds float* %tmp16449, i64 1
+ %tmp16451 = getelementptr inbounds float* %tmp16450, i64 1
+ %tmp16452 = getelementptr inbounds float* %tmp16451, i64 1
+ %tmp16453 = getelementptr inbounds float* %tmp16452, i64 1
+ %tmp16454 = getelementptr inbounds float* %tmp16453, i64 1
+ %tmp16455 = getelementptr inbounds float* %tmp16454, i64 1
+ %tmp16456 = getelementptr inbounds float* %tmp16455, i64 1
+ %tmp16457 = getelementptr inbounds float* %tmp16456, i64 1
+ %tmp16458 = getelementptr inbounds float* %tmp16457, i64 1
+ %tmp16459 = getelementptr inbounds float* %tmp16458, i64 1
+ %tmp16460 = getelementptr inbounds float* %tmp16459, i64 1
+ %tmp16461 = getelementptr inbounds float* %tmp16460, i64 1
+ %tmp16462 = getelementptr inbounds float* %tmp16461, i64 1
+ %tmp16463 = getelementptr inbounds float* %tmp16462, i64 1
+ %tmp16464 = getelementptr inbounds float* %tmp16463, i64 1
+ %tmp16465 = getelementptr inbounds float* %tmp16464, i64 1
+ %tmp16466 = getelementptr inbounds float* %tmp16465, i64 1
+ %tmp16467 = getelementptr inbounds float* %tmp16466, i64 1
+ %tmp16468 = getelementptr inbounds float* %tmp16467, i64 1
+ %tmp16469 = getelementptr inbounds float* %tmp16468, i64 1
+ %tmp16470 = getelementptr inbounds float* %tmp16469, i64 1
+ %tmp16471 = getelementptr inbounds float* %tmp16470, i64 1
+ %tmp16472 = getelementptr inbounds float* %tmp16471, i64 1
+ %tmp16473 = getelementptr inbounds float* %tmp16472, i64 1
+ %tmp16474 = getelementptr inbounds float* %tmp16473, i64 1
+ %tmp16475 = getelementptr inbounds float* %tmp16474, i64 1
+ %tmp16476 = getelementptr inbounds float* %tmp16475, i64 1
+ %tmp16477 = getelementptr inbounds float* %tmp16476, i64 1
+ %tmp16478 = getelementptr inbounds float* %tmp16477, i64 1
+ %tmp16479 = getelementptr inbounds float* %tmp16478, i64 1
+ %tmp16480 = getelementptr inbounds float* %tmp16479, i64 1
+ %tmp16481 = getelementptr inbounds float* %tmp16480, i64 1
+ %tmp16482 = getelementptr inbounds float* %tmp16481, i64 1
+ %tmp16483 = getelementptr inbounds float* %tmp16482, i64 1
+ %tmp16484 = getelementptr inbounds float* %tmp16483, i64 1
+ %tmp16485 = getelementptr inbounds float* %tmp16484, i64 1
+ %tmp16486 = getelementptr inbounds float* %tmp16485, i64 1
+ %tmp16487 = getelementptr inbounds float* %tmp16486, i64 1
+ %tmp16488 = getelementptr inbounds float* %tmp16487, i64 1
+ %tmp16489 = getelementptr inbounds float* %tmp16488, i64 1
+ %tmp16490 = getelementptr inbounds float* %tmp16489, i64 1
+ %tmp16491 = getelementptr inbounds float* %tmp16490, i64 1
+ %tmp16492 = getelementptr inbounds float* %tmp16491, i64 1
+ %tmp16493 = getelementptr inbounds float* %tmp16492, i64 1
+ %tmp16494 = getelementptr inbounds float* %tmp16493, i64 1
+ %tmp16495 = getelementptr inbounds float* %tmp16494, i64 1
+ %tmp16496 = getelementptr inbounds float* %tmp16495, i64 1
+ %tmp16497 = getelementptr inbounds float* %tmp16496, i64 1
+ %tmp16498 = getelementptr inbounds float* %tmp16497, i64 1
+ %tmp16499 = getelementptr inbounds float* %tmp16498, i64 1
+ %tmp16500 = getelementptr inbounds float* %tmp16499, i64 1
+ %tmp16501 = getelementptr inbounds float* %tmp16500, i64 1
+ %tmp16502 = getelementptr inbounds float* %tmp16501, i64 1
+ %tmp16503 = getelementptr inbounds float* %tmp16502, i64 1
+ %tmp16504 = getelementptr inbounds float* %tmp16503, i64 1
+ %tmp16505 = getelementptr inbounds float* %tmp16504, i64 1
+ %tmp16506 = getelementptr inbounds float* %tmp16505, i64 1
+ %tmp16507 = getelementptr inbounds float* %tmp16506, i64 1
+ %tmp16508 = getelementptr inbounds float* %tmp16507, i64 1
+ %tmp16509 = getelementptr inbounds float* %tmp16508, i64 1
+ %tmp16510 = getelementptr inbounds float* %tmp16509, i64 1
+ %tmp16511 = getelementptr inbounds float* %tmp16510, i64 1
+ %tmp16512 = getelementptr inbounds float* %tmp16511, i64 1
+ %tmp16513 = getelementptr inbounds float* %tmp16512, i64 1
+ %tmp16514 = getelementptr inbounds float* %tmp16513, i64 1
+ %tmp16515 = getelementptr inbounds float* %tmp16514, i64 1
+ %tmp16516 = getelementptr inbounds float* %tmp16515, i64 1
+ %tmp16517 = getelementptr inbounds float* %tmp16516, i64 1
+ %tmp16518 = getelementptr inbounds float* %tmp16517, i64 1
+ %tmp16519 = getelementptr inbounds float* %tmp16518, i64 1
+ %tmp16520 = getelementptr inbounds float* %tmp16519, i64 1
+ %tmp16521 = getelementptr inbounds float* %tmp16520, i64 1
+ %tmp16522 = getelementptr inbounds float* %tmp16521, i64 1
+ %tmp16523 = getelementptr inbounds float* %tmp16522, i64 1
+ %tmp16524 = getelementptr inbounds float* %tmp16523, i64 1
+ %tmp16525 = getelementptr inbounds float* %tmp16524, i64 1
+ %tmp16526 = getelementptr inbounds float* %tmp16525, i64 1
+ %tmp16527 = getelementptr inbounds float* %tmp16526, i64 1
+ %tmp16528 = getelementptr inbounds float* %tmp16527, i64 1
+ %tmp16529 = getelementptr inbounds float* %tmp16528, i64 1
+ %tmp16530 = getelementptr inbounds float* %tmp16529, i64 1
+ %tmp16531 = getelementptr inbounds float* %tmp16530, i64 1
+ %tmp16532 = getelementptr inbounds float* %tmp16531, i64 1
+ %tmp16533 = getelementptr inbounds float* %tmp16532, i64 1
+ %tmp16534 = getelementptr inbounds float* %tmp16533, i64 1
+ %tmp16535 = getelementptr inbounds float* %tmp16534, i64 1
+ %tmp16536 = getelementptr inbounds float* %tmp16535, i64 1
+ %tmp16537 = getelementptr inbounds float* %tmp16536, i64 1
+ %tmp16538 = getelementptr inbounds float* %tmp16537, i64 1
+ %tmp16539 = getelementptr inbounds float* %tmp16538, i64 1
+ %tmp16540 = getelementptr inbounds float* %tmp16539, i64 1
+ %tmp16541 = getelementptr inbounds float* %tmp16540, i64 1
+ %tmp16542 = getelementptr inbounds float* %tmp16541, i64 1
+ %tmp16543 = getelementptr inbounds float* %tmp16542, i64 1
+ %tmp16544 = getelementptr inbounds float* %tmp16543, i64 1
+ %tmp16545 = getelementptr inbounds float* %tmp16544, i64 1
+ %tmp16546 = getelementptr inbounds float* %tmp16545, i64 1
+ %tmp16547 = getelementptr inbounds float* %tmp16546, i64 1
+ %tmp16548 = getelementptr inbounds float* %tmp16547, i64 1
+ %tmp16549 = getelementptr inbounds float* %tmp16548, i64 1
+ %tmp16550 = getelementptr inbounds float* %tmp16549, i64 1
+ %tmp16551 = getelementptr inbounds float* %tmp16550, i64 1
+ %tmp16552 = getelementptr inbounds float* %tmp16551, i64 1
+ %tmp16553 = getelementptr inbounds float* %tmp16552, i64 1
+ %tmp16554 = getelementptr inbounds float* %tmp16553, i64 1
+ %tmp16555 = getelementptr inbounds float* %tmp16554, i64 1
+ %tmp16556 = getelementptr inbounds float* %tmp16555, i64 1
+ %tmp16557 = getelementptr inbounds float* %tmp16556, i64 1
+ %tmp16558 = getelementptr inbounds float* %tmp16557, i64 1
+ %tmp16559 = getelementptr inbounds float* %tmp16558, i64 1
+ %tmp16560 = getelementptr inbounds float* %tmp16559, i64 1
+ %tmp16561 = getelementptr inbounds float* %tmp16560, i64 1
+ %tmp16562 = getelementptr inbounds float* %tmp16561, i64 1
+ %tmp16563 = getelementptr inbounds float* %tmp16562, i64 1
+ %tmp16564 = getelementptr inbounds float* %tmp16563, i64 1
+ %tmp16565 = getelementptr inbounds float* %tmp16564, i64 1
+ %tmp16566 = getelementptr inbounds float* %tmp16565, i64 1
+ %tmp16567 = getelementptr inbounds float* %tmp16566, i64 1
+ %tmp16568 = getelementptr inbounds float* %tmp16567, i64 1
+ %tmp16569 = getelementptr inbounds float* %tmp16568, i64 1
+ %tmp16570 = getelementptr inbounds float* %tmp16569, i64 1
+ %tmp16571 = getelementptr inbounds float* %tmp16570, i64 1
+ %tmp16572 = getelementptr inbounds float* %tmp16571, i64 1
+ %tmp16573 = getelementptr inbounds float* %tmp16572, i64 1
+ %tmp16574 = getelementptr inbounds float* %tmp16573, i64 1
+ %tmp16575 = getelementptr inbounds float* %tmp16574, i64 1
+ %tmp16576 = getelementptr inbounds float* %tmp16575, i64 1
+ %tmp16577 = getelementptr inbounds float* %tmp16576, i64 1
+ %tmp16578 = getelementptr inbounds float* %tmp16577, i64 1
+ %tmp16579 = getelementptr inbounds float* %tmp16578, i64 1
+ %tmp16580 = getelementptr inbounds float* %tmp16579, i64 1
+ %tmp16581 = getelementptr inbounds float* %tmp16580, i64 1
+ %tmp16582 = getelementptr inbounds float* %tmp16581, i64 1
+ %tmp16583 = getelementptr inbounds float* %tmp16582, i64 1
+ %tmp16584 = getelementptr inbounds float* %tmp16583, i64 1
+ %tmp16585 = getelementptr inbounds float* %tmp16584, i64 1
+ %tmp16586 = getelementptr inbounds float* %tmp16585, i64 1
+ %tmp16587 = getelementptr inbounds float* %tmp16586, i64 1
+ %tmp16588 = getelementptr inbounds float* %tmp16587, i64 1
+ %tmp16589 = getelementptr inbounds float* %tmp16588, i64 1
+ %tmp16590 = getelementptr inbounds float* %tmp16589, i64 1
+ %tmp16591 = getelementptr inbounds float* %tmp16590, i64 1
+ %tmp16592 = getelementptr inbounds float* %tmp16591, i64 1
+ %tmp16593 = getelementptr inbounds float* %tmp16592, i64 1
+ %tmp16594 = getelementptr inbounds float* %tmp16593, i64 1
+ %tmp16595 = getelementptr inbounds float* %tmp16594, i64 1
+ %tmp16596 = getelementptr inbounds float* %tmp16595, i64 1
+ %tmp16597 = getelementptr inbounds float* %tmp16596, i64 1
+ %tmp16598 = getelementptr inbounds float* %tmp16597, i64 1
+ %tmp16599 = getelementptr inbounds float* %tmp16598, i64 1
+ %tmp16600 = getelementptr inbounds float* %tmp16599, i64 1
+ %tmp16601 = getelementptr inbounds float* %tmp16600, i64 1
+ %tmp16602 = getelementptr inbounds float* %tmp16601, i64 1
+ %tmp16603 = getelementptr inbounds float* %tmp16602, i64 1
+ %tmp16604 = getelementptr inbounds float* %tmp16603, i64 1
+ %tmp16605 = getelementptr inbounds float* %tmp16604, i64 1
+ %tmp16606 = getelementptr inbounds float* %tmp16605, i64 1
+ %tmp16607 = getelementptr inbounds float* %tmp16606, i64 1
+ %tmp16608 = getelementptr inbounds float* %tmp16607, i64 1
+ %tmp16609 = getelementptr inbounds float* %tmp16608, i64 1
+ %tmp16610 = getelementptr inbounds float* %tmp16609, i64 1
+ %tmp16611 = getelementptr inbounds float* %tmp16610, i64 1
+ %tmp16612 = getelementptr inbounds float* %tmp16611, i64 1
+ %tmp16613 = getelementptr inbounds float* %tmp16612, i64 1
+ %tmp16614 = getelementptr inbounds float* %tmp16613, i64 1
+ %tmp16615 = getelementptr inbounds float* %tmp16614, i64 1
+ %tmp16616 = getelementptr inbounds float* %tmp16615, i64 1
+ %tmp16617 = getelementptr inbounds float* %tmp16616, i64 1
+ %tmp16618 = getelementptr inbounds float* %tmp16617, i64 1
+ %tmp16619 = getelementptr inbounds float* %tmp16618, i64 1
+ %tmp16620 = getelementptr inbounds float* %tmp16619, i64 1
+ %tmp16621 = getelementptr inbounds float* %tmp16620, i64 1
+ %tmp16622 = getelementptr inbounds float* %tmp16621, i64 1
+ %tmp16623 = getelementptr inbounds float* %tmp16622, i64 1
+ %tmp16624 = getelementptr inbounds float* %tmp16623, i64 1
+ %tmp16625 = getelementptr inbounds float* %tmp16624, i64 1
+ %tmp16626 = getelementptr inbounds float* %tmp16625, i64 1
+ %tmp16627 = getelementptr inbounds float* %tmp16626, i64 1
+ %tmp16628 = getelementptr inbounds float* %tmp16627, i64 1
+ %tmp16629 = getelementptr inbounds float* %tmp16628, i64 1
+ %tmp16630 = getelementptr inbounds float* %tmp16629, i64 1
+ %tmp16631 = getelementptr inbounds float* %tmp16630, i64 1
+ %tmp16632 = getelementptr inbounds float* %tmp16631, i64 1
+ %tmp16633 = getelementptr inbounds float* %tmp16632, i64 1
+ %tmp16634 = getelementptr inbounds float* %tmp16633, i64 1
+ %tmp16635 = getelementptr inbounds float* %tmp16634, i64 1
+ %tmp16636 = getelementptr inbounds float* %tmp16635, i64 1
+ %tmp16637 = getelementptr inbounds float* %tmp16636, i64 1
+ %tmp16638 = getelementptr inbounds float* %tmp16637, i64 1
+ %tmp16639 = getelementptr inbounds float* %tmp16638, i64 1
+ %tmp16640 = getelementptr inbounds float* %tmp16639, i64 1
+ %tmp16641 = getelementptr inbounds float* %tmp16640, i64 1
+ %tmp16642 = getelementptr inbounds float* %tmp16641, i64 1
+ %tmp16643 = getelementptr inbounds float* %tmp16642, i64 1
+ %tmp16644 = getelementptr inbounds float* %tmp16643, i64 1
+ %tmp16645 = getelementptr inbounds float* %tmp16644, i64 1
+ %tmp16646 = getelementptr inbounds float* %tmp16645, i64 1
+ %tmp16647 = getelementptr inbounds float* %tmp16646, i64 1
+ %tmp16648 = getelementptr inbounds float* %tmp16647, i64 1
+ %tmp16649 = getelementptr inbounds float* %tmp16648, i64 1
+ %tmp16650 = getelementptr inbounds float* %tmp16649, i64 1
+ %tmp16651 = getelementptr inbounds float* %tmp16650, i64 1
+ %tmp16652 = getelementptr inbounds float* %tmp16651, i64 1
+ %tmp16653 = getelementptr inbounds float* %tmp16652, i64 1
+ %tmp16654 = getelementptr inbounds float* %tmp16653, i64 1
+ %tmp16655 = getelementptr inbounds float* %tmp16654, i64 1
+ %tmp16656 = getelementptr inbounds float* %tmp16655, i64 1
+ %tmp16657 = getelementptr inbounds float* %tmp16656, i64 1
+ %tmp16658 = getelementptr inbounds float* %tmp16657, i64 1
+ %tmp16659 = getelementptr inbounds float* %tmp16658, i64 1
+ %tmp16660 = getelementptr inbounds float* %tmp16659, i64 1
+ %tmp16661 = getelementptr inbounds float* %tmp16660, i64 1
+ %tmp16662 = getelementptr inbounds float* %tmp16661, i64 1
+ %tmp16663 = getelementptr inbounds float* %tmp16662, i64 1
+ %tmp16664 = getelementptr inbounds float* %tmp16663, i64 1
+ %tmp16665 = getelementptr inbounds float* %tmp16664, i64 1
+ %tmp16666 = getelementptr inbounds float* %tmp16665, i64 1
+ %tmp16667 = getelementptr inbounds float* %tmp16666, i64 1
+ %tmp16668 = getelementptr inbounds float* %tmp16667, i64 1
+ %tmp16669 = getelementptr inbounds float* %tmp16668, i64 1
+ %tmp16670 = getelementptr inbounds float* %tmp16669, i64 1
+ %tmp16671 = getelementptr inbounds float* %tmp16670, i64 1
+ %tmp16672 = getelementptr inbounds float* %tmp16671, i64 1
+ %tmp16673 = getelementptr inbounds float* %tmp16672, i64 1
+ %tmp16674 = getelementptr inbounds float* %tmp16673, i64 1
+ %tmp16675 = getelementptr inbounds float* %tmp16674, i64 1
+ %tmp16676 = getelementptr inbounds float* %tmp16675, i64 1
+ %tmp16677 = getelementptr inbounds float* %tmp16676, i64 1
+ %tmp16678 = getelementptr inbounds float* %tmp16677, i64 1
+ %tmp16679 = getelementptr inbounds float* %tmp16678, i64 1
+ %tmp16680 = getelementptr inbounds float* %tmp16679, i64 1
+ %tmp16681 = getelementptr inbounds float* %tmp16680, i64 1
+ %tmp16682 = getelementptr inbounds float* %tmp16681, i64 1
+ %tmp16683 = getelementptr inbounds float* %tmp16682, i64 1
+ %tmp16684 = getelementptr inbounds float* %tmp16683, i64 1
+ %tmp16685 = getelementptr inbounds float* %tmp16684, i64 1
+ %tmp16686 = getelementptr inbounds float* %tmp16685, i64 1
+ %tmp16687 = getelementptr inbounds float* %tmp16686, i64 1
+ %tmp16688 = getelementptr inbounds float* %tmp16687, i64 1
+ %tmp16689 = getelementptr inbounds float* %tmp16688, i64 1
+ %tmp16690 = getelementptr inbounds float* %tmp16689, i64 1
+ %tmp16691 = getelementptr inbounds float* %tmp16690, i64 1
+ %tmp16692 = getelementptr inbounds float* %tmp16691, i64 1
+ %tmp16693 = getelementptr inbounds float* %tmp16692, i64 1
+ %tmp16694 = getelementptr inbounds float* %tmp16693, i64 1
+ %tmp16695 = getelementptr inbounds float* %tmp16694, i64 1
+ %tmp16696 = getelementptr inbounds float* %tmp16695, i64 1
+ %tmp16697 = getelementptr inbounds float* %tmp16696, i64 1
+ %tmp16698 = getelementptr inbounds float* %tmp16697, i64 1
+ %tmp16699 = getelementptr inbounds float* %tmp16698, i64 1
+ %tmp16700 = getelementptr inbounds float* %tmp16699, i64 1
+ %tmp16701 = getelementptr inbounds float* %tmp16700, i64 1
+ %tmp16702 = getelementptr inbounds float* %tmp16701, i64 1
+ %tmp16703 = getelementptr inbounds float* %tmp16702, i64 1
+ %tmp16704 = getelementptr inbounds float* %tmp16703, i64 1
+ %tmp16705 = getelementptr inbounds float* %tmp16704, i64 1
+ %tmp16706 = getelementptr inbounds float* %tmp16705, i64 1
+ %tmp16707 = getelementptr inbounds float* %tmp16706, i64 1
+ %tmp16708 = getelementptr inbounds float* %tmp16707, i64 1
+ %tmp16709 = getelementptr inbounds float* %tmp16708, i64 1
+ %tmp16710 = getelementptr inbounds float* %tmp16709, i64 1
+ %tmp16711 = getelementptr inbounds float* %tmp16710, i64 1
+ %tmp16712 = getelementptr inbounds float* %tmp16711, i64 1
+ %tmp16713 = getelementptr inbounds float* %tmp16712, i64 1
+ %tmp16714 = getelementptr inbounds float* %tmp16713, i64 1
+ %tmp16715 = getelementptr inbounds float* %tmp16714, i64 1
+ %tmp16716 = getelementptr inbounds float* %tmp16715, i64 1
+ %tmp16717 = getelementptr inbounds float* %tmp16716, i64 1
+ %tmp16718 = getelementptr inbounds float* %tmp16717, i64 1
+ %tmp16719 = getelementptr inbounds float* %tmp16718, i64 1
+ %tmp16720 = getelementptr inbounds float* %tmp16719, i64 1
+ %tmp16721 = getelementptr inbounds float* %tmp16720, i64 1
+ %tmp16722 = getelementptr inbounds float* %tmp16721, i64 1
+ %tmp16723 = getelementptr inbounds float* %tmp16722, i64 1
+ %tmp16724 = getelementptr inbounds float* %tmp16723, i64 1
+ %tmp16725 = getelementptr inbounds float* %tmp16724, i64 1
+ %tmp16726 = getelementptr inbounds float* %tmp16725, i64 1
+ %tmp16727 = getelementptr inbounds float* %tmp16726, i64 1
+ %tmp16728 = getelementptr inbounds float* %tmp16727, i64 1
+ %tmp16729 = getelementptr inbounds float* %tmp16728, i64 1
+ %tmp16730 = getelementptr inbounds float* %tmp16729, i64 1
+ %tmp16731 = getelementptr inbounds float* %tmp16730, i64 1
+ %tmp16732 = getelementptr inbounds float* %tmp16731, i64 1
+ %tmp16733 = getelementptr inbounds float* %tmp16732, i64 1
+ %tmp16734 = getelementptr inbounds float* %tmp16733, i64 1
+ %tmp16735 = getelementptr inbounds float* %tmp16734, i64 1
+ %tmp16736 = getelementptr inbounds float* %tmp16735, i64 1
+ %tmp16737 = getelementptr inbounds float* %tmp16736, i64 1
+ %tmp16738 = getelementptr inbounds float* %tmp16737, i64 1
+ %tmp16739 = getelementptr inbounds float* %tmp16738, i64 1
+ %tmp16740 = getelementptr inbounds float* %tmp16739, i64 1
+ %tmp16741 = getelementptr inbounds float* %tmp16740, i64 1
+ %tmp16742 = getelementptr inbounds float* %tmp16741, i64 1
+ %tmp16743 = getelementptr inbounds float* %tmp16742, i64 1
+ %tmp16744 = getelementptr inbounds float* %tmp16743, i64 1
+ %tmp16745 = getelementptr inbounds float* %tmp16744, i64 1
+ %tmp16746 = getelementptr inbounds float* %tmp16745, i64 1
+ %tmp16747 = getelementptr inbounds float* %tmp16746, i64 1
+ %tmp16748 = getelementptr inbounds float* %tmp16747, i64 1
+ %tmp16749 = getelementptr inbounds float* %tmp16748, i64 1
+ %tmp16750 = getelementptr inbounds float* %tmp16749, i64 1
+ %tmp16751 = getelementptr inbounds float* %tmp16750, i64 1
+ %tmp16752 = getelementptr inbounds float* %tmp16751, i64 1
+ %tmp16753 = getelementptr inbounds float* %tmp16752, i64 1
+ %tmp16754 = getelementptr inbounds float* %tmp16753, i64 1
+ %tmp16755 = getelementptr inbounds float* %tmp16754, i64 1
+ %tmp16756 = getelementptr inbounds float* %tmp16755, i64 1
+ %tmp16757 = getelementptr inbounds float* %tmp16756, i64 1
+ %tmp16758 = getelementptr inbounds float* %tmp16757, i64 1
+ %tmp16759 = getelementptr inbounds float* %tmp16758, i64 1
+ %tmp16760 = getelementptr inbounds float* %tmp16759, i64 1
+ %tmp16761 = getelementptr inbounds float* %tmp16760, i64 1
+ %tmp16762 = getelementptr inbounds float* %tmp16761, i64 1
+ %tmp16763 = getelementptr inbounds float* %tmp16762, i64 1
+ %tmp16764 = getelementptr inbounds float* %tmp16763, i64 1
+ %tmp16765 = getelementptr inbounds float* %tmp16764, i64 1
+ %tmp16766 = getelementptr inbounds float* %tmp16765, i64 1
+ %tmp16767 = getelementptr inbounds float* %tmp16766, i64 1
+ %tmp16768 = getelementptr inbounds float* %tmp16767, i64 1
+ %tmp16769 = getelementptr inbounds float* %tmp16768, i64 1
+ %tmp16770 = getelementptr inbounds float* %tmp16769, i64 1
+ %tmp16771 = getelementptr inbounds float* %tmp16770, i64 1
+ %tmp16772 = getelementptr inbounds float* %tmp16771, i64 1
+ %tmp16773 = getelementptr inbounds float* %tmp16772, i64 1
+ %tmp16774 = getelementptr inbounds float* %tmp16773, i64 1
+ %tmp16775 = getelementptr inbounds float* %tmp16774, i64 1
+ %tmp16776 = getelementptr inbounds float* %tmp16775, i64 1
+ %tmp16777 = getelementptr inbounds float* %tmp16776, i64 1
+ %tmp16778 = getelementptr inbounds float* %tmp16777, i64 1
+ %tmp16779 = getelementptr inbounds float* %tmp16778, i64 1
+ %tmp16780 = getelementptr inbounds float* %tmp16779, i64 1
+ %tmp16781 = getelementptr inbounds float* %tmp16780, i64 1
+ %tmp16782 = getelementptr inbounds float* %tmp16781, i64 1
+ %tmp16783 = getelementptr inbounds float* %tmp16782, i64 1
+ %tmp16784 = getelementptr inbounds float* %tmp16783, i64 1
+ %tmp16785 = getelementptr inbounds float* %tmp16784, i64 1
+ %tmp16786 = getelementptr inbounds float* %tmp16785, i64 1
+ %tmp16787 = getelementptr inbounds float* %tmp16786, i64 1
+ %tmp16788 = getelementptr inbounds float* %tmp16787, i64 1
+ %tmp16789 = getelementptr inbounds float* %tmp16788, i64 1
+ %tmp16790 = getelementptr inbounds float* %tmp16789, i64 1
+ %tmp16791 = getelementptr inbounds float* %tmp16790, i64 1
+ %tmp16792 = getelementptr inbounds float* %tmp16791, i64 1
+ %tmp16793 = getelementptr inbounds float* %tmp16792, i64 1
+ %tmp16794 = getelementptr inbounds float* %tmp16793, i64 1
+ %tmp16795 = getelementptr inbounds float* %tmp16794, i64 1
+ %tmp16796 = getelementptr inbounds float* %tmp16795, i64 1
+ %tmp16797 = getelementptr inbounds float* %tmp16796, i64 1
+ %tmp16798 = getelementptr inbounds float* %tmp16797, i64 1
+ %tmp16799 = getelementptr inbounds float* %tmp16798, i64 1
+ %tmp16800 = getelementptr inbounds float* %tmp16799, i64 1
+ %tmp16801 = getelementptr inbounds float* %tmp16800, i64 1
+ %tmp16802 = getelementptr inbounds float* %tmp16801, i64 1
+ %tmp16803 = getelementptr inbounds float* %tmp16802, i64 1
+ %tmp16804 = getelementptr inbounds float* %tmp16803, i64 1
+ %tmp16805 = getelementptr inbounds float* %tmp16804, i64 1
+ %tmp16806 = getelementptr inbounds float* %tmp16805, i64 1
+ %tmp16807 = getelementptr inbounds float* %tmp16806, i64 1
+ %tmp16808 = getelementptr inbounds float* %tmp16807, i64 1
+ %tmp16809 = getelementptr inbounds float* %tmp16808, i64 1
+ %tmp16810 = getelementptr inbounds float* %tmp16809, i64 1
+ %tmp16811 = getelementptr inbounds float* %tmp16810, i64 1
+ %tmp16812 = getelementptr inbounds float* %tmp16811, i64 1
+ %tmp16813 = getelementptr inbounds float* %tmp16812, i64 1
+ %tmp16814 = getelementptr inbounds float* %tmp16813, i64 1
+ %tmp16815 = getelementptr inbounds float* %tmp16814, i64 1
+ %tmp16816 = getelementptr inbounds float* %tmp16815, i64 1
+ %tmp16817 = getelementptr inbounds float* %tmp16816, i64 1
+ %tmp16818 = getelementptr inbounds float* %tmp16817, i64 1
+ %tmp16819 = getelementptr inbounds float* %tmp16818, i64 1
+ %tmp16820 = getelementptr inbounds float* %tmp16819, i64 1
+ %tmp16821 = getelementptr inbounds float* %tmp16820, i64 1
+ %tmp16822 = getelementptr inbounds float* %tmp16821, i64 1
+ %tmp16823 = getelementptr inbounds float* %tmp16822, i64 1
+ %tmp16824 = getelementptr inbounds float* %tmp16823, i64 1
+ %tmp16825 = getelementptr inbounds float* %tmp16824, i64 1
+ %tmp16826 = getelementptr inbounds float* %tmp16825, i64 1
+ %tmp16827 = getelementptr inbounds float* %tmp16826, i64 1
+ %tmp16828 = getelementptr inbounds float* %tmp16827, i64 1
+ %tmp16829 = getelementptr inbounds float* %tmp16828, i64 1
+ %tmp16830 = getelementptr inbounds float* %tmp16829, i64 1
+ %tmp16831 = getelementptr inbounds float* %tmp16830, i64 1
+ %tmp16832 = getelementptr inbounds float* %tmp16831, i64 1
+ %tmp16833 = getelementptr inbounds float* %tmp16832, i64 1
+ %tmp16834 = getelementptr inbounds float* %tmp16833, i64 1
+ %tmp16835 = getelementptr inbounds float* %tmp16834, i64 1
+ %tmp16836 = getelementptr inbounds float* %tmp16835, i64 1
+ %tmp16837 = getelementptr inbounds float* %tmp16836, i64 1
+ %tmp16838 = getelementptr inbounds float* %tmp16837, i64 1
+ %tmp16839 = getelementptr inbounds float* %tmp16838, i64 1
+ %tmp16840 = getelementptr inbounds float* %tmp16839, i64 1
+ %tmp16841 = getelementptr inbounds float* %tmp16840, i64 1
+ %tmp16842 = getelementptr inbounds float* %tmp16841, i64 1
+ %tmp16843 = getelementptr inbounds float* %tmp16842, i64 1
+ %tmp16844 = getelementptr inbounds float* %tmp16843, i64 1
+ %tmp16845 = getelementptr inbounds float* %tmp16844, i64 1
+ %tmp16846 = getelementptr inbounds float* %tmp16845, i64 1
+ %tmp16847 = getelementptr inbounds float* %tmp16846, i64 1
+ %tmp16848 = getelementptr inbounds float* %tmp16847, i64 1
+ %tmp16849 = getelementptr inbounds float* %tmp16848, i64 1
+ %tmp16850 = getelementptr inbounds float* %tmp16849, i64 1
+ %tmp16851 = getelementptr inbounds float* %tmp16850, i64 1
+ %tmp16852 = getelementptr inbounds float* %tmp16851, i64 1
+ %tmp16853 = getelementptr inbounds float* %tmp16852, i64 1
+ %tmp16854 = getelementptr inbounds float* %tmp16853, i64 1
+ %tmp16855 = getelementptr inbounds float* %tmp16854, i64 1
+ %tmp16856 = getelementptr inbounds float* %tmp16855, i64 1
+ %tmp16857 = getelementptr inbounds float* %tmp16856, i64 1
+ %tmp16858 = getelementptr inbounds float* %tmp16857, i64 1
+ %tmp16859 = getelementptr inbounds float* %tmp16858, i64 1
+ %tmp16860 = getelementptr inbounds float* %tmp16859, i64 1
+ %tmp16861 = getelementptr inbounds float* %tmp16860, i64 1
+ %tmp16862 = getelementptr inbounds float* %tmp16861, i64 1
+ %tmp16863 = getelementptr inbounds float* %tmp16862, i64 1
+ %tmp16864 = getelementptr inbounds float* %tmp16863, i64 1
+ %tmp16865 = getelementptr inbounds float* %tmp16864, i64 1
+ %tmp16866 = getelementptr inbounds float* %tmp16865, i64 1
+ %tmp16867 = getelementptr inbounds float* %tmp16866, i64 1
+ %tmp16868 = getelementptr inbounds float* %tmp16867, i64 1
+ %tmp16869 = getelementptr inbounds float* %tmp16868, i64 1
+ %tmp16870 = getelementptr inbounds float* %tmp16869, i64 1
+ %tmp16871 = getelementptr inbounds float* %tmp16870, i64 1
+ %tmp16872 = getelementptr inbounds float* %tmp16871, i64 1
+ %tmp16873 = getelementptr inbounds float* %tmp16872, i64 1
+ %tmp16874 = getelementptr inbounds float* %tmp16873, i64 1
+ %tmp16875 = getelementptr inbounds float* %tmp16874, i64 1
+ %tmp16876 = getelementptr inbounds float* %tmp16875, i64 1
+ %tmp16877 = getelementptr inbounds float* %tmp16876, i64 1
+ %tmp16878 = getelementptr inbounds float* %tmp16877, i64 1
+ %tmp16879 = getelementptr inbounds float* %tmp16878, i64 1
+ %tmp16880 = getelementptr inbounds float* %tmp16879, i64 1
+ %tmp16881 = getelementptr inbounds float* %tmp16880, i64 1
+ %tmp16882 = getelementptr inbounds float* %tmp16881, i64 1
+ %tmp16883 = getelementptr inbounds float* %tmp16882, i64 1
+ %tmp16884 = getelementptr inbounds float* %tmp16883, i64 1
+ %tmp16885 = getelementptr inbounds float* %tmp16884, i64 1
+ %tmp16886 = getelementptr inbounds float* %tmp16885, i64 1
+ %tmp16887 = getelementptr inbounds float* %tmp16886, i64 1
+ %tmp16888 = getelementptr inbounds float* %tmp16887, i64 1
+ %tmp16889 = getelementptr inbounds float* %tmp16888, i64 1
+ %tmp16890 = getelementptr inbounds float* %tmp16889, i64 1
+ %tmp16891 = getelementptr inbounds float* %tmp16890, i64 1
+ %tmp16892 = getelementptr inbounds float* %tmp16891, i64 1
+ %tmp16893 = getelementptr inbounds float* %tmp16892, i64 1
+ %tmp16894 = getelementptr inbounds float* %tmp16893, i64 1
+ %tmp16895 = getelementptr inbounds float* %tmp16894, i64 1
+ %tmp16896 = getelementptr inbounds float* %tmp16895, i64 1
+ %tmp16897 = getelementptr inbounds float* %tmp16896, i64 1
+ %tmp16898 = getelementptr inbounds float* %tmp16897, i64 1
+ %tmp16899 = getelementptr inbounds float* %tmp16898, i64 1
+ %tmp16900 = getelementptr inbounds float* %tmp16899, i64 1
+ %tmp16901 = getelementptr inbounds float* %tmp16900, i64 1
+ %tmp16902 = getelementptr inbounds float* %tmp16901, i64 1
+ %tmp16903 = getelementptr inbounds float* %tmp16902, i64 1
+ %tmp16904 = getelementptr inbounds float* %tmp16903, i64 1
+ %tmp16905 = getelementptr inbounds float* %tmp16904, i64 1
+ %tmp16906 = getelementptr inbounds float* %tmp16905, i64 1
+ %tmp16907 = getelementptr inbounds float* %tmp16906, i64 1
+ %tmp16908 = getelementptr inbounds float* %tmp16907, i64 1
+ %tmp16909 = getelementptr inbounds float* %tmp16908, i64 1
+ %tmp16910 = getelementptr inbounds float* %tmp16909, i64 1
+ %tmp16911 = getelementptr inbounds float* %tmp16910, i64 1
+ %tmp16912 = getelementptr inbounds float* %tmp16911, i64 1
+ %tmp16913 = getelementptr inbounds float* %tmp16912, i64 1
+ %tmp16914 = getelementptr inbounds float* %tmp16913, i64 1
+ %tmp16915 = getelementptr inbounds float* %tmp16914, i64 1
+ %tmp16916 = getelementptr inbounds float* %tmp16915, i64 1
+ %tmp16917 = getelementptr inbounds float* %tmp16916, i64 1
+ %tmp16918 = getelementptr inbounds float* %tmp16917, i64 1
+ %tmp16919 = getelementptr inbounds float* %tmp16918, i64 1
+ %tmp16920 = getelementptr inbounds float* %tmp16919, i64 1
+ %tmp16921 = getelementptr inbounds float* %tmp16920, i64 1
+ %tmp16922 = getelementptr inbounds float* %tmp16921, i64 1
+ %tmp16923 = getelementptr inbounds float* %tmp16922, i64 1
+ %tmp16924 = getelementptr inbounds float* %tmp16923, i64 1
+ %tmp16925 = getelementptr inbounds float* %tmp16924, i64 1
+ %tmp16926 = getelementptr inbounds float* %tmp16925, i64 1
+ %tmp16927 = getelementptr inbounds float* %tmp16926, i64 1
+ %tmp16928 = getelementptr inbounds float* %tmp16927, i64 1
+ %tmp16929 = getelementptr inbounds float* %tmp16928, i64 1
+ %tmp16930 = getelementptr inbounds float* %tmp16929, i64 1
+ %tmp16931 = getelementptr inbounds float* %tmp16930, i64 1
+ %tmp16932 = getelementptr inbounds float* %tmp16931, i64 1
+ %tmp16933 = getelementptr inbounds float* %tmp16932, i64 1
+ %tmp16934 = getelementptr inbounds float* %tmp16933, i64 1
+ %tmp16935 = getelementptr inbounds float* %tmp16934, i64 1
+ %tmp16936 = getelementptr inbounds float* %tmp16935, i64 1
+ %tmp16937 = getelementptr inbounds float* %tmp16936, i64 1
+ %tmp16938 = getelementptr inbounds float* %tmp16937, i64 1
+ %tmp16939 = getelementptr inbounds float* %tmp16938, i64 1
+ %tmp16940 = getelementptr inbounds float* %tmp16939, i64 1
+ %tmp16941 = getelementptr inbounds float* %tmp16940, i64 1
+ %tmp16942 = getelementptr inbounds float* %tmp16941, i64 1
+ %tmp16943 = getelementptr inbounds float* %tmp16942, i64 1
+ %tmp16944 = getelementptr inbounds float* %tmp16943, i64 1
+ %tmp16945 = getelementptr inbounds float* %tmp16944, i64 1
+ %tmp16946 = getelementptr inbounds float* %tmp16945, i64 1
+ %tmp16947 = getelementptr inbounds float* %tmp16946, i64 1
+ %tmp16948 = getelementptr inbounds float* %tmp16947, i64 1
+ %tmp16949 = getelementptr inbounds float* %tmp16948, i64 1
+ %tmp16950 = getelementptr inbounds float* %tmp16949, i64 1
+ %tmp16951 = getelementptr inbounds float* %tmp16950, i64 1
+ %tmp16952 = getelementptr inbounds float* %tmp16951, i64 1
+ %tmp16953 = getelementptr inbounds float* %tmp16952, i64 1
+ %tmp16954 = getelementptr inbounds float* %tmp16953, i64 1
+ %tmp16955 = getelementptr inbounds float* %tmp16954, i64 1
+ %tmp16956 = getelementptr inbounds float* %tmp16955, i64 1
+ %tmp16957 = getelementptr inbounds float* %tmp16956, i64 1
+ %tmp16958 = getelementptr inbounds float* %tmp16957, i64 1
+ %tmp16959 = getelementptr inbounds float* %tmp16958, i64 1
+ %tmp16960 = getelementptr inbounds float* %tmp16959, i64 1
+ %tmp16961 = getelementptr inbounds float* %tmp16960, i64 1
+ %tmp16962 = getelementptr inbounds float* %tmp16961, i64 1
+ %tmp16963 = getelementptr inbounds float* %tmp16962, i64 1
+ %tmp16964 = getelementptr inbounds float* %tmp16963, i64 1
+ %tmp16965 = getelementptr inbounds float* %tmp16964, i64 1
+ %tmp16966 = getelementptr inbounds float* %tmp16965, i64 1
+ %tmp16967 = getelementptr inbounds float* %tmp16966, i64 1
+ %tmp16968 = getelementptr inbounds float* %tmp16967, i64 1
+ %tmp16969 = getelementptr inbounds float* %tmp16968, i64 1
+ %tmp16970 = getelementptr inbounds float* %tmp16969, i64 1
+ %tmp16971 = getelementptr inbounds float* %tmp16970, i64 1
+ %tmp16972 = getelementptr inbounds float* %tmp16971, i64 1
+ %tmp16973 = getelementptr inbounds float* %tmp16972, i64 1
+ %tmp16974 = getelementptr inbounds float* %tmp16973, i64 1
+ %tmp16975 = getelementptr inbounds float* %tmp16974, i64 1
+ %tmp16976 = getelementptr inbounds float* %tmp16975, i64 1
+ %tmp16977 = getelementptr inbounds float* %tmp16976, i64 1
+ %tmp16978 = getelementptr inbounds float* %tmp16977, i64 1
+ %tmp16979 = getelementptr inbounds float* %tmp16978, i64 1
+ %tmp16980 = getelementptr inbounds float* %tmp16979, i64 1
+ %tmp16981 = getelementptr inbounds float* %tmp16980, i64 1
+ %tmp16982 = getelementptr inbounds float* %tmp16981, i64 1
+ %tmp16983 = getelementptr inbounds float* %tmp16982, i64 1
+ %tmp16984 = getelementptr inbounds float* %tmp16983, i64 1
+ %tmp16985 = getelementptr inbounds float* %tmp16984, i64 1
+ %tmp16986 = getelementptr inbounds float* %tmp16985, i64 1
+ %tmp16987 = getelementptr inbounds float* %tmp16986, i64 1
+ %tmp16988 = getelementptr inbounds float* %tmp16987, i64 1
+ %tmp16989 = getelementptr inbounds float* %tmp16988, i64 1
+ %tmp16990 = getelementptr inbounds float* %tmp16989, i64 1
+ %tmp16991 = getelementptr inbounds float* %tmp16990, i64 1
+ %tmp16992 = getelementptr inbounds float* %tmp16991, i64 1
+ %tmp16993 = getelementptr inbounds float* %tmp16992, i64 1
+ %tmp16994 = getelementptr inbounds float* %tmp16993, i64 1
+ %tmp16995 = getelementptr inbounds float* %tmp16994, i64 1
+ %tmp16996 = getelementptr inbounds float* %tmp16995, i64 1
+ %tmp16997 = getelementptr inbounds float* %tmp16996, i64 1
+ %tmp16998 = getelementptr inbounds float* %tmp16997, i64 1
+ %tmp16999 = getelementptr inbounds float* %tmp16998, i64 1
+ %tmp17000 = getelementptr inbounds float* %tmp16999, i64 1
+ %tmp17001 = getelementptr inbounds float* %tmp17000, i64 1
+ %tmp17002 = getelementptr inbounds float* %tmp17001, i64 1
+ %tmp17003 = getelementptr inbounds float* %tmp17002, i64 1
+ %tmp17004 = getelementptr inbounds float* %tmp17003, i64 1
+ %tmp17005 = getelementptr inbounds float* %tmp17004, i64 1
+ %tmp17006 = getelementptr inbounds float* %tmp17005, i64 1
+ %tmp17007 = getelementptr inbounds float* %tmp17006, i64 1
+ %tmp17008 = getelementptr inbounds float* %tmp17007, i64 1
+ %tmp17009 = getelementptr inbounds float* %tmp17008, i64 1
+ %tmp17010 = getelementptr inbounds float* %tmp17009, i64 1
+ %tmp17011 = getelementptr inbounds float* %tmp17010, i64 1
+ %tmp17012 = getelementptr inbounds float* %tmp17011, i64 1
+ %tmp17013 = getelementptr inbounds float* %tmp17012, i64 1
+ %tmp17014 = getelementptr inbounds float* %tmp17013, i64 1
+ %tmp17015 = getelementptr inbounds float* %tmp17014, i64 1
+ %tmp17016 = getelementptr inbounds float* %tmp17015, i64 1
+ %tmp17017 = getelementptr inbounds float* %tmp17016, i64 1
+ %tmp17018 = getelementptr inbounds float* %tmp17017, i64 1
+ %tmp17019 = getelementptr inbounds float* %tmp17018, i64 1
+ %tmp17020 = getelementptr inbounds float* %tmp17019, i64 1
+ %tmp17021 = getelementptr inbounds float* %tmp17020, i64 1
+ %tmp17022 = getelementptr inbounds float* %tmp17021, i64 1
+ %tmp17023 = getelementptr inbounds float* %tmp17022, i64 1
+ %tmp17024 = getelementptr inbounds float* %tmp17023, i64 1
+ %tmp17025 = getelementptr inbounds float* %tmp17024, i64 1
+ %tmp17026 = getelementptr inbounds float* %tmp17025, i64 1
+ %tmp17027 = getelementptr inbounds float* %tmp17026, i64 1
+ %tmp17028 = getelementptr inbounds float* %tmp17027, i64 1
+ %tmp17029 = getelementptr inbounds float* %tmp17028, i64 1
+ %tmp17030 = getelementptr inbounds float* %tmp17029, i64 1
+ %tmp17031 = getelementptr inbounds float* %tmp17030, i64 1
+ %tmp17032 = getelementptr inbounds float* %tmp17031, i64 1
+ %tmp17033 = getelementptr inbounds float* %tmp17032, i64 1
+ %tmp17034 = getelementptr inbounds float* %tmp17033, i64 1
+ %tmp17035 = getelementptr inbounds float* %tmp17034, i64 1
+ %tmp17036 = getelementptr inbounds float* %tmp17035, i64 1
+ %tmp17037 = getelementptr inbounds float* %tmp17036, i64 1
+ %tmp17038 = getelementptr inbounds float* %tmp17037, i64 1
+ %tmp17039 = getelementptr inbounds float* %tmp17038, i64 1
+ %tmp17040 = getelementptr inbounds float* %tmp17039, i64 1
+ %tmp17041 = getelementptr inbounds float* %tmp17040, i64 1
+ %tmp17042 = getelementptr inbounds float* %tmp17041, i64 1
+ %tmp17043 = getelementptr inbounds float* %tmp17042, i64 1
+ %tmp17044 = getelementptr inbounds float* %tmp17043, i64 1
+ %tmp17045 = getelementptr inbounds float* %tmp17044, i64 1
+ %tmp17046 = getelementptr inbounds float* %tmp17045, i64 1
+ %tmp17047 = getelementptr inbounds float* %tmp17046, i64 1
+ %tmp17048 = getelementptr inbounds float* %tmp17047, i64 1
+ %tmp17049 = getelementptr inbounds float* %tmp17048, i64 1
+ %tmp17050 = getelementptr inbounds float* %tmp17049, i64 1
+ %tmp17051 = getelementptr inbounds float* %tmp17050, i64 1
+ %tmp17052 = getelementptr inbounds float* %tmp17051, i64 1
+ %tmp17053 = getelementptr inbounds float* %tmp17052, i64 1
+ %tmp17054 = getelementptr inbounds float* %tmp17053, i64 1
+ %tmp17055 = getelementptr inbounds float* %tmp17054, i64 1
+ %tmp17056 = getelementptr inbounds float* %tmp17055, i64 1
+ %tmp17057 = getelementptr inbounds float* %tmp17056, i64 1
+ %tmp17058 = getelementptr inbounds float* %tmp17057, i64 1
+ %tmp17059 = getelementptr inbounds float* %tmp17058, i64 1
+ %tmp17060 = getelementptr inbounds float* %tmp17059, i64 1
+ %tmp17061 = getelementptr inbounds float* %tmp17060, i64 1
+ %tmp17062 = getelementptr inbounds float* %tmp17061, i64 1
+ %tmp17063 = getelementptr inbounds float* %tmp17062, i64 1
+ %tmp17064 = getelementptr inbounds float* %tmp17063, i64 1
+ %tmp17065 = getelementptr inbounds float* %tmp17064, i64 1
+ %tmp17066 = getelementptr inbounds float* %tmp17065, i64 1
+ %tmp17067 = getelementptr inbounds float* %tmp17066, i64 1
+ %tmp17068 = getelementptr inbounds float* %tmp17067, i64 1
+ %tmp17069 = getelementptr inbounds float* %tmp17068, i64 1
+ %tmp17070 = getelementptr inbounds float* %tmp17069, i64 1
+ %tmp17071 = getelementptr inbounds float* %tmp17070, i64 1
+ %tmp17072 = getelementptr inbounds float* %tmp17071, i64 1
+ %tmp17073 = getelementptr inbounds float* %tmp17072, i64 1
+ %tmp17074 = getelementptr inbounds float* %tmp17073, i64 1
+ %tmp17075 = getelementptr inbounds float* %tmp17074, i64 1
+ %tmp17076 = getelementptr inbounds float* %tmp17075, i64 1
+ %tmp17077 = getelementptr inbounds float* %tmp17076, i64 1
+ %tmp17078 = getelementptr inbounds float* %tmp17077, i64 1
+ %tmp17079 = getelementptr inbounds float* %tmp17078, i64 1
+ %tmp17080 = getelementptr inbounds float* %tmp17079, i64 1
+ %tmp17081 = getelementptr inbounds float* %tmp17080, i64 1
+ %tmp17082 = getelementptr inbounds float* %tmp17081, i64 1
+ %tmp17083 = getelementptr inbounds float* %tmp17082, i64 1
+ %tmp17084 = getelementptr inbounds float* %tmp17083, i64 1
+ %tmp17085 = getelementptr inbounds float* %tmp17084, i64 1
+ %tmp17086 = getelementptr inbounds float* %tmp17085, i64 1
+ %tmp17087 = getelementptr inbounds float* %tmp17086, i64 1
+ %tmp17088 = getelementptr inbounds float* %tmp17087, i64 1
+ %tmp17089 = getelementptr inbounds float* %tmp17088, i64 1
+ %tmp17090 = getelementptr inbounds float* %tmp17089, i64 1
+ %tmp17091 = getelementptr inbounds float* %tmp17090, i64 1
+ %tmp17092 = getelementptr inbounds float* %tmp17091, i64 1
+ %tmp17093 = getelementptr inbounds float* %tmp17092, i64 1
+ %tmp17094 = getelementptr inbounds float* %tmp17093, i64 1
+ %tmp17095 = getelementptr inbounds float* %tmp17094, i64 1
+ %tmp17096 = getelementptr inbounds float* %tmp17095, i64 1
+ %tmp17097 = getelementptr inbounds float* %tmp17096, i64 1
+ %tmp17098 = getelementptr inbounds float* %tmp17097, i64 1
+ %tmp17099 = getelementptr inbounds float* %tmp17098, i64 1
+ %tmp17100 = getelementptr inbounds float* %tmp17099, i64 1
+ %tmp17101 = getelementptr inbounds float* %tmp17100, i64 1
+ %tmp17102 = getelementptr inbounds float* %tmp17101, i64 1
+ %tmp17103 = getelementptr inbounds float* %tmp17102, i64 1
+ %tmp17104 = getelementptr inbounds float* %tmp17103, i64 1
+ %tmp17105 = getelementptr inbounds float* %tmp17104, i64 1
+ %tmp17106 = getelementptr inbounds float* %tmp17105, i64 1
+ %tmp17107 = getelementptr inbounds float* %tmp17106, i64 1
+ %tmp17108 = getelementptr inbounds float* %tmp17107, i64 1
+ %tmp17109 = getelementptr inbounds float* %tmp17108, i64 1
+ %tmp17110 = getelementptr inbounds float* %tmp17109, i64 1
+ %tmp17111 = getelementptr inbounds float* %tmp17110, i64 1
+ %tmp17112 = getelementptr inbounds float* %tmp17111, i64 1
+ %tmp17113 = getelementptr inbounds float* %tmp17112, i64 1
+ %tmp17114 = getelementptr inbounds float* %tmp17113, i64 1
+ %tmp17115 = getelementptr inbounds float* %tmp17114, i64 1
+ %tmp17116 = getelementptr inbounds float* %tmp17115, i64 1
+ %tmp17117 = getelementptr inbounds float* %tmp17116, i64 1
+ %tmp17118 = getelementptr inbounds float* %tmp17117, i64 1
+ %tmp17119 = getelementptr inbounds float* %tmp17118, i64 1
+ %tmp17120 = getelementptr inbounds float* %tmp17119, i64 1
+ %tmp17121 = getelementptr inbounds float* %tmp17120, i64 1
+ %tmp17122 = getelementptr inbounds float* %tmp17121, i64 1
+ %tmp17123 = getelementptr inbounds float* %tmp17122, i64 1
+ %tmp17124 = getelementptr inbounds float* %tmp17123, i64 1
+ %tmp17125 = getelementptr inbounds float* %tmp17124, i64 1
+ %tmp17126 = getelementptr inbounds float* %tmp17125, i64 1
+ %tmp17127 = getelementptr inbounds float* %tmp17126, i64 1
+ %tmp17128 = getelementptr inbounds float* %tmp17127, i64 1
+ %tmp17129 = getelementptr inbounds float* %tmp17128, i64 1
+ %tmp17130 = getelementptr inbounds float* %tmp17129, i64 1
+ %tmp17131 = getelementptr inbounds float* %tmp17130, i64 1
+ %tmp17132 = getelementptr inbounds float* %tmp17131, i64 1
+ %tmp17133 = getelementptr inbounds float* %tmp17132, i64 1
+ %tmp17134 = getelementptr inbounds float* %tmp17133, i64 1
+ %tmp17135 = getelementptr inbounds float* %tmp17134, i64 1
+ %tmp17136 = getelementptr inbounds float* %tmp17135, i64 1
+ %tmp17137 = getelementptr inbounds float* %tmp17136, i64 1
+ %tmp17138 = getelementptr inbounds float* %tmp17137, i64 1
+ %tmp17139 = getelementptr inbounds float* %tmp17138, i64 1
+ %tmp17140 = getelementptr inbounds float* %tmp17139, i64 1
+ %tmp17141 = getelementptr inbounds float* %tmp17140, i64 1
+ %tmp17142 = getelementptr inbounds float* %tmp17141, i64 1
+ %tmp17143 = getelementptr inbounds float* %tmp17142, i64 1
+ %tmp17144 = getelementptr inbounds float* %tmp17143, i64 1
+ %tmp17145 = getelementptr inbounds float* %tmp17144, i64 1
+ %tmp17146 = getelementptr inbounds float* %tmp17145, i64 1
+ %tmp17147 = getelementptr inbounds float* %tmp17146, i64 1
+ %tmp17148 = getelementptr inbounds float* %tmp17147, i64 1
+ %tmp17149 = getelementptr inbounds float* %tmp17148, i64 1
+ %tmp17150 = getelementptr inbounds float* %tmp17149, i64 1
+ %tmp17151 = getelementptr inbounds float* %tmp17150, i64 1
+ %tmp17152 = getelementptr inbounds float* %tmp17151, i64 1
+ %tmp17153 = getelementptr inbounds float* %tmp17152, i64 1
+ %tmp17154 = getelementptr inbounds float* %tmp17153, i64 1
+ %tmp17155 = getelementptr inbounds float* %tmp17154, i64 1
+ %tmp17156 = getelementptr inbounds float* %tmp17155, i64 1
+ %tmp17157 = getelementptr inbounds float* %tmp17156, i64 1
+ %tmp17158 = getelementptr inbounds float* %tmp17157, i64 1
+ %tmp17159 = getelementptr inbounds float* %tmp17158, i64 1
+ %tmp17160 = getelementptr inbounds float* %tmp17159, i64 1
+ %tmp17161 = getelementptr inbounds float* %tmp17160, i64 1
+ %tmp17162 = getelementptr inbounds float* %tmp17161, i64 1
+ %tmp17163 = getelementptr inbounds float* %tmp17162, i64 1
+ %tmp17164 = getelementptr inbounds float* %tmp17163, i64 1
+ %tmp17165 = getelementptr inbounds float* %tmp17164, i64 1
+ %tmp17166 = getelementptr inbounds float* %tmp17165, i64 1
+ %tmp17167 = getelementptr inbounds float* %tmp17166, i64 1
+ %tmp17168 = getelementptr inbounds float* %tmp17167, i64 1
+ %tmp17169 = getelementptr inbounds float* %tmp17168, i64 1
+ %tmp17170 = getelementptr inbounds float* %tmp17169, i64 1
+ %tmp17171 = getelementptr inbounds float* %tmp17170, i64 1
+ %tmp17172 = getelementptr inbounds float* %tmp17171, i64 1
+ %tmp17173 = getelementptr inbounds float* %tmp17172, i64 1
+ %tmp17174 = getelementptr inbounds float* %tmp17173, i64 1
+ %tmp17175 = getelementptr inbounds float* %tmp17174, i64 1
+ %tmp17176 = getelementptr inbounds float* %tmp17175, i64 1
+ %tmp17177 = getelementptr inbounds float* %tmp17176, i64 1
+ %tmp17178 = getelementptr inbounds float* %tmp17177, i64 1
+ %tmp17179 = getelementptr inbounds float* %tmp17178, i64 1
+ %tmp17180 = getelementptr inbounds float* %tmp17179, i64 1
+ %tmp17181 = getelementptr inbounds float* %tmp17180, i64 1
+ %tmp17182 = getelementptr inbounds float* %tmp17181, i64 1
+ %tmp17183 = getelementptr inbounds float* %tmp17182, i64 1
+ %tmp17184 = getelementptr inbounds float* %tmp17183, i64 1
+ %tmp17185 = getelementptr inbounds float* %tmp17184, i64 1
+ %tmp17186 = getelementptr inbounds float* %tmp17185, i64 1
+ %tmp17187 = getelementptr inbounds float* %tmp17186, i64 1
+ %tmp17188 = getelementptr inbounds float* %tmp17187, i64 1
+ %tmp17189 = getelementptr inbounds float* %tmp17188, i64 1
+ %tmp17190 = getelementptr inbounds float* %tmp17189, i64 1
+ %tmp17191 = getelementptr inbounds float* %tmp17190, i64 1
+ %tmp17192 = getelementptr inbounds float* %tmp17191, i64 1
+ %tmp17193 = getelementptr inbounds float* %tmp17192, i64 1
+ %tmp17194 = getelementptr inbounds float* %tmp17193, i64 1
+ %tmp17195 = getelementptr inbounds float* %tmp17194, i64 1
+ %tmp17196 = getelementptr inbounds float* %tmp17195, i64 1
+ %tmp17197 = getelementptr inbounds float* %tmp17196, i64 1
+ %tmp17198 = getelementptr inbounds float* %tmp17197, i64 1
+ %tmp17199 = getelementptr inbounds float* %tmp17198, i64 1
+ %tmp17200 = getelementptr inbounds float* %tmp17199, i64 1
+ %tmp17201 = getelementptr inbounds float* %tmp17200, i64 1
+ %tmp17202 = getelementptr inbounds float* %tmp17201, i64 1
+ %tmp17203 = getelementptr inbounds float* %tmp17202, i64 1
+ %tmp17204 = getelementptr inbounds float* %tmp17203, i64 1
+ %tmp17205 = getelementptr inbounds float* %tmp17204, i64 1
+ %tmp17206 = getelementptr inbounds float* %tmp17205, i64 1
+ %tmp17207 = getelementptr inbounds float* %tmp17206, i64 1
+ %tmp17208 = getelementptr inbounds float* %tmp17207, i64 1
+ %tmp17209 = getelementptr inbounds float* %tmp17208, i64 1
+ %tmp17210 = getelementptr inbounds float* %tmp17209, i64 1
+ %tmp17211 = getelementptr inbounds float* %tmp17210, i64 1
+ %tmp17212 = getelementptr inbounds float* %tmp17211, i64 1
+ %tmp17213 = getelementptr inbounds float* %tmp17212, i64 1
+ %tmp17214 = getelementptr inbounds float* %tmp17213, i64 1
+ %tmp17215 = getelementptr inbounds float* %tmp17214, i64 1
+ %tmp17216 = getelementptr inbounds float* %tmp17215, i64 1
+ %tmp17217 = getelementptr inbounds float* %tmp17216, i64 1
+ %tmp17218 = getelementptr inbounds float* %tmp17217, i64 1
+ %tmp17219 = getelementptr inbounds float* %tmp17218, i64 1
+ %tmp17220 = getelementptr inbounds float* %tmp17219, i64 1
+ %tmp17221 = getelementptr inbounds float* %tmp17220, i64 1
+ %tmp17222 = getelementptr inbounds float* %tmp17221, i64 1
+ %tmp17223 = getelementptr inbounds float* %tmp17222, i64 1
+ %tmp17224 = getelementptr inbounds float* %tmp17223, i64 1
+ %tmp17225 = getelementptr inbounds float* %tmp17224, i64 1
+ %tmp17226 = getelementptr inbounds float* %tmp17225, i64 1
+ %tmp17227 = getelementptr inbounds float* %tmp17226, i64 1
+ %tmp17228 = getelementptr inbounds float* %tmp17227, i64 1
+ %tmp17229 = getelementptr inbounds float* %tmp17228, i64 1
+ %tmp17230 = getelementptr inbounds float* %tmp17229, i64 1
+ %tmp17231 = getelementptr inbounds float* %tmp17230, i64 1
+ %tmp17232 = getelementptr inbounds float* %tmp17231, i64 1
+ %tmp17233 = getelementptr inbounds float* %tmp17232, i64 1
+ %tmp17234 = getelementptr inbounds float* %tmp17233, i64 1
+ %tmp17235 = getelementptr inbounds float* %tmp17234, i64 1
+ %tmp17236 = getelementptr inbounds float* %tmp17235, i64 1
+ %tmp17237 = getelementptr inbounds float* %tmp17236, i64 1
+ %tmp17238 = getelementptr inbounds float* %tmp17237, i64 1
+ %tmp17239 = getelementptr inbounds float* %tmp17238, i64 1
+ %tmp17240 = getelementptr inbounds float* %tmp17239, i64 1
+ %tmp17241 = getelementptr inbounds float* %tmp17240, i64 1
+ %tmp17242 = getelementptr inbounds float* %tmp17241, i64 1
+ %tmp17243 = getelementptr inbounds float* %tmp17242, i64 1
+ %tmp17244 = getelementptr inbounds float* %tmp17243, i64 1
+ %tmp17245 = getelementptr inbounds float* %tmp17244, i64 1
+ %tmp17246 = getelementptr inbounds float* %tmp17245, i64 1
+ %tmp17247 = getelementptr inbounds float* %tmp17246, i64 1
+ %tmp17248 = getelementptr inbounds float* %tmp17247, i64 1
+ %tmp17249 = getelementptr inbounds float* %tmp17248, i64 1
+ %tmp17250 = getelementptr inbounds float* %tmp17249, i64 1
+ %tmp17251 = getelementptr inbounds float* %tmp17250, i64 1
+ %tmp17252 = getelementptr inbounds float* %tmp17251, i64 1
+ %tmp17253 = getelementptr inbounds float* %tmp17252, i64 1
+ %tmp17254 = getelementptr inbounds float* %tmp17253, i64 1
+ %tmp17255 = getelementptr inbounds float* %tmp17254, i64 1
+ %tmp17256 = getelementptr inbounds float* %tmp17255, i64 1
+ %tmp17257 = getelementptr inbounds float* %tmp17256, i64 1
+ %tmp17258 = getelementptr inbounds float* %tmp17257, i64 1
+ %tmp17259 = getelementptr inbounds float* %tmp17258, i64 1
+ %tmp17260 = getelementptr inbounds float* %tmp17259, i64 1
+ %tmp17261 = getelementptr inbounds float* %tmp17260, i64 1
+ %tmp17262 = getelementptr inbounds float* %tmp17261, i64 1
+ %tmp17263 = getelementptr inbounds float* %tmp17262, i64 1
+ %tmp17264 = getelementptr inbounds float* %tmp17263, i64 1
+ %tmp17265 = getelementptr inbounds float* %tmp17264, i64 1
+ %tmp17266 = getelementptr inbounds float* %tmp17265, i64 1
+ %tmp17267 = getelementptr inbounds float* %tmp17266, i64 1
+ %tmp17268 = getelementptr inbounds float* %tmp17267, i64 1
+ %tmp17269 = getelementptr inbounds float* %tmp17268, i64 1
+ %tmp17270 = getelementptr inbounds float* %tmp17269, i64 1
+ %tmp17271 = getelementptr inbounds float* %tmp17270, i64 1
+ %tmp17272 = getelementptr inbounds float* %tmp17271, i64 1
+ %tmp17273 = getelementptr inbounds float* %tmp17272, i64 1
+ %tmp17274 = getelementptr inbounds float* %tmp17273, i64 1
+ %tmp17275 = getelementptr inbounds float* %tmp17274, i64 1
+ %tmp17276 = getelementptr inbounds float* %tmp17275, i64 1
+ %tmp17277 = getelementptr inbounds float* %tmp17276, i64 1
+ %tmp17278 = getelementptr inbounds float* %tmp17277, i64 1
+ %tmp17279 = getelementptr inbounds float* %tmp17278, i64 1
+ %tmp17280 = getelementptr inbounds float* %tmp17279, i64 1
+ %tmp17281 = getelementptr inbounds float* %tmp17280, i64 1
+ %tmp17282 = getelementptr inbounds float* %tmp17281, i64 1
+ %tmp17283 = getelementptr inbounds float* %tmp17282, i64 1
+ %tmp17284 = getelementptr inbounds float* %tmp17283, i64 1
+ %tmp17285 = getelementptr inbounds float* %tmp17284, i64 1
+ %tmp17286 = getelementptr inbounds float* %tmp17285, i64 1
+ %tmp17287 = getelementptr inbounds float* %tmp17286, i64 1
+ %tmp17288 = getelementptr inbounds float* %tmp17287, i64 1
+ %tmp17289 = getelementptr inbounds float* %tmp17288, i64 1
+ %tmp17290 = getelementptr inbounds float* %tmp17289, i64 1
+ %tmp17291 = getelementptr inbounds float* %tmp17290, i64 1
+ %tmp17292 = getelementptr inbounds float* %tmp17291, i64 1
+ %tmp17293 = getelementptr inbounds float* %tmp17292, i64 1
+ %tmp17294 = getelementptr inbounds float* %tmp17293, i64 1
+ %tmp17295 = getelementptr inbounds float* %tmp17294, i64 1
+ %tmp17296 = getelementptr inbounds float* %tmp17295, i64 1
+ %tmp17297 = getelementptr inbounds float* %tmp17296, i64 1
+ %tmp17298 = getelementptr inbounds float* %tmp17297, i64 1
+ %tmp17299 = getelementptr inbounds float* %tmp17298, i64 1
+ %tmp17300 = getelementptr inbounds float* %tmp17299, i64 1
+ %tmp17301 = getelementptr inbounds float* %tmp17300, i64 1
+ %tmp17302 = getelementptr inbounds float* %tmp17301, i64 1
+ %tmp17303 = getelementptr inbounds float* %tmp17302, i64 1
+ %tmp17304 = getelementptr inbounds float* %tmp17303, i64 1
+ %tmp17305 = getelementptr inbounds float* %tmp17304, i64 1
+ %tmp17306 = getelementptr inbounds float* %tmp17305, i64 1
+ %tmp17307 = getelementptr inbounds float* %tmp17306, i64 1
+ %tmp17308 = getelementptr inbounds float* %tmp17307, i64 1
+ %tmp17309 = getelementptr inbounds float* %tmp17308, i64 1
+ %tmp17310 = getelementptr inbounds float* %tmp17309, i64 1
+ %tmp17311 = getelementptr inbounds float* %tmp17310, i64 1
+ %tmp17312 = getelementptr inbounds float* %tmp17311, i64 1
+ %tmp17313 = getelementptr inbounds float* %tmp17312, i64 1
+ %tmp17314 = getelementptr inbounds float* %tmp17313, i64 1
+ %tmp17315 = getelementptr inbounds float* %tmp17314, i64 1
+ %tmp17316 = getelementptr inbounds float* %tmp17315, i64 1
+ %tmp17317 = getelementptr inbounds float* %tmp17316, i64 1
+ %tmp17318 = getelementptr inbounds float* %tmp17317, i64 1
+ %tmp17319 = getelementptr inbounds float* %tmp17318, i64 1
+ %tmp17320 = getelementptr inbounds float* %tmp17319, i64 1
+ %tmp17321 = getelementptr inbounds float* %tmp17320, i64 1
+ %tmp17322 = getelementptr inbounds float* %tmp17321, i64 1
+ %tmp17323 = getelementptr inbounds float* %tmp17322, i64 1
+ %tmp17324 = getelementptr inbounds float* %tmp17323, i64 1
+ %tmp17325 = getelementptr inbounds float* %tmp17324, i64 1
+ %tmp17326 = getelementptr inbounds float* %tmp17325, i64 1
+ %tmp17327 = getelementptr inbounds float* %tmp17326, i64 1
+ %tmp17328 = getelementptr inbounds float* %tmp17327, i64 1
+ %tmp17329 = getelementptr inbounds float* %tmp17328, i64 1
+ %tmp17330 = getelementptr inbounds float* %tmp17329, i64 1
+ %tmp17331 = getelementptr inbounds float* %tmp17330, i64 1
+ %tmp17332 = getelementptr inbounds float* %tmp17331, i64 1
+ %tmp17333 = getelementptr inbounds float* %tmp17332, i64 1
+ %tmp17334 = getelementptr inbounds float* %tmp17333, i64 1
+ %tmp17335 = getelementptr inbounds float* %tmp17334, i64 1
+ %tmp17336 = getelementptr inbounds float* %tmp17335, i64 1
+ %tmp17337 = getelementptr inbounds float* %tmp17336, i64 1
+ %tmp17338 = getelementptr inbounds float* %tmp17337, i64 1
+ %tmp17339 = getelementptr inbounds float* %tmp17338, i64 1
+ %tmp17340 = getelementptr inbounds float* %tmp17339, i64 1
+ %tmp17341 = getelementptr inbounds float* %tmp17340, i64 1
+ %tmp17342 = getelementptr inbounds float* %tmp17341, i64 1
+ %tmp17343 = getelementptr inbounds float* %tmp17342, i64 1
+ %tmp17344 = getelementptr inbounds float* %tmp17343, i64 1
+ %tmp17345 = getelementptr inbounds float* %tmp17344, i64 1
+ %tmp17346 = getelementptr inbounds float* %tmp17345, i64 1
+ %tmp17347 = getelementptr inbounds float* %tmp17346, i64 1
+ %tmp17348 = getelementptr inbounds float* %tmp17347, i64 1
+ %tmp17349 = getelementptr inbounds float* %tmp17348, i64 1
+ %tmp17350 = getelementptr inbounds float* %tmp17349, i64 1
+ %tmp17351 = getelementptr inbounds float* %tmp17350, i64 1
+ %tmp17352 = getelementptr inbounds float* %tmp17351, i64 1
+ %tmp17353 = getelementptr inbounds float* %tmp17352, i64 1
+ %tmp17354 = getelementptr inbounds float* %tmp17353, i64 1
+ %tmp17355 = getelementptr inbounds float* %tmp17354, i64 1
+ %tmp17356 = getelementptr inbounds float* %tmp17355, i64 1
+ %tmp17357 = getelementptr inbounds float* %tmp17356, i64 1
+ %tmp17358 = getelementptr inbounds float* %tmp17357, i64 1
+ %tmp17359 = getelementptr inbounds float* %tmp17358, i64 1
+ %tmp17360 = getelementptr inbounds float* %tmp17359, i64 1
+ %tmp17361 = getelementptr inbounds float* %tmp17360, i64 1
+ %tmp17362 = getelementptr inbounds float* %tmp17361, i64 1
+ %tmp17363 = getelementptr inbounds float* %tmp17362, i64 1
+ %tmp17364 = getelementptr inbounds float* %tmp17363, i64 1
+ %tmp17365 = getelementptr inbounds float* %tmp17364, i64 1
+ %tmp17366 = getelementptr inbounds float* %tmp17365, i64 1
+ %tmp17367 = getelementptr inbounds float* %tmp17366, i64 1
+ %tmp17368 = getelementptr inbounds float* %tmp17367, i64 1
+ %tmp17369 = getelementptr inbounds float* %tmp17368, i64 1
+ %tmp17370 = getelementptr inbounds float* %tmp17369, i64 1
+ %tmp17371 = getelementptr inbounds float* %tmp17370, i64 1
+ %tmp17372 = getelementptr inbounds float* %tmp17371, i64 1
+ %tmp17373 = getelementptr inbounds float* %tmp17372, i64 1
+ %tmp17374 = getelementptr inbounds float* %tmp17373, i64 1
+ %tmp17375 = getelementptr inbounds float* %tmp17374, i64 1
+ %tmp17376 = getelementptr inbounds float* %tmp17375, i64 1
+ %tmp17377 = getelementptr inbounds float* %tmp17376, i64 1
+ %tmp17378 = getelementptr inbounds float* %tmp17377, i64 1
+ %tmp17379 = getelementptr inbounds float* %tmp17378, i64 1
+ %tmp17380 = getelementptr inbounds float* %tmp17379, i64 1
+ %tmp17381 = getelementptr inbounds float* %tmp17380, i64 1
+ %tmp17382 = getelementptr inbounds float* %tmp17381, i64 1
+ %tmp17383 = getelementptr inbounds float* %tmp17382, i64 1
+ %tmp17384 = getelementptr inbounds float* %tmp17383, i64 1
+ %tmp17385 = getelementptr inbounds float* %tmp17384, i64 1
+ %tmp17386 = getelementptr inbounds float* %tmp17385, i64 1
+ %tmp17387 = getelementptr inbounds float* %tmp17386, i64 1
+ %tmp17388 = getelementptr inbounds float* %tmp17387, i64 1
+ %tmp17389 = getelementptr inbounds float* %tmp17388, i64 1
+ %tmp17390 = getelementptr inbounds float* %tmp17389, i64 1
+ %tmp17391 = getelementptr inbounds float* %tmp17390, i64 1
+ %tmp17392 = getelementptr inbounds float* %tmp17391, i64 1
+ %tmp17393 = getelementptr inbounds float* %tmp17392, i64 1
+ %tmp17394 = getelementptr inbounds float* %tmp17393, i64 1
+ %tmp17395 = getelementptr inbounds float* %tmp17394, i64 1
+ %tmp17396 = getelementptr inbounds float* %tmp17395, i64 1
+ %tmp17397 = getelementptr inbounds float* %tmp17396, i64 1
+ %tmp17398 = getelementptr inbounds float* %tmp17397, i64 1
+ %tmp17399 = getelementptr inbounds float* %tmp17398, i64 1
+ %tmp17400 = getelementptr inbounds float* %tmp17399, i64 1
+ %tmp17401 = getelementptr inbounds float* %tmp17400, i64 1
+ %tmp17402 = getelementptr inbounds float* %tmp17401, i64 1
+ %tmp17403 = getelementptr inbounds float* %tmp17402, i64 1
+ %tmp17404 = getelementptr inbounds float* %tmp17403, i64 1
+ %tmp17405 = getelementptr inbounds float* %tmp17404, i64 1
+ %tmp17406 = getelementptr inbounds float* %tmp17405, i64 1
+ %tmp17407 = getelementptr inbounds float* %tmp17406, i64 1
+ %tmp17408 = getelementptr inbounds float* %tmp17407, i64 1
+ %tmp17409 = getelementptr inbounds float* %tmp17408, i64 1
+ %tmp17410 = getelementptr inbounds float* %tmp17409, i64 1
+ %tmp17411 = getelementptr inbounds float* %tmp17410, i64 1
+ %tmp17412 = getelementptr inbounds float* %tmp17411, i64 1
+ %tmp17413 = getelementptr inbounds float* %tmp17412, i64 1
+ %tmp17414 = getelementptr inbounds float* %tmp17413, i64 1
+ %tmp17415 = getelementptr inbounds float* %tmp17414, i64 1
+ %tmp17416 = getelementptr inbounds float* %tmp17415, i64 1
+ %tmp17417 = getelementptr inbounds float* %tmp17416, i64 1
+ %tmp17418 = getelementptr inbounds float* %tmp17417, i64 1
+ %tmp17419 = getelementptr inbounds float* %tmp17418, i64 1
+ %tmp17420 = getelementptr inbounds float* %tmp17419, i64 1
+ %tmp17421 = getelementptr inbounds float* %tmp17420, i64 1
+ %tmp17422 = getelementptr inbounds float* %tmp17421, i64 1
+ %tmp17423 = getelementptr inbounds float* %tmp17422, i64 1
+ %tmp17424 = getelementptr inbounds float* %tmp17423, i64 1
+ %tmp17425 = getelementptr inbounds float* %tmp17424, i64 1
+ %tmp17426 = getelementptr inbounds float* %tmp17425, i64 1
+ %tmp17427 = getelementptr inbounds float* %tmp17426, i64 1
+ %tmp17428 = getelementptr inbounds float* %tmp17427, i64 1
+ %tmp17429 = getelementptr inbounds float* %tmp17428, i64 1
+ %tmp17430 = getelementptr inbounds float* %tmp17429, i64 1
+ %tmp17431 = getelementptr inbounds float* %tmp17430, i64 1
+ %tmp17432 = getelementptr inbounds float* %tmp17431, i64 1
+ %tmp17433 = getelementptr inbounds float* %tmp17432, i64 1
+ %tmp17434 = getelementptr inbounds float* %tmp17433, i64 1
+ %tmp17435 = getelementptr inbounds float* %tmp17434, i64 1
+ %tmp17436 = getelementptr inbounds float* %tmp17435, i64 1
+ %tmp17437 = getelementptr inbounds float* %tmp17436, i64 1
+ %tmp17438 = getelementptr inbounds float* %tmp17437, i64 1
+ %tmp17439 = getelementptr inbounds float* %tmp17438, i64 1
+ %tmp17440 = getelementptr inbounds float* %tmp17439, i64 1
+ %tmp17441 = getelementptr inbounds float* %tmp17440, i64 1
+ %tmp17442 = getelementptr inbounds float* %tmp17441, i64 1
+ %tmp17443 = getelementptr inbounds float* %tmp17442, i64 1
+ %tmp17444 = getelementptr inbounds float* %tmp17443, i64 1
+ %tmp17445 = getelementptr inbounds float* %tmp17444, i64 1
+ %tmp17446 = getelementptr inbounds float* %tmp17445, i64 1
+ %tmp17447 = getelementptr inbounds float* %tmp17446, i64 1
+ %tmp17448 = getelementptr inbounds float* %tmp17447, i64 1
+ %tmp17449 = getelementptr inbounds float* %tmp17448, i64 1
+ %tmp17450 = getelementptr inbounds float* %tmp17449, i64 1
+ %tmp17451 = getelementptr inbounds float* %tmp17450, i64 1
+ %tmp17452 = getelementptr inbounds float* %tmp17451, i64 1
+ %tmp17453 = getelementptr inbounds float* %tmp17452, i64 1
+ %tmp17454 = getelementptr inbounds float* %tmp17453, i64 1
+ %tmp17455 = getelementptr inbounds float* %tmp17454, i64 1
+ %tmp17456 = getelementptr inbounds float* %tmp17455, i64 1
+ %tmp17457 = getelementptr inbounds float* %tmp17456, i64 1
+ %tmp17458 = getelementptr inbounds float* %tmp17457, i64 1
+ %tmp17459 = getelementptr inbounds float* %tmp17458, i64 1
+ %tmp17460 = getelementptr inbounds float* %tmp17459, i64 1
+ %tmp17461 = getelementptr inbounds float* %tmp17460, i64 1
+ %tmp17462 = getelementptr inbounds float* %tmp17461, i64 1
+ %tmp17463 = getelementptr inbounds float* %tmp17462, i64 1
+ %tmp17464 = getelementptr inbounds float* %tmp17463, i64 1
+ %tmp17465 = getelementptr inbounds float* %tmp17464, i64 1
+ %tmp17466 = getelementptr inbounds float* %tmp17465, i64 1
+ %tmp17467 = getelementptr inbounds float* %tmp17466, i64 1
+ %tmp17468 = getelementptr inbounds float* %tmp17467, i64 1
+ %tmp17469 = getelementptr inbounds float* %tmp17468, i64 1
+ %tmp17470 = getelementptr inbounds float* %tmp17469, i64 1
+ %tmp17471 = getelementptr inbounds float* %tmp17470, i64 1
+ %tmp17472 = getelementptr inbounds float* %tmp17471, i64 1
+ %tmp17473 = getelementptr inbounds float* %tmp17472, i64 1
+ %tmp17474 = getelementptr inbounds float* %tmp17473, i64 1
+ %tmp17475 = getelementptr inbounds float* %tmp17474, i64 1
+ %tmp17476 = getelementptr inbounds float* %tmp17475, i64 1
+ %tmp17477 = getelementptr inbounds float* %tmp17476, i64 1
+ %tmp17478 = getelementptr inbounds float* %tmp17477, i64 1
+ %tmp17479 = getelementptr inbounds float* %tmp17478, i64 1
+ %tmp17480 = getelementptr inbounds float* %tmp17479, i64 1
+ %tmp17481 = getelementptr inbounds float* %tmp17480, i64 1
+ %tmp17482 = getelementptr inbounds float* %tmp17481, i64 1
+ %tmp17483 = getelementptr inbounds float* %tmp17482, i64 1
+ %tmp17484 = getelementptr inbounds float* %tmp17483, i64 1
+ %tmp17485 = getelementptr inbounds float* %tmp17484, i64 1
+ %tmp17486 = getelementptr inbounds float* %tmp17485, i64 1
+ %tmp17487 = getelementptr inbounds float* %tmp17486, i64 1
+ %tmp17488 = getelementptr inbounds float* %tmp17487, i64 1
+ %tmp17489 = getelementptr inbounds float* %tmp17488, i64 1
+ %tmp17490 = getelementptr inbounds float* %tmp17489, i64 1
+ %tmp17491 = getelementptr inbounds float* %tmp17490, i64 1
+ %tmp17492 = getelementptr inbounds float* %tmp17491, i64 1
+ %tmp17493 = getelementptr inbounds float* %tmp17492, i64 1
+ %tmp17494 = getelementptr inbounds float* %tmp17493, i64 1
+ %tmp17495 = getelementptr inbounds float* %tmp17494, i64 1
+ %tmp17496 = getelementptr inbounds float* %tmp17495, i64 1
+ %tmp17497 = getelementptr inbounds float* %tmp17496, i64 1
+ %tmp17498 = getelementptr inbounds float* %tmp17497, i64 1
+ %tmp17499 = getelementptr inbounds float* %tmp17498, i64 1
+ %tmp17500 = getelementptr inbounds float* %tmp17499, i64 1
+ %tmp17501 = getelementptr inbounds float* %tmp17500, i64 1
+ %tmp17502 = getelementptr inbounds float* %tmp17501, i64 1
+ %tmp17503 = getelementptr inbounds float* %tmp17502, i64 1
+ %tmp17504 = getelementptr inbounds float* %tmp17503, i64 1
+ %tmp17505 = getelementptr inbounds float* %tmp17504, i64 1
+ %tmp17506 = getelementptr inbounds float* %tmp17505, i64 1
+ %tmp17507 = getelementptr inbounds float* %tmp17506, i64 1
+ %tmp17508 = getelementptr inbounds float* %tmp17507, i64 1
+ %tmp17509 = getelementptr inbounds float* %tmp17508, i64 1
+ %tmp17510 = getelementptr inbounds float* %tmp17509, i64 1
+ %tmp17511 = getelementptr inbounds float* %tmp17510, i64 1
+ %tmp17512 = getelementptr inbounds float* %tmp17511, i64 1
+ %tmp17513 = getelementptr inbounds float* %tmp17512, i64 1
+ %tmp17514 = getelementptr inbounds float* %tmp17513, i64 1
+ %tmp17515 = getelementptr inbounds float* %tmp17514, i64 1
+ %tmp17516 = getelementptr inbounds float* %tmp17515, i64 1
+ %tmp17517 = getelementptr inbounds float* %tmp17516, i64 1
+ %tmp17518 = getelementptr inbounds float* %tmp17517, i64 1
+ %tmp17519 = getelementptr inbounds float* %tmp17518, i64 1
+ %tmp17520 = getelementptr inbounds float* %tmp17519, i64 1
+ %tmp17521 = getelementptr inbounds float* %tmp17520, i64 1
+ %tmp17522 = getelementptr inbounds float* %tmp17521, i64 1
+ %tmp17523 = getelementptr inbounds float* %tmp17522, i64 1
+ %tmp17524 = getelementptr inbounds float* %tmp17523, i64 1
+ %tmp17525 = getelementptr inbounds float* %tmp17524, i64 1
+ %tmp17526 = getelementptr inbounds float* %tmp17525, i64 1
+ %tmp17527 = getelementptr inbounds float* %tmp17526, i64 1
+ %tmp17528 = getelementptr inbounds float* %tmp17527, i64 1
+ %tmp17529 = getelementptr inbounds float* %tmp17528, i64 1
+ %tmp17530 = getelementptr inbounds float* %tmp17529, i64 1
+ %tmp17531 = getelementptr inbounds float* %tmp17530, i64 1
+ %tmp17532 = getelementptr inbounds float* %tmp17531, i64 1
+ %tmp17533 = getelementptr inbounds float* %tmp17532, i64 1
+ %tmp17534 = getelementptr inbounds float* %tmp17533, i64 1
+ %tmp17535 = getelementptr inbounds float* %tmp17534, i64 1
+ %tmp17536 = getelementptr inbounds float* %tmp17535, i64 1
+ %tmp17537 = getelementptr inbounds float* %tmp17536, i64 1
+ %tmp17538 = getelementptr inbounds float* %tmp17537, i64 1
+ %tmp17539 = getelementptr inbounds float* %tmp17538, i64 1
+ %tmp17540 = getelementptr inbounds float* %tmp17539, i64 1
+ %tmp17541 = getelementptr inbounds float* %tmp17540, i64 1
+ %tmp17542 = getelementptr inbounds float* %tmp17541, i64 1
+ %tmp17543 = getelementptr inbounds float* %tmp17542, i64 1
+ %tmp17544 = getelementptr inbounds float* %tmp17543, i64 1
+ %tmp17545 = getelementptr inbounds float* %tmp17544, i64 1
+ %tmp17546 = getelementptr inbounds float* %tmp17545, i64 1
+ %tmp17547 = getelementptr inbounds float* %tmp17546, i64 1
+ %tmp17548 = getelementptr inbounds float* %tmp17547, i64 1
+ %tmp17549 = getelementptr inbounds float* %tmp17548, i64 1
+ %tmp17550 = getelementptr inbounds float* %tmp17549, i64 1
+ %tmp17551 = getelementptr inbounds float* %tmp17550, i64 1
+ %tmp17552 = getelementptr inbounds float* %tmp17551, i64 1
+ %tmp17553 = getelementptr inbounds float* %tmp17552, i64 1
+ %tmp17554 = getelementptr inbounds float* %tmp17553, i64 1
+ %tmp17555 = getelementptr inbounds float* %tmp17554, i64 1
+ %tmp17556 = getelementptr inbounds float* %tmp17555, i64 1
+ %tmp17557 = getelementptr inbounds float* %tmp17556, i64 1
+ %tmp17558 = getelementptr inbounds float* %tmp17557, i64 1
+ %tmp17559 = getelementptr inbounds float* %tmp17558, i64 1
+ %tmp17560 = getelementptr inbounds float* %tmp17559, i64 1
+ %tmp17561 = getelementptr inbounds float* %tmp17560, i64 1
+ %tmp17562 = getelementptr inbounds float* %tmp17561, i64 1
+ %tmp17563 = getelementptr inbounds float* %tmp17562, i64 1
+ %tmp17564 = getelementptr inbounds float* %tmp17563, i64 1
+ %tmp17565 = getelementptr inbounds float* %tmp17564, i64 1
+ %tmp17566 = getelementptr inbounds float* %tmp17565, i64 1
+ %tmp17567 = getelementptr inbounds float* %tmp17566, i64 1
+ %tmp17568 = getelementptr inbounds float* %tmp17567, i64 1
+ %tmp17569 = getelementptr inbounds float* %tmp17568, i64 1
+ %tmp17570 = getelementptr inbounds float* %tmp17569, i64 1
+ %tmp17571 = getelementptr inbounds float* %tmp17570, i64 1
+ %tmp17572 = getelementptr inbounds float* %tmp17571, i64 1
+ %tmp17573 = getelementptr inbounds float* %tmp17572, i64 1
+ %tmp17574 = getelementptr inbounds float* %tmp17573, i64 1
+ %tmp17575 = getelementptr inbounds float* %tmp17574, i64 1
+ %tmp17576 = getelementptr inbounds float* %tmp17575, i64 1
+ %tmp17577 = getelementptr inbounds float* %tmp17576, i64 1
+ %tmp17578 = getelementptr inbounds float* %tmp17577, i64 1
+ %tmp17579 = getelementptr inbounds float* %tmp17578, i64 1
+ %tmp17580 = getelementptr inbounds float* %tmp17579, i64 1
+ %tmp17581 = getelementptr inbounds float* %tmp17580, i64 1
+ %tmp17582 = getelementptr inbounds float* %tmp17581, i64 1
+ %tmp17583 = getelementptr inbounds float* %tmp17582, i64 1
+ %tmp17584 = getelementptr inbounds float* %tmp17583, i64 1
+ %tmp17585 = getelementptr inbounds float* %tmp17584, i64 1
+ %tmp17586 = getelementptr inbounds float* %tmp17585, i64 1
+ %tmp17587 = getelementptr inbounds float* %tmp17586, i64 1
+ %tmp17588 = getelementptr inbounds float* %tmp17587, i64 1
+ %tmp17589 = getelementptr inbounds float* %tmp17588, i64 1
+ %tmp17590 = getelementptr inbounds float* %tmp17589, i64 1
+ %tmp17591 = getelementptr inbounds float* %tmp17590, i64 1
+ %tmp17592 = getelementptr inbounds float* %tmp17591, i64 1
+ %tmp17593 = getelementptr inbounds float* %tmp17592, i64 1
+ %tmp17594 = getelementptr inbounds float* %tmp17593, i64 1
+ %tmp17595 = getelementptr inbounds float* %tmp17594, i64 1
+ %tmp17596 = getelementptr inbounds float* %tmp17595, i64 1
+ %tmp17597 = getelementptr inbounds float* %tmp17596, i64 1
+ %tmp17598 = getelementptr inbounds float* %tmp17597, i64 1
+ %tmp17599 = getelementptr inbounds float* %tmp17598, i64 1
+ %tmp17600 = getelementptr inbounds float* %tmp17599, i64 1
+ %tmp17601 = getelementptr inbounds float* %tmp17600, i64 1
+ %tmp17602 = getelementptr inbounds float* %tmp17601, i64 1
+ %tmp17603 = getelementptr inbounds float* %tmp17602, i64 1
+ %tmp17604 = getelementptr inbounds float* %tmp17603, i64 1
+ %tmp17605 = getelementptr inbounds float* %tmp17604, i64 1
+ %tmp17606 = getelementptr inbounds float* %tmp17605, i64 1
+ %tmp17607 = getelementptr inbounds float* %tmp17606, i64 1
+ %tmp17608 = getelementptr inbounds float* %tmp17607, i64 1
+ %tmp17609 = getelementptr inbounds float* %tmp17608, i64 1
+ %tmp17610 = getelementptr inbounds float* %tmp17609, i64 1
+ %tmp17611 = getelementptr inbounds float* %tmp17610, i64 1
+ %tmp17612 = getelementptr inbounds float* %tmp17611, i64 1
+ %tmp17613 = getelementptr inbounds float* %tmp17612, i64 1
+ %tmp17614 = getelementptr inbounds float* %tmp17613, i64 1
+ %tmp17615 = getelementptr inbounds float* %tmp17614, i64 1
+ %tmp17616 = getelementptr inbounds float* %tmp17615, i64 1
+ %tmp17617 = getelementptr inbounds float* %tmp17616, i64 1
+ %tmp17618 = getelementptr inbounds float* %tmp17617, i64 1
+ %tmp17619 = getelementptr inbounds float* %tmp17618, i64 1
+ %tmp17620 = getelementptr inbounds float* %tmp17619, i64 1
+ %tmp17621 = getelementptr inbounds float* %tmp17620, i64 1
+ %tmp17622 = getelementptr inbounds float* %tmp17621, i64 1
+ %tmp17623 = getelementptr inbounds float* %tmp17622, i64 1
+ %tmp17624 = getelementptr inbounds float* %tmp17623, i64 1
+ %tmp17625 = getelementptr inbounds float* %tmp17624, i64 1
+ %tmp17626 = getelementptr inbounds float* %tmp17625, i64 1
+ %tmp17627 = getelementptr inbounds float* %tmp17626, i64 1
+ %tmp17628 = getelementptr inbounds float* %tmp17627, i64 1
+ %tmp17629 = getelementptr inbounds float* %tmp17628, i64 1
+ %tmp17630 = getelementptr inbounds float* %tmp17629, i64 1
+ %tmp17631 = getelementptr inbounds float* %tmp17630, i64 1
+ %tmp17632 = getelementptr inbounds float* %tmp17631, i64 1
+ %tmp17633 = getelementptr inbounds float* %tmp17632, i64 1
+ %tmp17634 = getelementptr inbounds float* %tmp17633, i64 1
+ %tmp17635 = getelementptr inbounds float* %tmp17634, i64 1
+ %tmp17636 = getelementptr inbounds float* %tmp17635, i64 1
+ %tmp17637 = getelementptr inbounds float* %tmp17636, i64 1
+ %tmp17638 = getelementptr inbounds float* %tmp17637, i64 1
+ %tmp17639 = getelementptr inbounds float* %tmp17638, i64 1
+ %tmp17640 = getelementptr inbounds float* %tmp17639, i64 1
+ %tmp17641 = getelementptr inbounds float* %tmp17640, i64 1
+ %tmp17642 = getelementptr inbounds float* %tmp17641, i64 1
+ %tmp17643 = getelementptr inbounds float* %tmp17642, i64 1
+ %tmp17644 = getelementptr inbounds float* %tmp17643, i64 1
+ %tmp17645 = getelementptr inbounds float* %tmp17644, i64 1
+ %tmp17646 = getelementptr inbounds float* %tmp17645, i64 1
+ %tmp17647 = getelementptr inbounds float* %tmp17646, i64 1
+ %tmp17648 = getelementptr inbounds float* %tmp17647, i64 1
+ %tmp17649 = getelementptr inbounds float* %tmp17648, i64 1
+ %tmp17650 = getelementptr inbounds float* %tmp17649, i64 1
+ %tmp17651 = getelementptr inbounds float* %tmp17650, i64 1
+ %tmp17652 = getelementptr inbounds float* %tmp17651, i64 1
+ %tmp17653 = getelementptr inbounds float* %tmp17652, i64 1
+ %tmp17654 = getelementptr inbounds float* %tmp17653, i64 1
+ %tmp17655 = getelementptr inbounds float* %tmp17654, i64 1
+ %tmp17656 = getelementptr inbounds float* %tmp17655, i64 1
+ %tmp17657 = getelementptr inbounds float* %tmp17656, i64 1
+ %tmp17658 = getelementptr inbounds float* %tmp17657, i64 1
+ %tmp17659 = getelementptr inbounds float* %tmp17658, i64 1
+ %tmp17660 = getelementptr inbounds float* %tmp17659, i64 1
+ %tmp17661 = getelementptr inbounds float* %tmp17660, i64 1
+ %tmp17662 = getelementptr inbounds float* %tmp17661, i64 1
+ %tmp17663 = getelementptr inbounds float* %tmp17662, i64 1
+ %tmp17664 = getelementptr inbounds float* %tmp17663, i64 1
+ %tmp17665 = getelementptr inbounds float* %tmp17664, i64 1
+ %tmp17666 = getelementptr inbounds float* %tmp17665, i64 1
+ %tmp17667 = getelementptr inbounds float* %tmp17666, i64 1
+ %tmp17668 = getelementptr inbounds float* %tmp17667, i64 1
+ %tmp17669 = getelementptr inbounds float* %tmp17668, i64 1
+ %tmp17670 = getelementptr inbounds float* %tmp17669, i64 1
+ %tmp17671 = getelementptr inbounds float* %tmp17670, i64 1
+ %tmp17672 = getelementptr inbounds float* %tmp17671, i64 1
+ %tmp17673 = getelementptr inbounds float* %tmp17672, i64 1
+ %tmp17674 = getelementptr inbounds float* %tmp17673, i64 1
+ %tmp17675 = getelementptr inbounds float* %tmp17674, i64 1
+ %tmp17676 = getelementptr inbounds float* %tmp17675, i64 1
+ %tmp17677 = getelementptr inbounds float* %tmp17676, i64 1
+ %tmp17678 = getelementptr inbounds float* %tmp17677, i64 1
+ %tmp17679 = getelementptr inbounds float* %tmp17678, i64 1
+ %tmp17680 = getelementptr inbounds float* %tmp17679, i64 1
+ %tmp17681 = getelementptr inbounds float* %tmp17680, i64 1
+ %tmp17682 = getelementptr inbounds float* %tmp17681, i64 1
+ %tmp17683 = getelementptr inbounds float* %tmp17682, i64 1
+ %tmp17684 = getelementptr inbounds float* %tmp17683, i64 1
+ %tmp17685 = getelementptr inbounds float* %tmp17684, i64 1
+ %tmp17686 = getelementptr inbounds float* %tmp17685, i64 1
+ %tmp17687 = getelementptr inbounds float* %tmp17686, i64 1
+ %tmp17688 = getelementptr inbounds float* %tmp17687, i64 1
+ %tmp17689 = getelementptr inbounds float* %tmp17688, i64 1
+ %tmp17690 = getelementptr inbounds float* %tmp17689, i64 1
+ %tmp17691 = getelementptr inbounds float* %tmp17690, i64 1
+ %tmp17692 = getelementptr inbounds float* %tmp17691, i64 1
+ %tmp17693 = getelementptr inbounds float* %tmp17692, i64 1
+ %tmp17694 = getelementptr inbounds float* %tmp17693, i64 1
+ %tmp17695 = getelementptr inbounds float* %tmp17694, i64 1
+ %tmp17696 = getelementptr inbounds float* %tmp17695, i64 1
+ %tmp17697 = getelementptr inbounds float* %tmp17696, i64 1
+ %tmp17698 = getelementptr inbounds float* %tmp17697, i64 1
+ %tmp17699 = getelementptr inbounds float* %tmp17698, i64 1
+ %tmp17700 = getelementptr inbounds float* %tmp17699, i64 1
+ %tmp17701 = getelementptr inbounds float* %tmp17700, i64 1
+ %tmp17702 = getelementptr inbounds float* %tmp17701, i64 1
+ %tmp17703 = getelementptr inbounds float* %tmp17702, i64 1
+ %tmp17704 = getelementptr inbounds float* %tmp17703, i64 1
+ %tmp17705 = getelementptr inbounds float* %tmp17704, i64 1
+ %tmp17706 = getelementptr inbounds float* %tmp17705, i64 1
+ %tmp17707 = getelementptr inbounds float* %tmp17706, i64 1
+ %tmp17708 = getelementptr inbounds float* %tmp17707, i64 1
+ %tmp17709 = getelementptr inbounds float* %tmp17708, i64 1
+ %tmp17710 = getelementptr inbounds float* %tmp17709, i64 1
+ %tmp17711 = getelementptr inbounds float* %tmp17710, i64 1
+ %tmp17712 = getelementptr inbounds float* %tmp17711, i64 1
+ %tmp17713 = getelementptr inbounds float* %tmp17712, i64 1
+ %tmp17714 = getelementptr inbounds float* %tmp17713, i64 1
+ %tmp17715 = getelementptr inbounds float* %tmp17714, i64 1
+ %tmp17716 = getelementptr inbounds float* %tmp17715, i64 1
+ %tmp17717 = getelementptr inbounds float* %tmp17716, i64 1
+ %tmp17718 = getelementptr inbounds float* %tmp17717, i64 1
+ %tmp17719 = getelementptr inbounds float* %tmp17718, i64 1
+ %tmp17720 = getelementptr inbounds float* %tmp17719, i64 1
+ %tmp17721 = getelementptr inbounds float* %tmp17720, i64 1
+ %tmp17722 = getelementptr inbounds float* %tmp17721, i64 1
+ %tmp17723 = getelementptr inbounds float* %tmp17722, i64 1
+ %tmp17724 = getelementptr inbounds float* %tmp17723, i64 1
+ %tmp17725 = getelementptr inbounds float* %tmp17724, i64 1
+ %tmp17726 = getelementptr inbounds float* %tmp17725, i64 1
+ %tmp17727 = getelementptr inbounds float* %tmp17726, i64 1
+ %tmp17728 = getelementptr inbounds float* %tmp17727, i64 1
+ %tmp17729 = getelementptr inbounds float* %tmp17728, i64 1
+ %tmp17730 = getelementptr inbounds float* %tmp17729, i64 1
+ %tmp17731 = getelementptr inbounds float* %tmp17730, i64 1
+ %tmp17732 = getelementptr inbounds float* %tmp17731, i64 1
+ %tmp17733 = getelementptr inbounds float* %tmp17732, i64 1
+ %tmp17734 = getelementptr inbounds float* %tmp17733, i64 1
+ %tmp17735 = getelementptr inbounds float* %tmp17734, i64 1
+ %tmp17736 = getelementptr inbounds float* %tmp17735, i64 1
+ %tmp17737 = getelementptr inbounds float* %tmp17736, i64 1
+ %tmp17738 = getelementptr inbounds float* %tmp17737, i64 1
+ %tmp17739 = getelementptr inbounds float* %tmp17738, i64 1
+ %tmp17740 = getelementptr inbounds float* %tmp17739, i64 1
+ %tmp17741 = getelementptr inbounds float* %tmp17740, i64 1
+ %tmp17742 = getelementptr inbounds float* %tmp17741, i64 1
+ %tmp17743 = getelementptr inbounds float* %tmp17742, i64 1
+ %tmp17744 = getelementptr inbounds float* %tmp17743, i64 1
+ %tmp17745 = getelementptr inbounds float* %tmp17744, i64 1
+ %tmp17746 = getelementptr inbounds float* %tmp17745, i64 1
+ %tmp17747 = getelementptr inbounds float* %tmp17746, i64 1
+ %tmp17748 = getelementptr inbounds float* %tmp17747, i64 1
+ %tmp17749 = getelementptr inbounds float* %tmp17748, i64 1
+ %tmp17750 = getelementptr inbounds float* %tmp17749, i64 1
+ %tmp17751 = getelementptr inbounds float* %tmp17750, i64 1
+ %tmp17752 = getelementptr inbounds float* %tmp17751, i64 1
+ %tmp17753 = getelementptr inbounds float* %tmp17752, i64 1
+ %tmp17754 = getelementptr inbounds float* %tmp17753, i64 1
+ %tmp17755 = getelementptr inbounds float* %tmp17754, i64 1
+ %tmp17756 = getelementptr inbounds float* %tmp17755, i64 1
+ %tmp17757 = getelementptr inbounds float* %tmp17756, i64 1
+ %tmp17758 = getelementptr inbounds float* %tmp17757, i64 1
+ %tmp17759 = getelementptr inbounds float* %tmp17758, i64 1
+ %tmp17760 = getelementptr inbounds float* %tmp17759, i64 1
+ %tmp17761 = getelementptr inbounds float* %tmp17760, i64 1
+ %tmp17762 = getelementptr inbounds float* %tmp17761, i64 1
+ %tmp17763 = getelementptr inbounds float* %tmp17762, i64 1
+ %tmp17764 = getelementptr inbounds float* %tmp17763, i64 1
+ %tmp17765 = getelementptr inbounds float* %tmp17764, i64 1
+ %tmp17766 = getelementptr inbounds float* %tmp17765, i64 1
+ %tmp17767 = getelementptr inbounds float* %tmp17766, i64 1
+ %tmp17768 = getelementptr inbounds float* %tmp17767, i64 1
+ %tmp17769 = getelementptr inbounds float* %tmp17768, i64 1
+ %tmp17770 = getelementptr inbounds float* %tmp17769, i64 1
+ %tmp17771 = getelementptr inbounds float* %tmp17770, i64 1
+ %tmp17772 = getelementptr inbounds float* %tmp17771, i64 1
+ %tmp17773 = getelementptr inbounds float* %tmp17772, i64 1
+ %tmp17774 = getelementptr inbounds float* %tmp17773, i64 1
+ %tmp17775 = getelementptr inbounds float* %tmp17774, i64 1
+ %tmp17776 = getelementptr inbounds float* %tmp17775, i64 1
+ %tmp17777 = getelementptr inbounds float* %tmp17776, i64 1
+ %tmp17778 = getelementptr inbounds float* %tmp17777, i64 1
+ %tmp17779 = getelementptr inbounds float* %tmp17778, i64 1
+ %tmp17780 = getelementptr inbounds float* %tmp17779, i64 1
+ %tmp17781 = getelementptr inbounds float* %tmp17780, i64 1
+ %tmp17782 = getelementptr inbounds float* %tmp17781, i64 1
+ %tmp17783 = getelementptr inbounds float* %tmp17782, i64 1
+ %tmp17784 = getelementptr inbounds float* %tmp17783, i64 1
+ %tmp17785 = getelementptr inbounds float* %tmp17784, i64 1
+ %tmp17786 = getelementptr inbounds float* %tmp17785, i64 1
+ %tmp17787 = getelementptr inbounds float* %tmp17786, i64 1
+ %tmp17788 = getelementptr inbounds float* %tmp17787, i64 1
+ %tmp17789 = getelementptr inbounds float* %tmp17788, i64 1
+ %tmp17790 = getelementptr inbounds float* %tmp17789, i64 1
+ %tmp17791 = getelementptr inbounds float* %tmp17790, i64 1
+ %tmp17792 = getelementptr inbounds float* %tmp17791, i64 1
+ %tmp17793 = getelementptr inbounds float* %tmp17792, i64 1
+ %tmp17794 = getelementptr inbounds float* %tmp17793, i64 1
+ %tmp17795 = getelementptr inbounds float* %tmp17794, i64 1
+ %tmp17796 = getelementptr inbounds float* %tmp17795, i64 1
+ %tmp17797 = getelementptr inbounds float* %tmp17796, i64 1
+ %tmp17798 = getelementptr inbounds float* %tmp17797, i64 1
+ %tmp17799 = getelementptr inbounds float* %tmp17798, i64 1
+ %tmp17800 = getelementptr inbounds float* %tmp17799, i64 1
+ %tmp17801 = getelementptr inbounds float* %tmp17800, i64 1
+ %tmp17802 = getelementptr inbounds float* %tmp17801, i64 1
+ %tmp17803 = getelementptr inbounds float* %tmp17802, i64 1
+ %tmp17804 = getelementptr inbounds float* %tmp17803, i64 1
+ %tmp17805 = getelementptr inbounds float* %tmp17804, i64 1
+ %tmp17806 = getelementptr inbounds float* %tmp17805, i64 1
+ %tmp17807 = getelementptr inbounds float* %tmp17806, i64 1
+ %tmp17808 = getelementptr inbounds float* %tmp17807, i64 1
+ %tmp17809 = getelementptr inbounds float* %tmp17808, i64 1
+ %tmp17810 = getelementptr inbounds float* %tmp17809, i64 1
+ %tmp17811 = getelementptr inbounds float* %tmp17810, i64 1
+ %tmp17812 = getelementptr inbounds float* %tmp17811, i64 1
+ %tmp17813 = getelementptr inbounds float* %tmp17812, i64 1
+ %tmp17814 = getelementptr inbounds float* %tmp17813, i64 1
+ %tmp17815 = getelementptr inbounds float* %tmp17814, i64 1
+ %tmp17816 = getelementptr inbounds float* %tmp17815, i64 1
+ %tmp17817 = getelementptr inbounds float* %tmp17816, i64 1
+ %tmp17818 = getelementptr inbounds float* %tmp17817, i64 1
+ %tmp17819 = getelementptr inbounds float* %tmp17818, i64 1
+ %tmp17820 = getelementptr inbounds float* %tmp17819, i64 1
+ %tmp17821 = getelementptr inbounds float* %tmp17820, i64 1
+ %tmp17822 = getelementptr inbounds float* %tmp17821, i64 1
+ %tmp17823 = getelementptr inbounds float* %tmp17822, i64 1
+ %tmp17824 = getelementptr inbounds float* %tmp17823, i64 1
+ %tmp17825 = getelementptr inbounds float* %tmp17824, i64 1
+ %tmp17826 = getelementptr inbounds float* %tmp17825, i64 1
+ %tmp17827 = getelementptr inbounds float* %tmp17826, i64 1
+ %tmp17828 = getelementptr inbounds float* %tmp17827, i64 1
+ %tmp17829 = getelementptr inbounds float* %tmp17828, i64 1
+ %tmp17830 = getelementptr inbounds float* %tmp17829, i64 1
+ %tmp17831 = getelementptr inbounds float* %tmp17830, i64 1
+ %tmp17832 = getelementptr inbounds float* %tmp17831, i64 1
+ %tmp17833 = getelementptr inbounds float* %tmp17832, i64 1
+ %tmp17834 = getelementptr inbounds float* %tmp17833, i64 1
+ %tmp17835 = getelementptr inbounds float* %tmp17834, i64 1
+ %tmp17836 = getelementptr inbounds float* %tmp17835, i64 1
+ %tmp17837 = getelementptr inbounds float* %tmp17836, i64 1
+ %tmp17838 = getelementptr inbounds float* %tmp17837, i64 1
+ %tmp17839 = getelementptr inbounds float* %tmp17838, i64 1
+ %tmp17840 = getelementptr inbounds float* %tmp17839, i64 1
+ %tmp17841 = getelementptr inbounds float* %tmp17840, i64 1
+ %tmp17842 = getelementptr inbounds float* %tmp17841, i64 1
+ %tmp17843 = getelementptr inbounds float* %tmp17842, i64 1
+ %tmp17844 = getelementptr inbounds float* %tmp17843, i64 1
+ %tmp17845 = getelementptr inbounds float* %tmp17844, i64 1
+ %tmp17846 = getelementptr inbounds float* %tmp17845, i64 1
+ %tmp17847 = getelementptr inbounds float* %tmp17846, i64 1
+ %tmp17848 = getelementptr inbounds float* %tmp17847, i64 1
+ %tmp17849 = getelementptr inbounds float* %tmp17848, i64 1
+ %tmp17850 = getelementptr inbounds float* %tmp17849, i64 1
+ %tmp17851 = getelementptr inbounds float* %tmp17850, i64 1
+ %tmp17852 = getelementptr inbounds float* %tmp17851, i64 1
+ %tmp17853 = getelementptr inbounds float* %tmp17852, i64 1
+ %tmp17854 = getelementptr inbounds float* %tmp17853, i64 1
+ %tmp17855 = getelementptr inbounds float* %tmp17854, i64 1
+ %tmp17856 = getelementptr inbounds float* %tmp17855, i64 1
+ %tmp17857 = getelementptr inbounds float* %tmp17856, i64 1
+ %tmp17858 = getelementptr inbounds float* %tmp17857, i64 1
+ %tmp17859 = getelementptr inbounds float* %tmp17858, i64 1
+ %tmp17860 = getelementptr inbounds float* %tmp17859, i64 1
+ %tmp17861 = getelementptr inbounds float* %tmp17860, i64 1
+ %tmp17862 = getelementptr inbounds float* %tmp17861, i64 1
+ %tmp17863 = getelementptr inbounds float* %tmp17862, i64 1
+ %tmp17864 = getelementptr inbounds float* %tmp17863, i64 1
+ %tmp17865 = getelementptr inbounds float* %tmp17864, i64 1
+ %tmp17866 = getelementptr inbounds float* %tmp17865, i64 1
+ %tmp17867 = getelementptr inbounds float* %tmp17866, i64 1
+ %tmp17868 = getelementptr inbounds float* %tmp17867, i64 1
+ %tmp17869 = getelementptr inbounds float* %tmp17868, i64 1
+ %tmp17870 = getelementptr inbounds float* %tmp17869, i64 1
+ %tmp17871 = getelementptr inbounds float* %tmp17870, i64 1
+ %tmp17872 = getelementptr inbounds float* %tmp17871, i64 1
+ %tmp17873 = getelementptr inbounds float* %tmp17872, i64 1
+ %tmp17874 = getelementptr inbounds float* %tmp17873, i64 1
+ %tmp17875 = getelementptr inbounds float* %tmp17874, i64 1
+ %tmp17876 = getelementptr inbounds float* %tmp17875, i64 1
+ %tmp17877 = getelementptr inbounds float* %tmp17876, i64 1
+ %tmp17878 = getelementptr inbounds float* %tmp17877, i64 1
+ %tmp17879 = getelementptr inbounds float* %tmp17878, i64 1
+ %tmp17880 = getelementptr inbounds float* %tmp17879, i64 1
+ %tmp17881 = getelementptr inbounds float* %tmp17880, i64 1
+ %tmp17882 = getelementptr inbounds float* %tmp17881, i64 1
+ %tmp17883 = getelementptr inbounds float* %tmp17882, i64 1
+ %tmp17884 = getelementptr inbounds float* %tmp17883, i64 1
+ %tmp17885 = getelementptr inbounds float* %tmp17884, i64 1
+ %tmp17886 = getelementptr inbounds float* %tmp17885, i64 1
+ %tmp17887 = getelementptr inbounds float* %tmp17886, i64 1
+ %tmp17888 = getelementptr inbounds float* %tmp17887, i64 1
+ %tmp17889 = getelementptr inbounds float* %tmp17888, i64 1
+ %tmp17890 = getelementptr inbounds float* %tmp17889, i64 1
+ %tmp17891 = getelementptr inbounds float* %tmp17890, i64 1
+ %tmp17892 = getelementptr inbounds float* %tmp17891, i64 1
+ %tmp17893 = getelementptr inbounds float* %tmp17892, i64 1
+ %tmp17894 = getelementptr inbounds float* %tmp17893, i64 1
+ %tmp17895 = getelementptr inbounds float* %tmp17894, i64 1
+ %tmp17896 = getelementptr inbounds float* %tmp17895, i64 1
+ %tmp17897 = getelementptr inbounds float* %tmp17896, i64 1
+ %tmp17898 = getelementptr inbounds float* %tmp17897, i64 1
+ %tmp17899 = getelementptr inbounds float* %tmp17898, i64 1
+ %tmp17900 = getelementptr inbounds float* %tmp17899, i64 1
+ %tmp17901 = getelementptr inbounds float* %tmp17900, i64 1
+ %tmp17902 = getelementptr inbounds float* %tmp17901, i64 1
+ %tmp17903 = getelementptr inbounds float* %tmp17902, i64 1
+ %tmp17904 = getelementptr inbounds float* %tmp17903, i64 1
+ %tmp17905 = getelementptr inbounds float* %tmp17904, i64 1
+ %tmp17906 = getelementptr inbounds float* %tmp17905, i64 1
+ %tmp17907 = getelementptr inbounds float* %tmp17906, i64 1
+ %tmp17908 = getelementptr inbounds float* %tmp17907, i64 1
+ %tmp17909 = getelementptr inbounds float* %tmp17908, i64 1
+ %tmp17910 = getelementptr inbounds float* %tmp17909, i64 1
+ %tmp17911 = getelementptr inbounds float* %tmp17910, i64 1
+ %tmp17912 = getelementptr inbounds float* %tmp17911, i64 1
+ %tmp17913 = getelementptr inbounds float* %tmp17912, i64 1
+ %tmp17914 = getelementptr inbounds float* %tmp17913, i64 1
+ %tmp17915 = getelementptr inbounds float* %tmp17914, i64 1
+ %tmp17916 = getelementptr inbounds float* %tmp17915, i64 1
+ %tmp17917 = getelementptr inbounds float* %tmp17916, i64 1
+ %tmp17918 = getelementptr inbounds float* %tmp17917, i64 1
+ %tmp17919 = getelementptr inbounds float* %tmp17918, i64 1
+ %tmp17920 = getelementptr inbounds float* %tmp17919, i64 1
+ %tmp17921 = getelementptr inbounds float* %tmp17920, i64 1
+ %tmp17922 = getelementptr inbounds float* %tmp17921, i64 1
+ %tmp17923 = getelementptr inbounds float* %tmp17922, i64 1
+ %tmp17924 = getelementptr inbounds float* %tmp17923, i64 1
+ %tmp17925 = getelementptr inbounds float* %tmp17924, i64 1
+ %tmp17926 = getelementptr inbounds float* %tmp17925, i64 1
+ %tmp17927 = getelementptr inbounds float* %tmp17926, i64 1
+ %tmp17928 = getelementptr inbounds float* %tmp17927, i64 1
+ %tmp17929 = getelementptr inbounds float* %tmp17928, i64 1
+ %tmp17930 = getelementptr inbounds float* %tmp17929, i64 1
+ %tmp17931 = getelementptr inbounds float* %tmp17930, i64 1
+ %tmp17932 = getelementptr inbounds float* %tmp17931, i64 1
+ %tmp17933 = getelementptr inbounds float* %tmp17932, i64 1
+ %tmp17934 = getelementptr inbounds float* %tmp17933, i64 1
+ %tmp17935 = getelementptr inbounds float* %tmp17934, i64 1
+ %tmp17936 = getelementptr inbounds float* %tmp17935, i64 1
+ %tmp17937 = getelementptr inbounds float* %tmp17936, i64 1
+ %tmp17938 = getelementptr inbounds float* %tmp17937, i64 1
+ %tmp17939 = getelementptr inbounds float* %tmp17938, i64 1
+ %tmp17940 = getelementptr inbounds float* %tmp17939, i64 1
+ %tmp17941 = getelementptr inbounds float* %tmp17940, i64 1
+ %tmp17942 = getelementptr inbounds float* %tmp17941, i64 1
+ %tmp17943 = getelementptr inbounds float* %tmp17942, i64 1
+ %tmp17944 = getelementptr inbounds float* %tmp17943, i64 1
+ %tmp17945 = getelementptr inbounds float* %tmp17944, i64 1
+ %tmp17946 = getelementptr inbounds float* %tmp17945, i64 1
+ %tmp17947 = getelementptr inbounds float* %tmp17946, i64 1
+ %tmp17948 = getelementptr inbounds float* %tmp17947, i64 1
+ %tmp17949 = getelementptr inbounds float* %tmp17948, i64 1
+ %tmp17950 = getelementptr inbounds float* %tmp17949, i64 1
+ %tmp17951 = getelementptr inbounds float* %tmp17950, i64 1
+ %tmp17952 = getelementptr inbounds float* %tmp17951, i64 1
+ %tmp17953 = getelementptr inbounds float* %tmp17952, i64 1
+ %tmp17954 = getelementptr inbounds float* %tmp17953, i64 1
+ %tmp17955 = getelementptr inbounds float* %tmp17954, i64 1
+ %tmp17956 = getelementptr inbounds float* %tmp17955, i64 1
+ %tmp17957 = getelementptr inbounds float* %tmp17956, i64 1
+ %tmp17958 = getelementptr inbounds float* %tmp17957, i64 1
+ %tmp17959 = getelementptr inbounds float* %tmp17958, i64 1
+ %tmp17960 = getelementptr inbounds float* %tmp17959, i64 1
+ %tmp17961 = getelementptr inbounds float* %tmp17960, i64 1
+ %tmp17962 = getelementptr inbounds float* %tmp17961, i64 1
+ %tmp17963 = getelementptr inbounds float* %tmp17962, i64 1
+ %tmp17964 = getelementptr inbounds float* %tmp17963, i64 1
+ %tmp17965 = getelementptr inbounds float* %tmp17964, i64 1
+ %tmp17966 = getelementptr inbounds float* %tmp17965, i64 1
+ %tmp17967 = getelementptr inbounds float* %tmp17966, i64 1
+ %tmp17968 = getelementptr inbounds float* %tmp17967, i64 1
+ %tmp17969 = getelementptr inbounds float* %tmp17968, i64 1
+ %tmp17970 = getelementptr inbounds float* %tmp17969, i64 1
+ %tmp17971 = getelementptr inbounds float* %tmp17970, i64 1
+ %tmp17972 = getelementptr inbounds float* %tmp17971, i64 1
+ %tmp17973 = getelementptr inbounds float* %tmp17972, i64 1
+ %tmp17974 = getelementptr inbounds float* %tmp17973, i64 1
+ %tmp17975 = getelementptr inbounds float* %tmp17974, i64 1
+ %tmp17976 = getelementptr inbounds float* %tmp17975, i64 1
+ %tmp17977 = getelementptr inbounds float* %tmp17976, i64 1
+ %tmp17978 = getelementptr inbounds float* %tmp17977, i64 1
+ %tmp17979 = getelementptr inbounds float* %tmp17978, i64 1
+ %tmp17980 = getelementptr inbounds float* %tmp17979, i64 1
+ %tmp17981 = getelementptr inbounds float* %tmp17980, i64 1
+ %tmp17982 = getelementptr inbounds float* %tmp17981, i64 1
+ %tmp17983 = getelementptr inbounds float* %tmp17982, i64 1
+ %tmp17984 = getelementptr inbounds float* %tmp17983, i64 1
+ %tmp17985 = getelementptr inbounds float* %tmp17984, i64 1
+ %tmp17986 = getelementptr inbounds float* %tmp17985, i64 1
+ %tmp17987 = getelementptr inbounds float* %tmp17986, i64 1
+ %tmp17988 = getelementptr inbounds float* %tmp17987, i64 1
+ %tmp17989 = getelementptr inbounds float* %tmp17988, i64 1
+ %tmp17990 = getelementptr inbounds float* %tmp17989, i64 1
+ %tmp17991 = getelementptr inbounds float* %tmp17990, i64 1
+ %tmp17992 = getelementptr inbounds float* %tmp17991, i64 1
+ %tmp17993 = getelementptr inbounds float* %tmp17992, i64 1
+ %tmp17994 = getelementptr inbounds float* %tmp17993, i64 1
+ %tmp17995 = getelementptr inbounds float* %tmp17994, i64 1
+ %tmp17996 = getelementptr inbounds float* %tmp17995, i64 1
+ %tmp17997 = getelementptr inbounds float* %tmp17996, i64 1
+ %tmp17998 = getelementptr inbounds float* %tmp17997, i64 1
+ %tmp17999 = getelementptr inbounds float* %tmp17998, i64 1
+ %tmp18000 = getelementptr inbounds float* %tmp17999, i64 1
+ %tmp18001 = getelementptr inbounds float* %tmp18000, i64 1
+ %tmp18002 = getelementptr inbounds float* %tmp18001, i64 1
+ %tmp18003 = getelementptr inbounds float* %tmp18002, i64 1
+ %tmp18004 = getelementptr inbounds float* %tmp18003, i64 1
+ %tmp18005 = getelementptr inbounds float* %tmp18004, i64 1
+ %tmp18006 = getelementptr inbounds float* %tmp18005, i64 1
+ %tmp18007 = getelementptr inbounds float* %tmp18006, i64 1
+ %tmp18008 = getelementptr inbounds float* %tmp18007, i64 1
+ %tmp18009 = getelementptr inbounds float* %tmp18008, i64 1
+ %tmp18010 = getelementptr inbounds float* %tmp18009, i64 1
+ %tmp18011 = getelementptr inbounds float* %tmp18010, i64 1
+ %tmp18012 = getelementptr inbounds float* %tmp18011, i64 1
+ %tmp18013 = getelementptr inbounds float* %tmp18012, i64 1
+ %tmp18014 = getelementptr inbounds float* %tmp18013, i64 1
+ %tmp18015 = getelementptr inbounds float* %tmp18014, i64 1
+ %tmp18016 = getelementptr inbounds float* %tmp18015, i64 1
+ %tmp18017 = getelementptr inbounds float* %tmp18016, i64 1
+ %tmp18018 = getelementptr inbounds float* %tmp18017, i64 1
+ %tmp18019 = getelementptr inbounds float* %tmp18018, i64 1
+ %tmp18020 = getelementptr inbounds float* %tmp18019, i64 1
+ %tmp18021 = getelementptr inbounds float* %tmp18020, i64 1
+ %tmp18022 = getelementptr inbounds float* %tmp18021, i64 1
+ %tmp18023 = getelementptr inbounds float* %tmp18022, i64 1
+ %tmp18024 = getelementptr inbounds float* %tmp18023, i64 1
+ %tmp18025 = getelementptr inbounds float* %tmp18024, i64 1
+ %tmp18026 = getelementptr inbounds float* %tmp18025, i64 1
+ %tmp18027 = getelementptr inbounds float* %tmp18026, i64 1
+ %tmp18028 = getelementptr inbounds float* %tmp18027, i64 1
+ %tmp18029 = getelementptr inbounds float* %tmp18028, i64 1
+ %tmp18030 = getelementptr inbounds float* %tmp18029, i64 1
+ %tmp18031 = getelementptr inbounds float* %tmp18030, i64 1
+ %tmp18032 = getelementptr inbounds float* %tmp18031, i64 1
+ %tmp18033 = getelementptr inbounds float* %tmp18032, i64 1
+ %tmp18034 = getelementptr inbounds float* %tmp18033, i64 1
+ %tmp18035 = getelementptr inbounds float* %tmp18034, i64 1
+ %tmp18036 = getelementptr inbounds float* %tmp18035, i64 1
+ %tmp18037 = getelementptr inbounds float* %tmp18036, i64 1
+ %tmp18038 = getelementptr inbounds float* %tmp18037, i64 1
+ %tmp18039 = getelementptr inbounds float* %tmp18038, i64 1
+ %tmp18040 = getelementptr inbounds float* %tmp18039, i64 1
+ %tmp18041 = getelementptr inbounds float* %tmp18040, i64 1
+ %tmp18042 = getelementptr inbounds float* %tmp18041, i64 1
+ %tmp18043 = getelementptr inbounds float* %tmp18042, i64 1
+ %tmp18044 = getelementptr inbounds float* %tmp18043, i64 1
+ %tmp18045 = getelementptr inbounds float* %tmp18044, i64 1
+ %tmp18046 = getelementptr inbounds float* %tmp18045, i64 1
+ %tmp18047 = getelementptr inbounds float* %tmp18046, i64 1
+ %tmp18048 = getelementptr inbounds float* %tmp18047, i64 1
+ %tmp18049 = getelementptr inbounds float* %tmp18048, i64 1
+ %tmp18050 = getelementptr inbounds float* %tmp18049, i64 1
+ %tmp18051 = getelementptr inbounds float* %tmp18050, i64 1
+ %tmp18052 = getelementptr inbounds float* %tmp18051, i64 1
+ %tmp18053 = getelementptr inbounds float* %tmp18052, i64 1
+ %tmp18054 = getelementptr inbounds float* %tmp18053, i64 1
+ %tmp18055 = getelementptr inbounds float* %tmp18054, i64 1
+ %tmp18056 = getelementptr inbounds float* %tmp18055, i64 1
+ %tmp18057 = getelementptr inbounds float* %tmp18056, i64 1
+ %tmp18058 = getelementptr inbounds float* %tmp18057, i64 1
+ %tmp18059 = getelementptr inbounds float* %tmp18058, i64 1
+ %tmp18060 = getelementptr inbounds float* %tmp18059, i64 1
+ %tmp18061 = getelementptr inbounds float* %tmp18060, i64 1
+ %tmp18062 = getelementptr inbounds float* %tmp18061, i64 1
+ %tmp18063 = getelementptr inbounds float* %tmp18062, i64 1
+ %tmp18064 = getelementptr inbounds float* %tmp18063, i64 1
+ %tmp18065 = getelementptr inbounds float* %tmp18064, i64 1
+ %tmp18066 = getelementptr inbounds float* %tmp18065, i64 1
+ %tmp18067 = getelementptr inbounds float* %tmp18066, i64 1
+ %tmp18068 = getelementptr inbounds float* %tmp18067, i64 1
+ %tmp18069 = getelementptr inbounds float* %tmp18068, i64 1
+ %tmp18070 = getelementptr inbounds float* %tmp18069, i64 1
+ %tmp18071 = getelementptr inbounds float* %tmp18070, i64 1
+ %tmp18072 = getelementptr inbounds float* %tmp18071, i64 1
+ %tmp18073 = getelementptr inbounds float* %tmp18072, i64 1
+ %tmp18074 = getelementptr inbounds float* %tmp18073, i64 1
+ %tmp18075 = getelementptr inbounds float* %tmp18074, i64 1
+ %tmp18076 = getelementptr inbounds float* %tmp18075, i64 1
+ %tmp18077 = getelementptr inbounds float* %tmp18076, i64 1
+ %tmp18078 = getelementptr inbounds float* %tmp18077, i64 1
+ %tmp18079 = getelementptr inbounds float* %tmp18078, i64 1
+ %tmp18080 = getelementptr inbounds float* %tmp18079, i64 1
+ %tmp18081 = getelementptr inbounds float* %tmp18080, i64 1
+ %tmp18082 = getelementptr inbounds float* %tmp18081, i64 1
+ %tmp18083 = getelementptr inbounds float* %tmp18082, i64 1
+ %tmp18084 = getelementptr inbounds float* %tmp18083, i64 1
+ %tmp18085 = getelementptr inbounds float* %tmp18084, i64 1
+ %tmp18086 = getelementptr inbounds float* %tmp18085, i64 1
+ %tmp18087 = getelementptr inbounds float* %tmp18086, i64 1
+ %tmp18088 = getelementptr inbounds float* %tmp18087, i64 1
+ %tmp18089 = getelementptr inbounds float* %tmp18088, i64 1
+ %tmp18090 = getelementptr inbounds float* %tmp18089, i64 1
+ %tmp18091 = getelementptr inbounds float* %tmp18090, i64 1
+ %tmp18092 = getelementptr inbounds float* %tmp18091, i64 1
+ %tmp18093 = getelementptr inbounds float* %tmp18092, i64 1
+ %tmp18094 = getelementptr inbounds float* %tmp18093, i64 1
+ %tmp18095 = getelementptr inbounds float* %tmp18094, i64 1
+ %tmp18096 = getelementptr inbounds float* %tmp18095, i64 1
+ %tmp18097 = getelementptr inbounds float* %tmp18096, i64 1
+ %tmp18098 = getelementptr inbounds float* %tmp18097, i64 1
+ %tmp18099 = getelementptr inbounds float* %tmp18098, i64 1
+ %tmp18100 = getelementptr inbounds float* %tmp18099, i64 1
+ %tmp18101 = getelementptr inbounds float* %tmp18100, i64 1
+ %tmp18102 = getelementptr inbounds float* %tmp18101, i64 1
+ %tmp18103 = getelementptr inbounds float* %tmp18102, i64 1
+ %tmp18104 = getelementptr inbounds float* %tmp18103, i64 1
+ %tmp18105 = getelementptr inbounds float* %tmp18104, i64 1
+ %tmp18106 = getelementptr inbounds float* %tmp18105, i64 1
+ %tmp18107 = getelementptr inbounds float* %tmp18106, i64 1
+ %tmp18108 = getelementptr inbounds float* %tmp18107, i64 1
+ %tmp18109 = getelementptr inbounds float* %tmp18108, i64 1
+ %tmp18110 = getelementptr inbounds float* %tmp18109, i64 1
+ %tmp18111 = getelementptr inbounds float* %tmp18110, i64 1
+ %tmp18112 = getelementptr inbounds float* %tmp18111, i64 1
+ %tmp18113 = getelementptr inbounds float* %tmp18112, i64 1
+ %tmp18114 = getelementptr inbounds float* %tmp18113, i64 1
+ %tmp18115 = getelementptr inbounds float* %tmp18114, i64 1
+ %tmp18116 = getelementptr inbounds float* %tmp18115, i64 1
+ %tmp18117 = getelementptr inbounds float* %tmp18116, i64 1
+ %tmp18118 = getelementptr inbounds float* %tmp18117, i64 1
+ %tmp18119 = getelementptr inbounds float* %tmp18118, i64 1
+ %tmp18120 = getelementptr inbounds float* %tmp18119, i64 1
+ %tmp18121 = getelementptr inbounds float* %tmp18120, i64 1
+ %tmp18122 = getelementptr inbounds float* %tmp18121, i64 1
+ %tmp18123 = getelementptr inbounds float* %tmp18122, i64 1
+ %tmp18124 = getelementptr inbounds float* %tmp18123, i64 1
+ %tmp18125 = getelementptr inbounds float* %tmp18124, i64 1
+ %tmp18126 = getelementptr inbounds float* %tmp18125, i64 1
+ %tmp18127 = getelementptr inbounds float* %tmp18126, i64 1
+ %tmp18128 = getelementptr inbounds float* %tmp18127, i64 1
+ %tmp18129 = getelementptr inbounds float* %tmp18128, i64 1
+ %tmp18130 = getelementptr inbounds float* %tmp18129, i64 1
+ %tmp18131 = getelementptr inbounds float* %tmp18130, i64 1
+ %tmp18132 = getelementptr inbounds float* %tmp18131, i64 1
+ %tmp18133 = getelementptr inbounds float* %tmp18132, i64 1
+ %tmp18134 = getelementptr inbounds float* %tmp18133, i64 1
+ %tmp18135 = getelementptr inbounds float* %tmp18134, i64 1
+ %tmp18136 = getelementptr inbounds float* %tmp18135, i64 1
+ %tmp18137 = getelementptr inbounds float* %tmp18136, i64 1
+ %tmp18138 = getelementptr inbounds float* %tmp18137, i64 1
+ %tmp18139 = getelementptr inbounds float* %tmp18138, i64 1
+ %tmp18140 = getelementptr inbounds float* %tmp18139, i64 1
+ %tmp18141 = getelementptr inbounds float* %tmp18140, i64 1
+ %tmp18142 = getelementptr inbounds float* %tmp18141, i64 1
+ %tmp18143 = getelementptr inbounds float* %tmp18142, i64 1
+ %tmp18144 = getelementptr inbounds float* %tmp18143, i64 1
+ %tmp18145 = getelementptr inbounds float* %tmp18144, i64 1
+ %tmp18146 = getelementptr inbounds float* %tmp18145, i64 1
+ %tmp18147 = getelementptr inbounds float* %tmp18146, i64 1
+ %tmp18148 = getelementptr inbounds float* %tmp18147, i64 1
+ %tmp18149 = getelementptr inbounds float* %tmp18148, i64 1
+ %tmp18150 = getelementptr inbounds float* %tmp18149, i64 1
+ %tmp18151 = getelementptr inbounds float* %tmp18150, i64 1
+ %tmp18152 = getelementptr inbounds float* %tmp18151, i64 1
+ %tmp18153 = getelementptr inbounds float* %tmp18152, i64 1
+ %tmp18154 = getelementptr inbounds float* %tmp18153, i64 1
+ %tmp18155 = getelementptr inbounds float* %tmp18154, i64 1
+ %tmp18156 = getelementptr inbounds float* %tmp18155, i64 1
+ %tmp18157 = getelementptr inbounds float* %tmp18156, i64 1
+ %tmp18158 = getelementptr inbounds float* %tmp18157, i64 1
+ %tmp18159 = getelementptr inbounds float* %tmp18158, i64 1
+ %tmp18160 = getelementptr inbounds float* %tmp18159, i64 1
+ %tmp18161 = getelementptr inbounds float* %tmp18160, i64 1
+ %tmp18162 = getelementptr inbounds float* %tmp18161, i64 1
+ %tmp18163 = getelementptr inbounds float* %tmp18162, i64 1
+ %tmp18164 = getelementptr inbounds float* %tmp18163, i64 1
+ %tmp18165 = getelementptr inbounds float* %tmp18164, i64 1
+ %tmp18166 = getelementptr inbounds float* %tmp18165, i64 1
+ %tmp18167 = getelementptr inbounds float* %tmp18166, i64 1
+ %tmp18168 = getelementptr inbounds float* %tmp18167, i64 1
+ %tmp18169 = getelementptr inbounds float* %tmp18168, i64 1
+ %tmp18170 = getelementptr inbounds float* %tmp18169, i64 1
+ %tmp18171 = getelementptr inbounds float* %tmp18170, i64 1
+ %tmp18172 = getelementptr inbounds float* %tmp18171, i64 1
+ %tmp18173 = getelementptr inbounds float* %tmp18172, i64 1
+ %tmp18174 = getelementptr inbounds float* %tmp18173, i64 1
+ %tmp18175 = getelementptr inbounds float* %tmp18174, i64 1
+ %tmp18176 = getelementptr inbounds float* %tmp18175, i64 1
+ %tmp18177 = getelementptr inbounds float* %tmp18176, i64 1
+ %tmp18178 = getelementptr inbounds float* %tmp18177, i64 1
+ %tmp18179 = getelementptr inbounds float* %tmp18178, i64 1
+ %tmp18180 = getelementptr inbounds float* %tmp18179, i64 1
+ %tmp18181 = getelementptr inbounds float* %tmp18180, i64 1
+ %tmp18182 = getelementptr inbounds float* %tmp18181, i64 1
+ %tmp18183 = getelementptr inbounds float* %tmp18182, i64 1
+ %tmp18184 = getelementptr inbounds float* %tmp18183, i64 1
+ %tmp18185 = getelementptr inbounds float* %tmp18184, i64 1
+ %tmp18186 = getelementptr inbounds float* %tmp18185, i64 1
+ %tmp18187 = getelementptr inbounds float* %tmp18186, i64 1
+ %tmp18188 = getelementptr inbounds float* %tmp18187, i64 1
+ %tmp18189 = getelementptr inbounds float* %tmp18188, i64 1
+ %tmp18190 = getelementptr inbounds float* %tmp18189, i64 1
+ %tmp18191 = getelementptr inbounds float* %tmp18190, i64 1
+ %tmp18192 = getelementptr inbounds float* %tmp18191, i64 1
+ %tmp18193 = getelementptr inbounds float* %tmp18192, i64 1
+ %tmp18194 = getelementptr inbounds float* %tmp18193, i64 1
+ %tmp18195 = getelementptr inbounds float* %tmp18194, i64 1
+ %tmp18196 = getelementptr inbounds float* %tmp18195, i64 1
+ %tmp18197 = getelementptr inbounds float* %tmp18196, i64 1
+ %tmp18198 = getelementptr inbounds float* %tmp18197, i64 1
+ %tmp18199 = getelementptr inbounds float* %tmp18198, i64 1
+ %tmp18200 = getelementptr inbounds float* %tmp18199, i64 1
+ %tmp18201 = getelementptr inbounds float* %tmp18200, i64 1
+ %tmp18202 = getelementptr inbounds float* %tmp18201, i64 1
+ %tmp18203 = getelementptr inbounds float* %tmp18202, i64 1
+ %tmp18204 = getelementptr inbounds float* %tmp18203, i64 1
+ %tmp18205 = getelementptr inbounds float* %tmp18204, i64 1
+ %tmp18206 = getelementptr inbounds float* %tmp18205, i64 1
+ %tmp18207 = getelementptr inbounds float* %tmp18206, i64 1
+ %tmp18208 = getelementptr inbounds float* %tmp18207, i64 1
+ %tmp18209 = getelementptr inbounds float* %tmp18208, i64 1
+ %tmp18210 = getelementptr inbounds float* %tmp18209, i64 1
+ %tmp18211 = getelementptr inbounds float* %tmp18210, i64 1
+ %tmp18212 = getelementptr inbounds float* %tmp18211, i64 1
+ %tmp18213 = getelementptr inbounds float* %tmp18212, i64 1
+ %tmp18214 = getelementptr inbounds float* %tmp18213, i64 1
+ %tmp18215 = getelementptr inbounds float* %tmp18214, i64 1
+ %tmp18216 = getelementptr inbounds float* %tmp18215, i64 1
+ %tmp18217 = getelementptr inbounds float* %tmp18216, i64 1
+ %tmp18218 = getelementptr inbounds float* %tmp18217, i64 1
+ %tmp18219 = getelementptr inbounds float* %tmp18218, i64 1
+ %tmp18220 = getelementptr inbounds float* %tmp18219, i64 1
+ %tmp18221 = getelementptr inbounds float* %tmp18220, i64 1
+ %tmp18222 = getelementptr inbounds float* %tmp18221, i64 1
+ %tmp18223 = getelementptr inbounds float* %tmp18222, i64 1
+ %tmp18224 = getelementptr inbounds float* %tmp18223, i64 1
+ %tmp18225 = getelementptr inbounds float* %tmp18224, i64 1
+ %tmp18226 = getelementptr inbounds float* %tmp18225, i64 1
+ %tmp18227 = getelementptr inbounds float* %tmp18226, i64 1
+ %tmp18228 = getelementptr inbounds float* %tmp18227, i64 1
+ %tmp18229 = getelementptr inbounds float* %tmp18228, i64 1
+ %tmp18230 = getelementptr inbounds float* %tmp18229, i64 1
+ %tmp18231 = getelementptr inbounds float* %tmp18230, i64 1
+ %tmp18232 = getelementptr inbounds float* %tmp18231, i64 1
+ %tmp18233 = getelementptr inbounds float* %tmp18232, i64 1
+ %tmp18234 = getelementptr inbounds float* %tmp18233, i64 1
+ %tmp18235 = getelementptr inbounds float* %tmp18234, i64 1
+ %tmp18236 = getelementptr inbounds float* %tmp18235, i64 1
+ %tmp18237 = getelementptr inbounds float* %tmp18236, i64 1
+ %tmp18238 = getelementptr inbounds float* %tmp18237, i64 1
+ %tmp18239 = getelementptr inbounds float* %tmp18238, i64 1
+ %tmp18240 = getelementptr inbounds float* %tmp18239, i64 1
+ %tmp18241 = getelementptr inbounds float* %tmp18240, i64 1
+ %tmp18242 = getelementptr inbounds float* %tmp18241, i64 1
+ %tmp18243 = getelementptr inbounds float* %tmp18242, i64 1
+ %tmp18244 = getelementptr inbounds float* %tmp18243, i64 1
+ %tmp18245 = getelementptr inbounds float* %tmp18244, i64 1
+ %tmp18246 = getelementptr inbounds float* %tmp18245, i64 1
+ %tmp18247 = getelementptr inbounds float* %tmp18246, i64 1
+ %tmp18248 = getelementptr inbounds float* %tmp18247, i64 1
+ %tmp18249 = getelementptr inbounds float* %tmp18248, i64 1
+ %tmp18250 = getelementptr inbounds float* %tmp18249, i64 1
+ %tmp18251 = getelementptr inbounds float* %tmp18250, i64 1
+ %tmp18252 = getelementptr inbounds float* %tmp18251, i64 1
+ %tmp18253 = getelementptr inbounds float* %tmp18252, i64 1
+ %tmp18254 = getelementptr inbounds float* %tmp18253, i64 1
+ %tmp18255 = getelementptr inbounds float* %tmp18254, i64 1
+ %tmp18256 = getelementptr inbounds float* %tmp18255, i64 1
+ %tmp18257 = getelementptr inbounds float* %tmp18256, i64 1
+ %tmp18258 = getelementptr inbounds float* %tmp18257, i64 1
+ %tmp18259 = getelementptr inbounds float* %tmp18258, i64 1
+ %tmp18260 = getelementptr inbounds float* %tmp18259, i64 1
+ %tmp18261 = getelementptr inbounds float* %tmp18260, i64 1
+ %tmp18262 = getelementptr inbounds float* %tmp18261, i64 1
+ %tmp18263 = getelementptr inbounds float* %tmp18262, i64 1
+ %tmp18264 = getelementptr inbounds float* %tmp18263, i64 1
+ %tmp18265 = getelementptr inbounds float* %tmp18264, i64 1
+ %tmp18266 = getelementptr inbounds float* %tmp18265, i64 1
+ %tmp18267 = getelementptr inbounds float* %tmp18266, i64 1
+ %tmp18268 = getelementptr inbounds float* %tmp18267, i64 1
+ %tmp18269 = getelementptr inbounds float* %tmp18268, i64 1
+ %tmp18270 = getelementptr inbounds float* %tmp18269, i64 1
+ %tmp18271 = getelementptr inbounds float* %tmp18270, i64 1
+ %tmp18272 = getelementptr inbounds float* %tmp18271, i64 1
+ %tmp18273 = getelementptr inbounds float* %tmp18272, i64 1
+ %tmp18274 = getelementptr inbounds float* %tmp18273, i64 1
+ %tmp18275 = getelementptr inbounds float* %tmp18274, i64 1
+ %tmp18276 = getelementptr inbounds float* %tmp18275, i64 1
+ %tmp18277 = getelementptr inbounds float* %tmp18276, i64 1
+ %tmp18278 = getelementptr inbounds float* %tmp18277, i64 1
+ %tmp18279 = getelementptr inbounds float* %tmp18278, i64 1
+ %tmp18280 = getelementptr inbounds float* %tmp18279, i64 1
+ %tmp18281 = getelementptr inbounds float* %tmp18280, i64 1
+ %tmp18282 = getelementptr inbounds float* %tmp18281, i64 1
+ %tmp18283 = getelementptr inbounds float* %tmp18282, i64 1
+ %tmp18284 = getelementptr inbounds float* %tmp18283, i64 1
+ %tmp18285 = getelementptr inbounds float* %tmp18284, i64 1
+ %tmp18286 = getelementptr inbounds float* %tmp18285, i64 1
+ %tmp18287 = getelementptr inbounds float* %tmp18286, i64 1
+ %tmp18288 = getelementptr inbounds float* %tmp18287, i64 1
+ %tmp18289 = getelementptr inbounds float* %tmp18288, i64 1
+ %tmp18290 = getelementptr inbounds float* %tmp18289, i64 1
+ %tmp18291 = getelementptr inbounds float* %tmp18290, i64 1
+ %tmp18292 = getelementptr inbounds float* %tmp18291, i64 1
+ %tmp18293 = getelementptr inbounds float* %tmp18292, i64 1
+ %tmp18294 = getelementptr inbounds float* %tmp18293, i64 1
+ %tmp18295 = getelementptr inbounds float* %tmp18294, i64 1
+ %tmp18296 = getelementptr inbounds float* %tmp18295, i64 1
+ %tmp18297 = getelementptr inbounds float* %tmp18296, i64 1
+ %tmp18298 = getelementptr inbounds float* %tmp18297, i64 1
+ %tmp18299 = getelementptr inbounds float* %tmp18298, i64 1
+ %tmp18300 = getelementptr inbounds float* %tmp18299, i64 1
+ %tmp18301 = getelementptr inbounds float* %tmp18300, i64 1
+ %tmp18302 = getelementptr inbounds float* %tmp18301, i64 1
+ %tmp18303 = getelementptr inbounds float* %tmp18302, i64 1
+ %tmp18304 = getelementptr inbounds float* %tmp18303, i64 1
+ %tmp18305 = getelementptr inbounds float* %tmp18304, i64 1
+ %tmp18306 = getelementptr inbounds float* %tmp18305, i64 1
+ %tmp18307 = getelementptr inbounds float* %tmp18306, i64 1
+ %tmp18308 = getelementptr inbounds float* %tmp18307, i64 1
+ %tmp18309 = getelementptr inbounds float* %tmp18308, i64 1
+ %tmp18310 = getelementptr inbounds float* %tmp18309, i64 1
+ %tmp18311 = getelementptr inbounds float* %tmp18310, i64 1
+ %tmp18312 = getelementptr inbounds float* %tmp18311, i64 1
+ %tmp18313 = getelementptr inbounds float* %tmp18312, i64 1
+ %tmp18314 = getelementptr inbounds float* %tmp18313, i64 1
+ %tmp18315 = getelementptr inbounds float* %tmp18314, i64 1
+ %tmp18316 = getelementptr inbounds float* %tmp18315, i64 1
+ %tmp18317 = getelementptr inbounds float* %tmp18316, i64 1
+ %tmp18318 = getelementptr inbounds float* %tmp18317, i64 1
+ %tmp18319 = getelementptr inbounds float* %tmp18318, i64 1
+ %tmp18320 = getelementptr inbounds float* %tmp18319, i64 1
+ %tmp18321 = getelementptr inbounds float* %tmp18320, i64 1
+ %tmp18322 = getelementptr inbounds float* %tmp18321, i64 1
+ %tmp18323 = getelementptr inbounds float* %tmp18322, i64 1
+ %tmp18324 = getelementptr inbounds float* %tmp18323, i64 1
+ %tmp18325 = getelementptr inbounds float* %tmp18324, i64 1
+ %tmp18326 = getelementptr inbounds float* %tmp18325, i64 1
+ %tmp18327 = getelementptr inbounds float* %tmp18326, i64 1
+ %tmp18328 = getelementptr inbounds float* %tmp18327, i64 1
+ %tmp18329 = getelementptr inbounds float* %tmp18328, i64 1
+ %tmp18330 = getelementptr inbounds float* %tmp18329, i64 1
+ %tmp18331 = getelementptr inbounds float* %tmp18330, i64 1
+ %tmp18332 = getelementptr inbounds float* %tmp18331, i64 1
+ %tmp18333 = getelementptr inbounds float* %tmp18332, i64 1
+ %tmp18334 = getelementptr inbounds float* %tmp18333, i64 1
+ %tmp18335 = getelementptr inbounds float* %tmp18334, i64 1
+ %tmp18336 = getelementptr inbounds float* %tmp18335, i64 1
+ %tmp18337 = getelementptr inbounds float* %tmp18336, i64 1
+ %tmp18338 = getelementptr inbounds float* %tmp18337, i64 1
+ %tmp18339 = getelementptr inbounds float* %tmp18338, i64 1
+ %tmp18340 = getelementptr inbounds float* %tmp18339, i64 1
+ %tmp18341 = getelementptr inbounds float* %tmp18340, i64 1
+ %tmp18342 = getelementptr inbounds float* %tmp18341, i64 1
+ %tmp18343 = getelementptr inbounds float* %tmp18342, i64 1
+ %tmp18344 = getelementptr inbounds float* %tmp18343, i64 1
+ %tmp18345 = getelementptr inbounds float* %tmp18344, i64 1
+ %tmp18346 = getelementptr inbounds float* %tmp18345, i64 1
+ %tmp18347 = getelementptr inbounds float* %tmp18346, i64 1
+ %tmp18348 = getelementptr inbounds float* %tmp18347, i64 1
+ %tmp18349 = getelementptr inbounds float* %tmp18348, i64 1
+ %tmp18350 = getelementptr inbounds float* %tmp18349, i64 1
+ %tmp18351 = getelementptr inbounds float* %tmp18350, i64 1
+ %tmp18352 = getelementptr inbounds float* %tmp18351, i64 1
+ %tmp18353 = getelementptr inbounds float* %tmp18352, i64 1
+ %tmp18354 = getelementptr inbounds float* %tmp18353, i64 1
+ %tmp18355 = getelementptr inbounds float* %tmp18354, i64 1
+ %tmp18356 = getelementptr inbounds float* %tmp18355, i64 1
+ %tmp18357 = getelementptr inbounds float* %tmp18356, i64 1
+ %tmp18358 = getelementptr inbounds float* %tmp18357, i64 1
+ %tmp18359 = getelementptr inbounds float* %tmp18358, i64 1
+ %tmp18360 = getelementptr inbounds float* %tmp18359, i64 1
+ %tmp18361 = getelementptr inbounds float* %tmp18360, i64 1
+ %tmp18362 = getelementptr inbounds float* %tmp18361, i64 1
+ %tmp18363 = getelementptr inbounds float* %tmp18362, i64 1
+ %tmp18364 = getelementptr inbounds float* %tmp18363, i64 1
+ %tmp18365 = getelementptr inbounds float* %tmp18364, i64 1
+ %tmp18366 = getelementptr inbounds float* %tmp18365, i64 1
+ %tmp18367 = getelementptr inbounds float* %tmp18366, i64 1
+ %tmp18368 = getelementptr inbounds float* %tmp18367, i64 1
+ %tmp18369 = getelementptr inbounds float* %tmp18368, i64 1
+ %tmp18370 = getelementptr inbounds float* %tmp18369, i64 1
+ %tmp18371 = getelementptr inbounds float* %tmp18370, i64 1
+ %tmp18372 = getelementptr inbounds float* %tmp18371, i64 1
+ %tmp18373 = getelementptr inbounds float* %tmp18372, i64 1
+ %tmp18374 = getelementptr inbounds float* %tmp18373, i64 1
+ %tmp18375 = getelementptr inbounds float* %tmp18374, i64 1
+ %tmp18376 = getelementptr inbounds float* %tmp18375, i64 1
+ %tmp18377 = getelementptr inbounds float* %tmp18376, i64 1
+ %tmp18378 = getelementptr inbounds float* %tmp18377, i64 1
+ %tmp18379 = getelementptr inbounds float* %tmp18378, i64 1
+ %tmp18380 = getelementptr inbounds float* %tmp18379, i64 1
+ %tmp18381 = getelementptr inbounds float* %tmp18380, i64 1
+ %tmp18382 = getelementptr inbounds float* %tmp18381, i64 1
+ %tmp18383 = getelementptr inbounds float* %tmp18382, i64 1
+ %tmp18384 = getelementptr inbounds float* %tmp18383, i64 1
+ %tmp18385 = getelementptr inbounds float* %tmp18384, i64 1
+ %tmp18386 = getelementptr inbounds float* %tmp18385, i64 1
+ %tmp18387 = getelementptr inbounds float* %tmp18386, i64 1
+ %tmp18388 = getelementptr inbounds float* %tmp18387, i64 1
+ %tmp18389 = getelementptr inbounds float* %tmp18388, i64 1
+ %tmp18390 = getelementptr inbounds float* %tmp18389, i64 1
+ %tmp18391 = getelementptr inbounds float* %tmp18390, i64 1
+ %tmp18392 = getelementptr inbounds float* %tmp18391, i64 1
+ %tmp18393 = getelementptr inbounds float* %tmp18392, i64 1
+ %tmp18394 = getelementptr inbounds float* %tmp18393, i64 1
+ %tmp18395 = getelementptr inbounds float* %tmp18394, i64 1
+ %tmp18396 = getelementptr inbounds float* %tmp18395, i64 1
+ %tmp18397 = getelementptr inbounds float* %tmp18396, i64 1
+ %tmp18398 = getelementptr inbounds float* %tmp18397, i64 1
+ %tmp18399 = getelementptr inbounds float* %tmp18398, i64 1
+ %tmp18400 = getelementptr inbounds float* %tmp18399, i64 1
+ %tmp18401 = getelementptr inbounds float* %tmp18400, i64 1
+ %tmp18402 = getelementptr inbounds float* %tmp18401, i64 1
+ %tmp18403 = getelementptr inbounds float* %tmp18402, i64 1
+ %tmp18404 = getelementptr inbounds float* %tmp18403, i64 1
+ %tmp18405 = getelementptr inbounds float* %tmp18404, i64 1
+ %tmp18406 = getelementptr inbounds float* %tmp18405, i64 1
+ %tmp18407 = getelementptr inbounds float* %tmp18406, i64 1
+ %tmp18408 = getelementptr inbounds float* %tmp18407, i64 1
+ %tmp18409 = getelementptr inbounds float* %tmp18408, i64 1
+ %tmp18410 = getelementptr inbounds float* %tmp18409, i64 1
+ %tmp18411 = getelementptr inbounds float* %tmp18410, i64 1
+ %tmp18412 = getelementptr inbounds float* %tmp18411, i64 1
+ %tmp18413 = getelementptr inbounds float* %tmp18412, i64 1
+ %tmp18414 = getelementptr inbounds float* %tmp18413, i64 1
+ %tmp18415 = getelementptr inbounds float* %tmp18414, i64 1
+ %tmp18416 = getelementptr inbounds float* %tmp18415, i64 1
+ %tmp18417 = getelementptr inbounds float* %tmp18416, i64 1
+ %tmp18418 = getelementptr inbounds float* %tmp18417, i64 1
+ %tmp18419 = getelementptr inbounds float* %tmp18418, i64 1
+ %tmp18420 = getelementptr inbounds float* %tmp18419, i64 1
+ %tmp18421 = getelementptr inbounds float* %tmp18420, i64 1
+ %tmp18422 = getelementptr inbounds float* %tmp18421, i64 1
+ %tmp18423 = getelementptr inbounds float* %tmp18422, i64 1
+ %tmp18424 = getelementptr inbounds float* %tmp18423, i64 1
+ %tmp18425 = getelementptr inbounds float* %tmp18424, i64 1
+ %tmp18426 = getelementptr inbounds float* %tmp18425, i64 1
+ %tmp18427 = getelementptr inbounds float* %tmp18426, i64 1
+ %tmp18428 = getelementptr inbounds float* %tmp18427, i64 1
+ %tmp18429 = getelementptr inbounds float* %tmp18428, i64 1
+ %tmp18430 = getelementptr inbounds float* %tmp18429, i64 1
+ %tmp18431 = getelementptr inbounds float* %tmp18430, i64 1
+ %tmp18432 = getelementptr inbounds float* %tmp18431, i64 1
+ %tmp18433 = getelementptr inbounds float* %tmp18432, i64 1
+ %tmp18434 = getelementptr inbounds float* %tmp18433, i64 1
+ %tmp18435 = getelementptr inbounds float* %tmp18434, i64 1
+ %tmp18436 = getelementptr inbounds float* %tmp18435, i64 1
+ %tmp18437 = getelementptr inbounds float* %tmp18436, i64 1
+ %tmp18438 = getelementptr inbounds float* %tmp18437, i64 1
+ %tmp18439 = getelementptr inbounds float* %tmp18438, i64 1
+ %tmp18440 = getelementptr inbounds float* %tmp18439, i64 1
+ %tmp18441 = getelementptr inbounds float* %tmp18440, i64 1
+ %tmp18442 = getelementptr inbounds float* %tmp18441, i64 1
+ %tmp18443 = getelementptr inbounds float* %tmp18442, i64 1
+ %tmp18444 = getelementptr inbounds float* %tmp18443, i64 1
+ %tmp18445 = getelementptr inbounds float* %tmp18444, i64 1
+ %tmp18446 = getelementptr inbounds float* %tmp18445, i64 1
+ %tmp18447 = getelementptr inbounds float* %tmp18446, i64 1
+ %tmp18448 = getelementptr inbounds float* %tmp18447, i64 1
+ %tmp18449 = getelementptr inbounds float* %tmp18448, i64 1
+ %tmp18450 = getelementptr inbounds float* %tmp18449, i64 1
+ %tmp18451 = getelementptr inbounds float* %tmp18450, i64 1
+ %tmp18452 = getelementptr inbounds float* %tmp18451, i64 1
+ %tmp18453 = getelementptr inbounds float* %tmp18452, i64 1
+ %tmp18454 = getelementptr inbounds float* %tmp18453, i64 1
+ %tmp18455 = getelementptr inbounds float* %tmp18454, i64 1
+ %tmp18456 = getelementptr inbounds float* %tmp18455, i64 1
+ %tmp18457 = getelementptr inbounds float* %tmp18456, i64 1
+ %tmp18458 = getelementptr inbounds float* %tmp18457, i64 1
+ %tmp18459 = getelementptr inbounds float* %tmp18458, i64 1
+ %tmp18460 = getelementptr inbounds float* %tmp18459, i64 1
+ %tmp18461 = getelementptr inbounds float* %tmp18460, i64 1
+ %tmp18462 = getelementptr inbounds float* %tmp18461, i64 1
+ %tmp18463 = getelementptr inbounds float* %tmp18462, i64 1
+ %tmp18464 = getelementptr inbounds float* %tmp18463, i64 1
+ %tmp18465 = getelementptr inbounds float* %tmp18464, i64 1
+ %tmp18466 = getelementptr inbounds float* %tmp18465, i64 1
+ %tmp18467 = getelementptr inbounds float* %tmp18466, i64 1
+ %tmp18468 = getelementptr inbounds float* %tmp18467, i64 1
+ %tmp18469 = getelementptr inbounds float* %tmp18468, i64 1
+ %tmp18470 = getelementptr inbounds float* %tmp18469, i64 1
+ %tmp18471 = getelementptr inbounds float* %tmp18470, i64 1
+ %tmp18472 = getelementptr inbounds float* %tmp18471, i64 1
+ %tmp18473 = getelementptr inbounds float* %tmp18472, i64 1
+ %tmp18474 = getelementptr inbounds float* %tmp18473, i64 1
+ %tmp18475 = getelementptr inbounds float* %tmp18474, i64 1
+ %tmp18476 = getelementptr inbounds float* %tmp18475, i64 1
+ %tmp18477 = getelementptr inbounds float* %tmp18476, i64 1
+ %tmp18478 = getelementptr inbounds float* %tmp18477, i64 1
+ %tmp18479 = getelementptr inbounds float* %tmp18478, i64 1
+ %tmp18480 = getelementptr inbounds float* %tmp18479, i64 1
+ %tmp18481 = getelementptr inbounds float* %tmp18480, i64 1
+ %tmp18482 = getelementptr inbounds float* %tmp18481, i64 1
+ %tmp18483 = getelementptr inbounds float* %tmp18482, i64 1
+ %tmp18484 = getelementptr inbounds float* %tmp18483, i64 1
+ %tmp18485 = getelementptr inbounds float* %tmp18484, i64 1
+ %tmp18486 = getelementptr inbounds float* %tmp18485, i64 1
+ %tmp18487 = getelementptr inbounds float* %tmp18486, i64 1
+ %tmp18488 = getelementptr inbounds float* %tmp18487, i64 1
+ %tmp18489 = getelementptr inbounds float* %tmp18488, i64 1
+ %tmp18490 = getelementptr inbounds float* %tmp18489, i64 1
+ %tmp18491 = getelementptr inbounds float* %tmp18490, i64 1
+ %tmp18492 = getelementptr inbounds float* %tmp18491, i64 1
+ %tmp18493 = getelementptr inbounds float* %tmp18492, i64 1
+ %tmp18494 = getelementptr inbounds float* %tmp18493, i64 1
+ %tmp18495 = getelementptr inbounds float* %tmp18494, i64 1
+ %tmp18496 = getelementptr inbounds float* %tmp18495, i64 1
+ %tmp18497 = getelementptr inbounds float* %tmp18496, i64 1
+ %tmp18498 = getelementptr inbounds float* %tmp18497, i64 1
+ %tmp18499 = getelementptr inbounds float* %tmp18498, i64 1
+ %tmp18500 = getelementptr inbounds float* %tmp18499, i64 1
+ %tmp18501 = getelementptr inbounds float* %tmp18500, i64 1
+ %tmp18502 = getelementptr inbounds float* %tmp18501, i64 1
+ %tmp18503 = getelementptr inbounds float* %tmp18502, i64 1
+ %tmp18504 = getelementptr inbounds float* %tmp18503, i64 1
+ %tmp18505 = getelementptr inbounds float* %tmp18504, i64 1
+ %tmp18506 = getelementptr inbounds float* %tmp18505, i64 1
+ %tmp18507 = getelementptr inbounds float* %tmp18506, i64 1
+ %tmp18508 = getelementptr inbounds float* %tmp18507, i64 1
+ %tmp18509 = getelementptr inbounds float* %tmp18508, i64 1
+ %tmp18510 = getelementptr inbounds float* %tmp18509, i64 1
+ %tmp18511 = getelementptr inbounds float* %tmp18510, i64 1
+ %tmp18512 = getelementptr inbounds float* %tmp18511, i64 1
+ %tmp18513 = getelementptr inbounds float* %tmp18512, i64 1
+ %tmp18514 = getelementptr inbounds float* %tmp18513, i64 1
+ %tmp18515 = getelementptr inbounds float* %tmp18514, i64 1
+ %tmp18516 = getelementptr inbounds float* %tmp18515, i64 1
+ %tmp18517 = getelementptr inbounds float* %tmp18516, i64 1
+ %tmp18518 = getelementptr inbounds float* %tmp18517, i64 1
+ %tmp18519 = getelementptr inbounds float* %tmp18518, i64 1
+ %tmp18520 = getelementptr inbounds float* %tmp18519, i64 1
+ %tmp18521 = getelementptr inbounds float* %tmp18520, i64 1
+ %tmp18522 = getelementptr inbounds float* %tmp18521, i64 1
+ %tmp18523 = getelementptr inbounds float* %tmp18522, i64 1
+ %tmp18524 = getelementptr inbounds float* %tmp18523, i64 1
+ %tmp18525 = getelementptr inbounds float* %tmp18524, i64 1
+ %tmp18526 = getelementptr inbounds float* %tmp18525, i64 1
+ %tmp18527 = getelementptr inbounds float* %tmp18526, i64 1
+ %tmp18528 = getelementptr inbounds float* %tmp18527, i64 1
+ %tmp18529 = getelementptr inbounds float* %tmp18528, i64 1
+ %tmp18530 = getelementptr inbounds float* %tmp18529, i64 1
+ %tmp18531 = getelementptr inbounds float* %tmp18530, i64 1
+ %tmp18532 = getelementptr inbounds float* %tmp18531, i64 1
+ %tmp18533 = getelementptr inbounds float* %tmp18532, i64 1
+ %tmp18534 = getelementptr inbounds float* %tmp18533, i64 1
+ %tmp18535 = getelementptr inbounds float* %tmp18534, i64 1
+ %tmp18536 = getelementptr inbounds float* %tmp18535, i64 1
+ %tmp18537 = getelementptr inbounds float* %tmp18536, i64 1
+ %tmp18538 = getelementptr inbounds float* %tmp18537, i64 1
+ %tmp18539 = getelementptr inbounds float* %tmp18538, i64 1
+ %tmp18540 = getelementptr inbounds float* %tmp18539, i64 1
+ %tmp18541 = getelementptr inbounds float* %tmp18540, i64 1
+ %tmp18542 = getelementptr inbounds float* %tmp18541, i64 1
+ %tmp18543 = getelementptr inbounds float* %tmp18542, i64 1
+ %tmp18544 = getelementptr inbounds float* %tmp18543, i64 1
+ %tmp18545 = getelementptr inbounds float* %tmp18544, i64 1
+ %tmp18546 = getelementptr inbounds float* %tmp18545, i64 1
+ %tmp18547 = getelementptr inbounds float* %tmp18546, i64 1
+ %tmp18548 = getelementptr inbounds float* %tmp18547, i64 1
+ %tmp18549 = getelementptr inbounds float* %tmp18548, i64 1
+ %tmp18550 = getelementptr inbounds float* %tmp18549, i64 1
+ %tmp18551 = getelementptr inbounds float* %tmp18550, i64 1
+ %tmp18552 = getelementptr inbounds float* %tmp18551, i64 1
+ %tmp18553 = getelementptr inbounds float* %tmp18552, i64 1
+ %tmp18554 = getelementptr inbounds float* %tmp18553, i64 1
+ %tmp18555 = getelementptr inbounds float* %tmp18554, i64 1
+ %tmp18556 = getelementptr inbounds float* %tmp18555, i64 1
+ %tmp18557 = getelementptr inbounds float* %tmp18556, i64 1
+ %tmp18558 = getelementptr inbounds float* %tmp18557, i64 1
+ %tmp18559 = getelementptr inbounds float* %tmp18558, i64 1
+ %tmp18560 = getelementptr inbounds float* %tmp18559, i64 1
+ %tmp18561 = getelementptr inbounds float* %tmp18560, i64 1
+ %tmp18562 = getelementptr inbounds float* %tmp18561, i64 1
+ %tmp18563 = getelementptr inbounds float* %tmp18562, i64 1
+ %tmp18564 = getelementptr inbounds float* %tmp18563, i64 1
+ %tmp18565 = getelementptr inbounds float* %tmp18564, i64 1
+ %tmp18566 = getelementptr inbounds float* %tmp18565, i64 1
+ %tmp18567 = getelementptr inbounds float* %tmp18566, i64 1
+ %tmp18568 = getelementptr inbounds float* %tmp18567, i64 1
+ %tmp18569 = getelementptr inbounds float* %tmp18568, i64 1
+ %tmp18570 = getelementptr inbounds float* %tmp18569, i64 1
+ %tmp18571 = getelementptr inbounds float* %tmp18570, i64 1
+ %tmp18572 = getelementptr inbounds float* %tmp18571, i64 1
+ %tmp18573 = getelementptr inbounds float* %tmp18572, i64 1
+ %tmp18574 = getelementptr inbounds float* %tmp18573, i64 1
+ %tmp18575 = getelementptr inbounds float* %tmp18574, i64 1
+ %tmp18576 = getelementptr inbounds float* %tmp18575, i64 1
+ %tmp18577 = getelementptr inbounds float* %tmp18576, i64 1
+ %tmp18578 = getelementptr inbounds float* %tmp18577, i64 1
+ %tmp18579 = getelementptr inbounds float* %tmp18578, i64 1
+ %tmp18580 = getelementptr inbounds float* %tmp18579, i64 1
+ %tmp18581 = getelementptr inbounds float* %tmp18580, i64 1
+ %tmp18582 = getelementptr inbounds float* %tmp18581, i64 1
+ %tmp18583 = getelementptr inbounds float* %tmp18582, i64 1
+ %tmp18584 = getelementptr inbounds float* %tmp18583, i64 1
+ %tmp18585 = getelementptr inbounds float* %tmp18584, i64 1
+ %tmp18586 = getelementptr inbounds float* %tmp18585, i64 1
+ %tmp18587 = getelementptr inbounds float* %tmp18586, i64 1
+ %tmp18588 = getelementptr inbounds float* %tmp18587, i64 1
+ %tmp18589 = getelementptr inbounds float* %tmp18588, i64 1
+ %tmp18590 = getelementptr inbounds float* %tmp18589, i64 1
+ %tmp18591 = getelementptr inbounds float* %tmp18590, i64 1
+ %tmp18592 = getelementptr inbounds float* %tmp18591, i64 1
+ %tmp18593 = getelementptr inbounds float* %tmp18592, i64 1
+ %tmp18594 = getelementptr inbounds float* %tmp18593, i64 1
+ %tmp18595 = getelementptr inbounds float* %tmp18594, i64 1
+ %tmp18596 = getelementptr inbounds float* %tmp18595, i64 1
+ %tmp18597 = getelementptr inbounds float* %tmp18596, i64 1
+ %tmp18598 = getelementptr inbounds float* %tmp18597, i64 1
+ %tmp18599 = getelementptr inbounds float* %tmp18598, i64 1
+ %tmp18600 = getelementptr inbounds float* %tmp18599, i64 1
+ %tmp18601 = getelementptr inbounds float* %tmp18600, i64 1
+ %tmp18602 = getelementptr inbounds float* %tmp18601, i64 1
+ %tmp18603 = getelementptr inbounds float* %tmp18602, i64 1
+ %tmp18604 = getelementptr inbounds float* %tmp18603, i64 1
+ %tmp18605 = getelementptr inbounds float* %tmp18604, i64 1
+ %tmp18606 = getelementptr inbounds float* %tmp18605, i64 1
+ %tmp18607 = getelementptr inbounds float* %tmp18606, i64 1
+ %tmp18608 = getelementptr inbounds float* %tmp18607, i64 1
+ %tmp18609 = getelementptr inbounds float* %tmp18608, i64 1
+ %tmp18610 = getelementptr inbounds float* %tmp18609, i64 1
+ %tmp18611 = getelementptr inbounds float* %tmp18610, i64 1
+ %tmp18612 = getelementptr inbounds float* %tmp18611, i64 1
+ %tmp18613 = getelementptr inbounds float* %tmp18612, i64 1
+ %tmp18614 = getelementptr inbounds float* %tmp18613, i64 1
+ %tmp18615 = getelementptr inbounds float* %tmp18614, i64 1
+ %tmp18616 = getelementptr inbounds float* %tmp18615, i64 1
+ %tmp18617 = getelementptr inbounds float* %tmp18616, i64 1
+ %tmp18618 = getelementptr inbounds float* %tmp18617, i64 1
+ %tmp18619 = getelementptr inbounds float* %tmp18618, i64 1
+ %tmp18620 = getelementptr inbounds float* %tmp18619, i64 1
+ %tmp18621 = getelementptr inbounds float* %tmp18620, i64 1
+ %tmp18622 = getelementptr inbounds float* %tmp18621, i64 1
+ %tmp18623 = getelementptr inbounds float* %tmp18622, i64 1
+ %tmp18624 = getelementptr inbounds float* %tmp18623, i64 1
+ %tmp18625 = getelementptr inbounds float* %tmp18624, i64 1
+ %tmp18626 = getelementptr inbounds float* %tmp18625, i64 1
+ %tmp18627 = getelementptr inbounds float* %tmp18626, i64 1
+ %tmp18628 = getelementptr inbounds float* %tmp18627, i64 1
+ %tmp18629 = getelementptr inbounds float* %tmp18628, i64 1
+ %tmp18630 = getelementptr inbounds float* %tmp18629, i64 1
+ %tmp18631 = getelementptr inbounds float* %tmp18630, i64 1
+ %tmp18632 = getelementptr inbounds float* %tmp18631, i64 1
+ %tmp18633 = getelementptr inbounds float* %tmp18632, i64 1
+ %tmp18634 = getelementptr inbounds float* %tmp18633, i64 1
+ %tmp18635 = getelementptr inbounds float* %tmp18634, i64 1
+ %tmp18636 = getelementptr inbounds float* %tmp18635, i64 1
+ %tmp18637 = getelementptr inbounds float* %tmp18636, i64 1
+ %tmp18638 = getelementptr inbounds float* %tmp18637, i64 1
+ %tmp18639 = getelementptr inbounds float* %tmp18638, i64 1
+ %tmp18640 = getelementptr inbounds float* %tmp18639, i64 1
+ %tmp18641 = getelementptr inbounds float* %tmp18640, i64 1
+ %tmp18642 = getelementptr inbounds float* %tmp18641, i64 1
+ %tmp18643 = getelementptr inbounds float* %tmp18642, i64 1
+ %tmp18644 = getelementptr inbounds float* %tmp18643, i64 1
+ %tmp18645 = getelementptr inbounds float* %tmp18644, i64 1
+ %tmp18646 = getelementptr inbounds float* %tmp18645, i64 1
+ %tmp18647 = getelementptr inbounds float* %tmp18646, i64 1
+ %tmp18648 = getelementptr inbounds float* %tmp18647, i64 1
+ %tmp18649 = getelementptr inbounds float* %tmp18648, i64 1
+ %tmp18650 = getelementptr inbounds float* %tmp18649, i64 1
+ %tmp18651 = getelementptr inbounds float* %tmp18650, i64 1
+ %tmp18652 = getelementptr inbounds float* %tmp18651, i64 1
+ %tmp18653 = getelementptr inbounds float* %tmp18652, i64 1
+ %tmp18654 = getelementptr inbounds float* %tmp18653, i64 1
+ %tmp18655 = getelementptr inbounds float* %tmp18654, i64 1
+ %tmp18656 = getelementptr inbounds float* %tmp18655, i64 1
+ %tmp18657 = getelementptr inbounds float* %tmp18656, i64 1
+ %tmp18658 = getelementptr inbounds float* %tmp18657, i64 1
+ %tmp18659 = getelementptr inbounds float* %tmp18658, i64 1
+ %tmp18660 = getelementptr inbounds float* %tmp18659, i64 1
+ %tmp18661 = getelementptr inbounds float* %tmp18660, i64 1
+ %tmp18662 = getelementptr inbounds float* %tmp18661, i64 1
+ %tmp18663 = getelementptr inbounds float* %tmp18662, i64 1
+ %tmp18664 = getelementptr inbounds float* %tmp18663, i64 1
+ %tmp18665 = getelementptr inbounds float* %tmp18664, i64 1
+ %tmp18666 = getelementptr inbounds float* %tmp18665, i64 1
+ %tmp18667 = getelementptr inbounds float* %tmp18666, i64 1
+ %tmp18668 = getelementptr inbounds float* %tmp18667, i64 1
+ %tmp18669 = getelementptr inbounds float* %tmp18668, i64 1
+ %tmp18670 = getelementptr inbounds float* %tmp18669, i64 1
+ %tmp18671 = getelementptr inbounds float* %tmp18670, i64 1
+ %tmp18672 = getelementptr inbounds float* %tmp18671, i64 1
+ %tmp18673 = getelementptr inbounds float* %tmp18672, i64 1
+ %tmp18674 = getelementptr inbounds float* %tmp18673, i64 1
+ %tmp18675 = getelementptr inbounds float* %tmp18674, i64 1
+ %tmp18676 = getelementptr inbounds float* %tmp18675, i64 1
+ %tmp18677 = getelementptr inbounds float* %tmp18676, i64 1
+ %tmp18678 = getelementptr inbounds float* %tmp18677, i64 1
+ %tmp18679 = getelementptr inbounds float* %tmp18678, i64 1
+ %tmp18680 = getelementptr inbounds float* %tmp18679, i64 1
+ %tmp18681 = getelementptr inbounds float* %tmp18680, i64 1
+ %tmp18682 = getelementptr inbounds float* %tmp18681, i64 1
+ %tmp18683 = getelementptr inbounds float* %tmp18682, i64 1
+ %tmp18684 = getelementptr inbounds float* %tmp18683, i64 1
+ %tmp18685 = getelementptr inbounds float* %tmp18684, i64 1
+ %tmp18686 = getelementptr inbounds float* %tmp18685, i64 1
+ %tmp18687 = getelementptr inbounds float* %tmp18686, i64 1
+ %tmp18688 = getelementptr inbounds float* %tmp18687, i64 1
+ %tmp18689 = getelementptr inbounds float* %tmp18688, i64 1
+ %tmp18690 = getelementptr inbounds float* %tmp18689, i64 1
+ %tmp18691 = getelementptr inbounds float* %tmp18690, i64 1
+ %tmp18692 = getelementptr inbounds float* %tmp18691, i64 1
+ %tmp18693 = getelementptr inbounds float* %tmp18692, i64 1
+ %tmp18694 = getelementptr inbounds float* %tmp18693, i64 1
+ %tmp18695 = getelementptr inbounds float* %tmp18694, i64 1
+ %tmp18696 = getelementptr inbounds float* %tmp18695, i64 1
+ %tmp18697 = getelementptr inbounds float* %tmp18696, i64 1
+ %tmp18698 = getelementptr inbounds float* %tmp18697, i64 1
+ %tmp18699 = getelementptr inbounds float* %tmp18698, i64 1
+ %tmp18700 = getelementptr inbounds float* %tmp18699, i64 1
+ %tmp18701 = getelementptr inbounds float* %tmp18700, i64 1
+ %tmp18702 = getelementptr inbounds float* %tmp18701, i64 1
+ %tmp18703 = getelementptr inbounds float* %tmp18702, i64 1
+ %tmp18704 = getelementptr inbounds float* %tmp18703, i64 1
+ %tmp18705 = getelementptr inbounds float* %tmp18704, i64 1
+ %tmp18706 = getelementptr inbounds float* %tmp18705, i64 1
+ %tmp18707 = getelementptr inbounds float* %tmp18706, i64 1
+ %tmp18708 = getelementptr inbounds float* %tmp18707, i64 1
+ %tmp18709 = getelementptr inbounds float* %tmp18708, i64 1
+ %tmp18710 = getelementptr inbounds float* %tmp18709, i64 1
+ %tmp18711 = getelementptr inbounds float* %tmp18710, i64 1
+ %tmp18712 = getelementptr inbounds float* %tmp18711, i64 1
+ %tmp18713 = getelementptr inbounds float* %tmp18712, i64 1
+ %tmp18714 = getelementptr inbounds float* %tmp18713, i64 1
+ %tmp18715 = getelementptr inbounds float* %tmp18714, i64 1
+ %tmp18716 = getelementptr inbounds float* %tmp18715, i64 1
+ %tmp18717 = getelementptr inbounds float* %tmp18716, i64 1
+ %tmp18718 = getelementptr inbounds float* %tmp18717, i64 1
+ %tmp18719 = getelementptr inbounds float* %tmp18718, i64 1
+ %tmp18720 = getelementptr inbounds float* %tmp18719, i64 1
+ %tmp18721 = getelementptr inbounds float* %tmp18720, i64 1
+ %tmp18722 = getelementptr inbounds float* %tmp18721, i64 1
+ %tmp18723 = getelementptr inbounds float* %tmp18722, i64 1
+ %tmp18724 = getelementptr inbounds float* %tmp18723, i64 1
+ %tmp18725 = getelementptr inbounds float* %tmp18724, i64 1
+ %tmp18726 = getelementptr inbounds float* %tmp18725, i64 1
+ %tmp18727 = getelementptr inbounds float* %tmp18726, i64 1
+ %tmp18728 = getelementptr inbounds float* %tmp18727, i64 1
+ %tmp18729 = getelementptr inbounds float* %tmp18728, i64 1
+ %tmp18730 = getelementptr inbounds float* %tmp18729, i64 1
+ %tmp18731 = getelementptr inbounds float* %tmp18730, i64 1
+ %tmp18732 = getelementptr inbounds float* %tmp18731, i64 1
+ %tmp18733 = getelementptr inbounds float* %tmp18732, i64 1
+ %tmp18734 = getelementptr inbounds float* %tmp18733, i64 1
+ %tmp18735 = getelementptr inbounds float* %tmp18734, i64 1
+ %tmp18736 = getelementptr inbounds float* %tmp18735, i64 1
+ %tmp18737 = getelementptr inbounds float* %tmp18736, i64 1
+ %tmp18738 = getelementptr inbounds float* %tmp18737, i64 1
+ %tmp18739 = getelementptr inbounds float* %tmp18738, i64 1
+ %tmp18740 = getelementptr inbounds float* %tmp18739, i64 1
+ %tmp18741 = getelementptr inbounds float* %tmp18740, i64 1
+ %tmp18742 = getelementptr inbounds float* %tmp18741, i64 1
+ %tmp18743 = getelementptr inbounds float* %tmp18742, i64 1
+ %tmp18744 = getelementptr inbounds float* %tmp18743, i64 1
+ %tmp18745 = getelementptr inbounds float* %tmp18744, i64 1
+ %tmp18746 = getelementptr inbounds float* %tmp18745, i64 1
+ %tmp18747 = getelementptr inbounds float* %tmp18746, i64 1
+ %tmp18748 = getelementptr inbounds float* %tmp18747, i64 1
+ %tmp18749 = getelementptr inbounds float* %tmp18748, i64 1
+ %tmp18750 = getelementptr inbounds float* %tmp18749, i64 1
+ %tmp18751 = getelementptr inbounds float* %tmp18750, i64 1
+ %tmp18752 = getelementptr inbounds float* %tmp18751, i64 1
+ %tmp18753 = getelementptr inbounds float* %tmp18752, i64 1
+ %tmp18754 = getelementptr inbounds float* %tmp18753, i64 1
+ %tmp18755 = getelementptr inbounds float* %tmp18754, i64 1
+ %tmp18756 = getelementptr inbounds float* %tmp18755, i64 1
+ %tmp18757 = getelementptr inbounds float* %tmp18756, i64 1
+ %tmp18758 = getelementptr inbounds float* %tmp18757, i64 1
+ %tmp18759 = getelementptr inbounds float* %tmp18758, i64 1
+ %tmp18760 = getelementptr inbounds float* %tmp18759, i64 1
+ %tmp18761 = getelementptr inbounds float* %tmp18760, i64 1
+ %tmp18762 = getelementptr inbounds float* %tmp18761, i64 1
+ %tmp18763 = getelementptr inbounds float* %tmp18762, i64 1
+ %tmp18764 = getelementptr inbounds float* %tmp18763, i64 1
+ %tmp18765 = getelementptr inbounds float* %tmp18764, i64 1
+ %tmp18766 = getelementptr inbounds float* %tmp18765, i64 1
+ %tmp18767 = getelementptr inbounds float* %tmp18766, i64 1
+ %tmp18768 = getelementptr inbounds float* %tmp18767, i64 1
+ %tmp18769 = getelementptr inbounds float* %tmp18768, i64 1
+ %tmp18770 = getelementptr inbounds float* %tmp18769, i64 1
+ %tmp18771 = getelementptr inbounds float* %tmp18770, i64 1
+ %tmp18772 = getelementptr inbounds float* %tmp18771, i64 1
+ %tmp18773 = getelementptr inbounds float* %tmp18772, i64 1
+ %tmp18774 = getelementptr inbounds float* %tmp18773, i64 1
+ %tmp18775 = getelementptr inbounds float* %tmp18774, i64 1
+ %tmp18776 = getelementptr inbounds float* %tmp18775, i64 1
+ %tmp18777 = getelementptr inbounds float* %tmp18776, i64 1
+ %tmp18778 = getelementptr inbounds float* %tmp18777, i64 1
+ %tmp18779 = getelementptr inbounds float* %tmp18778, i64 1
+ %tmp18780 = getelementptr inbounds float* %tmp18779, i64 1
+ %tmp18781 = getelementptr inbounds float* %tmp18780, i64 1
+ %tmp18782 = getelementptr inbounds float* %tmp18781, i64 1
+ %tmp18783 = getelementptr inbounds float* %tmp18782, i64 1
+ %tmp18784 = getelementptr inbounds float* %tmp18783, i64 1
+ %tmp18785 = getelementptr inbounds float* %tmp18784, i64 1
+ %tmp18786 = getelementptr inbounds float* %tmp18785, i64 1
+ %tmp18787 = getelementptr inbounds float* %tmp18786, i64 1
+ %tmp18788 = getelementptr inbounds float* %tmp18787, i64 1
+ %tmp18789 = getelementptr inbounds float* %tmp18788, i64 1
+ %tmp18790 = getelementptr inbounds float* %tmp18789, i64 1
+ %tmp18791 = getelementptr inbounds float* %tmp18790, i64 1
+ %tmp18792 = getelementptr inbounds float* %tmp18791, i64 1
+ %tmp18793 = getelementptr inbounds float* %tmp18792, i64 1
+ %tmp18794 = getelementptr inbounds float* %tmp18793, i64 1
+ %tmp18795 = getelementptr inbounds float* %tmp18794, i64 1
+ %tmp18796 = getelementptr inbounds float* %tmp18795, i64 1
+ %tmp18797 = getelementptr inbounds float* %tmp18796, i64 1
+ %tmp18798 = getelementptr inbounds float* %tmp18797, i64 1
+ %tmp18799 = getelementptr inbounds float* %tmp18798, i64 1
+ %tmp18800 = getelementptr inbounds float* %tmp18799, i64 1
+ %tmp18801 = getelementptr inbounds float* %tmp18800, i64 1
+ %tmp18802 = getelementptr inbounds float* %tmp18801, i64 1
+ %tmp18803 = getelementptr inbounds float* %tmp18802, i64 1
+ %tmp18804 = getelementptr inbounds float* %tmp18803, i64 1
+ %tmp18805 = getelementptr inbounds float* %tmp18804, i64 1
+ %tmp18806 = getelementptr inbounds float* %tmp18805, i64 1
+ %tmp18807 = getelementptr inbounds float* %tmp18806, i64 1
+ %tmp18808 = getelementptr inbounds float* %tmp18807, i64 1
+ %tmp18809 = getelementptr inbounds float* %tmp18808, i64 1
+ %tmp18810 = getelementptr inbounds float* %tmp18809, i64 1
+ %tmp18811 = getelementptr inbounds float* %tmp18810, i64 1
+ %tmp18812 = getelementptr inbounds float* %tmp18811, i64 1
+ %tmp18813 = getelementptr inbounds float* %tmp18812, i64 1
+ %tmp18814 = getelementptr inbounds float* %tmp18813, i64 1
+ %tmp18815 = getelementptr inbounds float* %tmp18814, i64 1
+ %tmp18816 = getelementptr inbounds float* %tmp18815, i64 1
+ %tmp18817 = getelementptr inbounds float* %tmp18816, i64 1
+ %tmp18818 = getelementptr inbounds float* %tmp18817, i64 1
+ %tmp18819 = getelementptr inbounds float* %tmp18818, i64 1
+ %tmp18820 = getelementptr inbounds float* %tmp18819, i64 1
+ %tmp18821 = getelementptr inbounds float* %tmp18820, i64 1
+ %tmp18822 = getelementptr inbounds float* %tmp18821, i64 1
+ %tmp18823 = getelementptr inbounds float* %tmp18822, i64 1
+ %tmp18824 = getelementptr inbounds float* %tmp18823, i64 1
+ %tmp18825 = getelementptr inbounds float* %tmp18824, i64 1
+ %tmp18826 = getelementptr inbounds float* %tmp18825, i64 1
+ %tmp18827 = getelementptr inbounds float* %tmp18826, i64 1
+ %tmp18828 = getelementptr inbounds float* %tmp18827, i64 1
+ %tmp18829 = getelementptr inbounds float* %tmp18828, i64 1
+ %tmp18830 = getelementptr inbounds float* %tmp18829, i64 1
+ %tmp18831 = getelementptr inbounds float* %tmp18830, i64 1
+ %tmp18832 = getelementptr inbounds float* %tmp18831, i64 1
+ %tmp18833 = getelementptr inbounds float* %tmp18832, i64 1
+ %tmp18834 = getelementptr inbounds float* %tmp18833, i64 1
+ %tmp18835 = getelementptr inbounds float* %tmp18834, i64 1
+ %tmp18836 = getelementptr inbounds float* %tmp18835, i64 1
+ %tmp18837 = getelementptr inbounds float* %tmp18836, i64 1
+ %tmp18838 = getelementptr inbounds float* %tmp18837, i64 1
+ %tmp18839 = getelementptr inbounds float* %tmp18838, i64 1
+ %tmp18840 = getelementptr inbounds float* %tmp18839, i64 1
+ %tmp18841 = getelementptr inbounds float* %tmp18840, i64 1
+ %tmp18842 = getelementptr inbounds float* %tmp18841, i64 1
+ %tmp18843 = getelementptr inbounds float* %tmp18842, i64 1
+ %tmp18844 = getelementptr inbounds float* %tmp18843, i64 1
+ %tmp18845 = getelementptr inbounds float* %tmp18844, i64 1
+ %tmp18846 = getelementptr inbounds float* %tmp18845, i64 1
+ %tmp18847 = getelementptr inbounds float* %tmp18846, i64 1
+ %tmp18848 = getelementptr inbounds float* %tmp18847, i64 1
+ %tmp18849 = getelementptr inbounds float* %tmp18848, i64 1
+ %tmp18850 = getelementptr inbounds float* %tmp18849, i64 1
+ %tmp18851 = getelementptr inbounds float* %tmp18850, i64 1
+ %tmp18852 = getelementptr inbounds float* %tmp18851, i64 1
+ %tmp18853 = getelementptr inbounds float* %tmp18852, i64 1
+ %tmp18854 = getelementptr inbounds float* %tmp18853, i64 1
+ %tmp18855 = getelementptr inbounds float* %tmp18854, i64 1
+ %tmp18856 = getelementptr inbounds float* %tmp18855, i64 1
+ %tmp18857 = getelementptr inbounds float* %tmp18856, i64 1
+ %tmp18858 = getelementptr inbounds float* %tmp18857, i64 1
+ %tmp18859 = getelementptr inbounds float* %tmp18858, i64 1
+ %tmp18860 = getelementptr inbounds float* %tmp18859, i64 1
+ %tmp18861 = getelementptr inbounds float* %tmp18860, i64 1
+ %tmp18862 = getelementptr inbounds float* %tmp18861, i64 1
+ %tmp18863 = getelementptr inbounds float* %tmp18862, i64 1
+ %tmp18864 = getelementptr inbounds float* %tmp18863, i64 1
+ %tmp18865 = getelementptr inbounds float* %tmp18864, i64 1
+ %tmp18866 = getelementptr inbounds float* %tmp18865, i64 1
+ %tmp18867 = getelementptr inbounds float* %tmp18866, i64 1
+ %tmp18868 = getelementptr inbounds float* %tmp18867, i64 1
+ %tmp18869 = getelementptr inbounds float* %tmp18868, i64 1
+ %tmp18870 = getelementptr inbounds float* %tmp18869, i64 1
+ %tmp18871 = getelementptr inbounds float* %tmp18870, i64 1
+ %tmp18872 = getelementptr inbounds float* %tmp18871, i64 1
+ %tmp18873 = getelementptr inbounds float* %tmp18872, i64 1
+ %tmp18874 = getelementptr inbounds float* %tmp18873, i64 1
+ %tmp18875 = getelementptr inbounds float* %tmp18874, i64 1
+ %tmp18876 = getelementptr inbounds float* %tmp18875, i64 1
+ %tmp18877 = getelementptr inbounds float* %tmp18876, i64 1
+ %tmp18878 = getelementptr inbounds float* %tmp18877, i64 1
+ %tmp18879 = getelementptr inbounds float* %tmp18878, i64 1
+ %tmp18880 = getelementptr inbounds float* %tmp18879, i64 1
+ %tmp18881 = getelementptr inbounds float* %tmp18880, i64 1
+ %tmp18882 = getelementptr inbounds float* %tmp18881, i64 1
+ %tmp18883 = getelementptr inbounds float* %tmp18882, i64 1
+ %tmp18884 = getelementptr inbounds float* %tmp18883, i64 1
+ %tmp18885 = getelementptr inbounds float* %tmp18884, i64 1
+ %tmp18886 = getelementptr inbounds float* %tmp18885, i64 1
+ %tmp18887 = getelementptr inbounds float* %tmp18886, i64 1
+ %tmp18888 = getelementptr inbounds float* %tmp18887, i64 1
+ %tmp18889 = getelementptr inbounds float* %tmp18888, i64 1
+ %tmp18890 = getelementptr inbounds float* %tmp18889, i64 1
+ %tmp18891 = getelementptr inbounds float* %tmp18890, i64 1
+ %tmp18892 = getelementptr inbounds float* %tmp18891, i64 1
+ %tmp18893 = getelementptr inbounds float* %tmp18892, i64 1
+ %tmp18894 = getelementptr inbounds float* %tmp18893, i64 1
+ %tmp18895 = getelementptr inbounds float* %tmp18894, i64 1
+ %tmp18896 = getelementptr inbounds float* %tmp18895, i64 1
+ %tmp18897 = getelementptr inbounds float* %tmp18896, i64 1
+ %tmp18898 = getelementptr inbounds float* %tmp18897, i64 1
+ %tmp18899 = getelementptr inbounds float* %tmp18898, i64 1
+ %tmp18900 = getelementptr inbounds float* %tmp18899, i64 1
+ %tmp18901 = getelementptr inbounds float* %tmp18900, i64 1
+ %tmp18902 = getelementptr inbounds float* %tmp18901, i64 1
+ %tmp18903 = getelementptr inbounds float* %tmp18902, i64 1
+ %tmp18904 = getelementptr inbounds float* %tmp18903, i64 1
+ %tmp18905 = getelementptr inbounds float* %tmp18904, i64 1
+ %tmp18906 = getelementptr inbounds float* %tmp18905, i64 1
+ %tmp18907 = getelementptr inbounds float* %tmp18906, i64 1
+ %tmp18908 = getelementptr inbounds float* %tmp18907, i64 1
+ %tmp18909 = getelementptr inbounds float* %tmp18908, i64 1
+ %tmp18910 = getelementptr inbounds float* %tmp18909, i64 1
+ %tmp18911 = getelementptr inbounds float* %tmp18910, i64 1
+ %tmp18912 = getelementptr inbounds float* %tmp18911, i64 1
+ %tmp18913 = getelementptr inbounds float* %tmp18912, i64 1
+ %tmp18914 = getelementptr inbounds float* %tmp18913, i64 1
+ %tmp18915 = getelementptr inbounds float* %tmp18914, i64 1
+ %tmp18916 = getelementptr inbounds float* %tmp18915, i64 1
+ %tmp18917 = getelementptr inbounds float* %tmp18916, i64 1
+ %tmp18918 = getelementptr inbounds float* %tmp18917, i64 1
+ %tmp18919 = getelementptr inbounds float* %tmp18918, i64 1
+ %tmp18920 = getelementptr inbounds float* %tmp18919, i64 1
+ %tmp18921 = getelementptr inbounds float* %tmp18920, i64 1
+ %tmp18922 = getelementptr inbounds float* %tmp18921, i64 1
+ %tmp18923 = getelementptr inbounds float* %tmp18922, i64 1
+ %tmp18924 = getelementptr inbounds float* %tmp18923, i64 1
+ %tmp18925 = getelementptr inbounds float* %tmp18924, i64 1
+ %tmp18926 = getelementptr inbounds float* %tmp18925, i64 1
+ %tmp18927 = getelementptr inbounds float* %tmp18926, i64 1
+ %tmp18928 = getelementptr inbounds float* %tmp18927, i64 1
+ %tmp18929 = getelementptr inbounds float* %tmp18928, i64 1
+ %tmp18930 = getelementptr inbounds float* %tmp18929, i64 1
+ %tmp18931 = getelementptr inbounds float* %tmp18930, i64 1
+ %tmp18932 = getelementptr inbounds float* %tmp18931, i64 1
+ %tmp18933 = getelementptr inbounds float* %tmp18932, i64 1
+ %tmp18934 = getelementptr inbounds float* %tmp18933, i64 1
+ %tmp18935 = getelementptr inbounds float* %tmp18934, i64 1
+ %tmp18936 = getelementptr inbounds float* %tmp18935, i64 1
+ %tmp18937 = getelementptr inbounds float* %tmp18936, i64 1
+ %tmp18938 = getelementptr inbounds float* %tmp18937, i64 1
+ %tmp18939 = getelementptr inbounds float* %tmp18938, i64 1
+ %tmp18940 = getelementptr inbounds float* %tmp18939, i64 1
+ %tmp18941 = getelementptr inbounds float* %tmp18940, i64 1
+ %tmp18942 = getelementptr inbounds float* %tmp18941, i64 1
+ %tmp18943 = getelementptr inbounds float* %tmp18942, i64 1
+ %tmp18944 = getelementptr inbounds float* %tmp18943, i64 1
+ %tmp18945 = getelementptr inbounds float* %tmp18944, i64 1
+ %tmp18946 = getelementptr inbounds float* %tmp18945, i64 1
+ %tmp18947 = getelementptr inbounds float* %tmp18946, i64 1
+ %tmp18948 = getelementptr inbounds float* %tmp18947, i64 1
+ %tmp18949 = getelementptr inbounds float* %tmp18948, i64 1
+ %tmp18950 = getelementptr inbounds float* %tmp18949, i64 1
+ %tmp18951 = getelementptr inbounds float* %tmp18950, i64 1
+ %tmp18952 = getelementptr inbounds float* %tmp18951, i64 1
+ %tmp18953 = getelementptr inbounds float* %tmp18952, i64 1
+ %tmp18954 = getelementptr inbounds float* %tmp18953, i64 1
+ %tmp18955 = getelementptr inbounds float* %tmp18954, i64 1
+ %tmp18956 = getelementptr inbounds float* %tmp18955, i64 1
+ %tmp18957 = getelementptr inbounds float* %tmp18956, i64 1
+ %tmp18958 = getelementptr inbounds float* %tmp18957, i64 1
+ %tmp18959 = getelementptr inbounds float* %tmp18958, i64 1
+ %tmp18960 = getelementptr inbounds float* %tmp18959, i64 1
+ %tmp18961 = getelementptr inbounds float* %tmp18960, i64 1
+ %tmp18962 = getelementptr inbounds float* %tmp18961, i64 1
+ %tmp18963 = getelementptr inbounds float* %tmp18962, i64 1
+ %tmp18964 = getelementptr inbounds float* %tmp18963, i64 1
+ %tmp18965 = getelementptr inbounds float* %tmp18964, i64 1
+ %tmp18966 = getelementptr inbounds float* %tmp18965, i64 1
+ %tmp18967 = getelementptr inbounds float* %tmp18966, i64 1
+ %tmp18968 = getelementptr inbounds float* %tmp18967, i64 1
+ %tmp18969 = getelementptr inbounds float* %tmp18968, i64 1
+ %tmp18970 = getelementptr inbounds float* %tmp18969, i64 1
+ %tmp18971 = getelementptr inbounds float* %tmp18970, i64 1
+ %tmp18972 = getelementptr inbounds float* %tmp18971, i64 1
+ %tmp18973 = getelementptr inbounds float* %tmp18972, i64 1
+ %tmp18974 = getelementptr inbounds float* %tmp18973, i64 1
+ %tmp18975 = getelementptr inbounds float* %tmp18974, i64 1
+ %tmp18976 = getelementptr inbounds float* %tmp18975, i64 1
+ %tmp18977 = getelementptr inbounds float* %tmp18976, i64 1
+ %tmp18978 = getelementptr inbounds float* %tmp18977, i64 1
+ %tmp18979 = getelementptr inbounds float* %tmp18978, i64 1
+ %tmp18980 = getelementptr inbounds float* %tmp18979, i64 1
+ %tmp18981 = getelementptr inbounds float* %tmp18980, i64 1
+ %tmp18982 = getelementptr inbounds float* %tmp18981, i64 1
+ %tmp18983 = getelementptr inbounds float* %tmp18982, i64 1
+ %tmp18984 = getelementptr inbounds float* %tmp18983, i64 1
+ %tmp18985 = getelementptr inbounds float* %tmp18984, i64 1
+ %tmp18986 = getelementptr inbounds float* %tmp18985, i64 1
+ %tmp18987 = getelementptr inbounds float* %tmp18986, i64 1
+ %tmp18988 = getelementptr inbounds float* %tmp18987, i64 1
+ %tmp18989 = getelementptr inbounds float* %tmp18988, i64 1
+ %tmp18990 = getelementptr inbounds float* %tmp18989, i64 1
+ %tmp18991 = getelementptr inbounds float* %tmp18990, i64 1
+ %tmp18992 = getelementptr inbounds float* %tmp18991, i64 1
+ %tmp18993 = getelementptr inbounds float* %tmp18992, i64 1
+ %tmp18994 = getelementptr inbounds float* %tmp18993, i64 1
+ %tmp18995 = getelementptr inbounds float* %tmp18994, i64 1
+ %tmp18996 = getelementptr inbounds float* %tmp18995, i64 1
+ %tmp18997 = getelementptr inbounds float* %tmp18996, i64 1
+ %tmp18998 = getelementptr inbounds float* %tmp18997, i64 1
+ %tmp18999 = getelementptr inbounds float* %tmp18998, i64 1
+ %tmp19000 = getelementptr inbounds float* %tmp18999, i64 1
+ %tmp19001 = getelementptr inbounds float* %tmp19000, i64 1
+ %tmp19002 = getelementptr inbounds float* %tmp19001, i64 1
+ %tmp19003 = getelementptr inbounds float* %tmp19002, i64 1
+ %tmp19004 = getelementptr inbounds float* %tmp19003, i64 1
+ %tmp19005 = getelementptr inbounds float* %tmp19004, i64 1
+ %tmp19006 = getelementptr inbounds float* %tmp19005, i64 1
+ %tmp19007 = getelementptr inbounds float* %tmp19006, i64 1
+ %tmp19008 = getelementptr inbounds float* %tmp19007, i64 1
+ %tmp19009 = getelementptr inbounds float* %tmp19008, i64 1
+ %tmp19010 = getelementptr inbounds float* %tmp19009, i64 1
+ %tmp19011 = getelementptr inbounds float* %tmp19010, i64 1
+ %tmp19012 = getelementptr inbounds float* %tmp19011, i64 1
+ %tmp19013 = getelementptr inbounds float* %tmp19012, i64 1
+ %tmp19014 = getelementptr inbounds float* %tmp19013, i64 1
+ %tmp19015 = getelementptr inbounds float* %tmp19014, i64 1
+ %tmp19016 = getelementptr inbounds float* %tmp19015, i64 1
+ %tmp19017 = getelementptr inbounds float* %tmp19016, i64 1
+ %tmp19018 = getelementptr inbounds float* %tmp19017, i64 1
+ %tmp19019 = getelementptr inbounds float* %tmp19018, i64 1
+ %tmp19020 = getelementptr inbounds float* %tmp19019, i64 1
+ %tmp19021 = getelementptr inbounds float* %tmp19020, i64 1
+ %tmp19022 = getelementptr inbounds float* %tmp19021, i64 1
+ %tmp19023 = getelementptr inbounds float* %tmp19022, i64 1
+ %tmp19024 = getelementptr inbounds float* %tmp19023, i64 1
+ %tmp19025 = getelementptr inbounds float* %tmp19024, i64 1
+ %tmp19026 = getelementptr inbounds float* %tmp19025, i64 1
+ %tmp19027 = getelementptr inbounds float* %tmp19026, i64 1
+ %tmp19028 = getelementptr inbounds float* %tmp19027, i64 1
+ %tmp19029 = getelementptr inbounds float* %tmp19028, i64 1
+ %tmp19030 = getelementptr inbounds float* %tmp19029, i64 1
+ %tmp19031 = getelementptr inbounds float* %tmp19030, i64 1
+ %tmp19032 = getelementptr inbounds float* %tmp19031, i64 1
+ %tmp19033 = getelementptr inbounds float* %tmp19032, i64 1
+ %tmp19034 = getelementptr inbounds float* %tmp19033, i64 1
+ %tmp19035 = getelementptr inbounds float* %tmp19034, i64 1
+ %tmp19036 = getelementptr inbounds float* %tmp19035, i64 1
+ %tmp19037 = getelementptr inbounds float* %tmp19036, i64 1
+ %tmp19038 = getelementptr inbounds float* %tmp19037, i64 1
+ %tmp19039 = getelementptr inbounds float* %tmp19038, i64 1
+ %tmp19040 = getelementptr inbounds float* %tmp19039, i64 1
+ %tmp19041 = getelementptr inbounds float* %tmp19040, i64 1
+ %tmp19042 = getelementptr inbounds float* %tmp19041, i64 1
+ %tmp19043 = getelementptr inbounds float* %tmp19042, i64 1
+ %tmp19044 = getelementptr inbounds float* %tmp19043, i64 1
+ %tmp19045 = getelementptr inbounds float* %tmp19044, i64 1
+ %tmp19046 = getelementptr inbounds float* %tmp19045, i64 1
+ %tmp19047 = getelementptr inbounds float* %tmp19046, i64 1
+ %tmp19048 = getelementptr inbounds float* %tmp19047, i64 1
+ %tmp19049 = getelementptr inbounds float* %tmp19048, i64 1
+ %tmp19050 = getelementptr inbounds float* %tmp19049, i64 1
+ %tmp19051 = getelementptr inbounds float* %tmp19050, i64 1
+ %tmp19052 = getelementptr inbounds float* %tmp19051, i64 1
+ %tmp19053 = getelementptr inbounds float* %tmp19052, i64 1
+ %tmp19054 = getelementptr inbounds float* %tmp19053, i64 1
+ %tmp19055 = getelementptr inbounds float* %tmp19054, i64 1
+ %tmp19056 = getelementptr inbounds float* %tmp19055, i64 1
+ %tmp19057 = getelementptr inbounds float* %tmp19056, i64 1
+ %tmp19058 = getelementptr inbounds float* %tmp19057, i64 1
+ %tmp19059 = getelementptr inbounds float* %tmp19058, i64 1
+ %tmp19060 = getelementptr inbounds float* %tmp19059, i64 1
+ %tmp19061 = getelementptr inbounds float* %tmp19060, i64 1
+ %tmp19062 = getelementptr inbounds float* %tmp19061, i64 1
+ %tmp19063 = getelementptr inbounds float* %tmp19062, i64 1
+ %tmp19064 = getelementptr inbounds float* %tmp19063, i64 1
+ %tmp19065 = getelementptr inbounds float* %tmp19064, i64 1
+ %tmp19066 = getelementptr inbounds float* %tmp19065, i64 1
+ %tmp19067 = getelementptr inbounds float* %tmp19066, i64 1
+ %tmp19068 = getelementptr inbounds float* %tmp19067, i64 1
+ %tmp19069 = getelementptr inbounds float* %tmp19068, i64 1
+ %tmp19070 = getelementptr inbounds float* %tmp19069, i64 1
+ %tmp19071 = getelementptr inbounds float* %tmp19070, i64 1
+ %tmp19072 = getelementptr inbounds float* %tmp19071, i64 1
+ %tmp19073 = getelementptr inbounds float* %tmp19072, i64 1
+ %tmp19074 = getelementptr inbounds float* %tmp19073, i64 1
+ %tmp19075 = getelementptr inbounds float* %tmp19074, i64 1
+ %tmp19076 = getelementptr inbounds float* %tmp19075, i64 1
+ %tmp19077 = getelementptr inbounds float* %tmp19076, i64 1
+ %tmp19078 = getelementptr inbounds float* %tmp19077, i64 1
+ %tmp19079 = getelementptr inbounds float* %tmp19078, i64 1
+ %tmp19080 = getelementptr inbounds float* %tmp19079, i64 1
+ %tmp19081 = getelementptr inbounds float* %tmp19080, i64 1
+ %tmp19082 = getelementptr inbounds float* %tmp19081, i64 1
+ %tmp19083 = getelementptr inbounds float* %tmp19082, i64 1
+ %tmp19084 = getelementptr inbounds float* %tmp19083, i64 1
+ %tmp19085 = getelementptr inbounds float* %tmp19084, i64 1
+ %tmp19086 = getelementptr inbounds float* %tmp19085, i64 1
+ %tmp19087 = getelementptr inbounds float* %tmp19086, i64 1
+ %tmp19088 = getelementptr inbounds float* %tmp19087, i64 1
+ %tmp19089 = getelementptr inbounds float* %tmp19088, i64 1
+ %tmp19090 = getelementptr inbounds float* %tmp19089, i64 1
+ %tmp19091 = getelementptr inbounds float* %tmp19090, i64 1
+ %tmp19092 = getelementptr inbounds float* %tmp19091, i64 1
+ %tmp19093 = getelementptr inbounds float* %tmp19092, i64 1
+ %tmp19094 = getelementptr inbounds float* %tmp19093, i64 1
+ %tmp19095 = getelementptr inbounds float* %tmp19094, i64 1
+ %tmp19096 = getelementptr inbounds float* %tmp19095, i64 1
+ %tmp19097 = getelementptr inbounds float* %tmp19096, i64 1
+ %tmp19098 = getelementptr inbounds float* %tmp19097, i64 1
+ %tmp19099 = getelementptr inbounds float* %tmp19098, i64 1
+ %tmp19100 = getelementptr inbounds float* %tmp19099, i64 1
+ %tmp19101 = getelementptr inbounds float* %tmp19100, i64 1
+ %tmp19102 = getelementptr inbounds float* %tmp19101, i64 1
+ %tmp19103 = getelementptr inbounds float* %tmp19102, i64 1
+ %tmp19104 = getelementptr inbounds float* %tmp19103, i64 1
+ %tmp19105 = getelementptr inbounds float* %tmp19104, i64 1
+ %tmp19106 = getelementptr inbounds float* %tmp19105, i64 1
+ %tmp19107 = getelementptr inbounds float* %tmp19106, i64 1
+ %tmp19108 = getelementptr inbounds float* %tmp19107, i64 1
+ %tmp19109 = getelementptr inbounds float* %tmp19108, i64 1
+ %tmp19110 = getelementptr inbounds float* %tmp19109, i64 1
+ %tmp19111 = getelementptr inbounds float* %tmp19110, i64 1
+ %tmp19112 = getelementptr inbounds float* %tmp19111, i64 1
+ %tmp19113 = getelementptr inbounds float* %tmp19112, i64 1
+ %tmp19114 = getelementptr inbounds float* %tmp19113, i64 1
+ %tmp19115 = getelementptr inbounds float* %tmp19114, i64 1
+ %tmp19116 = getelementptr inbounds float* %tmp19115, i64 1
+ %tmp19117 = getelementptr inbounds float* %tmp19116, i64 1
+ %tmp19118 = getelementptr inbounds float* %tmp19117, i64 1
+ %tmp19119 = getelementptr inbounds float* %tmp19118, i64 1
+ %tmp19120 = getelementptr inbounds float* %tmp19119, i64 1
+ %tmp19121 = getelementptr inbounds float* %tmp19120, i64 1
+ %tmp19122 = getelementptr inbounds float* %tmp19121, i64 1
+ %tmp19123 = getelementptr inbounds float* %tmp19122, i64 1
+ %tmp19124 = getelementptr inbounds float* %tmp19123, i64 1
+ %tmp19125 = getelementptr inbounds float* %tmp19124, i64 1
+ %tmp19126 = getelementptr inbounds float* %tmp19125, i64 1
+ %tmp19127 = getelementptr inbounds float* %tmp19126, i64 1
+ %tmp19128 = getelementptr inbounds float* %tmp19127, i64 1
+ %tmp19129 = getelementptr inbounds float* %tmp19128, i64 1
+ %tmp19130 = getelementptr inbounds float* %tmp19129, i64 1
+ %tmp19131 = getelementptr inbounds float* %tmp19130, i64 1
+ %tmp19132 = getelementptr inbounds float* %tmp19131, i64 1
+ %tmp19133 = getelementptr inbounds float* %tmp19132, i64 1
+ %tmp19134 = getelementptr inbounds float* %tmp19133, i64 1
+ %tmp19135 = getelementptr inbounds float* %tmp19134, i64 1
+ %tmp19136 = getelementptr inbounds float* %tmp19135, i64 1
+ %tmp19137 = getelementptr inbounds float* %tmp19136, i64 1
+ %tmp19138 = getelementptr inbounds float* %tmp19137, i64 1
+ %tmp19139 = getelementptr inbounds float* %tmp19138, i64 1
+ %tmp19140 = getelementptr inbounds float* %tmp19139, i64 1
+ %tmp19141 = getelementptr inbounds float* %tmp19140, i64 1
+ %tmp19142 = getelementptr inbounds float* %tmp19141, i64 1
+ %tmp19143 = getelementptr inbounds float* %tmp19142, i64 1
+ %tmp19144 = getelementptr inbounds float* %tmp19143, i64 1
+ %tmp19145 = getelementptr inbounds float* %tmp19144, i64 1
+ %tmp19146 = getelementptr inbounds float* %tmp19145, i64 1
+ %tmp19147 = getelementptr inbounds float* %tmp19146, i64 1
+ %tmp19148 = getelementptr inbounds float* %tmp19147, i64 1
+ %tmp19149 = getelementptr inbounds float* %tmp19148, i64 1
+ %tmp19150 = getelementptr inbounds float* %tmp19149, i64 1
+ %tmp19151 = getelementptr inbounds float* %tmp19150, i64 1
+ %tmp19152 = getelementptr inbounds float* %tmp19151, i64 1
+ %tmp19153 = getelementptr inbounds float* %tmp19152, i64 1
+ %tmp19154 = getelementptr inbounds float* %tmp19153, i64 1
+ %tmp19155 = getelementptr inbounds float* %tmp19154, i64 1
+ %tmp19156 = getelementptr inbounds float* %tmp19155, i64 1
+ %tmp19157 = getelementptr inbounds float* %tmp19156, i64 1
+ %tmp19158 = getelementptr inbounds float* %tmp19157, i64 1
+ %tmp19159 = getelementptr inbounds float* %tmp19158, i64 1
+ %tmp19160 = getelementptr inbounds float* %tmp19159, i64 1
+ %tmp19161 = getelementptr inbounds float* %tmp19160, i64 1
+ %tmp19162 = getelementptr inbounds float* %tmp19161, i64 1
+ %tmp19163 = getelementptr inbounds float* %tmp19162, i64 1
+ %tmp19164 = getelementptr inbounds float* %tmp19163, i64 1
+ %tmp19165 = getelementptr inbounds float* %tmp19164, i64 1
+ %tmp19166 = getelementptr inbounds float* %tmp19165, i64 1
+ %tmp19167 = getelementptr inbounds float* %tmp19166, i64 1
+ %tmp19168 = getelementptr inbounds float* %tmp19167, i64 1
+ %tmp19169 = getelementptr inbounds float* %tmp19168, i64 1
+ %tmp19170 = getelementptr inbounds float* %tmp19169, i64 1
+ %tmp19171 = getelementptr inbounds float* %tmp19170, i64 1
+ %tmp19172 = getelementptr inbounds float* %tmp19171, i64 1
+ %tmp19173 = getelementptr inbounds float* %tmp19172, i64 1
+ %tmp19174 = getelementptr inbounds float* %tmp19173, i64 1
+ %tmp19175 = getelementptr inbounds float* %tmp19174, i64 1
+ %tmp19176 = getelementptr inbounds float* %tmp19175, i64 1
+ %tmp19177 = getelementptr inbounds float* %tmp19176, i64 1
+ %tmp19178 = getelementptr inbounds float* %tmp19177, i64 1
+ %tmp19179 = getelementptr inbounds float* %tmp19178, i64 1
+ %tmp19180 = getelementptr inbounds float* %tmp19179, i64 1
+ %tmp19181 = getelementptr inbounds float* %tmp19180, i64 1
+ %tmp19182 = getelementptr inbounds float* %tmp19181, i64 1
+ %tmp19183 = getelementptr inbounds float* %tmp19182, i64 1
+ %tmp19184 = getelementptr inbounds float* %tmp19183, i64 1
+ %tmp19185 = getelementptr inbounds float* %tmp19184, i64 1
+ %tmp19186 = getelementptr inbounds float* %tmp19185, i64 1
+ %tmp19187 = getelementptr inbounds float* %tmp19186, i64 1
+ %tmp19188 = getelementptr inbounds float* %tmp19187, i64 1
+ %tmp19189 = getelementptr inbounds float* %tmp19188, i64 1
+ %tmp19190 = getelementptr inbounds float* %tmp19189, i64 1
+ %tmp19191 = getelementptr inbounds float* %tmp19190, i64 1
+ %tmp19192 = getelementptr inbounds float* %tmp19191, i64 1
+ %tmp19193 = getelementptr inbounds float* %tmp19192, i64 1
+ %tmp19194 = getelementptr inbounds float* %tmp19193, i64 1
+ %tmp19195 = getelementptr inbounds float* %tmp19194, i64 1
+ %tmp19196 = getelementptr inbounds float* %tmp19195, i64 1
+ %tmp19197 = getelementptr inbounds float* %tmp19196, i64 1
+ %tmp19198 = getelementptr inbounds float* %tmp19197, i64 1
+ %tmp19199 = getelementptr inbounds float* %tmp19198, i64 1
+ %tmp19200 = getelementptr inbounds float* %tmp19199, i64 1
+ %tmp19201 = getelementptr inbounds float* %tmp19200, i64 1
+ %tmp19202 = getelementptr inbounds float* %tmp19201, i64 1
+ %tmp19203 = getelementptr inbounds float* %tmp19202, i64 1
+ %tmp19204 = getelementptr inbounds float* %tmp19203, i64 1
+ %tmp19205 = getelementptr inbounds float* %tmp19204, i64 1
+ %tmp19206 = getelementptr inbounds float* %tmp19205, i64 1
+ %tmp19207 = getelementptr inbounds float* %tmp19206, i64 1
+ %tmp19208 = getelementptr inbounds float* %tmp19207, i64 1
+ %tmp19209 = getelementptr inbounds float* %tmp19208, i64 1
+ %tmp19210 = getelementptr inbounds float* %tmp19209, i64 1
+ %tmp19211 = getelementptr inbounds float* %tmp19210, i64 1
+ %tmp19212 = getelementptr inbounds float* %tmp19211, i64 1
+ %tmp19213 = getelementptr inbounds float* %tmp19212, i64 1
+ %tmp19214 = getelementptr inbounds float* %tmp19213, i64 1
+ %tmp19215 = getelementptr inbounds float* %tmp19214, i64 1
+ %tmp19216 = getelementptr inbounds float* %tmp19215, i64 1
+ %tmp19217 = getelementptr inbounds float* %tmp19216, i64 1
+ %tmp19218 = getelementptr inbounds float* %tmp19217, i64 1
+ %tmp19219 = getelementptr inbounds float* %tmp19218, i64 1
+ %tmp19220 = getelementptr inbounds float* %tmp19219, i64 1
+ %tmp19221 = getelementptr inbounds float* %tmp19220, i64 1
+ %tmp19222 = getelementptr inbounds float* %tmp19221, i64 1
+ %tmp19223 = getelementptr inbounds float* %tmp19222, i64 1
+ %tmp19224 = getelementptr inbounds float* %tmp19223, i64 1
+ %tmp19225 = getelementptr inbounds float* %tmp19224, i64 1
+ %tmp19226 = getelementptr inbounds float* %tmp19225, i64 1
+ %tmp19227 = getelementptr inbounds float* %tmp19226, i64 1
+ %tmp19228 = getelementptr inbounds float* %tmp19227, i64 1
+ %tmp19229 = getelementptr inbounds float* %tmp19228, i64 1
+ %tmp19230 = getelementptr inbounds float* %tmp19229, i64 1
+ %tmp19231 = getelementptr inbounds float* %tmp19230, i64 1
+ %tmp19232 = getelementptr inbounds float* %tmp19231, i64 1
+ %tmp19233 = getelementptr inbounds float* %tmp19232, i64 1
+ %tmp19234 = getelementptr inbounds float* %tmp19233, i64 1
+ %tmp19235 = getelementptr inbounds float* %tmp19234, i64 1
+ %tmp19236 = getelementptr inbounds float* %tmp19235, i64 1
+ %tmp19237 = getelementptr inbounds float* %tmp19236, i64 1
+ %tmp19238 = getelementptr inbounds float* %tmp19237, i64 1
+ %tmp19239 = getelementptr inbounds float* %tmp19238, i64 1
+ %tmp19240 = getelementptr inbounds float* %tmp19239, i64 1
+ %tmp19241 = getelementptr inbounds float* %tmp19240, i64 1
+ %tmp19242 = getelementptr inbounds float* %tmp19241, i64 1
+ %tmp19243 = getelementptr inbounds float* %tmp19242, i64 1
+ %tmp19244 = getelementptr inbounds float* %tmp19243, i64 1
+ %tmp19245 = getelementptr inbounds float* %tmp19244, i64 1
+ %tmp19246 = getelementptr inbounds float* %tmp19245, i64 1
+ %tmp19247 = getelementptr inbounds float* %tmp19246, i64 1
+ %tmp19248 = getelementptr inbounds float* %tmp19247, i64 1
+ %tmp19249 = getelementptr inbounds float* %tmp19248, i64 1
+ %tmp19250 = getelementptr inbounds float* %tmp19249, i64 1
+ %tmp19251 = getelementptr inbounds float* %tmp19250, i64 1
+ %tmp19252 = getelementptr inbounds float* %tmp19251, i64 1
+ %tmp19253 = getelementptr inbounds float* %tmp19252, i64 1
+ %tmp19254 = getelementptr inbounds float* %tmp19253, i64 1
+ %tmp19255 = getelementptr inbounds float* %tmp19254, i64 1
+ %tmp19256 = getelementptr inbounds float* %tmp19255, i64 1
+ %tmp19257 = getelementptr inbounds float* %tmp19256, i64 1
+ %tmp19258 = getelementptr inbounds float* %tmp19257, i64 1
+ %tmp19259 = getelementptr inbounds float* %tmp19258, i64 1
+ %tmp19260 = getelementptr inbounds float* %tmp19259, i64 1
+ %tmp19261 = getelementptr inbounds float* %tmp19260, i64 1
+ %tmp19262 = getelementptr inbounds float* %tmp19261, i64 1
+ %tmp19263 = getelementptr inbounds float* %tmp19262, i64 1
+ %tmp19264 = getelementptr inbounds float* %tmp19263, i64 1
+ %tmp19265 = getelementptr inbounds float* %tmp19264, i64 1
+ %tmp19266 = getelementptr inbounds float* %tmp19265, i64 1
+ %tmp19267 = getelementptr inbounds float* %tmp19266, i64 1
+ %tmp19268 = getelementptr inbounds float* %tmp19267, i64 1
+ %tmp19269 = getelementptr inbounds float* %tmp19268, i64 1
+ %tmp19270 = getelementptr inbounds float* %tmp19269, i64 1
+ %tmp19271 = getelementptr inbounds float* %tmp19270, i64 1
+ %tmp19272 = getelementptr inbounds float* %tmp19271, i64 1
+ %tmp19273 = getelementptr inbounds float* %tmp19272, i64 1
+ %tmp19274 = getelementptr inbounds float* %tmp19273, i64 1
+ %tmp19275 = getelementptr inbounds float* %tmp19274, i64 1
+ %tmp19276 = getelementptr inbounds float* %tmp19275, i64 1
+ %tmp19277 = getelementptr inbounds float* %tmp19276, i64 1
+ %tmp19278 = getelementptr inbounds float* %tmp19277, i64 1
+ %tmp19279 = getelementptr inbounds float* %tmp19278, i64 1
+ %tmp19280 = getelementptr inbounds float* %tmp19279, i64 1
+ %tmp19281 = getelementptr inbounds float* %tmp19280, i64 1
+ %tmp19282 = getelementptr inbounds float* %tmp19281, i64 1
+ %tmp19283 = getelementptr inbounds float* %tmp19282, i64 1
+ %tmp19284 = getelementptr inbounds float* %tmp19283, i64 1
+ %tmp19285 = getelementptr inbounds float* %tmp19284, i64 1
+ %tmp19286 = getelementptr inbounds float* %tmp19285, i64 1
+ %tmp19287 = getelementptr inbounds float* %tmp19286, i64 1
+ %tmp19288 = getelementptr inbounds float* %tmp19287, i64 1
+ %tmp19289 = getelementptr inbounds float* %tmp19288, i64 1
+ %tmp19290 = getelementptr inbounds float* %tmp19289, i64 1
+ %tmp19291 = getelementptr inbounds float* %tmp19290, i64 1
+ %tmp19292 = getelementptr inbounds float* %tmp19291, i64 1
+ %tmp19293 = getelementptr inbounds float* %tmp19292, i64 1
+ %tmp19294 = getelementptr inbounds float* %tmp19293, i64 1
+ %tmp19295 = getelementptr inbounds float* %tmp19294, i64 1
+ %tmp19296 = getelementptr inbounds float* %tmp19295, i64 1
+ %tmp19297 = getelementptr inbounds float* %tmp19296, i64 1
+ %tmp19298 = getelementptr inbounds float* %tmp19297, i64 1
+ %tmp19299 = getelementptr inbounds float* %tmp19298, i64 1
+ %tmp19300 = getelementptr inbounds float* %tmp19299, i64 1
+ %tmp19301 = getelementptr inbounds float* %tmp19300, i64 1
+ %tmp19302 = getelementptr inbounds float* %tmp19301, i64 1
+ %tmp19303 = getelementptr inbounds float* %tmp19302, i64 1
+ %tmp19304 = getelementptr inbounds float* %tmp19303, i64 1
+ %tmp19305 = getelementptr inbounds float* %tmp19304, i64 1
+ %tmp19306 = getelementptr inbounds float* %tmp19305, i64 1
+ %tmp19307 = getelementptr inbounds float* %tmp19306, i64 1
+ %tmp19308 = getelementptr inbounds float* %tmp19307, i64 1
+ %tmp19309 = getelementptr inbounds float* %tmp19308, i64 1
+ %tmp19310 = getelementptr inbounds float* %tmp19309, i64 1
+ %tmp19311 = getelementptr inbounds float* %tmp19310, i64 1
+ %tmp19312 = getelementptr inbounds float* %tmp19311, i64 1
+ %tmp19313 = getelementptr inbounds float* %tmp19312, i64 1
+ %tmp19314 = getelementptr inbounds float* %tmp19313, i64 1
+ %tmp19315 = getelementptr inbounds float* %tmp19314, i64 1
+ %tmp19316 = getelementptr inbounds float* %tmp19315, i64 1
+ %tmp19317 = getelementptr inbounds float* %tmp19316, i64 1
+ %tmp19318 = getelementptr inbounds float* %tmp19317, i64 1
+ %tmp19319 = getelementptr inbounds float* %tmp19318, i64 1
+ %tmp19320 = getelementptr inbounds float* %tmp19319, i64 1
+ %tmp19321 = getelementptr inbounds float* %tmp19320, i64 1
+ %tmp19322 = getelementptr inbounds float* %tmp19321, i64 1
+ %tmp19323 = getelementptr inbounds float* %tmp19322, i64 1
+ %tmp19324 = getelementptr inbounds float* %tmp19323, i64 1
+ %tmp19325 = getelementptr inbounds float* %tmp19324, i64 1
+ %tmp19326 = getelementptr inbounds float* %tmp19325, i64 1
+ %tmp19327 = getelementptr inbounds float* %tmp19326, i64 1
+ %tmp19328 = getelementptr inbounds float* %tmp19327, i64 1
+ %tmp19329 = getelementptr inbounds float* %tmp19328, i64 1
+ %tmp19330 = getelementptr inbounds float* %tmp19329, i64 1
+ %tmp19331 = getelementptr inbounds float* %tmp19330, i64 1
+ %tmp19332 = getelementptr inbounds float* %tmp19331, i64 1
+ %tmp19333 = getelementptr inbounds float* %tmp19332, i64 1
+ %tmp19334 = getelementptr inbounds float* %tmp19333, i64 1
+ %tmp19335 = getelementptr inbounds float* %tmp19334, i64 1
+ %tmp19336 = getelementptr inbounds float* %tmp19335, i64 1
+ %tmp19337 = getelementptr inbounds float* %tmp19336, i64 1
+ %tmp19338 = getelementptr inbounds float* %tmp19337, i64 1
+ %tmp19339 = getelementptr inbounds float* %tmp19338, i64 1
+ %tmp19340 = getelementptr inbounds float* %tmp19339, i64 1
+ %tmp19341 = getelementptr inbounds float* %tmp19340, i64 1
+ %tmp19342 = getelementptr inbounds float* %tmp19341, i64 1
+ %tmp19343 = getelementptr inbounds float* %tmp19342, i64 1
+ %tmp19344 = getelementptr inbounds float* %tmp19343, i64 1
+ %tmp19345 = getelementptr inbounds float* %tmp19344, i64 1
+ %tmp19346 = getelementptr inbounds float* %tmp19345, i64 1
+ %tmp19347 = getelementptr inbounds float* %tmp19346, i64 1
+ %tmp19348 = getelementptr inbounds float* %tmp19347, i64 1
+ %tmp19349 = getelementptr inbounds float* %tmp19348, i64 1
+ %tmp19350 = getelementptr inbounds float* %tmp19349, i64 1
+ %tmp19351 = getelementptr inbounds float* %tmp19350, i64 1
+ %tmp19352 = getelementptr inbounds float* %tmp19351, i64 1
+ %tmp19353 = getelementptr inbounds float* %tmp19352, i64 1
+ %tmp19354 = getelementptr inbounds float* %tmp19353, i64 1
+ %tmp19355 = getelementptr inbounds float* %tmp19354, i64 1
+ %tmp19356 = getelementptr inbounds float* %tmp19355, i64 1
+ %tmp19357 = getelementptr inbounds float* %tmp19356, i64 1
+ %tmp19358 = getelementptr inbounds float* %tmp19357, i64 1
+ %tmp19359 = getelementptr inbounds float* %tmp19358, i64 1
+ %tmp19360 = getelementptr inbounds float* %tmp19359, i64 1
+ %tmp19361 = getelementptr inbounds float* %tmp19360, i64 1
+ %tmp19362 = getelementptr inbounds float* %tmp19361, i64 1
+ %tmp19363 = getelementptr inbounds float* %tmp19362, i64 1
+ %tmp19364 = getelementptr inbounds float* %tmp19363, i64 1
+ %tmp19365 = getelementptr inbounds float* %tmp19364, i64 1
+ %tmp19366 = getelementptr inbounds float* %tmp19365, i64 1
+ %tmp19367 = getelementptr inbounds float* %tmp19366, i64 1
+ %tmp19368 = getelementptr inbounds float* %tmp19367, i64 1
+ %tmp19369 = getelementptr inbounds float* %tmp19368, i64 1
+ %tmp19370 = getelementptr inbounds float* %tmp19369, i64 1
+ %tmp19371 = getelementptr inbounds float* %tmp19370, i64 1
+ %tmp19372 = getelementptr inbounds float* %tmp19371, i64 1
+ %tmp19373 = getelementptr inbounds float* %tmp19372, i64 1
+ %tmp19374 = getelementptr inbounds float* %tmp19373, i64 1
+ %tmp19375 = getelementptr inbounds float* %tmp19374, i64 1
+ %tmp19376 = getelementptr inbounds float* %tmp19375, i64 1
+ %tmp19377 = getelementptr inbounds float* %tmp19376, i64 1
+ %tmp19378 = getelementptr inbounds float* %tmp19377, i64 1
+ %tmp19379 = getelementptr inbounds float* %tmp19378, i64 1
+ %tmp19380 = getelementptr inbounds float* %tmp19379, i64 1
+ %tmp19381 = getelementptr inbounds float* %tmp19380, i64 1
+ %tmp19382 = getelementptr inbounds float* %tmp19381, i64 1
+ %tmp19383 = getelementptr inbounds float* %tmp19382, i64 1
+ %tmp19384 = getelementptr inbounds float* %tmp19383, i64 1
+ %tmp19385 = getelementptr inbounds float* %tmp19384, i64 1
+ %tmp19386 = getelementptr inbounds float* %tmp19385, i64 1
+ %tmp19387 = getelementptr inbounds float* %tmp19386, i64 1
+ %tmp19388 = getelementptr inbounds float* %tmp19387, i64 1
+ %tmp19389 = getelementptr inbounds float* %tmp19388, i64 1
+ %tmp19390 = getelementptr inbounds float* %tmp19389, i64 1
+ %tmp19391 = getelementptr inbounds float* %tmp19390, i64 1
+ %tmp19392 = getelementptr inbounds float* %tmp19391, i64 1
+ %tmp19393 = getelementptr inbounds float* %tmp19392, i64 1
+ %tmp19394 = getelementptr inbounds float* %tmp19393, i64 1
+ %tmp19395 = getelementptr inbounds float* %tmp19394, i64 1
+ %tmp19396 = getelementptr inbounds float* %tmp19395, i64 1
+ %tmp19397 = getelementptr inbounds float* %tmp19396, i64 1
+ %tmp19398 = getelementptr inbounds float* %tmp19397, i64 1
+ %tmp19399 = getelementptr inbounds float* %tmp19398, i64 1
+ %tmp19400 = getelementptr inbounds float* %tmp19399, i64 1
+ %tmp19401 = getelementptr inbounds float* %tmp19400, i64 1
+ %tmp19402 = getelementptr inbounds float* %tmp19401, i64 1
+ %tmp19403 = getelementptr inbounds float* %tmp19402, i64 1
+ %tmp19404 = getelementptr inbounds float* %tmp19403, i64 1
+ %tmp19405 = getelementptr inbounds float* %tmp19404, i64 1
+ %tmp19406 = getelementptr inbounds float* %tmp19405, i64 1
+ %tmp19407 = getelementptr inbounds float* %tmp19406, i64 1
+ %tmp19408 = getelementptr inbounds float* %tmp19407, i64 1
+ %tmp19409 = getelementptr inbounds float* %tmp19408, i64 1
+ %tmp19410 = getelementptr inbounds float* %tmp19409, i64 1
+ %tmp19411 = getelementptr inbounds float* %tmp19410, i64 1
+ %tmp19412 = getelementptr inbounds float* %tmp19411, i64 1
+ %tmp19413 = getelementptr inbounds float* %tmp19412, i64 1
+ %tmp19414 = getelementptr inbounds float* %tmp19413, i64 1
+ %tmp19415 = getelementptr inbounds float* %tmp19414, i64 1
+ %tmp19416 = getelementptr inbounds float* %tmp19415, i64 1
+ %tmp19417 = getelementptr inbounds float* %tmp19416, i64 1
+ %tmp19418 = getelementptr inbounds float* %tmp19417, i64 1
+ %tmp19419 = getelementptr inbounds float* %tmp19418, i64 1
+ %tmp19420 = getelementptr inbounds float* %tmp19419, i64 1
+ %tmp19421 = getelementptr inbounds float* %tmp19420, i64 1
+ %tmp19422 = getelementptr inbounds float* %tmp19421, i64 1
+ %tmp19423 = getelementptr inbounds float* %tmp19422, i64 1
+ %tmp19424 = getelementptr inbounds float* %tmp19423, i64 1
+ %tmp19425 = getelementptr inbounds float* %tmp19424, i64 1
+ %tmp19426 = getelementptr inbounds float* %tmp19425, i64 1
+ %tmp19427 = getelementptr inbounds float* %tmp19426, i64 1
+ %tmp19428 = getelementptr inbounds float* %tmp19427, i64 1
+ %tmp19429 = getelementptr inbounds float* %tmp19428, i64 1
+ %tmp19430 = getelementptr inbounds float* %tmp19429, i64 1
+ %tmp19431 = getelementptr inbounds float* %tmp19430, i64 1
+ %tmp19432 = getelementptr inbounds float* %tmp19431, i64 1
+ %tmp19433 = getelementptr inbounds float* %tmp19432, i64 1
+ %tmp19434 = getelementptr inbounds float* %tmp19433, i64 1
+ %tmp19435 = getelementptr inbounds float* %tmp19434, i64 1
+ %tmp19436 = getelementptr inbounds float* %tmp19435, i64 1
+ %tmp19437 = getelementptr inbounds float* %tmp19436, i64 1
+ %tmp19438 = getelementptr inbounds float* %tmp19437, i64 1
+ %tmp19439 = getelementptr inbounds float* %tmp19438, i64 1
+ %tmp19440 = getelementptr inbounds float* %tmp19439, i64 1
+ %tmp19441 = getelementptr inbounds float* %tmp19440, i64 1
+ %tmp19442 = getelementptr inbounds float* %tmp19441, i64 1
+ %tmp19443 = getelementptr inbounds float* %tmp19442, i64 1
+ %tmp19444 = getelementptr inbounds float* %tmp19443, i64 1
+ %tmp19445 = getelementptr inbounds float* %tmp19444, i64 1
+ %tmp19446 = getelementptr inbounds float* %tmp19445, i64 1
+ %tmp19447 = getelementptr inbounds float* %tmp19446, i64 1
+ %tmp19448 = getelementptr inbounds float* %tmp19447, i64 1
+ %tmp19449 = getelementptr inbounds float* %tmp19448, i64 1
+ %tmp19450 = getelementptr inbounds float* %tmp19449, i64 1
+ %tmp19451 = getelementptr inbounds float* %tmp19450, i64 1
+ %tmp19452 = getelementptr inbounds float* %tmp19451, i64 1
+ %tmp19453 = getelementptr inbounds float* %tmp19452, i64 1
+ %tmp19454 = getelementptr inbounds float* %tmp19453, i64 1
+ %tmp19455 = getelementptr inbounds float* %tmp19454, i64 1
+ %tmp19456 = getelementptr inbounds float* %tmp19455, i64 1
+ %tmp19457 = getelementptr inbounds float* %tmp19456, i64 1
+ %tmp19458 = getelementptr inbounds float* %tmp19457, i64 1
+ %tmp19459 = getelementptr inbounds float* %tmp19458, i64 1
+ %tmp19460 = getelementptr inbounds float* %tmp19459, i64 1
+ %tmp19461 = getelementptr inbounds float* %tmp19460, i64 1
+ %tmp19462 = getelementptr inbounds float* %tmp19461, i64 1
+ %tmp19463 = getelementptr inbounds float* %tmp19462, i64 1
+ %tmp19464 = getelementptr inbounds float* %tmp19463, i64 1
+ %tmp19465 = getelementptr inbounds float* %tmp19464, i64 1
+ %tmp19466 = getelementptr inbounds float* %tmp19465, i64 1
+ %tmp19467 = getelementptr inbounds float* %tmp19466, i64 1
+ %tmp19468 = getelementptr inbounds float* %tmp19467, i64 1
+ %tmp19469 = getelementptr inbounds float* %tmp19468, i64 1
+ %tmp19470 = getelementptr inbounds float* %tmp19469, i64 1
+ %tmp19471 = getelementptr inbounds float* %tmp19470, i64 1
+ %tmp19472 = getelementptr inbounds float* %tmp19471, i64 1
+ %tmp19473 = getelementptr inbounds float* %tmp19472, i64 1
+ %tmp19474 = getelementptr inbounds float* %tmp19473, i64 1
+ %tmp19475 = getelementptr inbounds float* %tmp19474, i64 1
+ %tmp19476 = getelementptr inbounds float* %tmp19475, i64 1
+ %tmp19477 = getelementptr inbounds float* %tmp19476, i64 1
+ %tmp19478 = getelementptr inbounds float* %tmp19477, i64 1
+ %tmp19479 = getelementptr inbounds float* %tmp19478, i64 1
+ %tmp19480 = getelementptr inbounds float* %tmp19479, i64 1
+ %tmp19481 = getelementptr inbounds float* %tmp19480, i64 1
+ %tmp19482 = getelementptr inbounds float* %tmp19481, i64 1
+ %tmp19483 = getelementptr inbounds float* %tmp19482, i64 1
+ %tmp19484 = getelementptr inbounds float* %tmp19483, i64 1
+ %tmp19485 = getelementptr inbounds float* %tmp19484, i64 1
+ %tmp19486 = getelementptr inbounds float* %tmp19485, i64 1
+ %tmp19487 = getelementptr inbounds float* %tmp19486, i64 1
+ %tmp19488 = getelementptr inbounds float* %tmp19487, i64 1
+ %tmp19489 = getelementptr inbounds float* %tmp19488, i64 1
+ %tmp19490 = getelementptr inbounds float* %tmp19489, i64 1
+ %tmp19491 = getelementptr inbounds float* %tmp19490, i64 1
+ %tmp19492 = getelementptr inbounds float* %tmp19491, i64 1
+ %tmp19493 = getelementptr inbounds float* %tmp19492, i64 1
+ %tmp19494 = getelementptr inbounds float* %tmp19493, i64 1
+ %tmp19495 = getelementptr inbounds float* %tmp19494, i64 1
+ %tmp19496 = getelementptr inbounds float* %tmp19495, i64 1
+ %tmp19497 = getelementptr inbounds float* %tmp19496, i64 1
+ %tmp19498 = getelementptr inbounds float* %tmp19497, i64 1
+ %tmp19499 = getelementptr inbounds float* %tmp19498, i64 1
+ %tmp19500 = getelementptr inbounds float* %tmp19499, i64 1
+ %tmp19501 = getelementptr inbounds float* %tmp19500, i64 1
+ %tmp19502 = getelementptr inbounds float* %tmp19501, i64 1
+ %tmp19503 = getelementptr inbounds float* %tmp19502, i64 1
+ %tmp19504 = getelementptr inbounds float* %tmp19503, i64 1
+ %tmp19505 = getelementptr inbounds float* %tmp19504, i64 1
+ %tmp19506 = getelementptr inbounds float* %tmp19505, i64 1
+ %tmp19507 = getelementptr inbounds float* %tmp19506, i64 1
+ %tmp19508 = getelementptr inbounds float* %tmp19507, i64 1
+ %tmp19509 = getelementptr inbounds float* %tmp19508, i64 1
+ %tmp19510 = getelementptr inbounds float* %tmp19509, i64 1
+ %tmp19511 = getelementptr inbounds float* %tmp19510, i64 1
+ %tmp19512 = getelementptr inbounds float* %tmp19511, i64 1
+ %tmp19513 = getelementptr inbounds float* %tmp19512, i64 1
+ %tmp19514 = getelementptr inbounds float* %tmp19513, i64 1
+ %tmp19515 = getelementptr inbounds float* %tmp19514, i64 1
+ %tmp19516 = getelementptr inbounds float* %tmp19515, i64 1
+ %tmp19517 = getelementptr inbounds float* %tmp19516, i64 1
+ %tmp19518 = getelementptr inbounds float* %tmp19517, i64 1
+ %tmp19519 = getelementptr inbounds float* %tmp19518, i64 1
+ %tmp19520 = getelementptr inbounds float* %tmp19519, i64 1
+ %tmp19521 = getelementptr inbounds float* %tmp19520, i64 1
+ %tmp19522 = getelementptr inbounds float* %tmp19521, i64 1
+ %tmp19523 = getelementptr inbounds float* %tmp19522, i64 1
+ %tmp19524 = getelementptr inbounds float* %tmp19523, i64 1
+ %tmp19525 = getelementptr inbounds float* %tmp19524, i64 1
+ %tmp19526 = getelementptr inbounds float* %tmp19525, i64 1
+ %tmp19527 = getelementptr inbounds float* %tmp19526, i64 1
+ %tmp19528 = getelementptr inbounds float* %tmp19527, i64 1
+ %tmp19529 = getelementptr inbounds float* %tmp19528, i64 1
+ %tmp19530 = getelementptr inbounds float* %tmp19529, i64 1
+ %tmp19531 = getelementptr inbounds float* %tmp19530, i64 1
+ %tmp19532 = getelementptr inbounds float* %tmp19531, i64 1
+ %tmp19533 = getelementptr inbounds float* %tmp19532, i64 1
+ %tmp19534 = getelementptr inbounds float* %tmp19533, i64 1
+ %tmp19535 = getelementptr inbounds float* %tmp19534, i64 1
+ %tmp19536 = getelementptr inbounds float* %tmp19535, i64 1
+ %tmp19537 = getelementptr inbounds float* %tmp19536, i64 1
+ %tmp19538 = getelementptr inbounds float* %tmp19537, i64 1
+ %tmp19539 = getelementptr inbounds float* %tmp19538, i64 1
+ %tmp19540 = getelementptr inbounds float* %tmp19539, i64 1
+ %tmp19541 = getelementptr inbounds float* %tmp19540, i64 1
+ %tmp19542 = getelementptr inbounds float* %tmp19541, i64 1
+ %tmp19543 = getelementptr inbounds float* %tmp19542, i64 1
+ %tmp19544 = getelementptr inbounds float* %tmp19543, i64 1
+ %tmp19545 = getelementptr inbounds float* %tmp19544, i64 1
+ %tmp19546 = getelementptr inbounds float* %tmp19545, i64 1
+ %tmp19547 = getelementptr inbounds float* %tmp19546, i64 1
+ %tmp19548 = getelementptr inbounds float* %tmp19547, i64 1
+ %tmp19549 = getelementptr inbounds float* %tmp19548, i64 1
+ %tmp19550 = getelementptr inbounds float* %tmp19549, i64 1
+ %tmp19551 = getelementptr inbounds float* %tmp19550, i64 1
+ %tmp19552 = getelementptr inbounds float* %tmp19551, i64 1
+ %tmp19553 = getelementptr inbounds float* %tmp19552, i64 1
+ %tmp19554 = getelementptr inbounds float* %tmp19553, i64 1
+ %tmp19555 = getelementptr inbounds float* %tmp19554, i64 1
+ %tmp19556 = getelementptr inbounds float* %tmp19555, i64 1
+ %tmp19557 = getelementptr inbounds float* %tmp19556, i64 1
+ %tmp19558 = getelementptr inbounds float* %tmp19557, i64 1
+ %tmp19559 = getelementptr inbounds float* %tmp19558, i64 1
+ %tmp19560 = getelementptr inbounds float* %tmp19559, i64 1
+ %tmp19561 = getelementptr inbounds float* %tmp19560, i64 1
+ %tmp19562 = getelementptr inbounds float* %tmp19561, i64 1
+ %tmp19563 = getelementptr inbounds float* %tmp19562, i64 1
+ %tmp19564 = getelementptr inbounds float* %tmp19563, i64 1
+ %tmp19565 = getelementptr inbounds float* %tmp19564, i64 1
+ %tmp19566 = getelementptr inbounds float* %tmp19565, i64 1
+ %tmp19567 = getelementptr inbounds float* %tmp19566, i64 1
+ %tmp19568 = getelementptr inbounds float* %tmp19567, i64 1
+ %tmp19569 = getelementptr inbounds float* %tmp19568, i64 1
+ %tmp19570 = getelementptr inbounds float* %tmp19569, i64 1
+ %tmp19571 = getelementptr inbounds float* %tmp19570, i64 1
+ %tmp19572 = getelementptr inbounds float* %tmp19571, i64 1
+ %tmp19573 = getelementptr inbounds float* %tmp19572, i64 1
+ %tmp19574 = getelementptr inbounds float* %tmp19573, i64 1
+ %tmp19575 = getelementptr inbounds float* %tmp19574, i64 1
+ %tmp19576 = getelementptr inbounds float* %tmp19575, i64 1
+ %tmp19577 = getelementptr inbounds float* %tmp19576, i64 1
+ %tmp19578 = getelementptr inbounds float* %tmp19577, i64 1
+ %tmp19579 = getelementptr inbounds float* %tmp19578, i64 1
+ %tmp19580 = getelementptr inbounds float* %tmp19579, i64 1
+ %tmp19581 = getelementptr inbounds float* %tmp19580, i64 1
+ %tmp19582 = getelementptr inbounds float* %tmp19581, i64 1
+ %tmp19583 = getelementptr inbounds float* %tmp19582, i64 1
+ %tmp19584 = getelementptr inbounds float* %tmp19583, i64 1
+ %tmp19585 = getelementptr inbounds float* %tmp19584, i64 1
+ %tmp19586 = getelementptr inbounds float* %tmp19585, i64 1
+ %tmp19587 = getelementptr inbounds float* %tmp19586, i64 1
+ %tmp19588 = getelementptr inbounds float* %tmp19587, i64 1
+ %tmp19589 = getelementptr inbounds float* %tmp19588, i64 1
+ %tmp19590 = getelementptr inbounds float* %tmp19589, i64 1
+ %tmp19591 = getelementptr inbounds float* %tmp19590, i64 1
+ %tmp19592 = getelementptr inbounds float* %tmp19591, i64 1
+ %tmp19593 = getelementptr inbounds float* %tmp19592, i64 1
+ %tmp19594 = getelementptr inbounds float* %tmp19593, i64 1
+ %tmp19595 = getelementptr inbounds float* %tmp19594, i64 1
+ %tmp19596 = getelementptr inbounds float* %tmp19595, i64 1
+ %tmp19597 = getelementptr inbounds float* %tmp19596, i64 1
+ %tmp19598 = getelementptr inbounds float* %tmp19597, i64 1
+ %tmp19599 = getelementptr inbounds float* %tmp19598, i64 1
+ %tmp19600 = getelementptr inbounds float* %tmp19599, i64 1
+ %tmp19601 = getelementptr inbounds float* %tmp19600, i64 1
+ %tmp19602 = getelementptr inbounds float* %tmp19601, i64 1
+ %tmp19603 = getelementptr inbounds float* %tmp19602, i64 1
+ %tmp19604 = getelementptr inbounds float* %tmp19603, i64 1
+ %tmp19605 = getelementptr inbounds float* %tmp19604, i64 1
+ %tmp19606 = getelementptr inbounds float* %tmp19605, i64 1
+ %tmp19607 = getelementptr inbounds float* %tmp19606, i64 1
+ %tmp19608 = getelementptr inbounds float* %tmp19607, i64 1
+ %tmp19609 = getelementptr inbounds float* %tmp19608, i64 1
+ %tmp19610 = getelementptr inbounds float* %tmp19609, i64 1
+ %tmp19611 = getelementptr inbounds float* %tmp19610, i64 1
+ %tmp19612 = getelementptr inbounds float* %tmp19611, i64 1
+ %tmp19613 = getelementptr inbounds float* %tmp19612, i64 1
+ %tmp19614 = getelementptr inbounds float* %tmp19613, i64 1
+ %tmp19615 = getelementptr inbounds float* %tmp19614, i64 1
+ %tmp19616 = getelementptr inbounds float* %tmp19615, i64 1
+ %tmp19617 = getelementptr inbounds float* %tmp19616, i64 1
+ %tmp19618 = getelementptr inbounds float* %tmp19617, i64 1
+ %tmp19619 = getelementptr inbounds float* %tmp19618, i64 1
+ %tmp19620 = getelementptr inbounds float* %tmp19619, i64 1
+ %tmp19621 = getelementptr inbounds float* %tmp19620, i64 1
+ %tmp19622 = getelementptr inbounds float* %tmp19621, i64 1
+ %tmp19623 = getelementptr inbounds float* %tmp19622, i64 1
+ %tmp19624 = getelementptr inbounds float* %tmp19623, i64 1
+ %tmp19625 = getelementptr inbounds float* %tmp19624, i64 1
+ %tmp19626 = getelementptr inbounds float* %tmp19625, i64 1
+ %tmp19627 = getelementptr inbounds float* %tmp19626, i64 1
+ %tmp19628 = getelementptr inbounds float* %tmp19627, i64 1
+ %tmp19629 = getelementptr inbounds float* %tmp19628, i64 1
+ %tmp19630 = getelementptr inbounds float* %tmp19629, i64 1
+ %tmp19631 = getelementptr inbounds float* %tmp19630, i64 1
+ %tmp19632 = getelementptr inbounds float* %tmp19631, i64 1
+ %tmp19633 = getelementptr inbounds float* %tmp19632, i64 1
+ %tmp19634 = getelementptr inbounds float* %tmp19633, i64 1
+ %tmp19635 = getelementptr inbounds float* %tmp19634, i64 1
+ %tmp19636 = getelementptr inbounds float* %tmp19635, i64 1
+ %tmp19637 = getelementptr inbounds float* %tmp19636, i64 1
+ %tmp19638 = getelementptr inbounds float* %tmp19637, i64 1
+ %tmp19639 = getelementptr inbounds float* %tmp19638, i64 1
+ %tmp19640 = getelementptr inbounds float* %tmp19639, i64 1
+ %tmp19641 = getelementptr inbounds float* %tmp19640, i64 1
+ %tmp19642 = getelementptr inbounds float* %tmp19641, i64 1
+ %tmp19643 = getelementptr inbounds float* %tmp19642, i64 1
+ %tmp19644 = getelementptr inbounds float* %tmp19643, i64 1
+ %tmp19645 = getelementptr inbounds float* %tmp19644, i64 1
+ %tmp19646 = getelementptr inbounds float* %tmp19645, i64 1
+ %tmp19647 = getelementptr inbounds float* %tmp19646, i64 1
+ %tmp19648 = getelementptr inbounds float* %tmp19647, i64 1
+ %tmp19649 = getelementptr inbounds float* %tmp19648, i64 1
+ %tmp19650 = getelementptr inbounds float* %tmp19649, i64 1
+ %tmp19651 = getelementptr inbounds float* %tmp19650, i64 1
+ %tmp19652 = getelementptr inbounds float* %tmp19651, i64 1
+ %tmp19653 = getelementptr inbounds float* %tmp19652, i64 1
+ %tmp19654 = getelementptr inbounds float* %tmp19653, i64 1
+ %tmp19655 = getelementptr inbounds float* %tmp19654, i64 1
+ %tmp19656 = getelementptr inbounds float* %tmp19655, i64 1
+ %tmp19657 = getelementptr inbounds float* %tmp19656, i64 1
+ %tmp19658 = getelementptr inbounds float* %tmp19657, i64 1
+ %tmp19659 = getelementptr inbounds float* %tmp19658, i64 1
+ %tmp19660 = getelementptr inbounds float* %tmp19659, i64 1
+ %tmp19661 = getelementptr inbounds float* %tmp19660, i64 1
+ %tmp19662 = getelementptr inbounds float* %tmp19661, i64 1
+ %tmp19663 = getelementptr inbounds float* %tmp19662, i64 1
+ %tmp19664 = getelementptr inbounds float* %tmp19663, i64 1
+ %tmp19665 = getelementptr inbounds float* %tmp19664, i64 1
+ %tmp19666 = getelementptr inbounds float* %tmp19665, i64 1
+ %tmp19667 = getelementptr inbounds float* %tmp19666, i64 1
+ %tmp19668 = getelementptr inbounds float* %tmp19667, i64 1
+ %tmp19669 = getelementptr inbounds float* %tmp19668, i64 1
+ %tmp19670 = getelementptr inbounds float* %tmp19669, i64 1
+ %tmp19671 = getelementptr inbounds float* %tmp19670, i64 1
+ %tmp19672 = getelementptr inbounds float* %tmp19671, i64 1
+ %tmp19673 = getelementptr inbounds float* %tmp19672, i64 1
+ %tmp19674 = getelementptr inbounds float* %tmp19673, i64 1
+ %tmp19675 = getelementptr inbounds float* %tmp19674, i64 1
+ %tmp19676 = getelementptr inbounds float* %tmp19675, i64 1
+ %tmp19677 = getelementptr inbounds float* %tmp19676, i64 1
+ %tmp19678 = getelementptr inbounds float* %tmp19677, i64 1
+ %tmp19679 = getelementptr inbounds float* %tmp19678, i64 1
+ %tmp19680 = getelementptr inbounds float* %tmp19679, i64 1
+ %tmp19681 = getelementptr inbounds float* %tmp19680, i64 1
+ %tmp19682 = getelementptr inbounds float* %tmp19681, i64 1
+ %tmp19683 = getelementptr inbounds float* %tmp19682, i64 1
+ %tmp19684 = getelementptr inbounds float* %tmp19683, i64 1
+ %tmp19685 = getelementptr inbounds float* %tmp19684, i64 1
+ %tmp19686 = getelementptr inbounds float* %tmp19685, i64 1
+ %tmp19687 = getelementptr inbounds float* %tmp19686, i64 1
+ %tmp19688 = getelementptr inbounds float* %tmp19687, i64 1
+ %tmp19689 = getelementptr inbounds float* %tmp19688, i64 1
+ %tmp19690 = getelementptr inbounds float* %tmp19689, i64 1
+ %tmp19691 = getelementptr inbounds float* %tmp19690, i64 1
+ %tmp19692 = getelementptr inbounds float* %tmp19691, i64 1
+ %tmp19693 = getelementptr inbounds float* %tmp19692, i64 1
+ %tmp19694 = getelementptr inbounds float* %tmp19693, i64 1
+ %tmp19695 = getelementptr inbounds float* %tmp19694, i64 1
+ %tmp19696 = getelementptr inbounds float* %tmp19695, i64 1
+ %tmp19697 = getelementptr inbounds float* %tmp19696, i64 1
+ %tmp19698 = getelementptr inbounds float* %tmp19697, i64 1
+ %tmp19699 = getelementptr inbounds float* %tmp19698, i64 1
+ %tmp19700 = getelementptr inbounds float* %tmp19699, i64 1
+ %tmp19701 = getelementptr inbounds float* %tmp19700, i64 1
+ %tmp19702 = getelementptr inbounds float* %tmp19701, i64 1
+ %tmp19703 = getelementptr inbounds float* %tmp19702, i64 1
+ %tmp19704 = getelementptr inbounds float* %tmp19703, i64 1
+ %tmp19705 = getelementptr inbounds float* %tmp19704, i64 1
+ %tmp19706 = getelementptr inbounds float* %tmp19705, i64 1
+ %tmp19707 = getelementptr inbounds float* %tmp19706, i64 1
+ %tmp19708 = getelementptr inbounds float* %tmp19707, i64 1
+ %tmp19709 = getelementptr inbounds float* %tmp19708, i64 1
+ %tmp19710 = getelementptr inbounds float* %tmp19709, i64 1
+ %tmp19711 = getelementptr inbounds float* %tmp19710, i64 1
+ %tmp19712 = getelementptr inbounds float* %tmp19711, i64 1
+ %tmp19713 = getelementptr inbounds float* %tmp19712, i64 1
+ %tmp19714 = getelementptr inbounds float* %tmp19713, i64 1
+ %tmp19715 = getelementptr inbounds float* %tmp19714, i64 1
+ %tmp19716 = getelementptr inbounds float* %tmp19715, i64 1
+ %tmp19717 = getelementptr inbounds float* %tmp19716, i64 1
+ %tmp19718 = getelementptr inbounds float* %tmp19717, i64 1
+ %tmp19719 = getelementptr inbounds float* %tmp19718, i64 1
+ %tmp19720 = getelementptr inbounds float* %tmp19719, i64 1
+ %tmp19721 = getelementptr inbounds float* %tmp19720, i64 1
+ %tmp19722 = getelementptr inbounds float* %tmp19721, i64 1
+ %tmp19723 = getelementptr inbounds float* %tmp19722, i64 1
+ %tmp19724 = getelementptr inbounds float* %tmp19723, i64 1
+ %tmp19725 = getelementptr inbounds float* %tmp19724, i64 1
+ %tmp19726 = getelementptr inbounds float* %tmp19725, i64 1
+ %tmp19727 = getelementptr inbounds float* %tmp19726, i64 1
+ %tmp19728 = getelementptr inbounds float* %tmp19727, i64 1
+ %tmp19729 = getelementptr inbounds float* %tmp19728, i64 1
+ %tmp19730 = getelementptr inbounds float* %tmp19729, i64 1
+ %tmp19731 = getelementptr inbounds float* %tmp19730, i64 1
+ %tmp19732 = getelementptr inbounds float* %tmp19731, i64 1
+ %tmp19733 = getelementptr inbounds float* %tmp19732, i64 1
+ %tmp19734 = getelementptr inbounds float* %tmp19733, i64 1
+ %tmp19735 = getelementptr inbounds float* %tmp19734, i64 1
+ %tmp19736 = getelementptr inbounds float* %tmp19735, i64 1
+ %tmp19737 = getelementptr inbounds float* %tmp19736, i64 1
+ %tmp19738 = getelementptr inbounds float* %tmp19737, i64 1
+ %tmp19739 = getelementptr inbounds float* %tmp19738, i64 1
+ %tmp19740 = getelementptr inbounds float* %tmp19739, i64 1
+ %tmp19741 = getelementptr inbounds float* %tmp19740, i64 1
+ %tmp19742 = getelementptr inbounds float* %tmp19741, i64 1
+ %tmp19743 = getelementptr inbounds float* %tmp19742, i64 1
+ %tmp19744 = getelementptr inbounds float* %tmp19743, i64 1
+ %tmp19745 = getelementptr inbounds float* %tmp19744, i64 1
+ %tmp19746 = getelementptr inbounds float* %tmp19745, i64 1
+ %tmp19747 = getelementptr inbounds float* %tmp19746, i64 1
+ %tmp19748 = getelementptr inbounds float* %tmp19747, i64 1
+ %tmp19749 = getelementptr inbounds float* %tmp19748, i64 1
+ %tmp19750 = getelementptr inbounds float* %tmp19749, i64 1
+ %tmp19751 = getelementptr inbounds float* %tmp19750, i64 1
+ %tmp19752 = getelementptr inbounds float* %tmp19751, i64 1
+ %tmp19753 = getelementptr inbounds float* %tmp19752, i64 1
+ %tmp19754 = getelementptr inbounds float* %tmp19753, i64 1
+ %tmp19755 = getelementptr inbounds float* %tmp19754, i64 1
+ %tmp19756 = getelementptr inbounds float* %tmp19755, i64 1
+ %tmp19757 = getelementptr inbounds float* %tmp19756, i64 1
+ %tmp19758 = getelementptr inbounds float* %tmp19757, i64 1
+ %tmp19759 = getelementptr inbounds float* %tmp19758, i64 1
+ %tmp19760 = getelementptr inbounds float* %tmp19759, i64 1
+ %tmp19761 = getelementptr inbounds float* %tmp19760, i64 1
+ %tmp19762 = getelementptr inbounds float* %tmp19761, i64 1
+ %tmp19763 = getelementptr inbounds float* %tmp19762, i64 1
+ %tmp19764 = getelementptr inbounds float* %tmp19763, i64 1
+ %tmp19765 = getelementptr inbounds float* %tmp19764, i64 1
+ %tmp19766 = getelementptr inbounds float* %tmp19765, i64 1
+ %tmp19767 = getelementptr inbounds float* %tmp19766, i64 1
+ %tmp19768 = getelementptr inbounds float* %tmp19767, i64 1
+ %tmp19769 = getelementptr inbounds float* %tmp19768, i64 1
+ %tmp19770 = getelementptr inbounds float* %tmp19769, i64 1
+ %tmp19771 = getelementptr inbounds float* %tmp19770, i64 1
+ %tmp19772 = getelementptr inbounds float* %tmp19771, i64 1
+ %tmp19773 = getelementptr inbounds float* %tmp19772, i64 1
+ %tmp19774 = getelementptr inbounds float* %tmp19773, i64 1
+ %tmp19775 = getelementptr inbounds float* %tmp19774, i64 1
+ %tmp19776 = getelementptr inbounds float* %tmp19775, i64 1
+ %tmp19777 = getelementptr inbounds float* %tmp19776, i64 1
+ %tmp19778 = getelementptr inbounds float* %tmp19777, i64 1
+ %tmp19779 = getelementptr inbounds float* %tmp19778, i64 1
+ %tmp19780 = getelementptr inbounds float* %tmp19779, i64 1
+ %tmp19781 = getelementptr inbounds float* %tmp19780, i64 1
+ %tmp19782 = getelementptr inbounds float* %tmp19781, i64 1
+ %tmp19783 = getelementptr inbounds float* %tmp19782, i64 1
+ %tmp19784 = getelementptr inbounds float* %tmp19783, i64 1
+ %tmp19785 = getelementptr inbounds float* %tmp19784, i64 1
+ %tmp19786 = getelementptr inbounds float* %tmp19785, i64 1
+ %tmp19787 = getelementptr inbounds float* %tmp19786, i64 1
+ %tmp19788 = getelementptr inbounds float* %tmp19787, i64 1
+ %tmp19789 = getelementptr inbounds float* %tmp19788, i64 1
+ %tmp19790 = getelementptr inbounds float* %tmp19789, i64 1
+ %tmp19791 = getelementptr inbounds float* %tmp19790, i64 1
+ %tmp19792 = getelementptr inbounds float* %tmp19791, i64 1
+ %tmp19793 = getelementptr inbounds float* %tmp19792, i64 1
+ %tmp19794 = getelementptr inbounds float* %tmp19793, i64 1
+ %tmp19795 = getelementptr inbounds float* %tmp19794, i64 1
+ %tmp19796 = getelementptr inbounds float* %tmp19795, i64 1
+ %tmp19797 = getelementptr inbounds float* %tmp19796, i64 1
+ %tmp19798 = getelementptr inbounds float* %tmp19797, i64 1
+ %tmp19799 = getelementptr inbounds float* %tmp19798, i64 1
+ %tmp19800 = getelementptr inbounds float* %tmp19799, i64 1
+ %tmp19801 = getelementptr inbounds float* %tmp19800, i64 1
+ %tmp19802 = getelementptr inbounds float* %tmp19801, i64 1
+ %tmp19803 = getelementptr inbounds float* %tmp19802, i64 1
+ %tmp19804 = getelementptr inbounds float* %tmp19803, i64 1
+ %tmp19805 = getelementptr inbounds float* %tmp19804, i64 1
+ %tmp19806 = getelementptr inbounds float* %tmp19805, i64 1
+ %tmp19807 = getelementptr inbounds float* %tmp19806, i64 1
+ %tmp19808 = getelementptr inbounds float* %tmp19807, i64 1
+ %tmp19809 = getelementptr inbounds float* %tmp19808, i64 1
+ %tmp19810 = getelementptr inbounds float* %tmp19809, i64 1
+ %tmp19811 = getelementptr inbounds float* %tmp19810, i64 1
+ %tmp19812 = getelementptr inbounds float* %tmp19811, i64 1
+ %tmp19813 = getelementptr inbounds float* %tmp19812, i64 1
+ %tmp19814 = getelementptr inbounds float* %tmp19813, i64 1
+ %tmp19815 = getelementptr inbounds float* %tmp19814, i64 1
+ %tmp19816 = getelementptr inbounds float* %tmp19815, i64 1
+ %tmp19817 = getelementptr inbounds float* %tmp19816, i64 1
+ %tmp19818 = getelementptr inbounds float* %tmp19817, i64 1
+ %tmp19819 = getelementptr inbounds float* %tmp19818, i64 1
+ %tmp19820 = getelementptr inbounds float* %tmp19819, i64 1
+ %tmp19821 = getelementptr inbounds float* %tmp19820, i64 1
+ %tmp19822 = getelementptr inbounds float* %tmp19821, i64 1
+ %tmp19823 = getelementptr inbounds float* %tmp19822, i64 1
+ %tmp19824 = getelementptr inbounds float* %tmp19823, i64 1
+ %tmp19825 = getelementptr inbounds float* %tmp19824, i64 1
+ %tmp19826 = getelementptr inbounds float* %tmp19825, i64 1
+ %tmp19827 = getelementptr inbounds float* %tmp19826, i64 1
+ %tmp19828 = getelementptr inbounds float* %tmp19827, i64 1
+ %tmp19829 = getelementptr inbounds float* %tmp19828, i64 1
+ %tmp19830 = getelementptr inbounds float* %tmp19829, i64 1
+ %tmp19831 = getelementptr inbounds float* %tmp19830, i64 1
+ %tmp19832 = getelementptr inbounds float* %tmp19831, i64 1
+ %tmp19833 = getelementptr inbounds float* %tmp19832, i64 1
+ %tmp19834 = getelementptr inbounds float* %tmp19833, i64 1
+ %tmp19835 = getelementptr inbounds float* %tmp19834, i64 1
+ %tmp19836 = getelementptr inbounds float* %tmp19835, i64 1
+ %tmp19837 = getelementptr inbounds float* %tmp19836, i64 1
+ %tmp19838 = getelementptr inbounds float* %tmp19837, i64 1
+ %tmp19839 = getelementptr inbounds float* %tmp19838, i64 1
+ %tmp19840 = getelementptr inbounds float* %tmp19839, i64 1
+ %tmp19841 = getelementptr inbounds float* %tmp19840, i64 1
+ %tmp19842 = getelementptr inbounds float* %tmp19841, i64 1
+ %tmp19843 = getelementptr inbounds float* %tmp19842, i64 1
+ %tmp19844 = getelementptr inbounds float* %tmp19843, i64 1
+ %tmp19845 = getelementptr inbounds float* %tmp19844, i64 1
+ %tmp19846 = getelementptr inbounds float* %tmp19845, i64 1
+ %tmp19847 = getelementptr inbounds float* %tmp19846, i64 1
+ %tmp19848 = getelementptr inbounds float* %tmp19847, i64 1
+ %tmp19849 = getelementptr inbounds float* %tmp19848, i64 1
+ %tmp19850 = getelementptr inbounds float* %tmp19849, i64 1
+ %tmp19851 = getelementptr inbounds float* %tmp19850, i64 1
+ %tmp19852 = getelementptr inbounds float* %tmp19851, i64 1
+ %tmp19853 = getelementptr inbounds float* %tmp19852, i64 1
+ %tmp19854 = getelementptr inbounds float* %tmp19853, i64 1
+ %tmp19855 = getelementptr inbounds float* %tmp19854, i64 1
+ %tmp19856 = getelementptr inbounds float* %tmp19855, i64 1
+ %tmp19857 = getelementptr inbounds float* %tmp19856, i64 1
+ %tmp19858 = getelementptr inbounds float* %tmp19857, i64 1
+ %tmp19859 = getelementptr inbounds float* %tmp19858, i64 1
+ %tmp19860 = getelementptr inbounds float* %tmp19859, i64 1
+ %tmp19861 = getelementptr inbounds float* %tmp19860, i64 1
+ %tmp19862 = getelementptr inbounds float* %tmp19861, i64 1
+ %tmp19863 = getelementptr inbounds float* %tmp19862, i64 1
+ %tmp19864 = getelementptr inbounds float* %tmp19863, i64 1
+ %tmp19865 = getelementptr inbounds float* %tmp19864, i64 1
+ %tmp19866 = getelementptr inbounds float* %tmp19865, i64 1
+ %tmp19867 = getelementptr inbounds float* %tmp19866, i64 1
+ %tmp19868 = getelementptr inbounds float* %tmp19867, i64 1
+ %tmp19869 = getelementptr inbounds float* %tmp19868, i64 1
+ %tmp19870 = getelementptr inbounds float* %tmp19869, i64 1
+ %tmp19871 = getelementptr inbounds float* %tmp19870, i64 1
+ %tmp19872 = getelementptr inbounds float* %tmp19871, i64 1
+ %tmp19873 = getelementptr inbounds float* %tmp19872, i64 1
+ %tmp19874 = getelementptr inbounds float* %tmp19873, i64 1
+ %tmp19875 = getelementptr inbounds float* %tmp19874, i64 1
+ %tmp19876 = getelementptr inbounds float* %tmp19875, i64 1
+ %tmp19877 = getelementptr inbounds float* %tmp19876, i64 1
+ %tmp19878 = getelementptr inbounds float* %tmp19877, i64 1
+ %tmp19879 = getelementptr inbounds float* %tmp19878, i64 1
+ %tmp19880 = getelementptr inbounds float* %tmp19879, i64 1
+ %tmp19881 = getelementptr inbounds float* %tmp19880, i64 1
+ %tmp19882 = getelementptr inbounds float* %tmp19881, i64 1
+ %tmp19883 = getelementptr inbounds float* %tmp19882, i64 1
+ %tmp19884 = getelementptr inbounds float* %tmp19883, i64 1
+ %tmp19885 = getelementptr inbounds float* %tmp19884, i64 1
+ %tmp19886 = getelementptr inbounds float* %tmp19885, i64 1
+ %tmp19887 = getelementptr inbounds float* %tmp19886, i64 1
+ %tmp19888 = getelementptr inbounds float* %tmp19887, i64 1
+ %tmp19889 = getelementptr inbounds float* %tmp19888, i64 1
+ %tmp19890 = getelementptr inbounds float* %tmp19889, i64 1
+ %tmp19891 = getelementptr inbounds float* %tmp19890, i64 1
+ %tmp19892 = getelementptr inbounds float* %tmp19891, i64 1
+ %tmp19893 = getelementptr inbounds float* %tmp19892, i64 1
+ %tmp19894 = getelementptr inbounds float* %tmp19893, i64 1
+ %tmp19895 = getelementptr inbounds float* %tmp19894, i64 1
+ %tmp19896 = getelementptr inbounds float* %tmp19895, i64 1
+ %tmp19897 = getelementptr inbounds float* %tmp19896, i64 1
+ %tmp19898 = getelementptr inbounds float* %tmp19897, i64 1
+ %tmp19899 = getelementptr inbounds float* %tmp19898, i64 1
+ %tmp19900 = getelementptr inbounds float* %tmp19899, i64 1
+ %tmp19901 = getelementptr inbounds float* %tmp19900, i64 1
+ %tmp19902 = getelementptr inbounds float* %tmp19901, i64 1
+ %tmp19903 = getelementptr inbounds float* %tmp19902, i64 1
+ %tmp19904 = getelementptr inbounds float* %tmp19903, i64 1
+ %tmp19905 = getelementptr inbounds float* %tmp19904, i64 1
+ %tmp19906 = getelementptr inbounds float* %tmp19905, i64 1
+ %tmp19907 = getelementptr inbounds float* %tmp19906, i64 1
+ %tmp19908 = getelementptr inbounds float* %tmp19907, i64 1
+ %tmp19909 = getelementptr inbounds float* %tmp19908, i64 1
+ %tmp19910 = getelementptr inbounds float* %tmp19909, i64 1
+ %tmp19911 = getelementptr inbounds float* %tmp19910, i64 1
+ %tmp19912 = getelementptr inbounds float* %tmp19911, i64 1
+ %tmp19913 = getelementptr inbounds float* %tmp19912, i64 1
+ %tmp19914 = getelementptr inbounds float* %tmp19913, i64 1
+ %tmp19915 = getelementptr inbounds float* %tmp19914, i64 1
+ %tmp19916 = getelementptr inbounds float* %tmp19915, i64 1
+ %tmp19917 = getelementptr inbounds float* %tmp19916, i64 1
+ %tmp19918 = getelementptr inbounds float* %tmp19917, i64 1
+ %tmp19919 = getelementptr inbounds float* %tmp19918, i64 1
+ %tmp19920 = getelementptr inbounds float* %tmp19919, i64 1
+ %tmp19921 = getelementptr inbounds float* %tmp19920, i64 1
+ %tmp19922 = getelementptr inbounds float* %tmp19921, i64 1
+ %tmp19923 = getelementptr inbounds float* %tmp19922, i64 1
+ %tmp19924 = getelementptr inbounds float* %tmp19923, i64 1
+ %tmp19925 = getelementptr inbounds float* %tmp19924, i64 1
+ %tmp19926 = getelementptr inbounds float* %tmp19925, i64 1
+ %tmp19927 = getelementptr inbounds float* %tmp19926, i64 1
+ %tmp19928 = getelementptr inbounds float* %tmp19927, i64 1
+ %tmp19929 = getelementptr inbounds float* %tmp19928, i64 1
+ %tmp19930 = getelementptr inbounds float* %tmp19929, i64 1
+ %tmp19931 = getelementptr inbounds float* %tmp19930, i64 1
+ %tmp19932 = getelementptr inbounds float* %tmp19931, i64 1
+ %tmp19933 = getelementptr inbounds float* %tmp19932, i64 1
+ %tmp19934 = getelementptr inbounds float* %tmp19933, i64 1
+ %tmp19935 = getelementptr inbounds float* %tmp19934, i64 1
+ %tmp19936 = getelementptr inbounds float* %tmp19935, i64 1
+ %tmp19937 = getelementptr inbounds float* %tmp19936, i64 1
+ %tmp19938 = getelementptr inbounds float* %tmp19937, i64 1
+ %tmp19939 = getelementptr inbounds float* %tmp19938, i64 1
+ %tmp19940 = getelementptr inbounds float* %tmp19939, i64 1
+ %tmp19941 = getelementptr inbounds float* %tmp19940, i64 1
+ %tmp19942 = getelementptr inbounds float* %tmp19941, i64 1
+ %tmp19943 = getelementptr inbounds float* %tmp19942, i64 1
+ %tmp19944 = getelementptr inbounds float* %tmp19943, i64 1
+ %tmp19945 = getelementptr inbounds float* %tmp19944, i64 1
+ %tmp19946 = getelementptr inbounds float* %tmp19945, i64 1
+ %tmp19947 = getelementptr inbounds float* %tmp19946, i64 1
+ %tmp19948 = getelementptr inbounds float* %tmp19947, i64 1
+ %tmp19949 = getelementptr inbounds float* %tmp19948, i64 1
+ %tmp19950 = getelementptr inbounds float* %tmp19949, i64 1
+ %tmp19951 = getelementptr inbounds float* %tmp19950, i64 1
+ %tmp19952 = getelementptr inbounds float* %tmp19951, i64 1
+ %tmp19953 = getelementptr inbounds float* %tmp19952, i64 1
+ %tmp19954 = getelementptr inbounds float* %tmp19953, i64 1
+ %tmp19955 = getelementptr inbounds float* %tmp19954, i64 1
+ %tmp19956 = getelementptr inbounds float* %tmp19955, i64 1
+ %tmp19957 = getelementptr inbounds float* %tmp19956, i64 1
+ %tmp19958 = getelementptr inbounds float* %tmp19957, i64 1
+ %tmp19959 = getelementptr inbounds float* %tmp19958, i64 1
+ %tmp19960 = getelementptr inbounds float* %tmp19959, i64 1
+ %tmp19961 = getelementptr inbounds float* %tmp19960, i64 1
+ %tmp19962 = getelementptr inbounds float* %tmp19961, i64 1
+ %tmp19963 = getelementptr inbounds float* %tmp19962, i64 1
+ %tmp19964 = getelementptr inbounds float* %tmp19963, i64 1
+ %tmp19965 = getelementptr inbounds float* %tmp19964, i64 1
+ %tmp19966 = getelementptr inbounds float* %tmp19965, i64 1
+ %tmp19967 = getelementptr inbounds float* %tmp19966, i64 1
+ %tmp19968 = getelementptr inbounds float* %tmp19967, i64 1
+ %tmp19969 = getelementptr inbounds float* %tmp19968, i64 1
+ %tmp19970 = getelementptr inbounds float* %tmp19969, i64 1
+ %tmp19971 = getelementptr inbounds float* %tmp19970, i64 1
+ %tmp19972 = getelementptr inbounds float* %tmp19971, i64 1
+ %tmp19973 = getelementptr inbounds float* %tmp19972, i64 1
+ %tmp19974 = getelementptr inbounds float* %tmp19973, i64 1
+ %tmp19975 = getelementptr inbounds float* %tmp19974, i64 1
+ %tmp19976 = getelementptr inbounds float* %tmp19975, i64 1
+ %tmp19977 = getelementptr inbounds float* %tmp19976, i64 1
+ %tmp19978 = getelementptr inbounds float* %tmp19977, i64 1
+ %tmp19979 = getelementptr inbounds float* %tmp19978, i64 1
+ %tmp19980 = getelementptr inbounds float* %tmp19979, i64 1
+ %tmp19981 = getelementptr inbounds float* %tmp19980, i64 1
+ %tmp19982 = getelementptr inbounds float* %tmp19981, i64 1
+ %tmp19983 = getelementptr inbounds float* %tmp19982, i64 1
+ %tmp19984 = getelementptr inbounds float* %tmp19983, i64 1
+ %tmp19985 = getelementptr inbounds float* %tmp19984, i64 1
+ %tmp19986 = getelementptr inbounds float* %tmp19985, i64 1
+ %tmp19987 = getelementptr inbounds float* %tmp19986, i64 1
+ %tmp19988 = getelementptr inbounds float* %tmp19987, i64 1
+ %tmp19989 = getelementptr inbounds float* %tmp19988, i64 1
+ %tmp19990 = getelementptr inbounds float* %tmp19989, i64 1
+ %tmp19991 = getelementptr inbounds float* %tmp19990, i64 1
+ %tmp19992 = getelementptr inbounds float* %tmp19991, i64 1
+ %tmp19993 = getelementptr inbounds float* %tmp19992, i64 1
+ %tmp19994 = getelementptr inbounds float* %tmp19993, i64 1
+ %tmp19995 = getelementptr inbounds float* %tmp19994, i64 1
+ %tmp19996 = getelementptr inbounds float* %tmp19995, i64 1
+ %tmp19997 = getelementptr inbounds float* %tmp19996, i64 1
+ %tmp19998 = getelementptr inbounds float* %tmp19997, i64 1
+ %tmp19999 = getelementptr inbounds float* %tmp19998, i64 1
+ %tmp20000 = getelementptr inbounds float* %tmp19999, i64 1
+ %tmp20001 = getelementptr inbounds float* %tmp20000, i64 1
+ %tmp20002 = getelementptr inbounds float* %tmp20001, i64 1
+ %tmp20003 = getelementptr inbounds float* %tmp20002, i64 1
+ %tmp20004 = getelementptr inbounds float* %tmp20003, i64 1
+ %tmp20005 = getelementptr inbounds float* %tmp20004, i64 1
+ %tmp20006 = getelementptr inbounds float* %tmp20005, i64 1
+ %tmp20007 = getelementptr inbounds float* %tmp20006, i64 1
+ %tmp20008 = getelementptr inbounds float* %tmp20007, i64 1
+ %tmp20009 = getelementptr inbounds float* %tmp20008, i64 1
+ %tmp20010 = getelementptr inbounds float* %tmp20009, i64 1
+ %tmp20011 = getelementptr inbounds float* %tmp20010, i64 1
+ %tmp20012 = getelementptr inbounds float* %tmp20011, i64 1
+ %tmp20013 = getelementptr inbounds float* %tmp20012, i64 1
+ %tmp20014 = getelementptr inbounds float* %tmp20013, i64 1
+ %tmp20015 = getelementptr inbounds float* %tmp20014, i64 1
+ %tmp20016 = getelementptr inbounds float* %tmp20015, i64 1
+ %tmp20017 = getelementptr inbounds float* %tmp20016, i64 1
+ %tmp20018 = getelementptr inbounds float* %tmp20017, i64 1
+ %tmp20019 = getelementptr inbounds float* %tmp20018, i64 1
+ %tmp20020 = getelementptr inbounds float* %tmp20019, i64 1
+ %tmp20021 = getelementptr inbounds float* %tmp20020, i64 1
+ %tmp20022 = getelementptr inbounds float* %tmp20021, i64 1
+ %tmp20023 = getelementptr inbounds float* %tmp20022, i64 1
+ %tmp20024 = getelementptr inbounds float* %tmp20023, i64 1
+ %tmp20025 = getelementptr inbounds float* %tmp20024, i64 1
+ %tmp20026 = getelementptr inbounds float* %tmp20025, i64 1
+ %tmp20027 = getelementptr inbounds float* %tmp20026, i64 1
+ %tmp20028 = getelementptr inbounds float* %tmp20027, i64 1
+ %tmp20029 = getelementptr inbounds float* %tmp20028, i64 1
+ %tmp20030 = getelementptr inbounds float* %tmp20029, i64 1
+ %tmp20031 = getelementptr inbounds float* %tmp20030, i64 1
+ %tmp20032 = getelementptr inbounds float* %tmp20031, i64 1
+ %tmp20033 = getelementptr inbounds float* %tmp20032, i64 1
+ %tmp20034 = getelementptr inbounds float* %tmp20033, i64 1
+ %tmp20035 = getelementptr inbounds float* %tmp20034, i64 1
+ %tmp20036 = getelementptr inbounds float* %tmp20035, i64 1
+ %tmp20037 = getelementptr inbounds float* %tmp20036, i64 1
+ %tmp20038 = getelementptr inbounds float* %tmp20037, i64 1
+ %tmp20039 = getelementptr inbounds float* %tmp20038, i64 1
+ %tmp20040 = getelementptr inbounds float* %tmp20039, i64 1
+ %tmp20041 = getelementptr inbounds float* %tmp20040, i64 1
+ %tmp20042 = getelementptr inbounds float* %tmp20041, i64 1
+ %tmp20043 = getelementptr inbounds float* %tmp20042, i64 1
+ %tmp20044 = getelementptr inbounds float* %tmp20043, i64 1
+ %tmp20045 = getelementptr inbounds float* %tmp20044, i64 1
+ %tmp20046 = getelementptr inbounds float* %tmp20045, i64 1
+ %tmp20047 = getelementptr inbounds float* %tmp20046, i64 1
+ %tmp20048 = getelementptr inbounds float* %tmp20047, i64 1
+ %tmp20049 = getelementptr inbounds float* %tmp20048, i64 1
+ %tmp20050 = getelementptr inbounds float* %tmp20049, i64 1
+ %tmp20051 = getelementptr inbounds float* %tmp20050, i64 1
+ %tmp20052 = getelementptr inbounds float* %tmp20051, i64 1
+ %tmp20053 = getelementptr inbounds float* %tmp20052, i64 1
+ %tmp20054 = getelementptr inbounds float* %tmp20053, i64 1
+ %tmp20055 = getelementptr inbounds float* %tmp20054, i64 1
+ %tmp20056 = getelementptr inbounds float* %tmp20055, i64 1
+ %tmp20057 = getelementptr inbounds float* %tmp20056, i64 1
+ %tmp20058 = getelementptr inbounds float* %tmp20057, i64 1
+ %tmp20059 = getelementptr inbounds float* %tmp20058, i64 1
+ %tmp20060 = getelementptr inbounds float* %tmp20059, i64 1
+ %tmp20061 = getelementptr inbounds float* %tmp20060, i64 1
+ %tmp20062 = getelementptr inbounds float* %tmp20061, i64 1
+ %tmp20063 = getelementptr inbounds float* %tmp20062, i64 1
+ %tmp20064 = getelementptr inbounds float* %tmp20063, i64 1
+ %tmp20065 = getelementptr inbounds float* %tmp20064, i64 1
+ %tmp20066 = getelementptr inbounds float* %tmp20065, i64 1
+ %tmp20067 = getelementptr inbounds float* %tmp20066, i64 1
+ %tmp20068 = getelementptr inbounds float* %tmp20067, i64 1
+ %tmp20069 = getelementptr inbounds float* %tmp20068, i64 1
+ %tmp20070 = getelementptr inbounds float* %tmp20069, i64 1
+ %tmp20071 = getelementptr inbounds float* %tmp20070, i64 1
+ %tmp20072 = getelementptr inbounds float* %tmp20071, i64 1
+ %tmp20073 = getelementptr inbounds float* %tmp20072, i64 1
+ %tmp20074 = getelementptr inbounds float* %tmp20073, i64 1
+ %tmp20075 = getelementptr inbounds float* %tmp20074, i64 1
+ %tmp20076 = getelementptr inbounds float* %tmp20075, i64 1
+ %tmp20077 = getelementptr inbounds float* %tmp20076, i64 1
+ %tmp20078 = getelementptr inbounds float* %tmp20077, i64 1
+ %tmp20079 = getelementptr inbounds float* %tmp20078, i64 1
+ %tmp20080 = getelementptr inbounds float* %tmp20079, i64 1
+ %tmp20081 = getelementptr inbounds float* %tmp20080, i64 1
+ %tmp20082 = getelementptr inbounds float* %tmp20081, i64 1
+ %tmp20083 = getelementptr inbounds float* %tmp20082, i64 1
+ %tmp20084 = getelementptr inbounds float* %tmp20083, i64 1
+ %tmp20085 = getelementptr inbounds float* %tmp20084, i64 1
+ %tmp20086 = getelementptr inbounds float* %tmp20085, i64 1
+ %tmp20087 = getelementptr inbounds float* %tmp20086, i64 1
+ %tmp20088 = getelementptr inbounds float* %tmp20087, i64 1
+ %tmp20089 = getelementptr inbounds float* %tmp20088, i64 1
+ %tmp20090 = getelementptr inbounds float* %tmp20089, i64 1
+ %tmp20091 = getelementptr inbounds float* %tmp20090, i64 1
+ %tmp20092 = getelementptr inbounds float* %tmp20091, i64 1
+ %tmp20093 = getelementptr inbounds float* %tmp20092, i64 1
+ %tmp20094 = getelementptr inbounds float* %tmp20093, i64 1
+ %tmp20095 = getelementptr inbounds float* %tmp20094, i64 1
+ %tmp20096 = getelementptr inbounds float* %tmp20095, i64 1
+ %tmp20097 = getelementptr inbounds float* %tmp20096, i64 1
+ %tmp20098 = getelementptr inbounds float* %tmp20097, i64 1
+ %tmp20099 = getelementptr inbounds float* %tmp20098, i64 1
+ %tmp20100 = getelementptr inbounds float* %tmp20099, i64 1
+ %tmp20101 = getelementptr inbounds float* %tmp20100, i64 1
+ %tmp20102 = getelementptr inbounds float* %tmp20101, i64 1
+ %tmp20103 = getelementptr inbounds float* %tmp20102, i64 1
+ %tmp20104 = getelementptr inbounds float* %tmp20103, i64 1
+ %tmp20105 = getelementptr inbounds float* %tmp20104, i64 1
+ %tmp20106 = getelementptr inbounds float* %tmp20105, i64 1
+ %tmp20107 = getelementptr inbounds float* %tmp20106, i64 1
+ %tmp20108 = getelementptr inbounds float* %tmp20107, i64 1
+ %tmp20109 = getelementptr inbounds float* %tmp20108, i64 1
+ %tmp20110 = getelementptr inbounds float* %tmp20109, i64 1
+ %tmp20111 = getelementptr inbounds float* %tmp20110, i64 1
+ %tmp20112 = getelementptr inbounds float* %tmp20111, i64 1
+ %tmp20113 = getelementptr inbounds float* %tmp20112, i64 1
+ %tmp20114 = getelementptr inbounds float* %tmp20113, i64 1
+ %tmp20115 = getelementptr inbounds float* %tmp20114, i64 1
+ %tmp20116 = getelementptr inbounds float* %tmp20115, i64 1
+ %tmp20117 = getelementptr inbounds float* %tmp20116, i64 1
+ %tmp20118 = getelementptr inbounds float* %tmp20117, i64 1
+ %tmp20119 = getelementptr inbounds float* %tmp20118, i64 1
+ %tmp20120 = getelementptr inbounds float* %tmp20119, i64 1
+ %tmp20121 = getelementptr inbounds float* %tmp20120, i64 1
+ %tmp20122 = getelementptr inbounds float* %tmp20121, i64 1
+ %tmp20123 = getelementptr inbounds float* %tmp20122, i64 1
+ %tmp20124 = getelementptr inbounds float* %tmp20123, i64 1
+ %tmp20125 = getelementptr inbounds float* %tmp20124, i64 1
+ %tmp20126 = getelementptr inbounds float* %tmp20125, i64 1
+ %tmp20127 = getelementptr inbounds float* %tmp20126, i64 1
+ %tmp20128 = getelementptr inbounds float* %tmp20127, i64 1
+ %tmp20129 = getelementptr inbounds float* %tmp20128, i64 1
+ %tmp20130 = getelementptr inbounds float* %tmp20129, i64 1
+ %tmp20131 = getelementptr inbounds float* %tmp20130, i64 1
+ %tmp20132 = getelementptr inbounds float* %tmp20131, i64 1
+ %tmp20133 = getelementptr inbounds float* %tmp20132, i64 1
+ %tmp20134 = getelementptr inbounds float* %tmp20133, i64 1
+ %tmp20135 = getelementptr inbounds float* %tmp20134, i64 1
+ %tmp20136 = getelementptr inbounds float* %tmp20135, i64 1
+ %tmp20137 = getelementptr inbounds float* %tmp20136, i64 1
+ %tmp20138 = getelementptr inbounds float* %tmp20137, i64 1
+ %tmp20139 = getelementptr inbounds float* %tmp20138, i64 1
+ %tmp20140 = getelementptr inbounds float* %tmp20139, i64 1
+ %tmp20141 = getelementptr inbounds float* %tmp20140, i64 1
+ %tmp20142 = getelementptr inbounds float* %tmp20141, i64 1
+ %tmp20143 = getelementptr inbounds float* %tmp20142, i64 1
+ %tmp20144 = getelementptr inbounds float* %tmp20143, i64 1
+ %tmp20145 = getelementptr inbounds float* %tmp20144, i64 1
+ %tmp20146 = getelementptr inbounds float* %tmp20145, i64 1
+ %tmp20147 = getelementptr inbounds float* %tmp20146, i64 1
+ %tmp20148 = getelementptr inbounds float* %tmp20147, i64 1
+ %tmp20149 = getelementptr inbounds float* %tmp20148, i64 1
+ %tmp20150 = getelementptr inbounds float* %tmp20149, i64 1
+ %tmp20151 = getelementptr inbounds float* %tmp20150, i64 1
+ %tmp20152 = getelementptr inbounds float* %tmp20151, i64 1
+ %tmp20153 = getelementptr inbounds float* %tmp20152, i64 1
+ %tmp20154 = getelementptr inbounds float* %tmp20153, i64 1
+ %tmp20155 = getelementptr inbounds float* %tmp20154, i64 1
+ %tmp20156 = getelementptr inbounds float* %tmp20155, i64 1
+ %tmp20157 = getelementptr inbounds float* %tmp20156, i64 1
+ %tmp20158 = getelementptr inbounds float* %tmp20157, i64 1
+ %tmp20159 = getelementptr inbounds float* %tmp20158, i64 1
+ %tmp20160 = getelementptr inbounds float* %tmp20159, i64 1
+ %tmp20161 = getelementptr inbounds float* %tmp20160, i64 1
+ %tmp20162 = getelementptr inbounds float* %tmp20161, i64 1
+ %tmp20163 = getelementptr inbounds float* %tmp20162, i64 1
+ %tmp20164 = getelementptr inbounds float* %tmp20163, i64 1
+ %tmp20165 = getelementptr inbounds float* %tmp20164, i64 1
+ %tmp20166 = getelementptr inbounds float* %tmp20165, i64 1
+ %tmp20167 = getelementptr inbounds float* %tmp20166, i64 1
+ %tmp20168 = getelementptr inbounds float* %tmp20167, i64 1
+ %tmp20169 = getelementptr inbounds float* %tmp20168, i64 1
+ %tmp20170 = getelementptr inbounds float* %tmp20169, i64 1
+ %tmp20171 = getelementptr inbounds float* %tmp20170, i64 1
+ %tmp20172 = getelementptr inbounds float* %tmp20171, i64 1
+ %tmp20173 = getelementptr inbounds float* %tmp20172, i64 1
+ %tmp20174 = getelementptr inbounds float* %tmp20173, i64 1
+ %tmp20175 = getelementptr inbounds float* %tmp20174, i64 1
+ %tmp20176 = getelementptr inbounds float* %tmp20175, i64 1
+ %tmp20177 = getelementptr inbounds float* %tmp20176, i64 1
+ %tmp20178 = getelementptr inbounds float* %tmp20177, i64 1
+ %tmp20179 = getelementptr inbounds float* %tmp20178, i64 1
+ %tmp20180 = getelementptr inbounds float* %tmp20179, i64 1
+ %tmp20181 = getelementptr inbounds float* %tmp20180, i64 1
+ %tmp20182 = getelementptr inbounds float* %tmp20181, i64 1
+ %tmp20183 = getelementptr inbounds float* %tmp20182, i64 1
+ %tmp20184 = getelementptr inbounds float* %tmp20183, i64 1
+ %tmp20185 = getelementptr inbounds float* %tmp20184, i64 1
+ %tmp20186 = getelementptr inbounds float* %tmp20185, i64 1
+ %tmp20187 = getelementptr inbounds float* %tmp20186, i64 1
+ %tmp20188 = getelementptr inbounds float* %tmp20187, i64 1
+ %tmp20189 = getelementptr inbounds float* %tmp20188, i64 1
+ %tmp20190 = getelementptr inbounds float* %tmp20189, i64 1
+ %tmp20191 = getelementptr inbounds float* %tmp20190, i64 1
+ %tmp20192 = getelementptr inbounds float* %tmp20191, i64 1
+ %tmp20193 = getelementptr inbounds float* %tmp20192, i64 1
+ %tmp20194 = getelementptr inbounds float* %tmp20193, i64 1
+ %tmp20195 = getelementptr inbounds float* %tmp20194, i64 1
+ %tmp20196 = getelementptr inbounds float* %tmp20195, i64 1
+ %tmp20197 = getelementptr inbounds float* %tmp20196, i64 1
+ %tmp20198 = getelementptr inbounds float* %tmp20197, i64 1
+ %tmp20199 = getelementptr inbounds float* %tmp20198, i64 1
+ %tmp20200 = getelementptr inbounds float* %tmp20199, i64 1
+ %tmp20201 = getelementptr inbounds float* %tmp20200, i64 1
+ %tmp20202 = getelementptr inbounds float* %tmp20201, i64 1
+ %tmp20203 = getelementptr inbounds float* %tmp20202, i64 1
+ %tmp20204 = getelementptr inbounds float* %tmp20203, i64 1
+ %tmp20205 = getelementptr inbounds float* %tmp20204, i64 1
+ %tmp20206 = getelementptr inbounds float* %tmp20205, i64 1
+ %tmp20207 = getelementptr inbounds float* %tmp20206, i64 1
+ %tmp20208 = getelementptr inbounds float* %tmp20207, i64 1
+ %tmp20209 = getelementptr inbounds float* %tmp20208, i64 1
+ %tmp20210 = getelementptr inbounds float* %tmp20209, i64 1
+ %tmp20211 = getelementptr inbounds float* %tmp20210, i64 1
+ %tmp20212 = getelementptr inbounds float* %tmp20211, i64 1
+ %tmp20213 = getelementptr inbounds float* %tmp20212, i64 1
+ %tmp20214 = getelementptr inbounds float* %tmp20213, i64 1
+ %tmp20215 = getelementptr inbounds float* %tmp20214, i64 1
+ %tmp20216 = getelementptr inbounds float* %tmp20215, i64 1
+ %tmp20217 = getelementptr inbounds float* %tmp20216, i64 1
+ %tmp20218 = getelementptr inbounds float* %tmp20217, i64 1
+ %tmp20219 = getelementptr inbounds float* %tmp20218, i64 1
+ %tmp20220 = getelementptr inbounds float* %tmp20219, i64 1
+ %tmp20221 = getelementptr inbounds float* %tmp20220, i64 1
+ %tmp20222 = getelementptr inbounds float* %tmp20221, i64 1
+ %tmp20223 = getelementptr inbounds float* %tmp20222, i64 1
+ %tmp20224 = getelementptr inbounds float* %tmp20223, i64 1
+ %tmp20225 = getelementptr inbounds float* %tmp20224, i64 1
+ %tmp20226 = getelementptr inbounds float* %tmp20225, i64 1
+ %tmp20227 = getelementptr inbounds float* %tmp20226, i64 1
+ %tmp20228 = getelementptr inbounds float* %tmp20227, i64 1
+ %tmp20229 = getelementptr inbounds float* %tmp20228, i64 1
+ %tmp20230 = getelementptr inbounds float* %tmp20229, i64 1
+ %tmp20231 = getelementptr inbounds float* %tmp20230, i64 1
+ %tmp20232 = getelementptr inbounds float* %tmp20231, i64 1
+ %tmp20233 = getelementptr inbounds float* %tmp20232, i64 1
+ %tmp20234 = getelementptr inbounds float* %tmp20233, i64 1
+ %tmp20235 = getelementptr inbounds float* %tmp20234, i64 1
+ %tmp20236 = getelementptr inbounds float* %tmp20235, i64 1
+ %tmp20237 = getelementptr inbounds float* %tmp20236, i64 1
+ %tmp20238 = getelementptr inbounds float* %tmp20237, i64 1
+ %tmp20239 = getelementptr inbounds float* %tmp20238, i64 1
+ %tmp20240 = getelementptr inbounds float* %tmp20239, i64 1
+ %tmp20241 = getelementptr inbounds float* %tmp20240, i64 1
+ %tmp20242 = getelementptr inbounds float* %tmp20241, i64 1
+ %tmp20243 = getelementptr inbounds float* %tmp20242, i64 1
+ %tmp20244 = getelementptr inbounds float* %tmp20243, i64 1
+ %tmp20245 = getelementptr inbounds float* %tmp20244, i64 1
+ %tmp20246 = getelementptr inbounds float* %tmp20245, i64 1
+ %tmp20247 = getelementptr inbounds float* %tmp20246, i64 1
+ %tmp20248 = getelementptr inbounds float* %tmp20247, i64 1
+ %tmp20249 = getelementptr inbounds float* %tmp20248, i64 1
+ %tmp20250 = getelementptr inbounds float* %tmp20249, i64 1
+ %tmp20251 = getelementptr inbounds float* %tmp20250, i64 1
+ %tmp20252 = getelementptr inbounds float* %tmp20251, i64 1
+ %tmp20253 = getelementptr inbounds float* %tmp20252, i64 1
+ %tmp20254 = getelementptr inbounds float* %tmp20253, i64 1
+ %tmp20255 = getelementptr inbounds float* %tmp20254, i64 1
+ %tmp20256 = getelementptr inbounds float* %tmp20255, i64 1
+ %tmp20257 = getelementptr inbounds float* %tmp20256, i64 1
+ %tmp20258 = getelementptr inbounds float* %tmp20257, i64 1
+ %tmp20259 = getelementptr inbounds float* %tmp20258, i64 1
+ %tmp20260 = getelementptr inbounds float* %tmp20259, i64 1
+ %tmp20261 = getelementptr inbounds float* %tmp20260, i64 1
+ %tmp20262 = getelementptr inbounds float* %tmp20261, i64 1
+ %tmp20263 = getelementptr inbounds float* %tmp20262, i64 1
+ %tmp20264 = getelementptr inbounds float* %tmp20263, i64 1
+ %tmp20265 = getelementptr inbounds float* %tmp20264, i64 1
+ %tmp20266 = getelementptr inbounds float* %tmp20265, i64 1
+ %tmp20267 = getelementptr inbounds float* %tmp20266, i64 1
+ %tmp20268 = getelementptr inbounds float* %tmp20267, i64 1
+ %tmp20269 = getelementptr inbounds float* %tmp20268, i64 1
+ %tmp20270 = getelementptr inbounds float* %tmp20269, i64 1
+ %tmp20271 = getelementptr inbounds float* %tmp20270, i64 1
+ %tmp20272 = getelementptr inbounds float* %tmp20271, i64 1
+ %tmp20273 = getelementptr inbounds float* %tmp20272, i64 1
+ %tmp20274 = getelementptr inbounds float* %tmp20273, i64 1
+ %tmp20275 = getelementptr inbounds float* %tmp20274, i64 1
+ %tmp20276 = getelementptr inbounds float* %tmp20275, i64 1
+ %tmp20277 = getelementptr inbounds float* %tmp20276, i64 1
+ %tmp20278 = getelementptr inbounds float* %tmp20277, i64 1
+ %tmp20279 = getelementptr inbounds float* %tmp20278, i64 1
+ %tmp20280 = getelementptr inbounds float* %tmp20279, i64 1
+ %tmp20281 = getelementptr inbounds float* %tmp20280, i64 1
+ %tmp20282 = getelementptr inbounds float* %tmp20281, i64 1
+ %tmp20283 = getelementptr inbounds float* %tmp20282, i64 1
+ %tmp20284 = getelementptr inbounds float* %tmp20283, i64 1
+ %tmp20285 = getelementptr inbounds float* %tmp20284, i64 1
+ %tmp20286 = getelementptr inbounds float* %tmp20285, i64 1
+ %tmp20287 = getelementptr inbounds float* %tmp20286, i64 1
+ %tmp20288 = getelementptr inbounds float* %tmp20287, i64 1
+ %tmp20289 = getelementptr inbounds float* %tmp20288, i64 1
+ %tmp20290 = getelementptr inbounds float* %tmp20289, i64 1
+ %tmp20291 = getelementptr inbounds float* %tmp20290, i64 1
+ %tmp20292 = getelementptr inbounds float* %tmp20291, i64 1
+ %tmp20293 = getelementptr inbounds float* %tmp20292, i64 1
+ %tmp20294 = getelementptr inbounds float* %tmp20293, i64 1
+ %tmp20295 = getelementptr inbounds float* %tmp20294, i64 1
+ %tmp20296 = getelementptr inbounds float* %tmp20295, i64 1
+ %tmp20297 = getelementptr inbounds float* %tmp20296, i64 1
+ %tmp20298 = getelementptr inbounds float* %tmp20297, i64 1
+ %tmp20299 = getelementptr inbounds float* %tmp20298, i64 1
+ %tmp20300 = getelementptr inbounds float* %tmp20299, i64 1
+ %tmp20301 = getelementptr inbounds float* %tmp20300, i64 1
+ %tmp20302 = getelementptr inbounds float* %tmp20301, i64 1
+ %tmp20303 = getelementptr inbounds float* %tmp20302, i64 1
+ %tmp20304 = getelementptr inbounds float* %tmp20303, i64 1
+ %tmp20305 = getelementptr inbounds float* %tmp20304, i64 1
+ %tmp20306 = getelementptr inbounds float* %tmp20305, i64 1
+ %tmp20307 = getelementptr inbounds float* %tmp20306, i64 1
+ %tmp20308 = getelementptr inbounds float* %tmp20307, i64 1
+ %tmp20309 = getelementptr inbounds float* %tmp20308, i64 1
+ %tmp20310 = getelementptr inbounds float* %tmp20309, i64 1
+ %tmp20311 = getelementptr inbounds float* %tmp20310, i64 1
+ %tmp20312 = getelementptr inbounds float* %tmp20311, i64 1
+ %tmp20313 = getelementptr inbounds float* %tmp20312, i64 1
+ %tmp20314 = getelementptr inbounds float* %tmp20313, i64 1
+ %tmp20315 = getelementptr inbounds float* %tmp20314, i64 1
+ %tmp20316 = getelementptr inbounds float* %tmp20315, i64 1
+ %tmp20317 = getelementptr inbounds float* %tmp20316, i64 1
+ %tmp20318 = getelementptr inbounds float* %tmp20317, i64 1
+ %tmp20319 = getelementptr inbounds float* %tmp20318, i64 1
+ %tmp20320 = getelementptr inbounds float* %tmp20319, i64 1
+ %tmp20321 = getelementptr inbounds float* %tmp20320, i64 1
+ %tmp20322 = getelementptr inbounds float* %tmp20321, i64 1
+ %tmp20323 = getelementptr inbounds float* %tmp20322, i64 1
+ %tmp20324 = getelementptr inbounds float* %tmp20323, i64 1
+ %tmp20325 = getelementptr inbounds float* %tmp20324, i64 1
+ %tmp20326 = getelementptr inbounds float* %tmp20325, i64 1
+ %tmp20327 = getelementptr inbounds float* %tmp20326, i64 1
+ %tmp20328 = getelementptr inbounds float* %tmp20327, i64 1
+ %tmp20329 = getelementptr inbounds float* %tmp20328, i64 1
+ %tmp20330 = getelementptr inbounds float* %tmp20329, i64 1
+ %tmp20331 = getelementptr inbounds float* %tmp20330, i64 1
+ %tmp20332 = getelementptr inbounds float* %tmp20331, i64 1
+ %tmp20333 = getelementptr inbounds float* %tmp20332, i64 1
+ %tmp20334 = getelementptr inbounds float* %tmp20333, i64 1
+ %tmp20335 = getelementptr inbounds float* %tmp20334, i64 1
+ %tmp20336 = getelementptr inbounds float* %tmp20335, i64 1
+ %tmp20337 = getelementptr inbounds float* %tmp20336, i64 1
+ %tmp20338 = getelementptr inbounds float* %tmp20337, i64 1
+ %tmp20339 = getelementptr inbounds float* %tmp20338, i64 1
+ %tmp20340 = getelementptr inbounds float* %tmp20339, i64 1
+ %tmp20341 = getelementptr inbounds float* %tmp20340, i64 1
+ %tmp20342 = getelementptr inbounds float* %tmp20341, i64 1
+ %tmp20343 = getelementptr inbounds float* %tmp20342, i64 1
+ %tmp20344 = getelementptr inbounds float* %tmp20343, i64 1
+ %tmp20345 = getelementptr inbounds float* %tmp20344, i64 1
+ %tmp20346 = getelementptr inbounds float* %tmp20345, i64 1
+ %tmp20347 = getelementptr inbounds float* %tmp20346, i64 1
+ %tmp20348 = getelementptr inbounds float* %tmp20347, i64 1
+ %tmp20349 = getelementptr inbounds float* %tmp20348, i64 1
+ %tmp20350 = getelementptr inbounds float* %tmp20349, i64 1
+ %tmp20351 = getelementptr inbounds float* %tmp20350, i64 1
+ %tmp20352 = getelementptr inbounds float* %tmp20351, i64 1
+ %tmp20353 = getelementptr inbounds float* %tmp20352, i64 1
+ %tmp20354 = getelementptr inbounds float* %tmp20353, i64 1
+ %tmp20355 = getelementptr inbounds float* %tmp20354, i64 1
+ %tmp20356 = getelementptr inbounds float* %tmp20355, i64 1
+ %tmp20357 = getelementptr inbounds float* %tmp20356, i64 1
+ %tmp20358 = getelementptr inbounds float* %tmp20357, i64 1
+ %tmp20359 = getelementptr inbounds float* %tmp20358, i64 1
+ %tmp20360 = getelementptr inbounds float* %tmp20359, i64 1
+ %tmp20361 = getelementptr inbounds float* %tmp20360, i64 1
+ %tmp20362 = getelementptr inbounds float* %tmp20361, i64 1
+ %tmp20363 = getelementptr inbounds float* %tmp20362, i64 1
+ %tmp20364 = getelementptr inbounds float* %tmp20363, i64 1
+ %tmp20365 = getelementptr inbounds float* %tmp20364, i64 1
+ %tmp20366 = getelementptr inbounds float* %tmp20365, i64 1
+ %tmp20367 = getelementptr inbounds float* %tmp20366, i64 1
+ %tmp20368 = getelementptr inbounds float* %tmp20367, i64 1
+ %tmp20369 = getelementptr inbounds float* %tmp20368, i64 1
+ %tmp20370 = getelementptr inbounds float* %tmp20369, i64 1
+ %tmp20371 = getelementptr inbounds float* %tmp20370, i64 1
+ %tmp20372 = getelementptr inbounds float* %tmp20371, i64 1
+ %tmp20373 = getelementptr inbounds float* %tmp20372, i64 1
+ %tmp20374 = getelementptr inbounds float* %tmp20373, i64 1
+ %tmp20375 = getelementptr inbounds float* %tmp20374, i64 1
+ %tmp20376 = getelementptr inbounds float* %tmp20375, i64 1
+ %tmp20377 = getelementptr inbounds float* %tmp20376, i64 1
+ %tmp20378 = getelementptr inbounds float* %tmp20377, i64 1
+ %tmp20379 = getelementptr inbounds float* %tmp20378, i64 1
+ %tmp20380 = getelementptr inbounds float* %tmp20379, i64 1
+ %tmp20381 = getelementptr inbounds float* %tmp20380, i64 1
+ %tmp20382 = getelementptr inbounds float* %tmp20381, i64 1
+ %tmp20383 = getelementptr inbounds float* %tmp20382, i64 1
+ %tmp20384 = getelementptr inbounds float* %tmp20383, i64 1
+ %tmp20385 = getelementptr inbounds float* %tmp20384, i64 1
+ %tmp20386 = getelementptr inbounds float* %tmp20385, i64 1
+ %tmp20387 = getelementptr inbounds float* %tmp20386, i64 1
+ %tmp20388 = getelementptr inbounds float* %tmp20387, i64 1
+ %tmp20389 = getelementptr inbounds float* %tmp20388, i64 1
+ %tmp20390 = getelementptr inbounds float* %tmp20389, i64 1
+ %tmp20391 = getelementptr inbounds float* %tmp20390, i64 1
+ %tmp20392 = getelementptr inbounds float* %tmp20391, i64 1
+ %tmp20393 = getelementptr inbounds float* %tmp20392, i64 1
+ %tmp20394 = getelementptr inbounds float* %tmp20393, i64 1
+ %tmp20395 = getelementptr inbounds float* %tmp20394, i64 1
+ %tmp20396 = getelementptr inbounds float* %tmp20395, i64 1
+ %tmp20397 = getelementptr inbounds float* %tmp20396, i64 1
+ %tmp20398 = getelementptr inbounds float* %tmp20397, i64 1
+ %tmp20399 = getelementptr inbounds float* %tmp20398, i64 1
+ %tmp20400 = getelementptr inbounds float* %tmp20399, i64 1
+ %tmp20401 = getelementptr inbounds float* %tmp20400, i64 1
+ %tmp20402 = getelementptr inbounds float* %tmp20401, i64 1
+ %tmp20403 = getelementptr inbounds float* %tmp20402, i64 1
+ %tmp20404 = getelementptr inbounds float* %tmp20403, i64 1
+ %tmp20405 = getelementptr inbounds float* %tmp20404, i64 1
+ %tmp20406 = getelementptr inbounds float* %tmp20405, i64 1
+ %tmp20407 = getelementptr inbounds float* %tmp20406, i64 1
+ %tmp20408 = getelementptr inbounds float* %tmp20407, i64 1
+ %tmp20409 = getelementptr inbounds float* %tmp20408, i64 1
+ %tmp20410 = getelementptr inbounds float* %tmp20409, i64 1
+ %tmp20411 = getelementptr inbounds float* %tmp20410, i64 1
+ %tmp20412 = getelementptr inbounds float* %tmp20411, i64 1
+ %tmp20413 = getelementptr inbounds float* %tmp20412, i64 1
+ %tmp20414 = getelementptr inbounds float* %tmp20413, i64 1
+ %tmp20415 = getelementptr inbounds float* %tmp20414, i64 1
+ %tmp20416 = getelementptr inbounds float* %tmp20415, i64 1
+ %tmp20417 = getelementptr inbounds float* %tmp20416, i64 1
+ %tmp20418 = getelementptr inbounds float* %tmp20417, i64 1
+ %tmp20419 = getelementptr inbounds float* %tmp20418, i64 1
+ %tmp20420 = getelementptr inbounds float* %tmp20419, i64 1
+ %tmp20421 = getelementptr inbounds float* %tmp20420, i64 1
+ %tmp20422 = getelementptr inbounds float* %tmp20421, i64 1
+ %tmp20423 = getelementptr inbounds float* %tmp20422, i64 1
+ %tmp20424 = getelementptr inbounds float* %tmp20423, i64 1
+ %tmp20425 = getelementptr inbounds float* %tmp20424, i64 1
+ %tmp20426 = getelementptr inbounds float* %tmp20425, i64 1
+ %tmp20427 = getelementptr inbounds float* %tmp20426, i64 1
+ %tmp20428 = getelementptr inbounds float* %tmp20427, i64 1
+ %tmp20429 = getelementptr inbounds float* %tmp20428, i64 1
+ %tmp20430 = getelementptr inbounds float* %tmp20429, i64 1
+ %tmp20431 = getelementptr inbounds float* %tmp20430, i64 1
+ %tmp20432 = getelementptr inbounds float* %tmp20431, i64 1
+ %tmp20433 = getelementptr inbounds float* %tmp20432, i64 1
+ %tmp20434 = getelementptr inbounds float* %tmp20433, i64 1
+ %tmp20435 = getelementptr inbounds float* %tmp20434, i64 1
+ %tmp20436 = getelementptr inbounds float* %tmp20435, i64 1
+ %tmp20437 = getelementptr inbounds float* %tmp20436, i64 1
+ %tmp20438 = getelementptr inbounds float* %tmp20437, i64 1
+ %tmp20439 = getelementptr inbounds float* %tmp20438, i64 1
+ %tmp20440 = getelementptr inbounds float* %tmp20439, i64 1
+ %tmp20441 = getelementptr inbounds float* %tmp20440, i64 1
+ %tmp20442 = getelementptr inbounds float* %tmp20441, i64 1
+ %tmp20443 = getelementptr inbounds float* %tmp20442, i64 1
+ %tmp20444 = getelementptr inbounds float* %tmp20443, i64 1
+ %tmp20445 = getelementptr inbounds float* %tmp20444, i64 1
+ %tmp20446 = getelementptr inbounds float* %tmp20445, i64 1
+ %tmp20447 = getelementptr inbounds float* %tmp20446, i64 1
+ %tmp20448 = getelementptr inbounds float* %tmp20447, i64 1
+ %tmp20449 = getelementptr inbounds float* %tmp20448, i64 1
+ %tmp20450 = getelementptr inbounds float* %tmp20449, i64 1
+ %tmp20451 = getelementptr inbounds float* %tmp20450, i64 1
+ %tmp20452 = getelementptr inbounds float* %tmp20451, i64 1
+ %tmp20453 = getelementptr inbounds float* %tmp20452, i64 1
+ %tmp20454 = getelementptr inbounds float* %tmp20453, i64 1
+ %tmp20455 = getelementptr inbounds float* %tmp20454, i64 1
+ %tmp20456 = getelementptr inbounds float* %tmp20455, i64 1
+ %tmp20457 = getelementptr inbounds float* %tmp20456, i64 1
+ %tmp20458 = getelementptr inbounds float* %tmp20457, i64 1
+ %tmp20459 = getelementptr inbounds float* %tmp20458, i64 1
+ %tmp20460 = getelementptr inbounds float* %tmp20459, i64 1
+ %tmp20461 = getelementptr inbounds float* %tmp20460, i64 1
+ %tmp20462 = getelementptr inbounds float* %tmp20461, i64 1
+ %tmp20463 = getelementptr inbounds float* %tmp20462, i64 1
+ %tmp20464 = getelementptr inbounds float* %tmp20463, i64 1
+ %tmp20465 = getelementptr inbounds float* %tmp20464, i64 1
+ %tmp20466 = getelementptr inbounds float* %tmp20465, i64 1
+ %tmp20467 = getelementptr inbounds float* %tmp20466, i64 1
+ %tmp20468 = getelementptr inbounds float* %tmp20467, i64 1
+ %tmp20469 = getelementptr inbounds float* %tmp20468, i64 1
+ %tmp20470 = getelementptr inbounds float* %tmp20469, i64 1
+ %tmp20471 = getelementptr inbounds float* %tmp20470, i64 1
+ %tmp20472 = getelementptr inbounds float* %tmp20471, i64 1
+ %tmp20473 = getelementptr inbounds float* %tmp20472, i64 1
+ %tmp20474 = getelementptr inbounds float* %tmp20473, i64 1
+ %tmp20475 = getelementptr inbounds float* %tmp20474, i64 1
+ %tmp20476 = getelementptr inbounds float* %tmp20475, i64 1
+ %tmp20477 = getelementptr inbounds float* %tmp20476, i64 1
+ %tmp20478 = getelementptr inbounds float* %tmp20477, i64 1
+ %tmp20479 = getelementptr inbounds float* %tmp20478, i64 1
+ %tmp20480 = getelementptr inbounds float* %tmp20479, i64 1
+ %tmp20481 = getelementptr inbounds float* %tmp20480, i64 1
+ %tmp20482 = getelementptr inbounds float* %tmp20481, i64 1
+ %tmp20483 = getelementptr inbounds float* %tmp20482, i64 1
+ %tmp20484 = getelementptr inbounds float* %tmp20483, i64 1
+ %tmp20485 = getelementptr inbounds float* %tmp20484, i64 1
+ %tmp20486 = getelementptr inbounds float* %tmp20485, i64 1
+ %tmp20487 = getelementptr inbounds float* %tmp20486, i64 1
+ %tmp20488 = getelementptr inbounds float* %tmp20487, i64 1
+ %tmp20489 = getelementptr inbounds float* %tmp20488, i64 1
+ %tmp20490 = getelementptr inbounds float* %tmp20489, i64 1
+ %tmp20491 = getelementptr inbounds float* %tmp20490, i64 1
+ %tmp20492 = getelementptr inbounds float* %tmp20491, i64 1
+ %tmp20493 = getelementptr inbounds float* %tmp20492, i64 1
+ %tmp20494 = getelementptr inbounds float* %tmp20493, i64 1
+ %tmp20495 = getelementptr inbounds float* %tmp20494, i64 1
+ %tmp20496 = getelementptr inbounds float* %tmp20495, i64 1
+ %tmp20497 = getelementptr inbounds float* %tmp20496, i64 1
+ %tmp20498 = getelementptr inbounds float* %tmp20497, i64 1
+ %tmp20499 = getelementptr inbounds float* %tmp20498, i64 1
+ %tmp20500 = getelementptr inbounds float* %tmp20499, i64 1
+ %tmp20501 = getelementptr inbounds float* %tmp20500, i64 1
+ %tmp20502 = getelementptr inbounds float* %tmp20501, i64 1
+ %tmp20503 = getelementptr inbounds float* %tmp20502, i64 1
+ %tmp20504 = getelementptr inbounds float* %tmp20503, i64 1
+ %tmp20505 = getelementptr inbounds float* %tmp20504, i64 1
+ %tmp20506 = getelementptr inbounds float* %tmp20505, i64 1
+ %tmp20507 = getelementptr inbounds float* %tmp20506, i64 1
+ %tmp20508 = getelementptr inbounds float* %tmp20507, i64 1
+ %tmp20509 = getelementptr inbounds float* %tmp20508, i64 1
+ %tmp20510 = getelementptr inbounds float* %tmp20509, i64 1
+ %tmp20511 = getelementptr inbounds float* %tmp20510, i64 1
+ %tmp20512 = getelementptr inbounds float* %tmp20511, i64 1
+ %tmp20513 = getelementptr inbounds float* %tmp20512, i64 1
+ %tmp20514 = getelementptr inbounds float* %tmp20513, i64 1
+ %tmp20515 = getelementptr inbounds float* %tmp20514, i64 1
+ %tmp20516 = getelementptr inbounds float* %tmp20515, i64 1
+ %tmp20517 = getelementptr inbounds float* %tmp20516, i64 1
+ %tmp20518 = getelementptr inbounds float* %tmp20517, i64 1
+ %tmp20519 = getelementptr inbounds float* %tmp20518, i64 1
+ %tmp20520 = getelementptr inbounds float* %tmp20519, i64 1
+ %tmp20521 = getelementptr inbounds float* %tmp20520, i64 1
+ %tmp20522 = getelementptr inbounds float* %tmp20521, i64 1
+ %tmp20523 = getelementptr inbounds float* %tmp20522, i64 1
+ %tmp20524 = getelementptr inbounds float* %tmp20523, i64 1
+ %tmp20525 = getelementptr inbounds float* %tmp20524, i64 1
+ %tmp20526 = getelementptr inbounds float* %tmp20525, i64 1
+ %tmp20527 = getelementptr inbounds float* %tmp20526, i64 1
+ %tmp20528 = getelementptr inbounds float* %tmp20527, i64 1
+ %tmp20529 = getelementptr inbounds float* %tmp20528, i64 1
+ %tmp20530 = getelementptr inbounds float* %tmp20529, i64 1
+ %tmp20531 = getelementptr inbounds float* %tmp20530, i64 1
+ %tmp20532 = getelementptr inbounds float* %tmp20531, i64 1
+ %tmp20533 = getelementptr inbounds float* %tmp20532, i64 1
+ %tmp20534 = getelementptr inbounds float* %tmp20533, i64 1
+ %tmp20535 = getelementptr inbounds float* %tmp20534, i64 1
+ %tmp20536 = getelementptr inbounds float* %tmp20535, i64 1
+ %tmp20537 = getelementptr inbounds float* %tmp20536, i64 1
+ %tmp20538 = getelementptr inbounds float* %tmp20537, i64 1
+ %tmp20539 = getelementptr inbounds float* %tmp20538, i64 1
+ %tmp20540 = getelementptr inbounds float* %tmp20539, i64 1
+ %tmp20541 = getelementptr inbounds float* %tmp20540, i64 1
+ %tmp20542 = getelementptr inbounds float* %tmp20541, i64 1
+ %tmp20543 = getelementptr inbounds float* %tmp20542, i64 1
+ %tmp20544 = getelementptr inbounds float* %tmp20543, i64 1
+ %tmp20545 = getelementptr inbounds float* %tmp20544, i64 1
+ %tmp20546 = getelementptr inbounds float* %tmp20545, i64 1
+ %tmp20547 = getelementptr inbounds float* %tmp20546, i64 1
+ %tmp20548 = getelementptr inbounds float* %tmp20547, i64 1
+ %tmp20549 = getelementptr inbounds float* %tmp20548, i64 1
+ %tmp20550 = getelementptr inbounds float* %tmp20549, i64 1
+ %tmp20551 = getelementptr inbounds float* %tmp20550, i64 1
+ %tmp20552 = getelementptr inbounds float* %tmp20551, i64 1
+ %tmp20553 = getelementptr inbounds float* %tmp20552, i64 1
+ %tmp20554 = getelementptr inbounds float* %tmp20553, i64 1
+ %tmp20555 = getelementptr inbounds float* %tmp20554, i64 1
+ %tmp20556 = getelementptr inbounds float* %tmp20555, i64 1
+ %tmp20557 = getelementptr inbounds float* %tmp20556, i64 1
+ %tmp20558 = getelementptr inbounds float* %tmp20557, i64 1
+ %tmp20559 = getelementptr inbounds float* %tmp20558, i64 1
+ %tmp20560 = getelementptr inbounds float* %tmp20559, i64 1
+ %tmp20561 = getelementptr inbounds float* %tmp20560, i64 1
+ %tmp20562 = getelementptr inbounds float* %tmp20561, i64 1
+ %tmp20563 = getelementptr inbounds float* %tmp20562, i64 1
+ %tmp20564 = getelementptr inbounds float* %tmp20563, i64 1
+ %tmp20565 = getelementptr inbounds float* %tmp20564, i64 1
+ %tmp20566 = getelementptr inbounds float* %tmp20565, i64 1
+ %tmp20567 = getelementptr inbounds float* %tmp20566, i64 1
+ %tmp20568 = getelementptr inbounds float* %tmp20567, i64 1
+ %tmp20569 = getelementptr inbounds float* %tmp20568, i64 1
+ %tmp20570 = getelementptr inbounds float* %tmp20569, i64 1
+ %tmp20571 = getelementptr inbounds float* %tmp20570, i64 1
+ %tmp20572 = getelementptr inbounds float* %tmp20571, i64 1
+ %tmp20573 = getelementptr inbounds float* %tmp20572, i64 1
+ %tmp20574 = getelementptr inbounds float* %tmp20573, i64 1
+ %tmp20575 = getelementptr inbounds float* %tmp20574, i64 1
+ %tmp20576 = getelementptr inbounds float* %tmp20575, i64 1
+ %tmp20577 = getelementptr inbounds float* %tmp20576, i64 1
+ %tmp20578 = getelementptr inbounds float* %tmp20577, i64 1
+ %tmp20579 = getelementptr inbounds float* %tmp20578, i64 1
+ %tmp20580 = getelementptr inbounds float* %tmp20579, i64 1
+ %tmp20581 = getelementptr inbounds float* %tmp20580, i64 1
+ %tmp20582 = getelementptr inbounds float* %tmp20581, i64 1
+ %tmp20583 = getelementptr inbounds float* %tmp20582, i64 1
+ %tmp20584 = getelementptr inbounds float* %tmp20583, i64 1
+ %tmp20585 = getelementptr inbounds float* %tmp20584, i64 1
+ %tmp20586 = getelementptr inbounds float* %tmp20585, i64 1
+ %tmp20587 = getelementptr inbounds float* %tmp20586, i64 1
+ %tmp20588 = getelementptr inbounds float* %tmp20587, i64 1
+ %tmp20589 = getelementptr inbounds float* %tmp20588, i64 1
+ %tmp20590 = getelementptr inbounds float* %tmp20589, i64 1
+ %tmp20591 = getelementptr inbounds float* %tmp20590, i64 1
+ %tmp20592 = getelementptr inbounds float* %tmp20591, i64 1
+ %tmp20593 = getelementptr inbounds float* %tmp20592, i64 1
+ %tmp20594 = getelementptr inbounds float* %tmp20593, i64 1
+ %tmp20595 = getelementptr inbounds float* %tmp20594, i64 1
+ %tmp20596 = getelementptr inbounds float* %tmp20595, i64 1
+ %tmp20597 = getelementptr inbounds float* %tmp20596, i64 1
+ %tmp20598 = getelementptr inbounds float* %tmp20597, i64 1
+ %tmp20599 = getelementptr inbounds float* %tmp20598, i64 1
+ %tmp20600 = getelementptr inbounds float* %tmp20599, i64 1
+ %tmp20601 = getelementptr inbounds float* %tmp20600, i64 1
+ %tmp20602 = getelementptr inbounds float* %tmp20601, i64 1
+ %tmp20603 = getelementptr inbounds float* %tmp20602, i64 1
+ %tmp20604 = getelementptr inbounds float* %tmp20603, i64 1
+ %tmp20605 = getelementptr inbounds float* %tmp20604, i64 1
+ %tmp20606 = getelementptr inbounds float* %tmp20605, i64 1
+ %tmp20607 = getelementptr inbounds float* %tmp20606, i64 1
+ %tmp20608 = getelementptr inbounds float* %tmp20607, i64 1
+ %tmp20609 = getelementptr inbounds float* %tmp20608, i64 1
+ %tmp20610 = getelementptr inbounds float* %tmp20609, i64 1
+ %tmp20611 = getelementptr inbounds float* %tmp20610, i64 1
+ %tmp20612 = getelementptr inbounds float* %tmp20611, i64 1
+ %tmp20613 = getelementptr inbounds float* %tmp20612, i64 1
+ %tmp20614 = getelementptr inbounds float* %tmp20613, i64 1
+ %tmp20615 = getelementptr inbounds float* %tmp20614, i64 1
+ %tmp20616 = getelementptr inbounds float* %tmp20615, i64 1
+ %tmp20617 = getelementptr inbounds float* %tmp20616, i64 1
+ %tmp20618 = getelementptr inbounds float* %tmp20617, i64 1
+ %tmp20619 = getelementptr inbounds float* %tmp20618, i64 1
+ %tmp20620 = getelementptr inbounds float* %tmp20619, i64 1
+ %tmp20621 = getelementptr inbounds float* %tmp20620, i64 1
+ %tmp20622 = getelementptr inbounds float* %tmp20621, i64 1
+ %tmp20623 = getelementptr inbounds float* %tmp20622, i64 1
+ %tmp20624 = getelementptr inbounds float* %tmp20623, i64 1
+ %tmp20625 = getelementptr inbounds float* %tmp20624, i64 1
+ %tmp20626 = getelementptr inbounds float* %tmp20625, i64 1
+ %tmp20627 = getelementptr inbounds float* %tmp20626, i64 1
+ %tmp20628 = getelementptr inbounds float* %tmp20627, i64 1
+ %tmp20629 = getelementptr inbounds float* %tmp20628, i64 1
+ %tmp20630 = getelementptr inbounds float* %tmp20629, i64 1
+ %tmp20631 = getelementptr inbounds float* %tmp20630, i64 1
+ %tmp20632 = getelementptr inbounds float* %tmp20631, i64 1
+ %tmp20633 = getelementptr inbounds float* %tmp20632, i64 1
+ %tmp20634 = getelementptr inbounds float* %tmp20633, i64 1
+ %tmp20635 = getelementptr inbounds float* %tmp20634, i64 1
+ %tmp20636 = getelementptr inbounds float* %tmp20635, i64 1
+ %tmp20637 = getelementptr inbounds float* %tmp20636, i64 1
+ %tmp20638 = getelementptr inbounds float* %tmp20637, i64 1
+ %tmp20639 = getelementptr inbounds float* %tmp20638, i64 1
+ %tmp20640 = getelementptr inbounds float* %tmp20639, i64 1
+ %tmp20641 = getelementptr inbounds float* %tmp20640, i64 1
+ %tmp20642 = getelementptr inbounds float* %tmp20641, i64 1
+ %tmp20643 = getelementptr inbounds float* %tmp20642, i64 1
+ %tmp20644 = getelementptr inbounds float* %tmp20643, i64 1
+ %tmp20645 = getelementptr inbounds float* %tmp20644, i64 1
+ %tmp20646 = getelementptr inbounds float* %tmp20645, i64 1
+ %tmp20647 = getelementptr inbounds float* %tmp20646, i64 1
+ %tmp20648 = getelementptr inbounds float* %tmp20647, i64 1
+ %tmp20649 = getelementptr inbounds float* %tmp20648, i64 1
+ %tmp20650 = getelementptr inbounds float* %tmp20649, i64 1
+ %tmp20651 = getelementptr inbounds float* %tmp20650, i64 1
+ %tmp20652 = getelementptr inbounds float* %tmp20651, i64 1
+ %tmp20653 = getelementptr inbounds float* %tmp20652, i64 1
+ %tmp20654 = getelementptr inbounds float* %tmp20653, i64 1
+ %tmp20655 = getelementptr inbounds float* %tmp20654, i64 1
+ %tmp20656 = getelementptr inbounds float* %tmp20655, i64 1
+ %tmp20657 = getelementptr inbounds float* %tmp20656, i64 1
+ %tmp20658 = getelementptr inbounds float* %tmp20657, i64 1
+ %tmp20659 = getelementptr inbounds float* %tmp20658, i64 1
+ %tmp20660 = getelementptr inbounds float* %tmp20659, i64 1
+ %tmp20661 = getelementptr inbounds float* %tmp20660, i64 1
+ %tmp20662 = getelementptr inbounds float* %tmp20661, i64 1
+ %tmp20663 = getelementptr inbounds float* %tmp20662, i64 1
+ %tmp20664 = getelementptr inbounds float* %tmp20663, i64 1
+ %tmp20665 = getelementptr inbounds float* %tmp20664, i64 1
+ %tmp20666 = getelementptr inbounds float* %tmp20665, i64 1
+ %tmp20667 = getelementptr inbounds float* %tmp20666, i64 1
+ %tmp20668 = getelementptr inbounds float* %tmp20667, i64 1
+ %tmp20669 = getelementptr inbounds float* %tmp20668, i64 1
+ %tmp20670 = getelementptr inbounds float* %tmp20669, i64 1
+ %tmp20671 = getelementptr inbounds float* %tmp20670, i64 1
+ %tmp20672 = getelementptr inbounds float* %tmp20671, i64 1
+ %tmp20673 = getelementptr inbounds float* %tmp20672, i64 1
+ %tmp20674 = getelementptr inbounds float* %tmp20673, i64 1
+ %tmp20675 = getelementptr inbounds float* %tmp20674, i64 1
+ %tmp20676 = getelementptr inbounds float* %tmp20675, i64 1
+ %tmp20677 = getelementptr inbounds float* %tmp20676, i64 1
+ %tmp20678 = getelementptr inbounds float* %tmp20677, i64 1
+ %tmp20679 = getelementptr inbounds float* %tmp20678, i64 1
+ %tmp20680 = getelementptr inbounds float* %tmp20679, i64 1
+ %tmp20681 = getelementptr inbounds float* %tmp20680, i64 1
+ %tmp20682 = getelementptr inbounds float* %tmp20681, i64 1
+ %tmp20683 = getelementptr inbounds float* %tmp20682, i64 1
+ %tmp20684 = getelementptr inbounds float* %tmp20683, i64 1
+ %tmp20685 = getelementptr inbounds float* %tmp20684, i64 1
+ %tmp20686 = getelementptr inbounds float* %tmp20685, i64 1
+ %tmp20687 = getelementptr inbounds float* %tmp20686, i64 1
+ %tmp20688 = getelementptr inbounds float* %tmp20687, i64 1
+ %tmp20689 = getelementptr inbounds float* %tmp20688, i64 1
+ %tmp20690 = getelementptr inbounds float* %tmp20689, i64 1
+ %tmp20691 = getelementptr inbounds float* %tmp20690, i64 1
+ %tmp20692 = getelementptr inbounds float* %tmp20691, i64 1
+ %tmp20693 = getelementptr inbounds float* %tmp20692, i64 1
+ %tmp20694 = getelementptr inbounds float* %tmp20693, i64 1
+ %tmp20695 = getelementptr inbounds float* %tmp20694, i64 1
+ %tmp20696 = getelementptr inbounds float* %tmp20695, i64 1
+ %tmp20697 = getelementptr inbounds float* %tmp20696, i64 1
+ %tmp20698 = getelementptr inbounds float* %tmp20697, i64 1
+ %tmp20699 = getelementptr inbounds float* %tmp20698, i64 1
+ %tmp20700 = getelementptr inbounds float* %tmp20699, i64 1
+ %tmp20701 = getelementptr inbounds float* %tmp20700, i64 1
+ %tmp20702 = getelementptr inbounds float* %tmp20701, i64 1
+ %tmp20703 = getelementptr inbounds float* %tmp20702, i64 1
+ %tmp20704 = getelementptr inbounds float* %tmp20703, i64 1
+ %tmp20705 = getelementptr inbounds float* %tmp20704, i64 1
+ %tmp20706 = getelementptr inbounds float* %tmp20705, i64 1
+ %tmp20707 = getelementptr inbounds float* %tmp20706, i64 1
+ %tmp20708 = getelementptr inbounds float* %tmp20707, i64 1
+ %tmp20709 = getelementptr inbounds float* %tmp20708, i64 1
+ %tmp20710 = getelementptr inbounds float* %tmp20709, i64 1
+ %tmp20711 = getelementptr inbounds float* %tmp20710, i64 1
+ %tmp20712 = getelementptr inbounds float* %tmp20711, i64 1
+ %tmp20713 = getelementptr inbounds float* %tmp20712, i64 1
+ %tmp20714 = getelementptr inbounds float* %tmp20713, i64 1
+ %tmp20715 = getelementptr inbounds float* %tmp20714, i64 1
+ %tmp20716 = getelementptr inbounds float* %tmp20715, i64 1
+ %tmp20717 = getelementptr inbounds float* %tmp20716, i64 1
+ %tmp20718 = getelementptr inbounds float* %tmp20717, i64 1
+ %tmp20719 = getelementptr inbounds float* %tmp20718, i64 1
+ %tmp20720 = getelementptr inbounds float* %tmp20719, i64 1
+ %tmp20721 = getelementptr inbounds float* %tmp20720, i64 1
+ %tmp20722 = getelementptr inbounds float* %tmp20721, i64 1
+ %tmp20723 = getelementptr inbounds float* %tmp20722, i64 1
+ %tmp20724 = getelementptr inbounds float* %tmp20723, i64 1
+ %tmp20725 = getelementptr inbounds float* %tmp20724, i64 1
+ %tmp20726 = getelementptr inbounds float* %tmp20725, i64 1
+ %tmp20727 = getelementptr inbounds float* %tmp20726, i64 1
+ %tmp20728 = getelementptr inbounds float* %tmp20727, i64 1
+ %tmp20729 = getelementptr inbounds float* %tmp20728, i64 1
+ %tmp20730 = getelementptr inbounds float* %tmp20729, i64 1
+ %tmp20731 = getelementptr inbounds float* %tmp20730, i64 1
+ %tmp20732 = getelementptr inbounds float* %tmp20731, i64 1
+ %tmp20733 = getelementptr inbounds float* %tmp20732, i64 1
+ %tmp20734 = getelementptr inbounds float* %tmp20733, i64 1
+ %tmp20735 = getelementptr inbounds float* %tmp20734, i64 1
+ %tmp20736 = getelementptr inbounds float* %tmp20735, i64 1
+ %tmp20737 = getelementptr inbounds float* %tmp20736, i64 1
+ %tmp20738 = getelementptr inbounds float* %tmp20737, i64 1
+ %tmp20739 = getelementptr inbounds float* %tmp20738, i64 1
+ %tmp20740 = getelementptr inbounds float* %tmp20739, i64 1
+ %tmp20741 = getelementptr inbounds float* %tmp20740, i64 1
+ %tmp20742 = getelementptr inbounds float* %tmp20741, i64 1
+ %tmp20743 = getelementptr inbounds float* %tmp20742, i64 1
+ %tmp20744 = getelementptr inbounds float* %tmp20743, i64 1
+ %tmp20745 = getelementptr inbounds float* %tmp20744, i64 1
+ %tmp20746 = getelementptr inbounds float* %tmp20745, i64 1
+ %tmp20747 = getelementptr inbounds float* %tmp20746, i64 1
+ %tmp20748 = getelementptr inbounds float* %tmp20747, i64 1
+ %tmp20749 = getelementptr inbounds float* %tmp20748, i64 1
+ %tmp20750 = getelementptr inbounds float* %tmp20749, i64 1
+ %tmp20751 = getelementptr inbounds float* %tmp20750, i64 1
+ %tmp20752 = getelementptr inbounds float* %tmp20751, i64 1
+ %tmp20753 = getelementptr inbounds float* %tmp20752, i64 1
+ %tmp20754 = getelementptr inbounds float* %tmp20753, i64 1
+ %tmp20755 = getelementptr inbounds float* %tmp20754, i64 1
+ %tmp20756 = getelementptr inbounds float* %tmp20755, i64 1
+ %tmp20757 = getelementptr inbounds float* %tmp20756, i64 1
+ %tmp20758 = getelementptr inbounds float* %tmp20757, i64 1
+ %tmp20759 = getelementptr inbounds float* %tmp20758, i64 1
+ %tmp20760 = getelementptr inbounds float* %tmp20759, i64 1
+ %tmp20761 = getelementptr inbounds float* %tmp20760, i64 1
+ %tmp20762 = getelementptr inbounds float* %tmp20761, i64 1
+ %tmp20763 = getelementptr inbounds float* %tmp20762, i64 1
+ %tmp20764 = getelementptr inbounds float* %tmp20763, i64 1
+ %tmp20765 = getelementptr inbounds float* %tmp20764, i64 1
+ %tmp20766 = getelementptr inbounds float* %tmp20765, i64 1
+ %tmp20767 = getelementptr inbounds float* %tmp20766, i64 1
+ %tmp20768 = getelementptr inbounds float* %tmp20767, i64 1
+ %tmp20769 = getelementptr inbounds float* %tmp20768, i64 1
+ %tmp20770 = getelementptr inbounds float* %tmp20769, i64 1
+ %tmp20771 = getelementptr inbounds float* %tmp20770, i64 1
+ %tmp20772 = getelementptr inbounds float* %tmp20771, i64 1
+ %tmp20773 = getelementptr inbounds float* %tmp20772, i64 1
+ %tmp20774 = getelementptr inbounds float* %tmp20773, i64 1
+ %tmp20775 = getelementptr inbounds float* %tmp20774, i64 1
+ %tmp20776 = getelementptr inbounds float* %tmp20775, i64 1
+ %tmp20777 = getelementptr inbounds float* %tmp20776, i64 1
+ %tmp20778 = getelementptr inbounds float* %tmp20777, i64 1
+ %tmp20779 = getelementptr inbounds float* %tmp20778, i64 1
+ %tmp20780 = getelementptr inbounds float* %tmp20779, i64 1
+ %tmp20781 = getelementptr inbounds float* %tmp20780, i64 1
+ %tmp20782 = getelementptr inbounds float* %tmp20781, i64 1
+ %tmp20783 = getelementptr inbounds float* %tmp20782, i64 1
+ %tmp20784 = getelementptr inbounds float* %tmp20783, i64 1
+ %tmp20785 = getelementptr inbounds float* %tmp20784, i64 1
+ %tmp20786 = getelementptr inbounds float* %tmp20785, i64 1
+ %tmp20787 = getelementptr inbounds float* %tmp20786, i64 1
+ %tmp20788 = getelementptr inbounds float* %tmp20787, i64 1
+ %tmp20789 = getelementptr inbounds float* %tmp20788, i64 1
+ %tmp20790 = getelementptr inbounds float* %tmp20789, i64 1
+ %tmp20791 = getelementptr inbounds float* %tmp20790, i64 1
+ %tmp20792 = getelementptr inbounds float* %tmp20791, i64 1
+ %tmp20793 = getelementptr inbounds float* %tmp20792, i64 1
+ %tmp20794 = getelementptr inbounds float* %tmp20793, i64 1
+ %tmp20795 = getelementptr inbounds float* %tmp20794, i64 1
+ %tmp20796 = getelementptr inbounds float* %tmp20795, i64 1
+ %tmp20797 = getelementptr inbounds float* %tmp20796, i64 1
+ %tmp20798 = getelementptr inbounds float* %tmp20797, i64 1
+ %tmp20799 = getelementptr inbounds float* %tmp20798, i64 1
+ %tmp20800 = getelementptr inbounds float* %tmp20799, i64 1
+ %tmp20801 = getelementptr inbounds float* %tmp20800, i64 1
+ %tmp20802 = getelementptr inbounds float* %tmp20801, i64 1
+ %tmp20803 = getelementptr inbounds float* %tmp20802, i64 1
+ %tmp20804 = getelementptr inbounds float* %tmp20803, i64 1
+ %tmp20805 = getelementptr inbounds float* %tmp20804, i64 1
+ %tmp20806 = getelementptr inbounds float* %tmp20805, i64 1
+ %tmp20807 = getelementptr inbounds float* %tmp20806, i64 1
+ %tmp20808 = getelementptr inbounds float* %tmp20807, i64 1
+ %tmp20809 = getelementptr inbounds float* %tmp20808, i64 1
+ %tmp20810 = getelementptr inbounds float* %tmp20809, i64 1
+ %tmp20811 = getelementptr inbounds float* %tmp20810, i64 1
+ %tmp20812 = getelementptr inbounds float* %tmp20811, i64 1
+ %tmp20813 = getelementptr inbounds float* %tmp20812, i64 1
+ %tmp20814 = getelementptr inbounds float* %tmp20813, i64 1
+ %tmp20815 = getelementptr inbounds float* %tmp20814, i64 1
+ %tmp20816 = getelementptr inbounds float* %tmp20815, i64 1
+ %tmp20817 = getelementptr inbounds float* %tmp20816, i64 1
+ %tmp20818 = getelementptr inbounds float* %tmp20817, i64 1
+ %tmp20819 = getelementptr inbounds float* %tmp20818, i64 1
+ %tmp20820 = getelementptr inbounds float* %tmp20819, i64 1
+ %tmp20821 = getelementptr inbounds float* %tmp20820, i64 1
+ %tmp20822 = getelementptr inbounds float* %tmp20821, i64 1
+ %tmp20823 = getelementptr inbounds float* %tmp20822, i64 1
+ %tmp20824 = getelementptr inbounds float* %tmp20823, i64 1
+ %tmp20825 = getelementptr inbounds float* %tmp20824, i64 1
+ %tmp20826 = getelementptr inbounds float* %tmp20825, i64 1
+ %tmp20827 = getelementptr inbounds float* %tmp20826, i64 1
+ %tmp20828 = getelementptr inbounds float* %tmp20827, i64 1
+ %tmp20829 = getelementptr inbounds float* %tmp20828, i64 1
+ %tmp20830 = getelementptr inbounds float* %tmp20829, i64 1
+ %tmp20831 = getelementptr inbounds float* %tmp20830, i64 1
+ %tmp20832 = getelementptr inbounds float* %tmp20831, i64 1
+ %tmp20833 = getelementptr inbounds float* %tmp20832, i64 1
+ %tmp20834 = getelementptr inbounds float* %tmp20833, i64 1
+ %tmp20835 = getelementptr inbounds float* %tmp20834, i64 1
+ %tmp20836 = getelementptr inbounds float* %tmp20835, i64 1
+ %tmp20837 = getelementptr inbounds float* %tmp20836, i64 1
+ %tmp20838 = getelementptr inbounds float* %tmp20837, i64 1
+ %tmp20839 = getelementptr inbounds float* %tmp20838, i64 1
+ %tmp20840 = getelementptr inbounds float* %tmp20839, i64 1
+ %tmp20841 = getelementptr inbounds float* %tmp20840, i64 1
+ %tmp20842 = getelementptr inbounds float* %tmp20841, i64 1
+ %tmp20843 = getelementptr inbounds float* %tmp20842, i64 1
+ %tmp20844 = getelementptr inbounds float* %tmp20843, i64 1
+ %tmp20845 = getelementptr inbounds float* %tmp20844, i64 1
+ %tmp20846 = getelementptr inbounds float* %tmp20845, i64 1
+ %tmp20847 = getelementptr inbounds float* %tmp20846, i64 1
+ %tmp20848 = getelementptr inbounds float* %tmp20847, i64 1
+ %tmp20849 = getelementptr inbounds float* %tmp20848, i64 1
+ %tmp20850 = getelementptr inbounds float* %tmp20849, i64 1
+ %tmp20851 = getelementptr inbounds float* %tmp20850, i64 1
+ %tmp20852 = getelementptr inbounds float* %tmp20851, i64 1
+ %tmp20853 = getelementptr inbounds float* %tmp20852, i64 1
+ %tmp20854 = getelementptr inbounds float* %tmp20853, i64 1
+ %tmp20855 = getelementptr inbounds float* %tmp20854, i64 1
+ %tmp20856 = getelementptr inbounds float* %tmp20855, i64 1
+ %tmp20857 = getelementptr inbounds float* %tmp20856, i64 1
+ %tmp20858 = getelementptr inbounds float* %tmp20857, i64 1
+ %tmp20859 = getelementptr inbounds float* %tmp20858, i64 1
+ %tmp20860 = getelementptr inbounds float* %tmp20859, i64 1
+ %tmp20861 = getelementptr inbounds float* %tmp20860, i64 1
+ %tmp20862 = getelementptr inbounds float* %tmp20861, i64 1
+ %tmp20863 = getelementptr inbounds float* %tmp20862, i64 1
+ %tmp20864 = getelementptr inbounds float* %tmp20863, i64 1
+ %tmp20865 = getelementptr inbounds float* %tmp20864, i64 1
+ %tmp20866 = getelementptr inbounds float* %tmp20865, i64 1
+ %tmp20867 = getelementptr inbounds float* %tmp20866, i64 1
+ %tmp20868 = getelementptr inbounds float* %tmp20867, i64 1
+ %tmp20869 = getelementptr inbounds float* %tmp20868, i64 1
+ %tmp20870 = getelementptr inbounds float* %tmp20869, i64 1
+ %tmp20871 = getelementptr inbounds float* %tmp20870, i64 1
+ %tmp20872 = getelementptr inbounds float* %tmp20871, i64 1
+ %tmp20873 = getelementptr inbounds float* %tmp20872, i64 1
+ %tmp20874 = getelementptr inbounds float* %tmp20873, i64 1
+ %tmp20875 = getelementptr inbounds float* %tmp20874, i64 1
+ %tmp20876 = getelementptr inbounds float* %tmp20875, i64 1
+ %tmp20877 = getelementptr inbounds float* %tmp20876, i64 1
+ %tmp20878 = getelementptr inbounds float* %tmp20877, i64 1
+ %tmp20879 = getelementptr inbounds float* %tmp20878, i64 1
+ %tmp20880 = getelementptr inbounds float* %tmp20879, i64 1
+ %tmp20881 = getelementptr inbounds float* %tmp20880, i64 1
+ %tmp20882 = getelementptr inbounds float* %tmp20881, i64 1
+ %tmp20883 = getelementptr inbounds float* %tmp20882, i64 1
+ %tmp20884 = getelementptr inbounds float* %tmp20883, i64 1
+ %tmp20885 = getelementptr inbounds float* %tmp20884, i64 1
+ %tmp20886 = getelementptr inbounds float* %tmp20885, i64 1
+ %tmp20887 = getelementptr inbounds float* %tmp20886, i64 1
+ %tmp20888 = getelementptr inbounds float* %tmp20887, i64 1
+ %tmp20889 = getelementptr inbounds float* %tmp20888, i64 1
+ %tmp20890 = getelementptr inbounds float* %tmp20889, i64 1
+ %tmp20891 = getelementptr inbounds float* %tmp20890, i64 1
+ %tmp20892 = getelementptr inbounds float* %tmp20891, i64 1
+ %tmp20893 = getelementptr inbounds float* %tmp20892, i64 1
+ %tmp20894 = getelementptr inbounds float* %tmp20893, i64 1
+ %tmp20895 = getelementptr inbounds float* %tmp20894, i64 1
+ %tmp20896 = getelementptr inbounds float* %tmp20895, i64 1
+ %tmp20897 = getelementptr inbounds float* %tmp20896, i64 1
+ %tmp20898 = getelementptr inbounds float* %tmp20897, i64 1
+ %tmp20899 = getelementptr inbounds float* %tmp20898, i64 1
+ %tmp20900 = getelementptr inbounds float* %tmp20899, i64 1
+ %tmp20901 = getelementptr inbounds float* %tmp20900, i64 1
+ %tmp20902 = getelementptr inbounds float* %tmp20901, i64 1
+ %tmp20903 = getelementptr inbounds float* %tmp20902, i64 1
+ %tmp20904 = getelementptr inbounds float* %tmp20903, i64 1
+ %tmp20905 = getelementptr inbounds float* %tmp20904, i64 1
+ %tmp20906 = getelementptr inbounds float* %tmp20905, i64 1
+ %tmp20907 = getelementptr inbounds float* %tmp20906, i64 1
+ %tmp20908 = getelementptr inbounds float* %tmp20907, i64 1
+ %tmp20909 = getelementptr inbounds float* %tmp20908, i64 1
+ %tmp20910 = getelementptr inbounds float* %tmp20909, i64 1
+ %tmp20911 = getelementptr inbounds float* %tmp20910, i64 1
+ %tmp20912 = getelementptr inbounds float* %tmp20911, i64 1
+ %tmp20913 = getelementptr inbounds float* %tmp20912, i64 1
+ %tmp20914 = getelementptr inbounds float* %tmp20913, i64 1
+ %tmp20915 = getelementptr inbounds float* %tmp20914, i64 1
+ %tmp20916 = getelementptr inbounds float* %tmp20915, i64 1
+ %tmp20917 = getelementptr inbounds float* %tmp20916, i64 1
+ %tmp20918 = getelementptr inbounds float* %tmp20917, i64 1
+ %tmp20919 = getelementptr inbounds float* %tmp20918, i64 1
+ %tmp20920 = getelementptr inbounds float* %tmp20919, i64 1
+ %tmp20921 = getelementptr inbounds float* %tmp20920, i64 1
+ %tmp20922 = getelementptr inbounds float* %tmp20921, i64 1
+ %tmp20923 = getelementptr inbounds float* %tmp20922, i64 1
+ %tmp20924 = getelementptr inbounds float* %tmp20923, i64 1
+ %tmp20925 = getelementptr inbounds float* %tmp20924, i64 1
+ %tmp20926 = getelementptr inbounds float* %tmp20925, i64 1
+ %tmp20927 = getelementptr inbounds float* %tmp20926, i64 1
+ %tmp20928 = getelementptr inbounds float* %tmp20927, i64 1
+ %tmp20929 = getelementptr inbounds float* %tmp20928, i64 1
+ %tmp20930 = getelementptr inbounds float* %tmp20929, i64 1
+ %tmp20931 = getelementptr inbounds float* %tmp20930, i64 1
+ %tmp20932 = getelementptr inbounds float* %tmp20931, i64 1
+ %tmp20933 = getelementptr inbounds float* %tmp20932, i64 1
+ %tmp20934 = getelementptr inbounds float* %tmp20933, i64 1
+ %tmp20935 = getelementptr inbounds float* %tmp20934, i64 1
+ %tmp20936 = getelementptr inbounds float* %tmp20935, i64 1
+ %tmp20937 = getelementptr inbounds float* %tmp20936, i64 1
+ %tmp20938 = getelementptr inbounds float* %tmp20937, i64 1
+ %tmp20939 = getelementptr inbounds float* %tmp20938, i64 1
+ %tmp20940 = getelementptr inbounds float* %tmp20939, i64 1
+ %tmp20941 = getelementptr inbounds float* %tmp20940, i64 1
+ %tmp20942 = getelementptr inbounds float* %tmp20941, i64 1
+ %tmp20943 = getelementptr inbounds float* %tmp20942, i64 1
+ %tmp20944 = getelementptr inbounds float* %tmp20943, i64 1
+ %tmp20945 = getelementptr inbounds float* %tmp20944, i64 1
+ %tmp20946 = getelementptr inbounds float* %tmp20945, i64 1
+ %tmp20947 = getelementptr inbounds float* %tmp20946, i64 1
+ %tmp20948 = getelementptr inbounds float* %tmp20947, i64 1
+ %tmp20949 = getelementptr inbounds float* %tmp20948, i64 1
+ %tmp20950 = getelementptr inbounds float* %tmp20949, i64 1
+ %tmp20951 = getelementptr inbounds float* %tmp20950, i64 1
+ %tmp20952 = getelementptr inbounds float* %tmp20951, i64 1
+ %tmp20953 = getelementptr inbounds float* %tmp20952, i64 1
+ %tmp20954 = getelementptr inbounds float* %tmp20953, i64 1
+ %tmp20955 = getelementptr inbounds float* %tmp20954, i64 1
+ %tmp20956 = getelementptr inbounds float* %tmp20955, i64 1
+ %tmp20957 = getelementptr inbounds float* %tmp20956, i64 1
+ %tmp20958 = getelementptr inbounds float* %tmp20957, i64 1
+ %tmp20959 = getelementptr inbounds float* %tmp20958, i64 1
+ %tmp20960 = getelementptr inbounds float* %tmp20959, i64 1
+ %tmp20961 = getelementptr inbounds float* %tmp20960, i64 1
+ %tmp20962 = getelementptr inbounds float* %tmp20961, i64 1
+ %tmp20963 = getelementptr inbounds float* %tmp20962, i64 1
+ %tmp20964 = getelementptr inbounds float* %tmp20963, i64 1
+ %tmp20965 = getelementptr inbounds float* %tmp20964, i64 1
+ %tmp20966 = getelementptr inbounds float* %tmp20965, i64 1
+ %tmp20967 = getelementptr inbounds float* %tmp20966, i64 1
+ %tmp20968 = getelementptr inbounds float* %tmp20967, i64 1
+ %tmp20969 = getelementptr inbounds float* %tmp20968, i64 1
+ %tmp20970 = getelementptr inbounds float* %tmp20969, i64 1
+ %tmp20971 = getelementptr inbounds float* %tmp20970, i64 1
+ %tmp20972 = getelementptr inbounds float* %tmp20971, i64 1
+ %tmp20973 = getelementptr inbounds float* %tmp20972, i64 1
+ %tmp20974 = getelementptr inbounds float* %tmp20973, i64 1
+ %tmp20975 = getelementptr inbounds float* %tmp20974, i64 1
+ %tmp20976 = getelementptr inbounds float* %tmp20975, i64 1
+ %tmp20977 = getelementptr inbounds float* %tmp20976, i64 1
+ %tmp20978 = getelementptr inbounds float* %tmp20977, i64 1
+ %tmp20979 = getelementptr inbounds float* %tmp20978, i64 1
+ %tmp20980 = getelementptr inbounds float* %tmp20979, i64 1
+ %tmp20981 = getelementptr inbounds float* %tmp20980, i64 1
+ %tmp20982 = getelementptr inbounds float* %tmp20981, i64 1
+ %tmp20983 = getelementptr inbounds float* %tmp20982, i64 1
+ %tmp20984 = getelementptr inbounds float* %tmp20983, i64 1
+ %tmp20985 = getelementptr inbounds float* %tmp20984, i64 1
+ %tmp20986 = getelementptr inbounds float* %tmp20985, i64 1
+ %tmp20987 = getelementptr inbounds float* %tmp20986, i64 1
+ %tmp20988 = getelementptr inbounds float* %tmp20987, i64 1
+ %tmp20989 = getelementptr inbounds float* %tmp20988, i64 1
+ %tmp20990 = getelementptr inbounds float* %tmp20989, i64 1
+ %tmp20991 = getelementptr inbounds float* %tmp20990, i64 1
+ %tmp20992 = getelementptr inbounds float* %tmp20991, i64 1
+ %tmp20993 = getelementptr inbounds float* %tmp20992, i64 1
+ %tmp20994 = getelementptr inbounds float* %tmp20993, i64 1
+ %tmp20995 = getelementptr inbounds float* %tmp20994, i64 1
+ %tmp20996 = getelementptr inbounds float* %tmp20995, i64 1
+ %tmp20997 = getelementptr inbounds float* %tmp20996, i64 1
+ %tmp20998 = getelementptr inbounds float* %tmp20997, i64 1
+ %tmp20999 = getelementptr inbounds float* %tmp20998, i64 1
+ %tmp21000 = getelementptr inbounds float* %tmp20999, i64 1
+ %tmp21001 = getelementptr inbounds float* %tmp21000, i64 1
+ %tmp21002 = getelementptr inbounds float* %tmp21001, i64 1
+ %tmp21003 = getelementptr inbounds float* %tmp21002, i64 1
+ %tmp21004 = getelementptr inbounds float* %tmp21003, i64 1
+ %tmp21005 = getelementptr inbounds float* %tmp21004, i64 1
+ %tmp21006 = getelementptr inbounds float* %tmp21005, i64 1
+ %tmp21007 = getelementptr inbounds float* %tmp21006, i64 1
+ %tmp21008 = getelementptr inbounds float* %tmp21007, i64 1
+ %tmp21009 = getelementptr inbounds float* %tmp21008, i64 1
+ %tmp21010 = getelementptr inbounds float* %tmp21009, i64 1
+ %tmp21011 = getelementptr inbounds float* %tmp21010, i64 1
+ %tmp21012 = getelementptr inbounds float* %tmp21011, i64 1
+ %tmp21013 = getelementptr inbounds float* %tmp21012, i64 1
+ %tmp21014 = getelementptr inbounds float* %tmp21013, i64 1
+ %tmp21015 = getelementptr inbounds float* %tmp21014, i64 1
+ %tmp21016 = getelementptr inbounds float* %tmp21015, i64 1
+ %tmp21017 = getelementptr inbounds float* %tmp21016, i64 1
+ %tmp21018 = getelementptr inbounds float* %tmp21017, i64 1
+ %tmp21019 = getelementptr inbounds float* %tmp21018, i64 1
+ %tmp21020 = getelementptr inbounds float* %tmp21019, i64 1
+ %tmp21021 = getelementptr inbounds float* %tmp21020, i64 1
+ %tmp21022 = getelementptr inbounds float* %tmp21021, i64 1
+ %tmp21023 = getelementptr inbounds float* %tmp21022, i64 1
+ %tmp21024 = getelementptr inbounds float* %tmp21023, i64 1
+ %tmp21025 = getelementptr inbounds float* %tmp21024, i64 1
+ %tmp21026 = getelementptr inbounds float* %tmp21025, i64 1
+ %tmp21027 = getelementptr inbounds float* %tmp21026, i64 1
+ %tmp21028 = getelementptr inbounds float* %tmp21027, i64 1
+ %tmp21029 = getelementptr inbounds float* %tmp21028, i64 1
+ %tmp21030 = getelementptr inbounds float* %tmp21029, i64 1
+ %tmp21031 = getelementptr inbounds float* %tmp21030, i64 1
+ %tmp21032 = getelementptr inbounds float* %tmp21031, i64 1
+ %tmp21033 = getelementptr inbounds float* %tmp21032, i64 1
+ %tmp21034 = getelementptr inbounds float* %tmp21033, i64 1
+ %tmp21035 = getelementptr inbounds float* %tmp21034, i64 1
+ %tmp21036 = getelementptr inbounds float* %tmp21035, i64 1
+ %tmp21037 = getelementptr inbounds float* %tmp21036, i64 1
+ %tmp21038 = getelementptr inbounds float* %tmp21037, i64 1
+ %tmp21039 = getelementptr inbounds float* %tmp21038, i64 1
+ %tmp21040 = getelementptr inbounds float* %tmp21039, i64 1
+ %tmp21041 = getelementptr inbounds float* %tmp21040, i64 1
+ %tmp21042 = getelementptr inbounds float* %tmp21041, i64 1
+ %tmp21043 = getelementptr inbounds float* %tmp21042, i64 1
+ %tmp21044 = getelementptr inbounds float* %tmp21043, i64 1
+ %tmp21045 = getelementptr inbounds float* %tmp21044, i64 1
+ %tmp21046 = getelementptr inbounds float* %tmp21045, i64 1
+ %tmp21047 = getelementptr inbounds float* %tmp21046, i64 1
+ %tmp21048 = getelementptr inbounds float* %tmp21047, i64 1
+ %tmp21049 = getelementptr inbounds float* %tmp21048, i64 1
+ %tmp21050 = getelementptr inbounds float* %tmp21049, i64 1
+ %tmp21051 = getelementptr inbounds float* %tmp21050, i64 1
+ %tmp21052 = getelementptr inbounds float* %tmp21051, i64 1
+ %tmp21053 = getelementptr inbounds float* %tmp21052, i64 1
+ %tmp21054 = getelementptr inbounds float* %tmp21053, i64 1
+ %tmp21055 = getelementptr inbounds float* %tmp21054, i64 1
+ %tmp21056 = getelementptr inbounds float* %tmp21055, i64 1
+ %tmp21057 = getelementptr inbounds float* %tmp21056, i64 1
+ %tmp21058 = getelementptr inbounds float* %tmp21057, i64 1
+ %tmp21059 = getelementptr inbounds float* %tmp21058, i64 1
+ %tmp21060 = getelementptr inbounds float* %tmp21059, i64 1
+ %tmp21061 = getelementptr inbounds float* %tmp21060, i64 1
+ %tmp21062 = getelementptr inbounds float* %tmp21061, i64 1
+ %tmp21063 = getelementptr inbounds float* %tmp21062, i64 1
+ %tmp21064 = getelementptr inbounds float* %tmp21063, i64 1
+ %tmp21065 = getelementptr inbounds float* %tmp21064, i64 1
+ %tmp21066 = getelementptr inbounds float* %tmp21065, i64 1
+ %tmp21067 = getelementptr inbounds float* %tmp21066, i64 1
+ %tmp21068 = getelementptr inbounds float* %tmp21067, i64 1
+ %tmp21069 = getelementptr inbounds float* %tmp21068, i64 1
+ %tmp21070 = getelementptr inbounds float* %tmp21069, i64 1
+ %tmp21071 = getelementptr inbounds float* %tmp21070, i64 1
+ %tmp21072 = getelementptr inbounds float* %tmp21071, i64 1
+ %tmp21073 = getelementptr inbounds float* %tmp21072, i64 1
+ %tmp21074 = getelementptr inbounds float* %tmp21073, i64 1
+ %tmp21075 = getelementptr inbounds float* %tmp21074, i64 1
+ %tmp21076 = getelementptr inbounds float* %tmp21075, i64 1
+ %tmp21077 = getelementptr inbounds float* %tmp21076, i64 1
+ %tmp21078 = getelementptr inbounds float* %tmp21077, i64 1
+ %tmp21079 = getelementptr inbounds float* %tmp21078, i64 1
+ %tmp21080 = getelementptr inbounds float* %tmp21079, i64 1
+ %tmp21081 = getelementptr inbounds float* %tmp21080, i64 1
+ %tmp21082 = getelementptr inbounds float* %tmp21081, i64 1
+ %tmp21083 = getelementptr inbounds float* %tmp21082, i64 1
+ %tmp21084 = getelementptr inbounds float* %tmp21083, i64 1
+ %tmp21085 = getelementptr inbounds float* %tmp21084, i64 1
+ %tmp21086 = getelementptr inbounds float* %tmp21085, i64 1
+ %tmp21087 = getelementptr inbounds float* %tmp21086, i64 1
+ %tmp21088 = getelementptr inbounds float* %tmp21087, i64 1
+ %tmp21089 = getelementptr inbounds float* %tmp21088, i64 1
+ %tmp21090 = getelementptr inbounds float* %tmp21089, i64 1
+ %tmp21091 = getelementptr inbounds float* %tmp21090, i64 1
+ %tmp21092 = getelementptr inbounds float* %tmp21091, i64 1
+ %tmp21093 = getelementptr inbounds float* %tmp21092, i64 1
+ %tmp21094 = getelementptr inbounds float* %tmp21093, i64 1
+ %tmp21095 = getelementptr inbounds float* %tmp21094, i64 1
+ %tmp21096 = getelementptr inbounds float* %tmp21095, i64 1
+ %tmp21097 = getelementptr inbounds float* %tmp21096, i64 1
+ %tmp21098 = getelementptr inbounds float* %tmp21097, i64 1
+ %tmp21099 = getelementptr inbounds float* %tmp21098, i64 1
+ %tmp21100 = getelementptr inbounds float* %tmp21099, i64 1
+ %tmp21101 = getelementptr inbounds float* %tmp21100, i64 1
+ %tmp21102 = getelementptr inbounds float* %tmp21101, i64 1
+ %tmp21103 = getelementptr inbounds float* %tmp21102, i64 1
+ %tmp21104 = getelementptr inbounds float* %tmp21103, i64 1
+ %tmp21105 = getelementptr inbounds float* %tmp21104, i64 1
+ %tmp21106 = getelementptr inbounds float* %tmp21105, i64 1
+ %tmp21107 = getelementptr inbounds float* %tmp21106, i64 1
+ %tmp21108 = getelementptr inbounds float* %tmp21107, i64 1
+ %tmp21109 = getelementptr inbounds float* %tmp21108, i64 1
+ %tmp21110 = getelementptr inbounds float* %tmp21109, i64 1
+ %tmp21111 = getelementptr inbounds float* %tmp21110, i64 1
+ %tmp21112 = getelementptr inbounds float* %tmp21111, i64 1
+ %tmp21113 = getelementptr inbounds float* %tmp21112, i64 1
+ %tmp21114 = getelementptr inbounds float* %tmp21113, i64 1
+ %tmp21115 = getelementptr inbounds float* %tmp21114, i64 1
+ %tmp21116 = getelementptr inbounds float* %tmp21115, i64 1
+ %tmp21117 = getelementptr inbounds float* %tmp21116, i64 1
+ %tmp21118 = getelementptr inbounds float* %tmp21117, i64 1
+ %tmp21119 = getelementptr inbounds float* %tmp21118, i64 1
+ %tmp21120 = getelementptr inbounds float* %tmp21119, i64 1
+ %tmp21121 = getelementptr inbounds float* %tmp21120, i64 1
+ %tmp21122 = getelementptr inbounds float* %tmp21121, i64 1
+ %tmp21123 = getelementptr inbounds float* %tmp21122, i64 1
+ %tmp21124 = getelementptr inbounds float* %tmp21123, i64 1
+ %tmp21125 = getelementptr inbounds float* %tmp21124, i64 1
+ %tmp21126 = getelementptr inbounds float* %tmp21125, i64 1
+ %tmp21127 = getelementptr inbounds float* %tmp21126, i64 1
+ %tmp21128 = getelementptr inbounds float* %tmp21127, i64 1
+ %tmp21129 = getelementptr inbounds float* %tmp21128, i64 1
+ %tmp21130 = getelementptr inbounds float* %tmp21129, i64 1
+ %tmp21131 = getelementptr inbounds float* %tmp21130, i64 1
+ %tmp21132 = getelementptr inbounds float* %tmp21131, i64 1
+ %tmp21133 = getelementptr inbounds float* %tmp21132, i64 1
+ %tmp21134 = getelementptr inbounds float* %tmp21133, i64 1
+ %tmp21135 = getelementptr inbounds float* %tmp21134, i64 1
+ %tmp21136 = getelementptr inbounds float* %tmp21135, i64 1
+ %tmp21137 = getelementptr inbounds float* %tmp21136, i64 1
+ %tmp21138 = getelementptr inbounds float* %tmp21137, i64 1
+ %tmp21139 = getelementptr inbounds float* %tmp21138, i64 1
+ %tmp21140 = getelementptr inbounds float* %tmp21139, i64 1
+ %tmp21141 = getelementptr inbounds float* %tmp21140, i64 1
+ %tmp21142 = getelementptr inbounds float* %tmp21141, i64 1
+ %tmp21143 = getelementptr inbounds float* %tmp21142, i64 1
+ %tmp21144 = getelementptr inbounds float* %tmp21143, i64 1
+ %tmp21145 = getelementptr inbounds float* %tmp21144, i64 1
+ %tmp21146 = getelementptr inbounds float* %tmp21145, i64 1
+ %tmp21147 = getelementptr inbounds float* %tmp21146, i64 1
+ %tmp21148 = getelementptr inbounds float* %tmp21147, i64 1
+ %tmp21149 = getelementptr inbounds float* %tmp21148, i64 1
+ %tmp21150 = getelementptr inbounds float* %tmp21149, i64 1
+ %tmp21151 = getelementptr inbounds float* %tmp21150, i64 1
+ %tmp21152 = getelementptr inbounds float* %tmp21151, i64 1
+ %tmp21153 = getelementptr inbounds float* %tmp21152, i64 1
+ %tmp21154 = getelementptr inbounds float* %tmp21153, i64 1
+ %tmp21155 = getelementptr inbounds float* %tmp21154, i64 1
+ %tmp21156 = getelementptr inbounds float* %tmp21155, i64 1
+ %tmp21157 = getelementptr inbounds float* %tmp21156, i64 1
+ %tmp21158 = getelementptr inbounds float* %tmp21157, i64 1
+ %tmp21159 = getelementptr inbounds float* %tmp21158, i64 1
+ %tmp21160 = getelementptr inbounds float* %tmp21159, i64 1
+ %tmp21161 = getelementptr inbounds float* %tmp21160, i64 1
+ %tmp21162 = getelementptr inbounds float* %tmp21161, i64 1
+ %tmp21163 = getelementptr inbounds float* %tmp21162, i64 1
+ %tmp21164 = getelementptr inbounds float* %tmp21163, i64 1
+ %tmp21165 = getelementptr inbounds float* %tmp21164, i64 1
+ %tmp21166 = getelementptr inbounds float* %tmp21165, i64 1
+ %tmp21167 = getelementptr inbounds float* %tmp21166, i64 1
+ %tmp21168 = getelementptr inbounds float* %tmp21167, i64 1
+ %tmp21169 = getelementptr inbounds float* %tmp21168, i64 1
+ %tmp21170 = getelementptr inbounds float* %tmp21169, i64 1
+ %tmp21171 = getelementptr inbounds float* %tmp21170, i64 1
+ %tmp21172 = getelementptr inbounds float* %tmp21171, i64 1
+ %tmp21173 = getelementptr inbounds float* %tmp21172, i64 1
+ %tmp21174 = getelementptr inbounds float* %tmp21173, i64 1
+ %tmp21175 = getelementptr inbounds float* %tmp21174, i64 1
+ %tmp21176 = getelementptr inbounds float* %tmp21175, i64 1
+ %tmp21177 = getelementptr inbounds float* %tmp21176, i64 1
+ %tmp21178 = getelementptr inbounds float* %tmp21177, i64 1
+ %tmp21179 = getelementptr inbounds float* %tmp21178, i64 1
+ %tmp21180 = getelementptr inbounds float* %tmp21179, i64 1
+ %tmp21181 = getelementptr inbounds float* %tmp21180, i64 1
+ %tmp21182 = getelementptr inbounds float* %tmp21181, i64 1
+ %tmp21183 = getelementptr inbounds float* %tmp21182, i64 1
+ %tmp21184 = getelementptr inbounds float* %tmp21183, i64 1
+ %tmp21185 = getelementptr inbounds float* %tmp21184, i64 1
+ %tmp21186 = getelementptr inbounds float* %tmp21185, i64 1
+ %tmp21187 = getelementptr inbounds float* %tmp21186, i64 1
+ %tmp21188 = getelementptr inbounds float* %tmp21187, i64 1
+ %tmp21189 = getelementptr inbounds float* %tmp21188, i64 1
+ %tmp21190 = getelementptr inbounds float* %tmp21189, i64 1
+ %tmp21191 = getelementptr inbounds float* %tmp21190, i64 1
+ %tmp21192 = getelementptr inbounds float* %tmp21191, i64 1
+ %tmp21193 = getelementptr inbounds float* %tmp21192, i64 1
+ %tmp21194 = getelementptr inbounds float* %tmp21193, i64 1
+ %tmp21195 = getelementptr inbounds float* %tmp21194, i64 1
+ %tmp21196 = getelementptr inbounds float* %tmp21195, i64 1
+ %tmp21197 = getelementptr inbounds float* %tmp21196, i64 1
+ %tmp21198 = getelementptr inbounds float* %tmp21197, i64 1
+ %tmp21199 = getelementptr inbounds float* %tmp21198, i64 1
+ %tmp21200 = getelementptr inbounds float* %tmp21199, i64 1
+ %tmp21201 = getelementptr inbounds float* %tmp21200, i64 1
+ %tmp21202 = getelementptr inbounds float* %tmp21201, i64 1
+ %tmp21203 = getelementptr inbounds float* %tmp21202, i64 1
+ %tmp21204 = getelementptr inbounds float* %tmp21203, i64 1
+ %tmp21205 = getelementptr inbounds float* %tmp21204, i64 1
+ %tmp21206 = getelementptr inbounds float* %tmp21205, i64 1
+ %tmp21207 = getelementptr inbounds float* %tmp21206, i64 1
+ %tmp21208 = getelementptr inbounds float* %tmp21207, i64 1
+ %tmp21209 = getelementptr inbounds float* %tmp21208, i64 1
+ %tmp21210 = getelementptr inbounds float* %tmp21209, i64 1
+ %tmp21211 = getelementptr inbounds float* %tmp21210, i64 1
+ %tmp21212 = getelementptr inbounds float* %tmp21211, i64 1
+ %tmp21213 = getelementptr inbounds float* %tmp21212, i64 1
+ %tmp21214 = getelementptr inbounds float* %tmp21213, i64 1
+ %tmp21215 = getelementptr inbounds float* %tmp21214, i64 1
+ %tmp21216 = getelementptr inbounds float* %tmp21215, i64 1
+ %tmp21217 = getelementptr inbounds float* %tmp21216, i64 1
+ %tmp21218 = getelementptr inbounds float* %tmp21217, i64 1
+ %tmp21219 = getelementptr inbounds float* %tmp21218, i64 1
+ %tmp21220 = getelementptr inbounds float* %tmp21219, i64 1
+ %tmp21221 = getelementptr inbounds float* %tmp21220, i64 1
+ %tmp21222 = getelementptr inbounds float* %tmp21221, i64 1
+ %tmp21223 = getelementptr inbounds float* %tmp21222, i64 1
+ %tmp21224 = getelementptr inbounds float* %tmp21223, i64 1
+ %tmp21225 = getelementptr inbounds float* %tmp21224, i64 1
+ %tmp21226 = getelementptr inbounds float* %tmp21225, i64 1
+ %tmp21227 = getelementptr inbounds float* %tmp21226, i64 1
+ %tmp21228 = getelementptr inbounds float* %tmp21227, i64 1
+ %tmp21229 = getelementptr inbounds float* %tmp21228, i64 1
+ %tmp21230 = getelementptr inbounds float* %tmp21229, i64 1
+ %tmp21231 = getelementptr inbounds float* %tmp21230, i64 1
+ %tmp21232 = getelementptr inbounds float* %tmp21231, i64 1
+ %tmp21233 = getelementptr inbounds float* %tmp21232, i64 1
+ %tmp21234 = getelementptr inbounds float* %tmp21233, i64 1
+ %tmp21235 = getelementptr inbounds float* %tmp21234, i64 1
+ %tmp21236 = getelementptr inbounds float* %tmp21235, i64 1
+ %tmp21237 = getelementptr inbounds float* %tmp21236, i64 1
+ %tmp21238 = getelementptr inbounds float* %tmp21237, i64 1
+ %tmp21239 = getelementptr inbounds float* %tmp21238, i64 1
+ %tmp21240 = getelementptr inbounds float* %tmp21239, i64 1
+ %tmp21241 = getelementptr inbounds float* %tmp21240, i64 1
+ %tmp21242 = getelementptr inbounds float* %tmp21241, i64 1
+ %tmp21243 = getelementptr inbounds float* %tmp21242, i64 1
+ %tmp21244 = getelementptr inbounds float* %tmp21243, i64 1
+ %tmp21245 = getelementptr inbounds float* %tmp21244, i64 1
+ %tmp21246 = getelementptr inbounds float* %tmp21245, i64 1
+ %tmp21247 = getelementptr inbounds float* %tmp21246, i64 1
+ %tmp21248 = getelementptr inbounds float* %tmp21247, i64 1
+ %tmp21249 = getelementptr inbounds float* %tmp21248, i64 1
+ %tmp21250 = getelementptr inbounds float* %tmp21249, i64 1
+ %tmp21251 = getelementptr inbounds float* %tmp21250, i64 1
+ %tmp21252 = getelementptr inbounds float* %tmp21251, i64 1
+ %tmp21253 = getelementptr inbounds float* %tmp21252, i64 1
+ %tmp21254 = getelementptr inbounds float* %tmp21253, i64 1
+ %tmp21255 = getelementptr inbounds float* %tmp21254, i64 1
+ %tmp21256 = getelementptr inbounds float* %tmp21255, i64 1
+ %tmp21257 = getelementptr inbounds float* %tmp21256, i64 1
+ %tmp21258 = getelementptr inbounds float* %tmp21257, i64 1
+ %tmp21259 = getelementptr inbounds float* %tmp21258, i64 1
+ %tmp21260 = getelementptr inbounds float* %tmp21259, i64 1
+ %tmp21261 = getelementptr inbounds float* %tmp21260, i64 1
+ %tmp21262 = getelementptr inbounds float* %tmp21261, i64 1
+ %tmp21263 = getelementptr inbounds float* %tmp21262, i64 1
+ %tmp21264 = getelementptr inbounds float* %tmp21263, i64 1
+ %tmp21265 = getelementptr inbounds float* %tmp21264, i64 1
+ %tmp21266 = getelementptr inbounds float* %tmp21265, i64 1
+ %tmp21267 = getelementptr inbounds float* %tmp21266, i64 1
+ %tmp21268 = getelementptr inbounds float* %tmp21267, i64 1
+ %tmp21269 = getelementptr inbounds float* %tmp21268, i64 1
+ %tmp21270 = getelementptr inbounds float* %tmp21269, i64 1
+ %tmp21271 = getelementptr inbounds float* %tmp21270, i64 1
+ %tmp21272 = getelementptr inbounds float* %tmp21271, i64 1
+ %tmp21273 = getelementptr inbounds float* %tmp21272, i64 1
+ %tmp21274 = getelementptr inbounds float* %tmp21273, i64 1
+ %tmp21275 = getelementptr inbounds float* %tmp21274, i64 1
+ %tmp21276 = getelementptr inbounds float* %tmp21275, i64 1
+ %tmp21277 = getelementptr inbounds float* %tmp21276, i64 1
+ %tmp21278 = getelementptr inbounds float* %tmp21277, i64 1
+ %tmp21279 = getelementptr inbounds float* %tmp21278, i64 1
+ %tmp21280 = getelementptr inbounds float* %tmp21279, i64 1
+ %tmp21281 = getelementptr inbounds float* %tmp21280, i64 1
+ %tmp21282 = getelementptr inbounds float* %tmp21281, i64 1
+ %tmp21283 = getelementptr inbounds float* %tmp21282, i64 1
+ %tmp21284 = getelementptr inbounds float* %tmp21283, i64 1
+ %tmp21285 = getelementptr inbounds float* %tmp21284, i64 1
+ %tmp21286 = getelementptr inbounds float* %tmp21285, i64 1
+ %tmp21287 = getelementptr inbounds float* %tmp21286, i64 1
+ %tmp21288 = getelementptr inbounds float* %tmp21287, i64 1
+ %tmp21289 = getelementptr inbounds float* %tmp21288, i64 1
+ %tmp21290 = getelementptr inbounds float* %tmp21289, i64 1
+ %tmp21291 = getelementptr inbounds float* %tmp21290, i64 1
+ %tmp21292 = getelementptr inbounds float* %tmp21291, i64 1
+ %tmp21293 = getelementptr inbounds float* %tmp21292, i64 1
+ %tmp21294 = getelementptr inbounds float* %tmp21293, i64 1
+ %tmp21295 = getelementptr inbounds float* %tmp21294, i64 1
+ %tmp21296 = getelementptr inbounds float* %tmp21295, i64 1
+ %tmp21297 = getelementptr inbounds float* %tmp21296, i64 1
+ %tmp21298 = getelementptr inbounds float* %tmp21297, i64 1
+ %tmp21299 = getelementptr inbounds float* %tmp21298, i64 1
+ %tmp21300 = getelementptr inbounds float* %tmp21299, i64 1
+ %tmp21301 = getelementptr inbounds float* %tmp21300, i64 1
+ %tmp21302 = getelementptr inbounds float* %tmp21301, i64 1
+ %tmp21303 = getelementptr inbounds float* %tmp21302, i64 1
+ %tmp21304 = getelementptr inbounds float* %tmp21303, i64 1
+ %tmp21305 = getelementptr inbounds float* %tmp21304, i64 1
+ %tmp21306 = getelementptr inbounds float* %tmp21305, i64 1
+ %tmp21307 = getelementptr inbounds float* %tmp21306, i64 1
+ %tmp21308 = getelementptr inbounds float* %tmp21307, i64 1
+ %tmp21309 = getelementptr inbounds float* %tmp21308, i64 1
+ %tmp21310 = getelementptr inbounds float* %tmp21309, i64 1
+ %tmp21311 = getelementptr inbounds float* %tmp21310, i64 1
+ %tmp21312 = getelementptr inbounds float* %tmp21311, i64 1
+ %tmp21313 = getelementptr inbounds float* %tmp21312, i64 1
+ %tmp21314 = getelementptr inbounds float* %tmp21313, i64 1
+ %tmp21315 = getelementptr inbounds float* %tmp21314, i64 1
+ %tmp21316 = getelementptr inbounds float* %tmp21315, i64 1
+ %tmp21317 = getelementptr inbounds float* %tmp21316, i64 1
+ %tmp21318 = getelementptr inbounds float* %tmp21317, i64 1
+ %tmp21319 = getelementptr inbounds float* %tmp21318, i64 1
+ %tmp21320 = getelementptr inbounds float* %tmp21319, i64 1
+ %tmp21321 = getelementptr inbounds float* %tmp21320, i64 1
+ %tmp21322 = getelementptr inbounds float* %tmp21321, i64 1
+ %tmp21323 = getelementptr inbounds float* %tmp21322, i64 1
+ %tmp21324 = getelementptr inbounds float* %tmp21323, i64 1
+ %tmp21325 = getelementptr inbounds float* %tmp21324, i64 1
+ %tmp21326 = getelementptr inbounds float* %tmp21325, i64 1
+ %tmp21327 = getelementptr inbounds float* %tmp21326, i64 1
+ %tmp21328 = getelementptr inbounds float* %tmp21327, i64 1
+ %tmp21329 = getelementptr inbounds float* %tmp21328, i64 1
+ %tmp21330 = getelementptr inbounds float* %tmp21329, i64 1
+ %tmp21331 = getelementptr inbounds float* %tmp21330, i64 1
+ %tmp21332 = getelementptr inbounds float* %tmp21331, i64 1
+ %tmp21333 = getelementptr inbounds float* %tmp21332, i64 1
+ %tmp21334 = getelementptr inbounds float* %tmp21333, i64 1
+ %tmp21335 = getelementptr inbounds float* %tmp21334, i64 1
+ %tmp21336 = getelementptr inbounds float* %tmp21335, i64 1
+ %tmp21337 = getelementptr inbounds float* %tmp21336, i64 1
+ %tmp21338 = getelementptr inbounds float* %tmp21337, i64 1
+ %tmp21339 = getelementptr inbounds float* %tmp21338, i64 1
+ %tmp21340 = getelementptr inbounds float* %tmp21339, i64 1
+ %tmp21341 = getelementptr inbounds float* %tmp21340, i64 1
+ %tmp21342 = getelementptr inbounds float* %tmp21341, i64 1
+ %tmp21343 = getelementptr inbounds float* %tmp21342, i64 1
+ %tmp21344 = getelementptr inbounds float* %tmp21343, i64 1
+ %tmp21345 = getelementptr inbounds float* %tmp21344, i64 1
+ %tmp21346 = getelementptr inbounds float* %tmp21345, i64 1
+ %tmp21347 = getelementptr inbounds float* %tmp21346, i64 1
+ %tmp21348 = getelementptr inbounds float* %tmp21347, i64 1
+ %tmp21349 = getelementptr inbounds float* %tmp21348, i64 1
+ %tmp21350 = getelementptr inbounds float* %tmp21349, i64 1
+ %tmp21351 = getelementptr inbounds float* %tmp21350, i64 1
+ %tmp21352 = getelementptr inbounds float* %tmp21351, i64 1
+ %tmp21353 = getelementptr inbounds float* %tmp21352, i64 1
+ %tmp21354 = getelementptr inbounds float* %tmp21353, i64 1
+ %tmp21355 = getelementptr inbounds float* %tmp21354, i64 1
+ %tmp21356 = getelementptr inbounds float* %tmp21355, i64 1
+ %tmp21357 = getelementptr inbounds float* %tmp21356, i64 1
+ %tmp21358 = getelementptr inbounds float* %tmp21357, i64 1
+ %tmp21359 = getelementptr inbounds float* %tmp21358, i64 1
+ %tmp21360 = getelementptr inbounds float* %tmp21359, i64 1
+ %tmp21361 = getelementptr inbounds float* %tmp21360, i64 1
+ %tmp21362 = getelementptr inbounds float* %tmp21361, i64 1
+ %tmp21363 = getelementptr inbounds float* %tmp21362, i64 1
+ %tmp21364 = getelementptr inbounds float* %tmp21363, i64 1
+ %tmp21365 = getelementptr inbounds float* %tmp21364, i64 1
+ %tmp21366 = getelementptr inbounds float* %tmp21365, i64 1
+ %tmp21367 = getelementptr inbounds float* %tmp21366, i64 1
+ %tmp21368 = getelementptr inbounds float* %tmp21367, i64 1
+ %tmp21369 = getelementptr inbounds float* %tmp21368, i64 1
+ %tmp21370 = getelementptr inbounds float* %tmp21369, i64 1
+ %tmp21371 = getelementptr inbounds float* %tmp21370, i64 1
+ %tmp21372 = getelementptr inbounds float* %tmp21371, i64 1
+ %tmp21373 = getelementptr inbounds float* %tmp21372, i64 1
+ %tmp21374 = getelementptr inbounds float* %tmp21373, i64 1
+ %tmp21375 = getelementptr inbounds float* %tmp21374, i64 1
+ %tmp21376 = getelementptr inbounds float* %tmp21375, i64 1
+ %tmp21377 = getelementptr inbounds float* %tmp21376, i64 1
+ %tmp21378 = getelementptr inbounds float* %tmp21377, i64 1
+ %tmp21379 = getelementptr inbounds float* %tmp21378, i64 1
+ %tmp21380 = getelementptr inbounds float* %tmp21379, i64 1
+ %tmp21381 = getelementptr inbounds float* %tmp21380, i64 1
+ %tmp21382 = getelementptr inbounds float* %tmp21381, i64 1
+ %tmp21383 = getelementptr inbounds float* %tmp21382, i64 1
+ %tmp21384 = getelementptr inbounds float* %tmp21383, i64 1
+ %tmp21385 = getelementptr inbounds float* %tmp21384, i64 1
+ %tmp21386 = getelementptr inbounds float* %tmp21385, i64 1
+ %tmp21387 = getelementptr inbounds float* %tmp21386, i64 1
+ %tmp21388 = getelementptr inbounds float* %tmp21387, i64 1
+ %tmp21389 = getelementptr inbounds float* %tmp21388, i64 1
+ %tmp21390 = getelementptr inbounds float* %tmp21389, i64 1
+ %tmp21391 = getelementptr inbounds float* %tmp21390, i64 1
+ %tmp21392 = getelementptr inbounds float* %tmp21391, i64 1
+ %tmp21393 = getelementptr inbounds float* %tmp21392, i64 1
+ %tmp21394 = getelementptr inbounds float* %tmp21393, i64 1
+ %tmp21395 = getelementptr inbounds float* %tmp21394, i64 1
+ %tmp21396 = getelementptr inbounds float* %tmp21395, i64 1
+ %tmp21397 = getelementptr inbounds float* %tmp21396, i64 1
+ %tmp21398 = getelementptr inbounds float* %tmp21397, i64 1
+ %tmp21399 = getelementptr inbounds float* %tmp21398, i64 1
+ %tmp21400 = getelementptr inbounds float* %tmp21399, i64 1
+ %tmp21401 = getelementptr inbounds float* %tmp21400, i64 1
+ %tmp21402 = getelementptr inbounds float* %tmp21401, i64 1
+ %tmp21403 = getelementptr inbounds float* %tmp21402, i64 1
+ %tmp21404 = getelementptr inbounds float* %tmp21403, i64 1
+ %tmp21405 = getelementptr inbounds float* %tmp21404, i64 1
+ %tmp21406 = getelementptr inbounds float* %tmp21405, i64 1
+ %tmp21407 = getelementptr inbounds float* %tmp21406, i64 1
+ %tmp21408 = getelementptr inbounds float* %tmp21407, i64 1
+ %tmp21409 = getelementptr inbounds float* %tmp21408, i64 1
+ %tmp21410 = getelementptr inbounds float* %tmp21409, i64 1
+ %tmp21411 = getelementptr inbounds float* %tmp21410, i64 1
+ %tmp21412 = getelementptr inbounds float* %tmp21411, i64 1
+ %tmp21413 = getelementptr inbounds float* %tmp21412, i64 1
+ %tmp21414 = getelementptr inbounds float* %tmp21413, i64 1
+ %tmp21415 = getelementptr inbounds float* %tmp21414, i64 1
+ %tmp21416 = getelementptr inbounds float* %tmp21415, i64 1
+ %tmp21417 = getelementptr inbounds float* %tmp21416, i64 1
+ %tmp21418 = getelementptr inbounds float* %tmp21417, i64 1
+ %tmp21419 = getelementptr inbounds float* %tmp21418, i64 1
+ %tmp21420 = getelementptr inbounds float* %tmp21419, i64 1
+ %tmp21421 = getelementptr inbounds float* %tmp21420, i64 1
+ %tmp21422 = getelementptr inbounds float* %tmp21421, i64 1
+ %tmp21423 = getelementptr inbounds float* %tmp21422, i64 1
+ %tmp21424 = getelementptr inbounds float* %tmp21423, i64 1
+ %tmp21425 = getelementptr inbounds float* %tmp21424, i64 1
+ %tmp21426 = getelementptr inbounds float* %tmp21425, i64 1
+ %tmp21427 = getelementptr inbounds float* %tmp21426, i64 1
+ %tmp21428 = getelementptr inbounds float* %tmp21427, i64 1
+ %tmp21429 = getelementptr inbounds float* %tmp21428, i64 1
+ %tmp21430 = getelementptr inbounds float* %tmp21429, i64 1
+ %tmp21431 = getelementptr inbounds float* %tmp21430, i64 1
+ %tmp21432 = getelementptr inbounds float* %tmp21431, i64 1
+ %tmp21433 = getelementptr inbounds float* %tmp21432, i64 1
+ %tmp21434 = getelementptr inbounds float* %tmp21433, i64 1
+ %tmp21435 = getelementptr inbounds float* %tmp21434, i64 1
+ %tmp21436 = getelementptr inbounds float* %tmp21435, i64 1
+ %tmp21437 = getelementptr inbounds float* %tmp21436, i64 1
+ %tmp21438 = getelementptr inbounds float* %tmp21437, i64 1
+ %tmp21439 = getelementptr inbounds float* %tmp21438, i64 1
+ %tmp21440 = getelementptr inbounds float* %tmp21439, i64 1
+ %tmp21441 = getelementptr inbounds float* %tmp21440, i64 1
+ %tmp21442 = getelementptr inbounds float* %tmp21441, i64 1
+ %tmp21443 = getelementptr inbounds float* %tmp21442, i64 1
+ %tmp21444 = getelementptr inbounds float* %tmp21443, i64 1
+ %tmp21445 = getelementptr inbounds float* %tmp21444, i64 1
+ %tmp21446 = getelementptr inbounds float* %tmp21445, i64 1
+ %tmp21447 = getelementptr inbounds float* %tmp21446, i64 1
+ %tmp21448 = getelementptr inbounds float* %tmp21447, i64 1
+ %tmp21449 = getelementptr inbounds float* %tmp21448, i64 1
+ %tmp21450 = getelementptr inbounds float* %tmp21449, i64 1
+ %tmp21451 = getelementptr inbounds float* %tmp21450, i64 1
+ %tmp21452 = getelementptr inbounds float* %tmp21451, i64 1
+ %tmp21453 = getelementptr inbounds float* %tmp21452, i64 1
+ %tmp21454 = getelementptr inbounds float* %tmp21453, i64 1
+ %tmp21455 = getelementptr inbounds float* %tmp21454, i64 1
+ %tmp21456 = getelementptr inbounds float* %tmp21455, i64 1
+ %tmp21457 = getelementptr inbounds float* %tmp21456, i64 1
+ %tmp21458 = getelementptr inbounds float* %tmp21457, i64 1
+ %tmp21459 = getelementptr inbounds float* %tmp21458, i64 1
+ %tmp21460 = getelementptr inbounds float* %tmp21459, i64 1
+ %tmp21461 = getelementptr inbounds float* %tmp21460, i64 1
+ %tmp21462 = getelementptr inbounds float* %tmp21461, i64 1
+ %tmp21463 = getelementptr inbounds float* %tmp21462, i64 1
+ %tmp21464 = getelementptr inbounds float* %tmp21463, i64 1
+ %tmp21465 = getelementptr inbounds float* %tmp21464, i64 1
+ %tmp21466 = getelementptr inbounds float* %tmp21465, i64 1
+ %tmp21467 = getelementptr inbounds float* %tmp21466, i64 1
+ %tmp21468 = getelementptr inbounds float* %tmp21467, i64 1
+ %tmp21469 = getelementptr inbounds float* %tmp21468, i64 1
+ %tmp21470 = getelementptr inbounds float* %tmp21469, i64 1
+ %tmp21471 = getelementptr inbounds float* %tmp21470, i64 1
+ %tmp21472 = getelementptr inbounds float* %tmp21471, i64 1
+ %tmp21473 = getelementptr inbounds float* %tmp21472, i64 1
+ %tmp21474 = getelementptr inbounds float* %tmp21473, i64 1
+ %tmp21475 = getelementptr inbounds float* %tmp21474, i64 1
+ %tmp21476 = getelementptr inbounds float* %tmp21475, i64 1
+ %tmp21477 = getelementptr inbounds float* %tmp21476, i64 1
+ %tmp21478 = getelementptr inbounds float* %tmp21477, i64 1
+ %tmp21479 = getelementptr inbounds float* %tmp21478, i64 1
+ %tmp21480 = getelementptr inbounds float* %tmp21479, i64 1
+ %tmp21481 = getelementptr inbounds float* %tmp21480, i64 1
+ %tmp21482 = getelementptr inbounds float* %tmp21481, i64 1
+ %tmp21483 = getelementptr inbounds float* %tmp21482, i64 1
+ %tmp21484 = getelementptr inbounds float* %tmp21483, i64 1
+ %tmp21485 = getelementptr inbounds float* %tmp21484, i64 1
+ %tmp21486 = getelementptr inbounds float* %tmp21485, i64 1
+ %tmp21487 = getelementptr inbounds float* %tmp21486, i64 1
+ %tmp21488 = getelementptr inbounds float* %tmp21487, i64 1
+ %tmp21489 = getelementptr inbounds float* %tmp21488, i64 1
+ %tmp21490 = getelementptr inbounds float* %tmp21489, i64 1
+ %tmp21491 = getelementptr inbounds float* %tmp21490, i64 1
+ %tmp21492 = getelementptr inbounds float* %tmp21491, i64 1
+ %tmp21493 = getelementptr inbounds float* %tmp21492, i64 1
+ %tmp21494 = getelementptr inbounds float* %tmp21493, i64 1
+ %tmp21495 = getelementptr inbounds float* %tmp21494, i64 1
+ %tmp21496 = getelementptr inbounds float* %tmp21495, i64 1
+ %tmp21497 = getelementptr inbounds float* %tmp21496, i64 1
+ %tmp21498 = getelementptr inbounds float* %tmp21497, i64 1
+ %tmp21499 = getelementptr inbounds float* %tmp21498, i64 1
+ %tmp21500 = getelementptr inbounds float* %tmp21499, i64 1
+ %tmp21501 = getelementptr inbounds float* %tmp21500, i64 1
+ %tmp21502 = getelementptr inbounds float* %tmp21501, i64 1
+ %tmp21503 = getelementptr inbounds float* %tmp21502, i64 1
+ %tmp21504 = getelementptr inbounds float* %tmp21503, i64 1
+ %tmp21505 = getelementptr inbounds float* %tmp21504, i64 1
+ %tmp21506 = getelementptr inbounds float* %tmp21505, i64 1
+ %tmp21507 = getelementptr inbounds float* %tmp21506, i64 1
+ %tmp21508 = getelementptr inbounds float* %tmp21507, i64 1
+ %tmp21509 = getelementptr inbounds float* %tmp21508, i64 1
+ %tmp21510 = getelementptr inbounds float* %tmp21509, i64 1
+ %tmp21511 = getelementptr inbounds float* %tmp21510, i64 1
+ %tmp21512 = getelementptr inbounds float* %tmp21511, i64 1
+ %tmp21513 = getelementptr inbounds float* %tmp21512, i64 1
+ %tmp21514 = getelementptr inbounds float* %tmp21513, i64 1
+ %tmp21515 = getelementptr inbounds float* %tmp21514, i64 1
+ %tmp21516 = getelementptr inbounds float* %tmp21515, i64 1
+ %tmp21517 = getelementptr inbounds float* %tmp21516, i64 1
+ %tmp21518 = getelementptr inbounds float* %tmp21517, i64 1
+ %tmp21519 = getelementptr inbounds float* %tmp21518, i64 1
+ %tmp21520 = getelementptr inbounds float* %tmp21519, i64 1
+ %tmp21521 = getelementptr inbounds float* %tmp21520, i64 1
+ %tmp21522 = getelementptr inbounds float* %tmp21521, i64 1
+ %tmp21523 = getelementptr inbounds float* %tmp21522, i64 1
+ %tmp21524 = getelementptr inbounds float* %tmp21523, i64 1
+ %tmp21525 = getelementptr inbounds float* %tmp21524, i64 1
+ %tmp21526 = getelementptr inbounds float* %tmp21525, i64 1
+ %tmp21527 = getelementptr inbounds float* %tmp21526, i64 1
+ %tmp21528 = getelementptr inbounds float* %tmp21527, i64 1
+ %tmp21529 = getelementptr inbounds float* %tmp21528, i64 1
+ %tmp21530 = getelementptr inbounds float* %tmp21529, i64 1
+ %tmp21531 = getelementptr inbounds float* %tmp21530, i64 1
+ %tmp21532 = getelementptr inbounds float* %tmp21531, i64 1
+ %tmp21533 = getelementptr inbounds float* %tmp21532, i64 1
+ %tmp21534 = getelementptr inbounds float* %tmp21533, i64 1
+ %tmp21535 = getelementptr inbounds float* %tmp21534, i64 1
+ %tmp21536 = getelementptr inbounds float* %tmp21535, i64 1
+ %tmp21537 = getelementptr inbounds float* %tmp21536, i64 1
+ %tmp21538 = getelementptr inbounds float* %tmp21537, i64 1
+ %tmp21539 = getelementptr inbounds float* %tmp21538, i64 1
+ %tmp21540 = getelementptr inbounds float* %tmp21539, i64 1
+ %tmp21541 = getelementptr inbounds float* %tmp21540, i64 1
+ %tmp21542 = getelementptr inbounds float* %tmp21541, i64 1
+ %tmp21543 = getelementptr inbounds float* %tmp21542, i64 1
+ %tmp21544 = getelementptr inbounds float* %tmp21543, i64 1
+ %tmp21545 = getelementptr inbounds float* %tmp21544, i64 1
+ %tmp21546 = getelementptr inbounds float* %tmp21545, i64 1
+ %tmp21547 = getelementptr inbounds float* %tmp21546, i64 1
+ %tmp21548 = getelementptr inbounds float* %tmp21547, i64 1
+ %tmp21549 = getelementptr inbounds float* %tmp21548, i64 1
+ %tmp21550 = getelementptr inbounds float* %tmp21549, i64 1
+ %tmp21551 = getelementptr inbounds float* %tmp21550, i64 1
+ %tmp21552 = getelementptr inbounds float* %tmp21551, i64 1
+ %tmp21553 = getelementptr inbounds float* %tmp21552, i64 1
+ %tmp21554 = getelementptr inbounds float* %tmp21553, i64 1
+ %tmp21555 = getelementptr inbounds float* %tmp21554, i64 1
+ %tmp21556 = getelementptr inbounds float* %tmp21555, i64 1
+ %tmp21557 = getelementptr inbounds float* %tmp21556, i64 1
+ %tmp21558 = getelementptr inbounds float* %tmp21557, i64 1
+ %tmp21559 = getelementptr inbounds float* %tmp21558, i64 1
+ %tmp21560 = getelementptr inbounds float* %tmp21559, i64 1
+ %tmp21561 = getelementptr inbounds float* %tmp21560, i64 1
+ %tmp21562 = getelementptr inbounds float* %tmp21561, i64 1
+ %tmp21563 = getelementptr inbounds float* %tmp21562, i64 1
+ %tmp21564 = getelementptr inbounds float* %tmp21563, i64 1
+ %tmp21565 = getelementptr inbounds float* %tmp21564, i64 1
+ %tmp21566 = getelementptr inbounds float* %tmp21565, i64 1
+ %tmp21567 = getelementptr inbounds float* %tmp21566, i64 1
+ %tmp21568 = getelementptr inbounds float* %tmp21567, i64 1
+ %tmp21569 = getelementptr inbounds float* %tmp21568, i64 1
+ %tmp21570 = getelementptr inbounds float* %tmp21569, i64 1
+ %tmp21571 = getelementptr inbounds float* %tmp21570, i64 1
+ %tmp21572 = getelementptr inbounds float* %tmp21571, i64 1
+ %tmp21573 = getelementptr inbounds float* %tmp21572, i64 1
+ %tmp21574 = getelementptr inbounds float* %tmp21573, i64 1
+ %tmp21575 = getelementptr inbounds float* %tmp21574, i64 1
+ %tmp21576 = getelementptr inbounds float* %tmp21575, i64 1
+ %tmp21577 = getelementptr inbounds float* %tmp21576, i64 1
+ %tmp21578 = getelementptr inbounds float* %tmp21577, i64 1
+ %tmp21579 = getelementptr inbounds float* %tmp21578, i64 1
+ %tmp21580 = getelementptr inbounds float* %tmp21579, i64 1
+ %tmp21581 = getelementptr inbounds float* %tmp21580, i64 1
+ %tmp21582 = getelementptr inbounds float* %tmp21581, i64 1
+ %tmp21583 = getelementptr inbounds float* %tmp21582, i64 1
+ %tmp21584 = getelementptr inbounds float* %tmp21583, i64 1
+ %tmp21585 = getelementptr inbounds float* %tmp21584, i64 1
+ %tmp21586 = getelementptr inbounds float* %tmp21585, i64 1
+ %tmp21587 = getelementptr inbounds float* %tmp21586, i64 1
+ %tmp21588 = getelementptr inbounds float* %tmp21587, i64 1
+ %tmp21589 = getelementptr inbounds float* %tmp21588, i64 1
+ %tmp21590 = getelementptr inbounds float* %tmp21589, i64 1
+ %tmp21591 = getelementptr inbounds float* %tmp21590, i64 1
+ %tmp21592 = getelementptr inbounds float* %tmp21591, i64 1
+ %tmp21593 = getelementptr inbounds float* %tmp21592, i64 1
+ %tmp21594 = getelementptr inbounds float* %tmp21593, i64 1
+ %tmp21595 = getelementptr inbounds float* %tmp21594, i64 1
+ %tmp21596 = getelementptr inbounds float* %tmp21595, i64 1
+ %tmp21597 = getelementptr inbounds float* %tmp21596, i64 1
+ %tmp21598 = getelementptr inbounds float* %tmp21597, i64 1
+ %tmp21599 = getelementptr inbounds float* %tmp21598, i64 1
+ %tmp21600 = getelementptr inbounds float* %tmp21599, i64 1
+ %tmp21601 = getelementptr inbounds float* %tmp21600, i64 1
+ %tmp21602 = getelementptr inbounds float* %tmp21601, i64 1
+ %tmp21603 = getelementptr inbounds float* %tmp21602, i64 1
+ %tmp21604 = getelementptr inbounds float* %tmp21603, i64 1
+ %tmp21605 = getelementptr inbounds float* %tmp21604, i64 1
+ %tmp21606 = getelementptr inbounds float* %tmp21605, i64 1
+ %tmp21607 = getelementptr inbounds float* %tmp21606, i64 1
+ %tmp21608 = getelementptr inbounds float* %tmp21607, i64 1
+ %tmp21609 = getelementptr inbounds float* %tmp21608, i64 1
+ %tmp21610 = getelementptr inbounds float* %tmp21609, i64 1
+ %tmp21611 = getelementptr inbounds float* %tmp21610, i64 1
+ %tmp21612 = getelementptr inbounds float* %tmp21611, i64 1
+ %tmp21613 = getelementptr inbounds float* %tmp21612, i64 1
+ %tmp21614 = getelementptr inbounds float* %tmp21613, i64 1
+ %tmp21615 = getelementptr inbounds float* %tmp21614, i64 1
+ %tmp21616 = getelementptr inbounds float* %tmp21615, i64 1
+ %tmp21617 = getelementptr inbounds float* %tmp21616, i64 1
+ %tmp21618 = getelementptr inbounds float* %tmp21617, i64 1
+ %tmp21619 = getelementptr inbounds float* %tmp21618, i64 1
+ %tmp21620 = getelementptr inbounds float* %tmp21619, i64 1
+ %tmp21621 = getelementptr inbounds float* %tmp21620, i64 1
+ %tmp21622 = getelementptr inbounds float* %tmp21621, i64 1
+ %tmp21623 = getelementptr inbounds float* %tmp21622, i64 1
+ %tmp21624 = getelementptr inbounds float* %tmp21623, i64 1
+ %tmp21625 = getelementptr inbounds float* %tmp21624, i64 1
+ %tmp21626 = getelementptr inbounds float* %tmp21625, i64 1
+ %tmp21627 = getelementptr inbounds float* %tmp21626, i64 1
+ %tmp21628 = getelementptr inbounds float* %tmp21627, i64 1
+ %tmp21629 = getelementptr inbounds float* %tmp21628, i64 1
+ %tmp21630 = getelementptr inbounds float* %tmp21629, i64 1
+ %tmp21631 = getelementptr inbounds float* %tmp21630, i64 1
+ %tmp21632 = getelementptr inbounds float* %tmp21631, i64 1
+ %tmp21633 = getelementptr inbounds float* %tmp21632, i64 1
+ %tmp21634 = getelementptr inbounds float* %tmp21633, i64 1
+ %tmp21635 = getelementptr inbounds float* %tmp21634, i64 1
+ %tmp21636 = getelementptr inbounds float* %tmp21635, i64 1
+ %tmp21637 = getelementptr inbounds float* %tmp21636, i64 1
+ %tmp21638 = getelementptr inbounds float* %tmp21637, i64 1
+ %tmp21639 = getelementptr inbounds float* %tmp21638, i64 1
+ %tmp21640 = getelementptr inbounds float* %tmp21639, i64 1
+ %tmp21641 = getelementptr inbounds float* %tmp21640, i64 1
+ %tmp21642 = getelementptr inbounds float* %tmp21641, i64 1
+ %tmp21643 = getelementptr inbounds float* %tmp21642, i64 1
+ %tmp21644 = getelementptr inbounds float* %tmp21643, i64 1
+ %tmp21645 = getelementptr inbounds float* %tmp21644, i64 1
+ %tmp21646 = getelementptr inbounds float* %tmp21645, i64 1
+ %tmp21647 = getelementptr inbounds float* %tmp21646, i64 1
+ %tmp21648 = getelementptr inbounds float* %tmp21647, i64 1
+ %tmp21649 = getelementptr inbounds float* %tmp21648, i64 1
+ %tmp21650 = getelementptr inbounds float* %tmp21649, i64 1
+ %tmp21651 = getelementptr inbounds float* %tmp21650, i64 1
+ %tmp21652 = getelementptr inbounds float* %tmp21651, i64 1
+ %tmp21653 = getelementptr inbounds float* %tmp21652, i64 1
+ %tmp21654 = getelementptr inbounds float* %tmp21653, i64 1
+ %tmp21655 = getelementptr inbounds float* %tmp21654, i64 1
+ %tmp21656 = getelementptr inbounds float* %tmp21655, i64 1
+ %tmp21657 = getelementptr inbounds float* %tmp21656, i64 1
+ %tmp21658 = getelementptr inbounds float* %tmp21657, i64 1
+ %tmp21659 = getelementptr inbounds float* %tmp21658, i64 1
+ %tmp21660 = getelementptr inbounds float* %tmp21659, i64 1
+ %tmp21661 = getelementptr inbounds float* %tmp21660, i64 1
+ %tmp21662 = getelementptr inbounds float* %tmp21661, i64 1
+ %tmp21663 = getelementptr inbounds float* %tmp21662, i64 1
+ %tmp21664 = getelementptr inbounds float* %tmp21663, i64 1
+ %tmp21665 = getelementptr inbounds float* %tmp21664, i64 1
+ %tmp21666 = getelementptr inbounds float* %tmp21665, i64 1
+ %tmp21667 = getelementptr inbounds float* %tmp21666, i64 1
+ %tmp21668 = getelementptr inbounds float* %tmp21667, i64 1
+ %tmp21669 = getelementptr inbounds float* %tmp21668, i64 1
+ %tmp21670 = getelementptr inbounds float* %tmp21669, i64 1
+ %tmp21671 = getelementptr inbounds float* %tmp21670, i64 1
+ %tmp21672 = getelementptr inbounds float* %tmp21671, i64 1
+ %tmp21673 = getelementptr inbounds float* %tmp21672, i64 1
+ %tmp21674 = getelementptr inbounds float* %tmp21673, i64 1
+ %tmp21675 = getelementptr inbounds float* %tmp21674, i64 1
+ %tmp21676 = getelementptr inbounds float* %tmp21675, i64 1
+ %tmp21677 = getelementptr inbounds float* %tmp21676, i64 1
+ %tmp21678 = getelementptr inbounds float* %tmp21677, i64 1
+ %tmp21679 = getelementptr inbounds float* %tmp21678, i64 1
+ %tmp21680 = getelementptr inbounds float* %tmp21679, i64 1
+ %tmp21681 = getelementptr inbounds float* %tmp21680, i64 1
+ %tmp21682 = getelementptr inbounds float* %tmp21681, i64 1
+ %tmp21683 = getelementptr inbounds float* %tmp21682, i64 1
+ %tmp21684 = getelementptr inbounds float* %tmp21683, i64 1
+ %tmp21685 = getelementptr inbounds float* %tmp21684, i64 1
+ %tmp21686 = getelementptr inbounds float* %tmp21685, i64 1
+ %tmp21687 = getelementptr inbounds float* %tmp21686, i64 1
+ %tmp21688 = getelementptr inbounds float* %tmp21687, i64 1
+ %tmp21689 = getelementptr inbounds float* %tmp21688, i64 1
+ %tmp21690 = getelementptr inbounds float* %tmp21689, i64 1
+ %tmp21691 = getelementptr inbounds float* %tmp21690, i64 1
+ %tmp21692 = getelementptr inbounds float* %tmp21691, i64 1
+ %tmp21693 = getelementptr inbounds float* %tmp21692, i64 1
+ %tmp21694 = getelementptr inbounds float* %tmp21693, i64 1
+ %tmp21695 = getelementptr inbounds float* %tmp21694, i64 1
+ %tmp21696 = getelementptr inbounds float* %tmp21695, i64 1
+ %tmp21697 = getelementptr inbounds float* %tmp21696, i64 1
+ %tmp21698 = getelementptr inbounds float* %tmp21697, i64 1
+ %tmp21699 = getelementptr inbounds float* %tmp21698, i64 1
+ %tmp21700 = getelementptr inbounds float* %tmp21699, i64 1
+ %tmp21701 = getelementptr inbounds float* %tmp21700, i64 1
+ %tmp21702 = getelementptr inbounds float* %tmp21701, i64 1
+ %tmp21703 = getelementptr inbounds float* %tmp21702, i64 1
+ %tmp21704 = getelementptr inbounds float* %tmp21703, i64 1
+ %tmp21705 = getelementptr inbounds float* %tmp21704, i64 1
+ %tmp21706 = getelementptr inbounds float* %tmp21705, i64 1
+ %tmp21707 = getelementptr inbounds float* %tmp21706, i64 1
+ %tmp21708 = getelementptr inbounds float* %tmp21707, i64 1
+ %tmp21709 = getelementptr inbounds float* %tmp21708, i64 1
+ %tmp21710 = getelementptr inbounds float* %tmp21709, i64 1
+ %tmp21711 = getelementptr inbounds float* %tmp21710, i64 1
+ %tmp21712 = getelementptr inbounds float* %tmp21711, i64 1
+ %tmp21713 = getelementptr inbounds float* %tmp21712, i64 1
+ %tmp21714 = getelementptr inbounds float* %tmp21713, i64 1
+ %tmp21715 = getelementptr inbounds float* %tmp21714, i64 1
+ %tmp21716 = getelementptr inbounds float* %tmp21715, i64 1
+ %tmp21717 = getelementptr inbounds float* %tmp21716, i64 1
+ %tmp21718 = getelementptr inbounds float* %tmp21717, i64 1
+ %tmp21719 = getelementptr inbounds float* %tmp21718, i64 1
+ %tmp21720 = getelementptr inbounds float* %tmp21719, i64 1
+ %tmp21721 = getelementptr inbounds float* %tmp21720, i64 1
+ %tmp21722 = getelementptr inbounds float* %tmp21721, i64 1
+ %tmp21723 = getelementptr inbounds float* %tmp21722, i64 1
+ %tmp21724 = getelementptr inbounds float* %tmp21723, i64 1
+ %tmp21725 = getelementptr inbounds float* %tmp21724, i64 1
+ %tmp21726 = getelementptr inbounds float* %tmp21725, i64 1
+ %tmp21727 = getelementptr inbounds float* %tmp21726, i64 1
+ %tmp21728 = getelementptr inbounds float* %tmp21727, i64 1
+ %tmp21729 = getelementptr inbounds float* %tmp21728, i64 1
+ %tmp21730 = getelementptr inbounds float* %tmp21729, i64 1
+ %tmp21731 = getelementptr inbounds float* %tmp21730, i64 1
+ %tmp21732 = getelementptr inbounds float* %tmp21731, i64 1
+ %tmp21733 = getelementptr inbounds float* %tmp21732, i64 1
+ %tmp21734 = getelementptr inbounds float* %tmp21733, i64 1
+ %tmp21735 = getelementptr inbounds float* %tmp21734, i64 1
+ %tmp21736 = getelementptr inbounds float* %tmp21735, i64 1
+ %tmp21737 = getelementptr inbounds float* %tmp21736, i64 1
+ %tmp21738 = getelementptr inbounds float* %tmp21737, i64 1
+ %tmp21739 = getelementptr inbounds float* %tmp21738, i64 1
+ %tmp21740 = getelementptr inbounds float* %tmp21739, i64 1
+ %tmp21741 = getelementptr inbounds float* %tmp21740, i64 1
+ %tmp21742 = getelementptr inbounds float* %tmp21741, i64 1
+ %tmp21743 = getelementptr inbounds float* %tmp21742, i64 1
+ %tmp21744 = getelementptr inbounds float* %tmp21743, i64 1
+ %tmp21745 = getelementptr inbounds float* %tmp21744, i64 1
+ %tmp21746 = getelementptr inbounds float* %tmp21745, i64 1
+ %tmp21747 = getelementptr inbounds float* %tmp21746, i64 1
+ %tmp21748 = getelementptr inbounds float* %tmp21747, i64 1
+ %tmp21749 = getelementptr inbounds float* %tmp21748, i64 1
+ %tmp21750 = getelementptr inbounds float* %tmp21749, i64 1
+ %tmp21751 = getelementptr inbounds float* %tmp21750, i64 1
+ %tmp21752 = getelementptr inbounds float* %tmp21751, i64 1
+ %tmp21753 = getelementptr inbounds float* %tmp21752, i64 1
+ %tmp21754 = getelementptr inbounds float* %tmp21753, i64 1
+ %tmp21755 = getelementptr inbounds float* %tmp21754, i64 1
+ %tmp21756 = getelementptr inbounds float* %tmp21755, i64 1
+ %tmp21757 = getelementptr inbounds float* %tmp21756, i64 1
+ %tmp21758 = getelementptr inbounds float* %tmp21757, i64 1
+ %tmp21759 = getelementptr inbounds float* %tmp21758, i64 1
+ %tmp21760 = getelementptr inbounds float* %tmp21759, i64 1
+ %tmp21761 = getelementptr inbounds float* %tmp21760, i64 1
+ %tmp21762 = getelementptr inbounds float* %tmp21761, i64 1
+ %tmp21763 = getelementptr inbounds float* %tmp21762, i64 1
+ %tmp21764 = getelementptr inbounds float* %tmp21763, i64 1
+ %tmp21765 = getelementptr inbounds float* %tmp21764, i64 1
+ %tmp21766 = getelementptr inbounds float* %tmp21765, i64 1
+ %tmp21767 = getelementptr inbounds float* %tmp21766, i64 1
+ %tmp21768 = getelementptr inbounds float* %tmp21767, i64 1
+ %tmp21769 = getelementptr inbounds float* %tmp21768, i64 1
+ %tmp21770 = getelementptr inbounds float* %tmp21769, i64 1
+ %tmp21771 = getelementptr inbounds float* %tmp21770, i64 1
+ %tmp21772 = getelementptr inbounds float* %tmp21771, i64 1
+ %tmp21773 = getelementptr inbounds float* %tmp21772, i64 1
+ %tmp21774 = getelementptr inbounds float* %tmp21773, i64 1
+ %tmp21775 = getelementptr inbounds float* %tmp21774, i64 1
+ %tmp21776 = getelementptr inbounds float* %tmp21775, i64 1
+ %tmp21777 = getelementptr inbounds float* %tmp21776, i64 1
+ %tmp21778 = getelementptr inbounds float* %tmp21777, i64 1
+ %tmp21779 = getelementptr inbounds float* %tmp21778, i64 1
+ %tmp21780 = getelementptr inbounds float* %tmp21779, i64 1
+ %tmp21781 = getelementptr inbounds float* %tmp21780, i64 1
+ %tmp21782 = getelementptr inbounds float* %tmp21781, i64 1
+ %tmp21783 = getelementptr inbounds float* %tmp21782, i64 1
+ %tmp21784 = getelementptr inbounds float* %tmp21783, i64 1
+ %tmp21785 = getelementptr inbounds float* %tmp21784, i64 1
+ %tmp21786 = getelementptr inbounds float* %tmp21785, i64 1
+ %tmp21787 = getelementptr inbounds float* %tmp21786, i64 1
+ %tmp21788 = getelementptr inbounds float* %tmp21787, i64 1
+ %tmp21789 = getelementptr inbounds float* %tmp21788, i64 1
+ %tmp21790 = getelementptr inbounds float* %tmp21789, i64 1
+ %tmp21791 = getelementptr inbounds float* %tmp21790, i64 1
+ %tmp21792 = getelementptr inbounds float* %tmp21791, i64 1
+ %tmp21793 = getelementptr inbounds float* %tmp21792, i64 1
+ %tmp21794 = getelementptr inbounds float* %tmp21793, i64 1
+ %tmp21795 = getelementptr inbounds float* %tmp21794, i64 1
+ %tmp21796 = getelementptr inbounds float* %tmp21795, i64 1
+ %tmp21797 = getelementptr inbounds float* %tmp21796, i64 1
+ %tmp21798 = getelementptr inbounds float* %tmp21797, i64 1
+ %tmp21799 = getelementptr inbounds float* %tmp21798, i64 1
+ %tmp21800 = getelementptr inbounds float* %tmp21799, i64 1
+ %tmp21801 = getelementptr inbounds float* %tmp21800, i64 1
+ %tmp21802 = getelementptr inbounds float* %tmp21801, i64 1
+ %tmp21803 = getelementptr inbounds float* %tmp21802, i64 1
+ %tmp21804 = getelementptr inbounds float* %tmp21803, i64 1
+ %tmp21805 = getelementptr inbounds float* %tmp21804, i64 1
+ %tmp21806 = getelementptr inbounds float* %tmp21805, i64 1
+ %tmp21807 = getelementptr inbounds float* %tmp21806, i64 1
+ %tmp21808 = getelementptr inbounds float* %tmp21807, i64 1
+ %tmp21809 = getelementptr inbounds float* %tmp21808, i64 1
+ %tmp21810 = getelementptr inbounds float* %tmp21809, i64 1
+ %tmp21811 = getelementptr inbounds float* %tmp21810, i64 1
+ %tmp21812 = getelementptr inbounds float* %tmp21811, i64 1
+ %tmp21813 = getelementptr inbounds float* %tmp21812, i64 1
+ %tmp21814 = getelementptr inbounds float* %tmp21813, i64 1
+ %tmp21815 = getelementptr inbounds float* %tmp21814, i64 1
+ %tmp21816 = getelementptr inbounds float* %tmp21815, i64 1
+ %tmp21817 = getelementptr inbounds float* %tmp21816, i64 1
+ %tmp21818 = getelementptr inbounds float* %tmp21817, i64 1
+ %tmp21819 = getelementptr inbounds float* %tmp21818, i64 1
+ %tmp21820 = getelementptr inbounds float* %tmp21819, i64 1
+ %tmp21821 = getelementptr inbounds float* %tmp21820, i64 1
+ %tmp21822 = getelementptr inbounds float* %tmp21821, i64 1
+ %tmp21823 = getelementptr inbounds float* %tmp21822, i64 1
+ %tmp21824 = getelementptr inbounds float* %tmp21823, i64 1
+ %tmp21825 = getelementptr inbounds float* %tmp21824, i64 1
+ %tmp21826 = getelementptr inbounds float* %tmp21825, i64 1
+ %tmp21827 = getelementptr inbounds float* %tmp21826, i64 1
+ %tmp21828 = getelementptr inbounds float* %tmp21827, i64 1
+ %tmp21829 = getelementptr inbounds float* %tmp21828, i64 1
+ %tmp21830 = getelementptr inbounds float* %tmp21829, i64 1
+ %tmp21831 = getelementptr inbounds float* %tmp21830, i64 1
+ %tmp21832 = getelementptr inbounds float* %tmp21831, i64 1
+ %tmp21833 = getelementptr inbounds float* %tmp21832, i64 1
+ %tmp21834 = getelementptr inbounds float* %tmp21833, i64 1
+ %tmp21835 = getelementptr inbounds float* %tmp21834, i64 1
+ %tmp21836 = getelementptr inbounds float* %tmp21835, i64 1
+ %tmp21837 = getelementptr inbounds float* %tmp21836, i64 1
+ %tmp21838 = getelementptr inbounds float* %tmp21837, i64 1
+ %tmp21839 = getelementptr inbounds float* %tmp21838, i64 1
+ %tmp21840 = getelementptr inbounds float* %tmp21839, i64 1
+ %tmp21841 = getelementptr inbounds float* %tmp21840, i64 1
+ %tmp21842 = getelementptr inbounds float* %tmp21841, i64 1
+ %tmp21843 = getelementptr inbounds float* %tmp21842, i64 1
+ %tmp21844 = getelementptr inbounds float* %tmp21843, i64 1
+ %tmp21845 = getelementptr inbounds float* %tmp21844, i64 1
+ %tmp21846 = getelementptr inbounds float* %tmp21845, i64 1
+ %tmp21847 = getelementptr inbounds float* %tmp21846, i64 1
+ %tmp21848 = getelementptr inbounds float* %tmp21847, i64 1
+ %tmp21849 = getelementptr inbounds float* %tmp21848, i64 1
+ %tmp21850 = getelementptr inbounds float* %tmp21849, i64 1
+ %tmp21851 = getelementptr inbounds float* %tmp21850, i64 1
+ %tmp21852 = getelementptr inbounds float* %tmp21851, i64 1
+ %tmp21853 = getelementptr inbounds float* %tmp21852, i64 1
+ %tmp21854 = getelementptr inbounds float* %tmp21853, i64 1
+ %tmp21855 = getelementptr inbounds float* %tmp21854, i64 1
+ %tmp21856 = getelementptr inbounds float* %tmp21855, i64 1
+ %tmp21857 = getelementptr inbounds float* %tmp21856, i64 1
+ %tmp21858 = getelementptr inbounds float* %tmp21857, i64 1
+ %tmp21859 = getelementptr inbounds float* %tmp21858, i64 1
+ %tmp21860 = getelementptr inbounds float* %tmp21859, i64 1
+ %tmp21861 = getelementptr inbounds float* %tmp21860, i64 1
+ %tmp21862 = getelementptr inbounds float* %tmp21861, i64 1
+ %tmp21863 = getelementptr inbounds float* %tmp21862, i64 1
+ %tmp21864 = getelementptr inbounds float* %tmp21863, i64 1
+ %tmp21865 = getelementptr inbounds float* %tmp21864, i64 1
+ %tmp21866 = getelementptr inbounds float* %tmp21865, i64 1
+ %tmp21867 = getelementptr inbounds float* %tmp21866, i64 1
+ %tmp21868 = getelementptr inbounds float* %tmp21867, i64 1
+ %tmp21869 = getelementptr inbounds float* %tmp21868, i64 1
+ %tmp21870 = getelementptr inbounds float* %tmp21869, i64 1
+ %tmp21871 = getelementptr inbounds float* %tmp21870, i64 1
+ %tmp21872 = getelementptr inbounds float* %tmp21871, i64 1
+ %tmp21873 = getelementptr inbounds float* %tmp21872, i64 1
+ %tmp21874 = getelementptr inbounds float* %tmp21873, i64 1
+ %tmp21875 = getelementptr inbounds float* %tmp21874, i64 1
+ %tmp21876 = getelementptr inbounds float* %tmp21875, i64 1
+ %tmp21877 = getelementptr inbounds float* %tmp21876, i64 1
+ %tmp21878 = getelementptr inbounds float* %tmp21877, i64 1
+ %tmp21879 = getelementptr inbounds float* %tmp21878, i64 1
+ %tmp21880 = getelementptr inbounds float* %tmp21879, i64 1
+ %tmp21881 = getelementptr inbounds float* %tmp21880, i64 1
+ %tmp21882 = getelementptr inbounds float* %tmp21881, i64 1
+ %tmp21883 = getelementptr inbounds float* %tmp21882, i64 1
+ %tmp21884 = getelementptr inbounds float* %tmp21883, i64 1
+ %tmp21885 = getelementptr inbounds float* %tmp21884, i64 1
+ %tmp21886 = getelementptr inbounds float* %tmp21885, i64 1
+ %tmp21887 = getelementptr inbounds float* %tmp21886, i64 1
+ %tmp21888 = getelementptr inbounds float* %tmp21887, i64 1
+ %tmp21889 = getelementptr inbounds float* %tmp21888, i64 1
+ %tmp21890 = getelementptr inbounds float* %tmp21889, i64 1
+ %tmp21891 = getelementptr inbounds float* %tmp21890, i64 1
+ %tmp21892 = getelementptr inbounds float* %tmp21891, i64 1
+ %tmp21893 = getelementptr inbounds float* %tmp21892, i64 1
+ %tmp21894 = getelementptr inbounds float* %tmp21893, i64 1
+ %tmp21895 = getelementptr inbounds float* %tmp21894, i64 1
+ %tmp21896 = getelementptr inbounds float* %tmp21895, i64 1
+ %tmp21897 = getelementptr inbounds float* %tmp21896, i64 1
+ %tmp21898 = getelementptr inbounds float* %tmp21897, i64 1
+ %tmp21899 = getelementptr inbounds float* %tmp21898, i64 1
+ %tmp21900 = getelementptr inbounds float* %tmp21899, i64 1
+ %tmp21901 = getelementptr inbounds float* %tmp21900, i64 1
+ %tmp21902 = getelementptr inbounds float* %tmp21901, i64 1
+ %tmp21903 = getelementptr inbounds float* %tmp21902, i64 1
+ %tmp21904 = getelementptr inbounds float* %tmp21903, i64 1
+ %tmp21905 = getelementptr inbounds float* %tmp21904, i64 1
+ %tmp21906 = getelementptr inbounds float* %tmp21905, i64 1
+ %tmp21907 = getelementptr inbounds float* %tmp21906, i64 1
+ %tmp21908 = getelementptr inbounds float* %tmp21907, i64 1
+ %tmp21909 = getelementptr inbounds float* %tmp21908, i64 1
+ %tmp21910 = getelementptr inbounds float* %tmp21909, i64 1
+ %tmp21911 = getelementptr inbounds float* %tmp21910, i64 1
+ %tmp21912 = getelementptr inbounds float* %tmp21911, i64 1
+ %tmp21913 = getelementptr inbounds float* %tmp21912, i64 1
+ %tmp21914 = getelementptr inbounds float* %tmp21913, i64 1
+ %tmp21915 = getelementptr inbounds float* %tmp21914, i64 1
+ %tmp21916 = getelementptr inbounds float* %tmp21915, i64 1
+ %tmp21917 = getelementptr inbounds float* %tmp21916, i64 1
+ %tmp21918 = getelementptr inbounds float* %tmp21917, i64 1
+ %tmp21919 = getelementptr inbounds float* %tmp21918, i64 1
+ %tmp21920 = getelementptr inbounds float* %tmp21919, i64 1
+ %tmp21921 = getelementptr inbounds float* %tmp21920, i64 1
+ %tmp21922 = getelementptr inbounds float* %tmp21921, i64 1
+ %tmp21923 = getelementptr inbounds float* %tmp21922, i64 1
+ %tmp21924 = getelementptr inbounds float* %tmp21923, i64 1
+ %tmp21925 = getelementptr inbounds float* %tmp21924, i64 1
+ %tmp21926 = getelementptr inbounds float* %tmp21925, i64 1
+ %tmp21927 = getelementptr inbounds float* %tmp21926, i64 1
+ %tmp21928 = getelementptr inbounds float* %tmp21927, i64 1
+ %tmp21929 = getelementptr inbounds float* %tmp21928, i64 1
+ %tmp21930 = getelementptr inbounds float* %tmp21929, i64 1
+ %tmp21931 = getelementptr inbounds float* %tmp21930, i64 1
+ %tmp21932 = getelementptr inbounds float* %tmp21931, i64 1
+ %tmp21933 = getelementptr inbounds float* %tmp21932, i64 1
+ %tmp21934 = getelementptr inbounds float* %tmp21933, i64 1
+ %tmp21935 = getelementptr inbounds float* %tmp21934, i64 1
+ %tmp21936 = getelementptr inbounds float* %tmp21935, i64 1
+ %tmp21937 = getelementptr inbounds float* %tmp21936, i64 1
+ %tmp21938 = getelementptr inbounds float* %tmp21937, i64 1
+ %tmp21939 = getelementptr inbounds float* %tmp21938, i64 1
+ %tmp21940 = getelementptr inbounds float* %tmp21939, i64 1
+ %tmp21941 = getelementptr inbounds float* %tmp21940, i64 1
+ %tmp21942 = getelementptr inbounds float* %tmp21941, i64 1
+ %tmp21943 = getelementptr inbounds float* %tmp21942, i64 1
+ %tmp21944 = getelementptr inbounds float* %tmp21943, i64 1
+ %tmp21945 = getelementptr inbounds float* %tmp21944, i64 1
+ %tmp21946 = getelementptr inbounds float* %tmp21945, i64 1
+ %tmp21947 = getelementptr inbounds float* %tmp21946, i64 1
+ %tmp21948 = getelementptr inbounds float* %tmp21947, i64 1
+ %tmp21949 = getelementptr inbounds float* %tmp21948, i64 1
+ %tmp21950 = getelementptr inbounds float* %tmp21949, i64 1
+ %tmp21951 = getelementptr inbounds float* %tmp21950, i64 1
+ %tmp21952 = getelementptr inbounds float* %tmp21951, i64 1
+ %tmp21953 = getelementptr inbounds float* %tmp21952, i64 1
+ %tmp21954 = getelementptr inbounds float* %tmp21953, i64 1
+ %tmp21955 = getelementptr inbounds float* %tmp21954, i64 1
+ %tmp21956 = getelementptr inbounds float* %tmp21955, i64 1
+ %tmp21957 = getelementptr inbounds float* %tmp21956, i64 1
+ %tmp21958 = getelementptr inbounds float* %tmp21957, i64 1
+ %tmp21959 = getelementptr inbounds float* %tmp21958, i64 1
+ %tmp21960 = getelementptr inbounds float* %tmp21959, i64 1
+ %tmp21961 = getelementptr inbounds float* %tmp21960, i64 1
+ %tmp21962 = getelementptr inbounds float* %tmp21961, i64 1
+ %tmp21963 = getelementptr inbounds float* %tmp21962, i64 1
+ %tmp21964 = getelementptr inbounds float* %tmp21963, i64 1
+ %tmp21965 = getelementptr inbounds float* %tmp21964, i64 1
+ %tmp21966 = getelementptr inbounds float* %tmp21965, i64 1
+ %tmp21967 = getelementptr inbounds float* %tmp21966, i64 1
+ %tmp21968 = getelementptr inbounds float* %tmp21967, i64 1
+ %tmp21969 = getelementptr inbounds float* %tmp21968, i64 1
+ %tmp21970 = getelementptr inbounds float* %tmp21969, i64 1
+ %tmp21971 = getelementptr inbounds float* %tmp21970, i64 1
+ %tmp21972 = getelementptr inbounds float* %tmp21971, i64 1
+ %tmp21973 = getelementptr inbounds float* %tmp21972, i64 1
+ %tmp21974 = getelementptr inbounds float* %tmp21973, i64 1
+ %tmp21975 = getelementptr inbounds float* %tmp21974, i64 1
+ %tmp21976 = getelementptr inbounds float* %tmp21975, i64 1
+ %tmp21977 = getelementptr inbounds float* %tmp21976, i64 1
+ %tmp21978 = getelementptr inbounds float* %tmp21977, i64 1
+ %tmp21979 = getelementptr inbounds float* %tmp21978, i64 1
+ %tmp21980 = getelementptr inbounds float* %tmp21979, i64 1
+ %tmp21981 = getelementptr inbounds float* %tmp21980, i64 1
+ %tmp21982 = getelementptr inbounds float* %tmp21981, i64 1
+ %tmp21983 = getelementptr inbounds float* %tmp21982, i64 1
+ %tmp21984 = getelementptr inbounds float* %tmp21983, i64 1
+ %tmp21985 = getelementptr inbounds float* %tmp21984, i64 1
+ %tmp21986 = getelementptr inbounds float* %tmp21985, i64 1
+ %tmp21987 = getelementptr inbounds float* %tmp21986, i64 1
+ %tmp21988 = getelementptr inbounds float* %tmp21987, i64 1
+ %tmp21989 = getelementptr inbounds float* %tmp21988, i64 1
+ %tmp21990 = getelementptr inbounds float* %tmp21989, i64 1
+ %tmp21991 = getelementptr inbounds float* %tmp21990, i64 1
+ %tmp21992 = getelementptr inbounds float* %tmp21991, i64 1
+ %tmp21993 = getelementptr inbounds float* %tmp21992, i64 1
+ %tmp21994 = getelementptr inbounds float* %tmp21993, i64 1
+ %tmp21995 = getelementptr inbounds float* %tmp21994, i64 1
+ %tmp21996 = getelementptr inbounds float* %tmp21995, i64 1
+ %tmp21997 = getelementptr inbounds float* %tmp21996, i64 1
+ %tmp21998 = getelementptr inbounds float* %tmp21997, i64 1
+ %tmp21999 = getelementptr inbounds float* %tmp21998, i64 1
+ %tmp22000 = getelementptr inbounds float* %tmp21999, i64 1
+ %tmp22001 = getelementptr inbounds float* %tmp22000, i64 1
+ %tmp22002 = getelementptr inbounds float* %tmp22001, i64 1
+ %tmp22003 = getelementptr inbounds float* %tmp22002, i64 1
+ %tmp22004 = getelementptr inbounds float* %tmp22003, i64 1
+ %tmp22005 = getelementptr inbounds float* %tmp22004, i64 1
+ %tmp22006 = getelementptr inbounds float* %tmp22005, i64 1
+ %tmp22007 = getelementptr inbounds float* %tmp22006, i64 1
+ %tmp22008 = getelementptr inbounds float* %tmp22007, i64 1
+ %tmp22009 = getelementptr inbounds float* %tmp22008, i64 1
+ %tmp22010 = getelementptr inbounds float* %tmp22009, i64 1
+ %tmp22011 = getelementptr inbounds float* %tmp22010, i64 1
+ %tmp22012 = getelementptr inbounds float* %tmp22011, i64 1
+ %tmp22013 = getelementptr inbounds float* %tmp22012, i64 1
+ %tmp22014 = getelementptr inbounds float* %tmp22013, i64 1
+ %tmp22015 = getelementptr inbounds float* %tmp22014, i64 1
+ %tmp22016 = getelementptr inbounds float* %tmp22015, i64 1
+ %tmp22017 = getelementptr inbounds float* %tmp22016, i64 1
+ %tmp22018 = getelementptr inbounds float* %tmp22017, i64 1
+ %tmp22019 = getelementptr inbounds float* %tmp22018, i64 1
+ %tmp22020 = getelementptr inbounds float* %tmp22019, i64 1
+ %tmp22021 = getelementptr inbounds float* %tmp22020, i64 1
+ %tmp22022 = getelementptr inbounds float* %tmp22021, i64 1
+ %tmp22023 = getelementptr inbounds float* %tmp22022, i64 1
+ %tmp22024 = getelementptr inbounds float* %tmp22023, i64 1
+ %tmp22025 = getelementptr inbounds float* %tmp22024, i64 1
+ %tmp22026 = getelementptr inbounds float* %tmp22025, i64 1
+ %tmp22027 = getelementptr inbounds float* %tmp22026, i64 1
+ %tmp22028 = getelementptr inbounds float* %tmp22027, i64 1
+ %tmp22029 = getelementptr inbounds float* %tmp22028, i64 1
+ %tmp22030 = getelementptr inbounds float* %tmp22029, i64 1
+ %tmp22031 = getelementptr inbounds float* %tmp22030, i64 1
+ %tmp22032 = getelementptr inbounds float* %tmp22031, i64 1
+ %tmp22033 = getelementptr inbounds float* %tmp22032, i64 1
+ %tmp22034 = getelementptr inbounds float* %tmp22033, i64 1
+ %tmp22035 = getelementptr inbounds float* %tmp22034, i64 1
+ %tmp22036 = getelementptr inbounds float* %tmp22035, i64 1
+ %tmp22037 = getelementptr inbounds float* %tmp22036, i64 1
+ %tmp22038 = getelementptr inbounds float* %tmp22037, i64 1
+ %tmp22039 = getelementptr inbounds float* %tmp22038, i64 1
+ %tmp22040 = getelementptr inbounds float* %tmp22039, i64 1
+ %tmp22041 = getelementptr inbounds float* %tmp22040, i64 1
+ %tmp22042 = getelementptr inbounds float* %tmp22041, i64 1
+ %tmp22043 = getelementptr inbounds float* %tmp22042, i64 1
+ %tmp22044 = getelementptr inbounds float* %tmp22043, i64 1
+ %tmp22045 = getelementptr inbounds float* %tmp22044, i64 1
+ %tmp22046 = getelementptr inbounds float* %tmp22045, i64 1
+ %tmp22047 = getelementptr inbounds float* %tmp22046, i64 1
+ %tmp22048 = getelementptr inbounds float* %tmp22047, i64 1
+ %tmp22049 = getelementptr inbounds float* %tmp22048, i64 1
+ %tmp22050 = getelementptr inbounds float* %tmp22049, i64 1
+ %tmp22051 = getelementptr inbounds float* %tmp22050, i64 1
+ %tmp22052 = getelementptr inbounds float* %tmp22051, i64 1
+ %tmp22053 = getelementptr inbounds float* %tmp22052, i64 1
+ %tmp22054 = getelementptr inbounds float* %tmp22053, i64 1
+ %tmp22055 = getelementptr inbounds float* %tmp22054, i64 1
+ %tmp22056 = getelementptr inbounds float* %tmp22055, i64 1
+ %tmp22057 = getelementptr inbounds float* %tmp22056, i64 1
+ %tmp22058 = getelementptr inbounds float* %tmp22057, i64 1
+ %tmp22059 = getelementptr inbounds float* %tmp22058, i64 1
+ %tmp22060 = getelementptr inbounds float* %tmp22059, i64 1
+ %tmp22061 = getelementptr inbounds float* %tmp22060, i64 1
+ %tmp22062 = getelementptr inbounds float* %tmp22061, i64 1
+ %tmp22063 = getelementptr inbounds float* %tmp22062, i64 1
+ %tmp22064 = getelementptr inbounds float* %tmp22063, i64 1
+ %tmp22065 = getelementptr inbounds float* %tmp22064, i64 1
+ %tmp22066 = getelementptr inbounds float* %tmp22065, i64 1
+ %tmp22067 = getelementptr inbounds float* %tmp22066, i64 1
+ %tmp22068 = getelementptr inbounds float* %tmp22067, i64 1
+ %tmp22069 = getelementptr inbounds float* %tmp22068, i64 1
+ %tmp22070 = getelementptr inbounds float* %tmp22069, i64 1
+ %tmp22071 = getelementptr inbounds float* %tmp22070, i64 1
+ %tmp22072 = getelementptr inbounds float* %tmp22071, i64 1
+ %tmp22073 = getelementptr inbounds float* %tmp22072, i64 1
+ %tmp22074 = getelementptr inbounds float* %tmp22073, i64 1
+ %tmp22075 = getelementptr inbounds float* %tmp22074, i64 1
+ %tmp22076 = getelementptr inbounds float* %tmp22075, i64 1
+ %tmp22077 = getelementptr inbounds float* %tmp22076, i64 1
+ %tmp22078 = getelementptr inbounds float* %tmp22077, i64 1
+ %tmp22079 = getelementptr inbounds float* %tmp22078, i64 1
+ %tmp22080 = getelementptr inbounds float* %tmp22079, i64 1
+ %tmp22081 = getelementptr inbounds float* %tmp22080, i64 1
+ %tmp22082 = getelementptr inbounds float* %tmp22081, i64 1
+ %tmp22083 = getelementptr inbounds float* %tmp22082, i64 1
+ %tmp22084 = getelementptr inbounds float* %tmp22083, i64 1
+ %tmp22085 = getelementptr inbounds float* %tmp22084, i64 1
+ %tmp22086 = getelementptr inbounds float* %tmp22085, i64 1
+ %tmp22087 = getelementptr inbounds float* %tmp22086, i64 1
+ %tmp22088 = getelementptr inbounds float* %tmp22087, i64 1
+ %tmp22089 = getelementptr inbounds float* %tmp22088, i64 1
+ %tmp22090 = getelementptr inbounds float* %tmp22089, i64 1
+ %tmp22091 = getelementptr inbounds float* %tmp22090, i64 1
+ %tmp22092 = getelementptr inbounds float* %tmp22091, i64 1
+ %tmp22093 = getelementptr inbounds float* %tmp22092, i64 1
+ %tmp22094 = getelementptr inbounds float* %tmp22093, i64 1
+ %tmp22095 = getelementptr inbounds float* %tmp22094, i64 1
+ %tmp22096 = getelementptr inbounds float* %tmp22095, i64 1
+ %tmp22097 = getelementptr inbounds float* %tmp22096, i64 1
+ %tmp22098 = getelementptr inbounds float* %tmp22097, i64 1
+ %tmp22099 = getelementptr inbounds float* %tmp22098, i64 1
+ %tmp22100 = getelementptr inbounds float* %tmp22099, i64 1
+ %tmp22101 = getelementptr inbounds float* %tmp22100, i64 1
+ %tmp22102 = getelementptr inbounds float* %tmp22101, i64 1
+ %tmp22103 = getelementptr inbounds float* %tmp22102, i64 1
+ %tmp22104 = getelementptr inbounds float* %tmp22103, i64 1
+ %tmp22105 = getelementptr inbounds float* %tmp22104, i64 1
+ %tmp22106 = getelementptr inbounds float* %tmp22105, i64 1
+ %tmp22107 = getelementptr inbounds float* %tmp22106, i64 1
+ %tmp22108 = getelementptr inbounds float* %tmp22107, i64 1
+ %tmp22109 = getelementptr inbounds float* %tmp22108, i64 1
+ %tmp22110 = getelementptr inbounds float* %tmp22109, i64 1
+ %tmp22111 = getelementptr inbounds float* %tmp22110, i64 1
+ %tmp22112 = getelementptr inbounds float* %tmp22111, i64 1
+ %tmp22113 = getelementptr inbounds float* %tmp22112, i64 1
+ %tmp22114 = getelementptr inbounds float* %tmp22113, i64 1
+ %tmp22115 = getelementptr inbounds float* %tmp22114, i64 1
+ %tmp22116 = getelementptr inbounds float* %tmp22115, i64 1
+ %tmp22117 = getelementptr inbounds float* %tmp22116, i64 1
+ %tmp22118 = getelementptr inbounds float* %tmp22117, i64 1
+ %tmp22119 = getelementptr inbounds float* %tmp22118, i64 1
+ %tmp22120 = getelementptr inbounds float* %tmp22119, i64 1
+ %tmp22121 = getelementptr inbounds float* %tmp22120, i64 1
+ %tmp22122 = getelementptr inbounds float* %tmp22121, i64 1
+ %tmp22123 = getelementptr inbounds float* %tmp22122, i64 1
+ %tmp22124 = getelementptr inbounds float* %tmp22123, i64 1
+ %tmp22125 = getelementptr inbounds float* %tmp22124, i64 1
+ %tmp22126 = getelementptr inbounds float* %tmp22125, i64 1
+ %tmp22127 = getelementptr inbounds float* %tmp22126, i64 1
+ %tmp22128 = getelementptr inbounds float* %tmp22127, i64 1
+ %tmp22129 = getelementptr inbounds float* %tmp22128, i64 1
+ %tmp22130 = getelementptr inbounds float* %tmp22129, i64 1
+ %tmp22131 = getelementptr inbounds float* %tmp22130, i64 1
+ %tmp22132 = getelementptr inbounds float* %tmp22131, i64 1
+ %tmp22133 = getelementptr inbounds float* %tmp22132, i64 1
+ %tmp22134 = getelementptr inbounds float* %tmp22133, i64 1
+ %tmp22135 = getelementptr inbounds float* %tmp22134, i64 1
+ %tmp22136 = getelementptr inbounds float* %tmp22135, i64 1
+ %tmp22137 = getelementptr inbounds float* %tmp22136, i64 1
+ %tmp22138 = getelementptr inbounds float* %tmp22137, i64 1
+ %tmp22139 = getelementptr inbounds float* %tmp22138, i64 1
+ %tmp22140 = getelementptr inbounds float* %tmp22139, i64 1
+ %tmp22141 = getelementptr inbounds float* %tmp22140, i64 1
+ %tmp22142 = getelementptr inbounds float* %tmp22141, i64 1
+ %tmp22143 = getelementptr inbounds float* %tmp22142, i64 1
+ %tmp22144 = getelementptr inbounds float* %tmp22143, i64 1
+ %tmp22145 = getelementptr inbounds float* %tmp22144, i64 1
+ %tmp22146 = getelementptr inbounds float* %tmp22145, i64 1
+ %tmp22147 = getelementptr inbounds float* %tmp22146, i64 1
+ %tmp22148 = getelementptr inbounds float* %tmp22147, i64 1
+ %tmp22149 = getelementptr inbounds float* %tmp22148, i64 1
+ %tmp22150 = getelementptr inbounds float* %tmp22149, i64 1
+ %tmp22151 = getelementptr inbounds float* %tmp22150, i64 1
+ %tmp22152 = getelementptr inbounds float* %tmp22151, i64 1
+ %tmp22153 = getelementptr inbounds float* %tmp22152, i64 1
+ %tmp22154 = getelementptr inbounds float* %tmp22153, i64 1
+ %tmp22155 = getelementptr inbounds float* %tmp22154, i64 1
+ %tmp22156 = getelementptr inbounds float* %tmp22155, i64 1
+ %tmp22157 = getelementptr inbounds float* %tmp22156, i64 1
+ %tmp22158 = getelementptr inbounds float* %tmp22157, i64 1
+ %tmp22159 = getelementptr inbounds float* %tmp22158, i64 1
+ %tmp22160 = getelementptr inbounds float* %tmp22159, i64 1
+ %tmp22161 = getelementptr inbounds float* %tmp22160, i64 1
+ %tmp22162 = getelementptr inbounds float* %tmp22161, i64 1
+ %tmp22163 = getelementptr inbounds float* %tmp22162, i64 1
+ %tmp22164 = getelementptr inbounds float* %tmp22163, i64 1
+ %tmp22165 = getelementptr inbounds float* %tmp22164, i64 1
+ %tmp22166 = getelementptr inbounds float* %tmp22165, i64 1
+ %tmp22167 = getelementptr inbounds float* %tmp22166, i64 1
+ %tmp22168 = getelementptr inbounds float* %tmp22167, i64 1
+ %tmp22169 = getelementptr inbounds float* %tmp22168, i64 1
+ %tmp22170 = getelementptr inbounds float* %tmp22169, i64 1
+ %tmp22171 = getelementptr inbounds float* %tmp22170, i64 1
+ %tmp22172 = getelementptr inbounds float* %tmp22171, i64 1
+ %tmp22173 = getelementptr inbounds float* %tmp22172, i64 1
+ %tmp22174 = getelementptr inbounds float* %tmp22173, i64 1
+ %tmp22175 = getelementptr inbounds float* %tmp22174, i64 1
+ %tmp22176 = getelementptr inbounds float* %tmp22175, i64 1
+ %tmp22177 = getelementptr inbounds float* %tmp22176, i64 1
+ %tmp22178 = getelementptr inbounds float* %tmp22177, i64 1
+ %tmp22179 = getelementptr inbounds float* %tmp22178, i64 1
+ %tmp22180 = getelementptr inbounds float* %tmp22179, i64 1
+ %tmp22181 = getelementptr inbounds float* %tmp22180, i64 1
+ %tmp22182 = getelementptr inbounds float* %tmp22181, i64 1
+ %tmp22183 = getelementptr inbounds float* %tmp22182, i64 1
+ %tmp22184 = getelementptr inbounds float* %tmp22183, i64 1
+ %tmp22185 = getelementptr inbounds float* %tmp22184, i64 1
+ %tmp22186 = getelementptr inbounds float* %tmp22185, i64 1
+ %tmp22187 = getelementptr inbounds float* %tmp22186, i64 1
+ %tmp22188 = getelementptr inbounds float* %tmp22187, i64 1
+ %tmp22189 = getelementptr inbounds float* %tmp22188, i64 1
+ %tmp22190 = getelementptr inbounds float* %tmp22189, i64 1
+ %tmp22191 = getelementptr inbounds float* %tmp22190, i64 1
+ %tmp22192 = getelementptr inbounds float* %tmp22191, i64 1
+ %tmp22193 = getelementptr inbounds float* %tmp22192, i64 1
+ %tmp22194 = getelementptr inbounds float* %tmp22193, i64 1
+ %tmp22195 = getelementptr inbounds float* %tmp22194, i64 1
+ %tmp22196 = getelementptr inbounds float* %tmp22195, i64 1
+ %tmp22197 = getelementptr inbounds float* %tmp22196, i64 1
+ %tmp22198 = getelementptr inbounds float* %tmp22197, i64 1
+ %tmp22199 = getelementptr inbounds float* %tmp22198, i64 1
+ %tmp22200 = getelementptr inbounds float* %tmp22199, i64 1
+ %tmp22201 = getelementptr inbounds float* %tmp22200, i64 1
+ %tmp22202 = getelementptr inbounds float* %tmp22201, i64 1
+ %tmp22203 = getelementptr inbounds float* %tmp22202, i64 1
+ %tmp22204 = getelementptr inbounds float* %tmp22203, i64 1
+ %tmp22205 = getelementptr inbounds float* %tmp22204, i64 1
+ %tmp22206 = getelementptr inbounds float* %tmp22205, i64 1
+ %tmp22207 = getelementptr inbounds float* %tmp22206, i64 1
+ %tmp22208 = getelementptr inbounds float* %tmp22207, i64 1
+ %tmp22209 = getelementptr inbounds float* %tmp22208, i64 1
+ %tmp22210 = getelementptr inbounds float* %tmp22209, i64 1
+ %tmp22211 = getelementptr inbounds float* %tmp22210, i64 1
+ %tmp22212 = getelementptr inbounds float* %tmp22211, i64 1
+ %tmp22213 = getelementptr inbounds float* %tmp22212, i64 1
+ %tmp22214 = getelementptr inbounds float* %tmp22213, i64 1
+ %tmp22215 = getelementptr inbounds float* %tmp22214, i64 1
+ %tmp22216 = getelementptr inbounds float* %tmp22215, i64 1
+ %tmp22217 = getelementptr inbounds float* %tmp22216, i64 1
+ %tmp22218 = getelementptr inbounds float* %tmp22217, i64 1
+ %tmp22219 = getelementptr inbounds float* %tmp22218, i64 1
+ %tmp22220 = getelementptr inbounds float* %tmp22219, i64 1
+ %tmp22221 = getelementptr inbounds float* %tmp22220, i64 1
+ %tmp22222 = getelementptr inbounds float* %tmp22221, i64 1
+ %tmp22223 = getelementptr inbounds float* %tmp22222, i64 1
+ %tmp22224 = getelementptr inbounds float* %tmp22223, i64 1
+ %tmp22225 = getelementptr inbounds float* %tmp22224, i64 1
+ %tmp22226 = getelementptr inbounds float* %tmp22225, i64 1
+ %tmp22227 = getelementptr inbounds float* %tmp22226, i64 1
+ %tmp22228 = getelementptr inbounds float* %tmp22227, i64 1
+ %tmp22229 = getelementptr inbounds float* %tmp22228, i64 1
+ %tmp22230 = getelementptr inbounds float* %tmp22229, i64 1
+ %tmp22231 = getelementptr inbounds float* %tmp22230, i64 1
+ %tmp22232 = getelementptr inbounds float* %tmp22231, i64 1
+ %tmp22233 = getelementptr inbounds float* %tmp22232, i64 1
+ %tmp22234 = getelementptr inbounds float* %tmp22233, i64 1
+ %tmp22235 = getelementptr inbounds float* %tmp22234, i64 1
+ %tmp22236 = getelementptr inbounds float* %tmp22235, i64 1
+ %tmp22237 = getelementptr inbounds float* %tmp22236, i64 1
+ %tmp22238 = getelementptr inbounds float* %tmp22237, i64 1
+ %tmp22239 = getelementptr inbounds float* %tmp22238, i64 1
+ %tmp22240 = getelementptr inbounds float* %tmp22239, i64 1
+ %tmp22241 = getelementptr inbounds float* %tmp22240, i64 1
+ %tmp22242 = getelementptr inbounds float* %tmp22241, i64 1
+ %tmp22243 = getelementptr inbounds float* %tmp22242, i64 1
+ %tmp22244 = getelementptr inbounds float* %tmp22243, i64 1
+ %tmp22245 = getelementptr inbounds float* %tmp22244, i64 1
+ %tmp22246 = getelementptr inbounds float* %tmp22245, i64 1
+ %tmp22247 = getelementptr inbounds float* %tmp22246, i64 1
+ %tmp22248 = getelementptr inbounds float* %tmp22247, i64 1
+ %tmp22249 = getelementptr inbounds float* %tmp22248, i64 1
+ %tmp22250 = getelementptr inbounds float* %tmp22249, i64 1
+ %tmp22251 = getelementptr inbounds float* %tmp22250, i64 1
+ %tmp22252 = getelementptr inbounds float* %tmp22251, i64 1
+ %tmp22253 = getelementptr inbounds float* %tmp22252, i64 1
+ %tmp22254 = getelementptr inbounds float* %tmp22253, i64 1
+ %tmp22255 = getelementptr inbounds float* %tmp22254, i64 1
+ %tmp22256 = getelementptr inbounds float* %tmp22255, i64 1
+ %tmp22257 = getelementptr inbounds float* %tmp22256, i64 1
+ %tmp22258 = getelementptr inbounds float* %tmp22257, i64 1
+ %tmp22259 = getelementptr inbounds float* %tmp22258, i64 1
+ %tmp22260 = getelementptr inbounds float* %tmp22259, i64 1
+ %tmp22261 = getelementptr inbounds float* %tmp22260, i64 1
+ %tmp22262 = getelementptr inbounds float* %tmp22261, i64 1
+ %tmp22263 = getelementptr inbounds float* %tmp22262, i64 1
+ %tmp22264 = getelementptr inbounds float* %tmp22263, i64 1
+ %tmp22265 = getelementptr inbounds float* %tmp22264, i64 1
+ %tmp22266 = getelementptr inbounds float* %tmp22265, i64 1
+ %tmp22267 = getelementptr inbounds float* %tmp22266, i64 1
+ %tmp22268 = getelementptr inbounds float* %tmp22267, i64 1
+ %tmp22269 = getelementptr inbounds float* %tmp22268, i64 1
+ %tmp22270 = getelementptr inbounds float* %tmp22269, i64 1
+ %tmp22271 = getelementptr inbounds float* %tmp22270, i64 1
+ %tmp22272 = getelementptr inbounds float* %tmp22271, i64 1
+ %tmp22273 = getelementptr inbounds float* %tmp22272, i64 1
+ %tmp22274 = getelementptr inbounds float* %tmp22273, i64 1
+ %tmp22275 = getelementptr inbounds float* %tmp22274, i64 1
+ %tmp22276 = getelementptr inbounds float* %tmp22275, i64 1
+ %tmp22277 = getelementptr inbounds float* %tmp22276, i64 1
+ %tmp22278 = getelementptr inbounds float* %tmp22277, i64 1
+ %tmp22279 = getelementptr inbounds float* %tmp22278, i64 1
+ %tmp22280 = getelementptr inbounds float* %tmp22279, i64 1
+ %tmp22281 = getelementptr inbounds float* %tmp22280, i64 1
+ %tmp22282 = getelementptr inbounds float* %tmp22281, i64 1
+ %tmp22283 = getelementptr inbounds float* %tmp22282, i64 1
+ %tmp22284 = getelementptr inbounds float* %tmp22283, i64 1
+ %tmp22285 = getelementptr inbounds float* %tmp22284, i64 1
+ %tmp22286 = getelementptr inbounds float* %tmp22285, i64 1
+ %tmp22287 = getelementptr inbounds float* %tmp22286, i64 1
+ %tmp22288 = getelementptr inbounds float* %tmp22287, i64 1
+ %tmp22289 = getelementptr inbounds float* %tmp22288, i64 1
+ %tmp22290 = getelementptr inbounds float* %tmp22289, i64 1
+ %tmp22291 = getelementptr inbounds float* %tmp22290, i64 1
+ %tmp22292 = getelementptr inbounds float* %tmp22291, i64 1
+ %tmp22293 = getelementptr inbounds float* %tmp22292, i64 1
+ %tmp22294 = getelementptr inbounds float* %tmp22293, i64 1
+ %tmp22295 = getelementptr inbounds float* %tmp22294, i64 1
+ %tmp22296 = getelementptr inbounds float* %tmp22295, i64 1
+ %tmp22297 = getelementptr inbounds float* %tmp22296, i64 1
+ %tmp22298 = getelementptr inbounds float* %tmp22297, i64 1
+ %tmp22299 = getelementptr inbounds float* %tmp22298, i64 1
+ %tmp22300 = getelementptr inbounds float* %tmp22299, i64 1
+ %tmp22301 = getelementptr inbounds float* %tmp22300, i64 1
+ %tmp22302 = getelementptr inbounds float* %tmp22301, i64 1
+ %tmp22303 = getelementptr inbounds float* %tmp22302, i64 1
+ %tmp22304 = getelementptr inbounds float* %tmp22303, i64 1
+ %tmp22305 = getelementptr inbounds float* %tmp22304, i64 1
+ %tmp22306 = getelementptr inbounds float* %tmp22305, i64 1
+ %tmp22307 = getelementptr inbounds float* %tmp22306, i64 1
+ %tmp22308 = getelementptr inbounds float* %tmp22307, i64 1
+ %tmp22309 = getelementptr inbounds float* %tmp22308, i64 1
+ %tmp22310 = getelementptr inbounds float* %tmp22309, i64 1
+ %tmp22311 = getelementptr inbounds float* %tmp22310, i64 1
+ %tmp22312 = getelementptr inbounds float* %tmp22311, i64 1
+ %tmp22313 = getelementptr inbounds float* %tmp22312, i64 1
+ %tmp22314 = getelementptr inbounds float* %tmp22313, i64 1
+ %tmp22315 = getelementptr inbounds float* %tmp22314, i64 1
+ %tmp22316 = getelementptr inbounds float* %tmp22315, i64 1
+ %tmp22317 = getelementptr inbounds float* %tmp22316, i64 1
+ %tmp22318 = getelementptr inbounds float* %tmp22317, i64 1
+ %tmp22319 = getelementptr inbounds float* %tmp22318, i64 1
+ %tmp22320 = getelementptr inbounds float* %tmp22319, i64 1
+ %tmp22321 = getelementptr inbounds float* %tmp22320, i64 1
+ %tmp22322 = getelementptr inbounds float* %tmp22321, i64 1
+ %tmp22323 = getelementptr inbounds float* %tmp22322, i64 1
+ %tmp22324 = getelementptr inbounds float* %tmp22323, i64 1
+ %tmp22325 = getelementptr inbounds float* %tmp22324, i64 1
+ %tmp22326 = getelementptr inbounds float* %tmp22325, i64 1
+ %tmp22327 = getelementptr inbounds float* %tmp22326, i64 1
+ %tmp22328 = getelementptr inbounds float* %tmp22327, i64 1
+ %tmp22329 = getelementptr inbounds float* %tmp22328, i64 1
+ %tmp22330 = getelementptr inbounds float* %tmp22329, i64 1
+ %tmp22331 = getelementptr inbounds float* %tmp22330, i64 1
+ %tmp22332 = getelementptr inbounds float* %tmp22331, i64 1
+ %tmp22333 = getelementptr inbounds float* %tmp22332, i64 1
+ %tmp22334 = getelementptr inbounds float* %tmp22333, i64 1
+ %tmp22335 = getelementptr inbounds float* %tmp22334, i64 1
+ %tmp22336 = getelementptr inbounds float* %tmp22335, i64 1
+ %tmp22337 = getelementptr inbounds float* %tmp22336, i64 1
+ %tmp22338 = getelementptr inbounds float* %tmp22337, i64 1
+ %tmp22339 = getelementptr inbounds float* %tmp22338, i64 1
+ %tmp22340 = getelementptr inbounds float* %tmp22339, i64 1
+ %tmp22341 = getelementptr inbounds float* %tmp22340, i64 1
+ %tmp22342 = getelementptr inbounds float* %tmp22341, i64 1
+ %tmp22343 = getelementptr inbounds float* %tmp22342, i64 1
+ %tmp22344 = getelementptr inbounds float* %tmp22343, i64 1
+ %tmp22345 = getelementptr inbounds float* %tmp22344, i64 1
+ %tmp22346 = getelementptr inbounds float* %tmp22345, i64 1
+ %tmp22347 = getelementptr inbounds float* %tmp22346, i64 1
+ %tmp22348 = getelementptr inbounds float* %tmp22347, i64 1
+ %tmp22349 = getelementptr inbounds float* %tmp22348, i64 1
+ %tmp22350 = getelementptr inbounds float* %tmp22349, i64 1
+ %tmp22351 = getelementptr inbounds float* %tmp22350, i64 1
+ %tmp22352 = getelementptr inbounds float* %tmp22351, i64 1
+ %tmp22353 = getelementptr inbounds float* %tmp22352, i64 1
+ %tmp22354 = getelementptr inbounds float* %tmp22353, i64 1
+ %tmp22355 = getelementptr inbounds float* %tmp22354, i64 1
+ %tmp22356 = getelementptr inbounds float* %tmp22355, i64 1
+ %tmp22357 = getelementptr inbounds float* %tmp22356, i64 1
+ %tmp22358 = getelementptr inbounds float* %tmp22357, i64 1
+ %tmp22359 = getelementptr inbounds float* %tmp22358, i64 1
+ %tmp22360 = getelementptr inbounds float* %tmp22359, i64 1
+ %tmp22361 = getelementptr inbounds float* %tmp22360, i64 1
+ %tmp22362 = getelementptr inbounds float* %tmp22361, i64 1
+ %tmp22363 = getelementptr inbounds float* %tmp22362, i64 1
+ %tmp22364 = getelementptr inbounds float* %tmp22363, i64 1
+ %tmp22365 = getelementptr inbounds float* %tmp22364, i64 1
+ %tmp22366 = getelementptr inbounds float* %tmp22365, i64 1
+ %tmp22367 = getelementptr inbounds float* %tmp22366, i64 1
+ %tmp22368 = getelementptr inbounds float* %tmp22367, i64 1
+ %tmp22369 = getelementptr inbounds float* %tmp22368, i64 1
+ %tmp22370 = getelementptr inbounds float* %tmp22369, i64 1
+ %tmp22371 = getelementptr inbounds float* %tmp22370, i64 1
+ %tmp22372 = getelementptr inbounds float* %tmp22371, i64 1
+ %tmp22373 = getelementptr inbounds float* %tmp22372, i64 1
+ %tmp22374 = getelementptr inbounds float* %tmp22373, i64 1
+ %tmp22375 = getelementptr inbounds float* %tmp22374, i64 1
+ %tmp22376 = getelementptr inbounds float* %tmp22375, i64 1
+ %tmp22377 = getelementptr inbounds float* %tmp22376, i64 1
+ %tmp22378 = getelementptr inbounds float* %tmp22377, i64 1
+ %tmp22379 = getelementptr inbounds float* %tmp22378, i64 1
+ %tmp22380 = getelementptr inbounds float* %tmp22379, i64 1
+ %tmp22381 = getelementptr inbounds float* %tmp22380, i64 1
+ %tmp22382 = getelementptr inbounds float* %tmp22381, i64 1
+ %tmp22383 = getelementptr inbounds float* %tmp22382, i64 1
+ %tmp22384 = getelementptr inbounds float* %tmp22383, i64 1
+ %tmp22385 = getelementptr inbounds float* %tmp22384, i64 1
+ %tmp22386 = getelementptr inbounds float* %tmp22385, i64 1
+ %tmp22387 = getelementptr inbounds float* %tmp22386, i64 1
+ %tmp22388 = getelementptr inbounds float* %tmp22387, i64 1
+ %tmp22389 = getelementptr inbounds float* %tmp22388, i64 1
+ %tmp22390 = getelementptr inbounds float* %tmp22389, i64 1
+ %tmp22391 = getelementptr inbounds float* %tmp22390, i64 1
+ %tmp22392 = getelementptr inbounds float* %tmp22391, i64 1
+ %tmp22393 = getelementptr inbounds float* %tmp22392, i64 1
+ %tmp22394 = getelementptr inbounds float* %tmp22393, i64 1
+ %tmp22395 = getelementptr inbounds float* %tmp22394, i64 1
+ %tmp22396 = getelementptr inbounds float* %tmp22395, i64 1
+ %tmp22397 = getelementptr inbounds float* %tmp22396, i64 1
+ %tmp22398 = getelementptr inbounds float* %tmp22397, i64 1
+ %tmp22399 = getelementptr inbounds float* %tmp22398, i64 1
+ %tmp22400 = getelementptr inbounds float* %tmp22399, i64 1
+ %tmp22401 = getelementptr inbounds float* %tmp22400, i64 1
+ %tmp22402 = getelementptr inbounds float* %tmp22401, i64 1
+ %tmp22403 = getelementptr inbounds float* %tmp22402, i64 1
+ %tmp22404 = getelementptr inbounds float* %tmp22403, i64 1
+ %tmp22405 = getelementptr inbounds float* %tmp22404, i64 1
+ %tmp22406 = getelementptr inbounds float* %tmp22405, i64 1
+ %tmp22407 = getelementptr inbounds float* %tmp22406, i64 1
+ %tmp22408 = getelementptr inbounds float* %tmp22407, i64 1
+ %tmp22409 = getelementptr inbounds float* %tmp22408, i64 1
+ %tmp22410 = getelementptr inbounds float* %tmp22409, i64 1
+ %tmp22411 = getelementptr inbounds float* %tmp22410, i64 1
+ %tmp22412 = getelementptr inbounds float* %tmp22411, i64 1
+ %tmp22413 = getelementptr inbounds float* %tmp22412, i64 1
+ %tmp22414 = getelementptr inbounds float* %tmp22413, i64 1
+ %tmp22415 = getelementptr inbounds float* %tmp22414, i64 1
+ %tmp22416 = getelementptr inbounds float* %tmp22415, i64 1
+ %tmp22417 = getelementptr inbounds float* %tmp22416, i64 1
+ %tmp22418 = getelementptr inbounds float* %tmp22417, i64 1
+ %tmp22419 = getelementptr inbounds float* %tmp22418, i64 1
+ %tmp22420 = getelementptr inbounds float* %tmp22419, i64 1
+ %tmp22421 = getelementptr inbounds float* %tmp22420, i64 1
+ %tmp22422 = getelementptr inbounds float* %tmp22421, i64 1
+ %tmp22423 = getelementptr inbounds float* %tmp22422, i64 1
+ %tmp22424 = getelementptr inbounds float* %tmp22423, i64 1
+ %tmp22425 = getelementptr inbounds float* %tmp22424, i64 1
+ %tmp22426 = getelementptr inbounds float* %tmp22425, i64 1
+ %tmp22427 = getelementptr inbounds float* %tmp22426, i64 1
+ %tmp22428 = getelementptr inbounds float* %tmp22427, i64 1
+ %tmp22429 = getelementptr inbounds float* %tmp22428, i64 1
+ %tmp22430 = getelementptr inbounds float* %tmp22429, i64 1
+ %tmp22431 = getelementptr inbounds float* %tmp22430, i64 1
+ %tmp22432 = getelementptr inbounds float* %tmp22431, i64 1
+ %tmp22433 = getelementptr inbounds float* %tmp22432, i64 1
+ %tmp22434 = getelementptr inbounds float* %tmp22433, i64 1
+ %tmp22435 = getelementptr inbounds float* %tmp22434, i64 1
+ %tmp22436 = getelementptr inbounds float* %tmp22435, i64 1
+ %tmp22437 = getelementptr inbounds float* %tmp22436, i64 1
+ %tmp22438 = getelementptr inbounds float* %tmp22437, i64 1
+ %tmp22439 = getelementptr inbounds float* %tmp22438, i64 1
+ %tmp22440 = getelementptr inbounds float* %tmp22439, i64 1
+ %tmp22441 = getelementptr inbounds float* %tmp22440, i64 1
+ %tmp22442 = getelementptr inbounds float* %tmp22441, i64 1
+ %tmp22443 = getelementptr inbounds float* %tmp22442, i64 1
+ %tmp22444 = getelementptr inbounds float* %tmp22443, i64 1
+ %tmp22445 = getelementptr inbounds float* %tmp22444, i64 1
+ %tmp22446 = getelementptr inbounds float* %tmp22445, i64 1
+ %tmp22447 = getelementptr inbounds float* %tmp22446, i64 1
+ %tmp22448 = getelementptr inbounds float* %tmp22447, i64 1
+ %tmp22449 = getelementptr inbounds float* %tmp22448, i64 1
+ %tmp22450 = getelementptr inbounds float* %tmp22449, i64 1
+ %tmp22451 = getelementptr inbounds float* %tmp22450, i64 1
+ %tmp22452 = getelementptr inbounds float* %tmp22451, i64 1
+ %tmp22453 = getelementptr inbounds float* %tmp22452, i64 1
+ %tmp22454 = getelementptr inbounds float* %tmp22453, i64 1
+ %tmp22455 = getelementptr inbounds float* %tmp22454, i64 1
+ %tmp22456 = getelementptr inbounds float* %tmp22455, i64 1
+ %tmp22457 = getelementptr inbounds float* %tmp22456, i64 1
+ %tmp22458 = getelementptr inbounds float* %tmp22457, i64 1
+ %tmp22459 = getelementptr inbounds float* %tmp22458, i64 1
+ %tmp22460 = getelementptr inbounds float* %tmp22459, i64 1
+ %tmp22461 = getelementptr inbounds float* %tmp22460, i64 1
+ %tmp22462 = getelementptr inbounds float* %tmp22461, i64 1
+ %tmp22463 = getelementptr inbounds float* %tmp22462, i64 1
+ %tmp22464 = getelementptr inbounds float* %tmp22463, i64 1
+ %tmp22465 = getelementptr inbounds float* %tmp22464, i64 1
+ %tmp22466 = getelementptr inbounds float* %tmp22465, i64 1
+ %tmp22467 = getelementptr inbounds float* %tmp22466, i64 1
+ %tmp22468 = getelementptr inbounds float* %tmp22467, i64 1
+ %tmp22469 = getelementptr inbounds float* %tmp22468, i64 1
+ %tmp22470 = getelementptr inbounds float* %tmp22469, i64 1
+ %tmp22471 = getelementptr inbounds float* %tmp22470, i64 1
+ %tmp22472 = getelementptr inbounds float* %tmp22471, i64 1
+ %tmp22473 = getelementptr inbounds float* %tmp22472, i64 1
+ %tmp22474 = getelementptr inbounds float* %tmp22473, i64 1
+ %tmp22475 = getelementptr inbounds float* %tmp22474, i64 1
+ %tmp22476 = getelementptr inbounds float* %tmp22475, i64 1
+ %tmp22477 = getelementptr inbounds float* %tmp22476, i64 1
+ %tmp22478 = getelementptr inbounds float* %tmp22477, i64 1
+ %tmp22479 = getelementptr inbounds float* %tmp22478, i64 1
+ %tmp22480 = getelementptr inbounds float* %tmp22479, i64 1
+ %tmp22481 = getelementptr inbounds float* %tmp22480, i64 1
+ %tmp22482 = getelementptr inbounds float* %tmp22481, i64 1
+ %tmp22483 = getelementptr inbounds float* %tmp22482, i64 1
+ %tmp22484 = getelementptr inbounds float* %tmp22483, i64 1
+ %tmp22485 = getelementptr inbounds float* %tmp22484, i64 1
+ %tmp22486 = getelementptr inbounds float* %tmp22485, i64 1
+ %tmp22487 = getelementptr inbounds float* %tmp22486, i64 1
+ %tmp22488 = getelementptr inbounds float* %tmp22487, i64 1
+ %tmp22489 = getelementptr inbounds float* %tmp22488, i64 1
+ %tmp22490 = getelementptr inbounds float* %tmp22489, i64 1
+ %tmp22491 = getelementptr inbounds float* %tmp22490, i64 1
+ %tmp22492 = getelementptr inbounds float* %tmp22491, i64 1
+ %tmp22493 = getelementptr inbounds float* %tmp22492, i64 1
+ %tmp22494 = getelementptr inbounds float* %tmp22493, i64 1
+ %tmp22495 = getelementptr inbounds float* %tmp22494, i64 1
+ %tmp22496 = getelementptr inbounds float* %tmp22495, i64 1
+ %tmp22497 = getelementptr inbounds float* %tmp22496, i64 1
+ %tmp22498 = getelementptr inbounds float* %tmp22497, i64 1
+ %tmp22499 = getelementptr inbounds float* %tmp22498, i64 1
+ %tmp22500 = getelementptr inbounds float* %tmp22499, i64 1
+ %tmp22501 = getelementptr inbounds float* %tmp22500, i64 1
+ %tmp22502 = getelementptr inbounds float* %tmp22501, i64 1
+ %tmp22503 = getelementptr inbounds float* %tmp22502, i64 1
+ %tmp22504 = getelementptr inbounds float* %tmp22503, i64 1
+ %tmp22505 = getelementptr inbounds float* %tmp22504, i64 1
+ %tmp22506 = getelementptr inbounds float* %tmp22505, i64 1
+ %tmp22507 = getelementptr inbounds float* %tmp22506, i64 1
+ %tmp22508 = getelementptr inbounds float* %tmp22507, i64 1
+ %tmp22509 = getelementptr inbounds float* %tmp22508, i64 1
+ %tmp22510 = getelementptr inbounds float* %tmp22509, i64 1
+ %tmp22511 = getelementptr inbounds float* %tmp22510, i64 1
+ %tmp22512 = getelementptr inbounds float* %tmp22511, i64 1
+ %tmp22513 = getelementptr inbounds float* %tmp22512, i64 1
+ %tmp22514 = getelementptr inbounds float* %tmp22513, i64 1
+ %tmp22515 = getelementptr inbounds float* %tmp22514, i64 1
+ %tmp22516 = getelementptr inbounds float* %tmp22515, i64 1
+ %tmp22517 = getelementptr inbounds float* %tmp22516, i64 1
+ %tmp22518 = getelementptr inbounds float* %tmp22517, i64 1
+ %tmp22519 = getelementptr inbounds float* %tmp22518, i64 1
+ %tmp22520 = getelementptr inbounds float* %tmp22519, i64 1
+ %tmp22521 = getelementptr inbounds float* %tmp22520, i64 1
+ %tmp22522 = getelementptr inbounds float* %tmp22521, i64 1
+ %tmp22523 = getelementptr inbounds float* %tmp22522, i64 1
+ %tmp22524 = getelementptr inbounds float* %tmp22523, i64 1
+ %tmp22525 = getelementptr inbounds float* %tmp22524, i64 1
+ %tmp22526 = getelementptr inbounds float* %tmp22525, i64 1
+ %tmp22527 = getelementptr inbounds float* %tmp22526, i64 1
+ %tmp22528 = getelementptr inbounds float* %tmp22527, i64 1
+ %tmp22529 = getelementptr inbounds float* %tmp22528, i64 1
+ %tmp22530 = getelementptr inbounds float* %tmp22529, i64 1
+ %tmp22531 = getelementptr inbounds float* %tmp22530, i64 1
+ %tmp22532 = getelementptr inbounds float* %tmp22531, i64 1
+ %tmp22533 = getelementptr inbounds float* %tmp22532, i64 1
+ %tmp22534 = getelementptr inbounds float* %tmp22533, i64 1
+ %tmp22535 = getelementptr inbounds float* %tmp22534, i64 1
+ %tmp22536 = getelementptr inbounds float* %tmp22535, i64 1
+ %tmp22537 = getelementptr inbounds float* %tmp22536, i64 1
+ %tmp22538 = getelementptr inbounds float* %tmp22537, i64 1
+ %tmp22539 = getelementptr inbounds float* %tmp22538, i64 1
+ %tmp22540 = getelementptr inbounds float* %tmp22539, i64 1
+ %tmp22541 = getelementptr inbounds float* %tmp22540, i64 1
+ %tmp22542 = getelementptr inbounds float* %tmp22541, i64 1
+ %tmp22543 = getelementptr inbounds float* %tmp22542, i64 1
+ %tmp22544 = getelementptr inbounds float* %tmp22543, i64 1
+ %tmp22545 = getelementptr inbounds float* %tmp22544, i64 1
+ %tmp22546 = getelementptr inbounds float* %tmp22545, i64 1
+ %tmp22547 = getelementptr inbounds float* %tmp22546, i64 1
+ %tmp22548 = getelementptr inbounds float* %tmp22547, i64 1
+ %tmp22549 = getelementptr inbounds float* %tmp22548, i64 1
+ %tmp22550 = getelementptr inbounds float* %tmp22549, i64 1
+ %tmp22551 = getelementptr inbounds float* %tmp22550, i64 1
+ %tmp22552 = getelementptr inbounds float* %tmp22551, i64 1
+ %tmp22553 = getelementptr inbounds float* %tmp22552, i64 1
+ %tmp22554 = getelementptr inbounds float* %tmp22553, i64 1
+ %tmp22555 = getelementptr inbounds float* %tmp22554, i64 1
+ %tmp22556 = getelementptr inbounds float* %tmp22555, i64 1
+ %tmp22557 = getelementptr inbounds float* %tmp22556, i64 1
+ %tmp22558 = getelementptr inbounds float* %tmp22557, i64 1
+ %tmp22559 = getelementptr inbounds float* %tmp22558, i64 1
+ %tmp22560 = getelementptr inbounds float* %tmp22559, i64 1
+ %tmp22561 = getelementptr inbounds float* %tmp22560, i64 1
+ %tmp22562 = getelementptr inbounds float* %tmp22561, i64 1
+ %tmp22563 = getelementptr inbounds float* %tmp22562, i64 1
+ %tmp22564 = getelementptr inbounds float* %tmp22563, i64 1
+ %tmp22565 = getelementptr inbounds float* %tmp22564, i64 1
+ %tmp22566 = getelementptr inbounds float* %tmp22565, i64 1
+ %tmp22567 = getelementptr inbounds float* %tmp22566, i64 1
+ %tmp22568 = getelementptr inbounds float* %tmp22567, i64 1
+ %tmp22569 = getelementptr inbounds float* %tmp22568, i64 1
+ %tmp22570 = getelementptr inbounds float* %tmp22569, i64 1
+ %tmp22571 = getelementptr inbounds float* %tmp22570, i64 1
+ %tmp22572 = getelementptr inbounds float* %tmp22571, i64 1
+ %tmp22573 = getelementptr inbounds float* %tmp22572, i64 1
+ %tmp22574 = getelementptr inbounds float* %tmp22573, i64 1
+ %tmp22575 = getelementptr inbounds float* %tmp22574, i64 1
+ %tmp22576 = getelementptr inbounds float* %tmp22575, i64 1
+ %tmp22577 = getelementptr inbounds float* %tmp22576, i64 1
+ %tmp22578 = getelementptr inbounds float* %tmp22577, i64 1
+ %tmp22579 = getelementptr inbounds float* %tmp22578, i64 1
+ %tmp22580 = getelementptr inbounds float* %tmp22579, i64 1
+ %tmp22581 = getelementptr inbounds float* %tmp22580, i64 1
+ %tmp22582 = getelementptr inbounds float* %tmp22581, i64 1
+ %tmp22583 = getelementptr inbounds float* %tmp22582, i64 1
+ %tmp22584 = getelementptr inbounds float* %tmp22583, i64 1
+ %tmp22585 = getelementptr inbounds float* %tmp22584, i64 1
+ %tmp22586 = getelementptr inbounds float* %tmp22585, i64 1
+ %tmp22587 = getelementptr inbounds float* %tmp22586, i64 1
+ %tmp22588 = getelementptr inbounds float* %tmp22587, i64 1
+ %tmp22589 = getelementptr inbounds float* %tmp22588, i64 1
+ %tmp22590 = getelementptr inbounds float* %tmp22589, i64 1
+ %tmp22591 = getelementptr inbounds float* %tmp22590, i64 1
+ %tmp22592 = getelementptr inbounds float* %tmp22591, i64 1
+ %tmp22593 = getelementptr inbounds float* %tmp22592, i64 1
+ %tmp22594 = getelementptr inbounds float* %tmp22593, i64 1
+ %tmp22595 = getelementptr inbounds float* %tmp22594, i64 1
+ %tmp22596 = getelementptr inbounds float* %tmp22595, i64 1
+ %tmp22597 = getelementptr inbounds float* %tmp22596, i64 1
+ %tmp22598 = getelementptr inbounds float* %tmp22597, i64 1
+ %tmp22599 = getelementptr inbounds float* %tmp22598, i64 1
+ %tmp22600 = getelementptr inbounds float* %tmp22599, i64 1
+ %tmp22601 = getelementptr inbounds float* %tmp22600, i64 1
+ %tmp22602 = getelementptr inbounds float* %tmp22601, i64 1
+ %tmp22603 = getelementptr inbounds float* %tmp22602, i64 1
+ %tmp22604 = getelementptr inbounds float* %tmp22603, i64 1
+ %tmp22605 = getelementptr inbounds float* %tmp22604, i64 1
+ %tmp22606 = getelementptr inbounds float* %tmp22605, i64 1
+ %tmp22607 = getelementptr inbounds float* %tmp22606, i64 1
+ %tmp22608 = getelementptr inbounds float* %tmp22607, i64 1
+ %tmp22609 = getelementptr inbounds float* %tmp22608, i64 1
+ %tmp22610 = getelementptr inbounds float* %tmp22609, i64 1
+ %tmp22611 = getelementptr inbounds float* %tmp22610, i64 1
+ %tmp22612 = getelementptr inbounds float* %tmp22611, i64 1
+ %tmp22613 = getelementptr inbounds float* %tmp22612, i64 1
+ %tmp22614 = getelementptr inbounds float* %tmp22613, i64 1
+ %tmp22615 = getelementptr inbounds float* %tmp22614, i64 1
+ %tmp22616 = getelementptr inbounds float* %tmp22615, i64 1
+ %tmp22617 = getelementptr inbounds float* %tmp22616, i64 1
+ %tmp22618 = getelementptr inbounds float* %tmp22617, i64 1
+ %tmp22619 = getelementptr inbounds float* %tmp22618, i64 1
+ %tmp22620 = getelementptr inbounds float* %tmp22619, i64 1
+ %tmp22621 = getelementptr inbounds float* %tmp22620, i64 1
+ %tmp22622 = getelementptr inbounds float* %tmp22621, i64 1
+ %tmp22623 = getelementptr inbounds float* %tmp22622, i64 1
+ %tmp22624 = getelementptr inbounds float* %tmp22623, i64 1
+ %tmp22625 = getelementptr inbounds float* %tmp22624, i64 1
+ %tmp22626 = getelementptr inbounds float* %tmp22625, i64 1
+ %tmp22627 = getelementptr inbounds float* %tmp22626, i64 1
+ %tmp22628 = getelementptr inbounds float* %tmp22627, i64 1
+ %tmp22629 = getelementptr inbounds float* %tmp22628, i64 1
+ %tmp22630 = getelementptr inbounds float* %tmp22629, i64 1
+ %tmp22631 = getelementptr inbounds float* %tmp22630, i64 1
+ %tmp22632 = getelementptr inbounds float* %tmp22631, i64 1
+ %tmp22633 = getelementptr inbounds float* %tmp22632, i64 1
+ %tmp22634 = getelementptr inbounds float* %tmp22633, i64 1
+ %tmp22635 = getelementptr inbounds float* %tmp22634, i64 1
+ %tmp22636 = getelementptr inbounds float* %tmp22635, i64 1
+ %tmp22637 = getelementptr inbounds float* %tmp22636, i64 1
+ %tmp22638 = getelementptr inbounds float* %tmp22637, i64 1
+ %tmp22639 = getelementptr inbounds float* %tmp22638, i64 1
+ %tmp22640 = getelementptr inbounds float* %tmp22639, i64 1
+ %tmp22641 = getelementptr inbounds float* %tmp22640, i64 1
+ %tmp22642 = getelementptr inbounds float* %tmp22641, i64 1
+ %tmp22643 = getelementptr inbounds float* %tmp22642, i64 1
+ %tmp22644 = getelementptr inbounds float* %tmp22643, i64 1
+ %tmp22645 = getelementptr inbounds float* %tmp22644, i64 1
+ %tmp22646 = getelementptr inbounds float* %tmp22645, i64 1
+ %tmp22647 = getelementptr inbounds float* %tmp22646, i64 1
+ %tmp22648 = getelementptr inbounds float* %tmp22647, i64 1
+ %tmp22649 = getelementptr inbounds float* %tmp22648, i64 1
+ %tmp22650 = getelementptr inbounds float* %tmp22649, i64 1
+ %tmp22651 = getelementptr inbounds float* %tmp22650, i64 1
+ %tmp22652 = getelementptr inbounds float* %tmp22651, i64 1
+ %tmp22653 = getelementptr inbounds float* %tmp22652, i64 1
+ %tmp22654 = getelementptr inbounds float* %tmp22653, i64 1
+ %tmp22655 = getelementptr inbounds float* %tmp22654, i64 1
+ %tmp22656 = getelementptr inbounds float* %tmp22655, i64 1
+ %tmp22657 = getelementptr inbounds float* %tmp22656, i64 1
+ %tmp22658 = getelementptr inbounds float* %tmp22657, i64 1
+ %tmp22659 = getelementptr inbounds float* %tmp22658, i64 1
+ %tmp22660 = getelementptr inbounds float* %tmp22659, i64 1
+ %tmp22661 = getelementptr inbounds float* %tmp22660, i64 1
+ %tmp22662 = getelementptr inbounds float* %tmp22661, i64 1
+ %tmp22663 = getelementptr inbounds float* %tmp22662, i64 1
+ %tmp22664 = getelementptr inbounds float* %tmp22663, i64 1
+ %tmp22665 = getelementptr inbounds float* %tmp22664, i64 1
+ %tmp22666 = getelementptr inbounds float* %tmp22665, i64 1
+ %tmp22667 = getelementptr inbounds float* %tmp22666, i64 1
+ %tmp22668 = getelementptr inbounds float* %tmp22667, i64 1
+ %tmp22669 = getelementptr inbounds float* %tmp22668, i64 1
+ %tmp22670 = getelementptr inbounds float* %tmp22669, i64 1
+ %tmp22671 = getelementptr inbounds float* %tmp22670, i64 1
+ %tmp22672 = getelementptr inbounds float* %tmp22671, i64 1
+ %tmp22673 = getelementptr inbounds float* %tmp22672, i64 1
+ %tmp22674 = getelementptr inbounds float* %tmp22673, i64 1
+ %tmp22675 = getelementptr inbounds float* %tmp22674, i64 1
+ %tmp22676 = getelementptr inbounds float* %tmp22675, i64 1
+ %tmp22677 = getelementptr inbounds float* %tmp22676, i64 1
+ %tmp22678 = getelementptr inbounds float* %tmp22677, i64 1
+ %tmp22679 = getelementptr inbounds float* %tmp22678, i64 1
+ %tmp22680 = getelementptr inbounds float* %tmp22679, i64 1
+ %tmp22681 = getelementptr inbounds float* %tmp22680, i64 1
+ %tmp22682 = getelementptr inbounds float* %tmp22681, i64 1
+ %tmp22683 = getelementptr inbounds float* %tmp22682, i64 1
+ %tmp22684 = getelementptr inbounds float* %tmp22683, i64 1
+ %tmp22685 = getelementptr inbounds float* %tmp22684, i64 1
+ %tmp22686 = getelementptr inbounds float* %tmp22685, i64 1
+ %tmp22687 = getelementptr inbounds float* %tmp22686, i64 1
+ %tmp22688 = getelementptr inbounds float* %tmp22687, i64 1
+ %tmp22689 = getelementptr inbounds float* %tmp22688, i64 1
+ %tmp22690 = getelementptr inbounds float* %tmp22689, i64 1
+ %tmp22691 = getelementptr inbounds float* %tmp22690, i64 1
+ %tmp22692 = getelementptr inbounds float* %tmp22691, i64 1
+ %tmp22693 = getelementptr inbounds float* %tmp22692, i64 1
+ %tmp22694 = getelementptr inbounds float* %tmp22693, i64 1
+ %tmp22695 = getelementptr inbounds float* %tmp22694, i64 1
+ %tmp22696 = getelementptr inbounds float* %tmp22695, i64 1
+ %tmp22697 = getelementptr inbounds float* %tmp22696, i64 1
+ %tmp22698 = getelementptr inbounds float* %tmp22697, i64 1
+ %tmp22699 = getelementptr inbounds float* %tmp22698, i64 1
+ %tmp22700 = getelementptr inbounds float* %tmp22699, i64 1
+ %tmp22701 = getelementptr inbounds float* %tmp22700, i64 1
+ %tmp22702 = getelementptr inbounds float* %tmp22701, i64 1
+ %tmp22703 = getelementptr inbounds float* %tmp22702, i64 1
+ %tmp22704 = getelementptr inbounds float* %tmp22703, i64 1
+ %tmp22705 = getelementptr inbounds float* %tmp22704, i64 1
+ %tmp22706 = getelementptr inbounds float* %tmp22705, i64 1
+ %tmp22707 = getelementptr inbounds float* %tmp22706, i64 1
+ %tmp22708 = getelementptr inbounds float* %tmp22707, i64 1
+ %tmp22709 = getelementptr inbounds float* %tmp22708, i64 1
+ %tmp22710 = getelementptr inbounds float* %tmp22709, i64 1
+ %tmp22711 = getelementptr inbounds float* %tmp22710, i64 1
+ %tmp22712 = getelementptr inbounds float* %tmp22711, i64 1
+ %tmp22713 = getelementptr inbounds float* %tmp22712, i64 1
+ %tmp22714 = getelementptr inbounds float* %tmp22713, i64 1
+ %tmp22715 = getelementptr inbounds float* %tmp22714, i64 1
+ %tmp22716 = getelementptr inbounds float* %tmp22715, i64 1
+ %tmp22717 = getelementptr inbounds float* %tmp22716, i64 1
+ %tmp22718 = getelementptr inbounds float* %tmp22717, i64 1
+ %tmp22719 = getelementptr inbounds float* %tmp22718, i64 1
+ %tmp22720 = getelementptr inbounds float* %tmp22719, i64 1
+ %tmp22721 = getelementptr inbounds float* %tmp22720, i64 1
+ %tmp22722 = getelementptr inbounds float* %tmp22721, i64 1
+ %tmp22723 = getelementptr inbounds float* %tmp22722, i64 1
+ %tmp22724 = getelementptr inbounds float* %tmp22723, i64 1
+ %tmp22725 = getelementptr inbounds float* %tmp22724, i64 1
+ %tmp22726 = getelementptr inbounds float* %tmp22725, i64 1
+ %tmp22727 = getelementptr inbounds float* %tmp22726, i64 1
+ %tmp22728 = getelementptr inbounds float* %tmp22727, i64 1
+ %tmp22729 = getelementptr inbounds float* %tmp22728, i64 1
+ %tmp22730 = getelementptr inbounds float* %tmp22729, i64 1
+ %tmp22731 = getelementptr inbounds float* %tmp22730, i64 1
+ %tmp22732 = getelementptr inbounds float* %tmp22731, i64 1
+ %tmp22733 = getelementptr inbounds float* %tmp22732, i64 1
+ %tmp22734 = getelementptr inbounds float* %tmp22733, i64 1
+ %tmp22735 = getelementptr inbounds float* %tmp22734, i64 1
+ %tmp22736 = getelementptr inbounds float* %tmp22735, i64 1
+ %tmp22737 = getelementptr inbounds float* %tmp22736, i64 1
+ %tmp22738 = getelementptr inbounds float* %tmp22737, i64 1
+ %tmp22739 = getelementptr inbounds float* %tmp22738, i64 1
+ %tmp22740 = getelementptr inbounds float* %tmp22739, i64 1
+ %tmp22741 = getelementptr inbounds float* %tmp22740, i64 1
+ %tmp22742 = getelementptr inbounds float* %tmp22741, i64 1
+ %tmp22743 = getelementptr inbounds float* %tmp22742, i64 1
+ %tmp22744 = getelementptr inbounds float* %tmp22743, i64 1
+ %tmp22745 = getelementptr inbounds float* %tmp22744, i64 1
+ %tmp22746 = getelementptr inbounds float* %tmp22745, i64 1
+ %tmp22747 = getelementptr inbounds float* %tmp22746, i64 1
+ %tmp22748 = getelementptr inbounds float* %tmp22747, i64 1
+ %tmp22749 = getelementptr inbounds float* %tmp22748, i64 1
+ %tmp22750 = getelementptr inbounds float* %tmp22749, i64 1
+ %tmp22751 = getelementptr inbounds float* %tmp22750, i64 1
+ %tmp22752 = getelementptr inbounds float* %tmp22751, i64 1
+ %tmp22753 = getelementptr inbounds float* %tmp22752, i64 1
+ %tmp22754 = getelementptr inbounds float* %tmp22753, i64 1
+ %tmp22755 = getelementptr inbounds float* %tmp22754, i64 1
+ %tmp22756 = getelementptr inbounds float* %tmp22755, i64 1
+ %tmp22757 = getelementptr inbounds float* %tmp22756, i64 1
+ %tmp22758 = getelementptr inbounds float* %tmp22757, i64 1
+ %tmp22759 = getelementptr inbounds float* %tmp22758, i64 1
+ %tmp22760 = getelementptr inbounds float* %tmp22759, i64 1
+ %tmp22761 = getelementptr inbounds float* %tmp22760, i64 1
+ %tmp22762 = getelementptr inbounds float* %tmp22761, i64 1
+ %tmp22763 = getelementptr inbounds float* %tmp22762, i64 1
+ %tmp22764 = getelementptr inbounds float* %tmp22763, i64 1
+ %tmp22765 = getelementptr inbounds float* %tmp22764, i64 1
+ %tmp22766 = getelementptr inbounds float* %tmp22765, i64 1
+ %tmp22767 = getelementptr inbounds float* %tmp22766, i64 1
+ %tmp22768 = getelementptr inbounds float* %tmp22767, i64 1
+ %tmp22769 = getelementptr inbounds float* %tmp22768, i64 1
+ %tmp22770 = getelementptr inbounds float* %tmp22769, i64 1
+ %tmp22771 = getelementptr inbounds float* %tmp22770, i64 1
+ %tmp22772 = getelementptr inbounds float* %tmp22771, i64 1
+ %tmp22773 = getelementptr inbounds float* %tmp22772, i64 1
+ %tmp22774 = getelementptr inbounds float* %tmp22773, i64 1
+ %tmp22775 = getelementptr inbounds float* %tmp22774, i64 1
+ %tmp22776 = getelementptr inbounds float* %tmp22775, i64 1
+ %tmp22777 = getelementptr inbounds float* %tmp22776, i64 1
+ %tmp22778 = getelementptr inbounds float* %tmp22777, i64 1
+ %tmp22779 = getelementptr inbounds float* %tmp22778, i64 1
+ %tmp22780 = getelementptr inbounds float* %tmp22779, i64 1
+ %tmp22781 = getelementptr inbounds float* %tmp22780, i64 1
+ %tmp22782 = getelementptr inbounds float* %tmp22781, i64 1
+ %tmp22783 = getelementptr inbounds float* %tmp22782, i64 1
+ %tmp22784 = getelementptr inbounds float* %tmp22783, i64 1
+ %tmp22785 = getelementptr inbounds float* %tmp22784, i64 1
+ %tmp22786 = getelementptr inbounds float* %tmp22785, i64 1
+ %tmp22787 = getelementptr inbounds float* %tmp22786, i64 1
+ %tmp22788 = getelementptr inbounds float* %tmp22787, i64 1
+ %tmp22789 = getelementptr inbounds float* %tmp22788, i64 1
+ %tmp22790 = getelementptr inbounds float* %tmp22789, i64 1
+ %tmp22791 = getelementptr inbounds float* %tmp22790, i64 1
+ %tmp22792 = getelementptr inbounds float* %tmp22791, i64 1
+ %tmp22793 = getelementptr inbounds float* %tmp22792, i64 1
+ %tmp22794 = getelementptr inbounds float* %tmp22793, i64 1
+ %tmp22795 = getelementptr inbounds float* %tmp22794, i64 1
+ %tmp22796 = getelementptr inbounds float* %tmp22795, i64 1
+ %tmp22797 = getelementptr inbounds float* %tmp22796, i64 1
+ %tmp22798 = getelementptr inbounds float* %tmp22797, i64 1
+ %tmp22799 = getelementptr inbounds float* %tmp22798, i64 1
+ %tmp22800 = getelementptr inbounds float* %tmp22799, i64 1
+ %tmp22801 = getelementptr inbounds float* %tmp22800, i64 1
+ %tmp22802 = getelementptr inbounds float* %tmp22801, i64 1
+ %tmp22803 = getelementptr inbounds float* %tmp22802, i64 1
+ %tmp22804 = getelementptr inbounds float* %tmp22803, i64 1
+ %tmp22805 = getelementptr inbounds float* %tmp22804, i64 1
+ %tmp22806 = getelementptr inbounds float* %tmp22805, i64 1
+ %tmp22807 = getelementptr inbounds float* %tmp22806, i64 1
+ %tmp22808 = getelementptr inbounds float* %tmp22807, i64 1
+ %tmp22809 = getelementptr inbounds float* %tmp22808, i64 1
+ %tmp22810 = getelementptr inbounds float* %tmp22809, i64 1
+ %tmp22811 = getelementptr inbounds float* %tmp22810, i64 1
+ %tmp22812 = getelementptr inbounds float* %tmp22811, i64 1
+ %tmp22813 = getelementptr inbounds float* %tmp22812, i64 1
+ %tmp22814 = getelementptr inbounds float* %tmp22813, i64 1
+ %tmp22815 = getelementptr inbounds float* %tmp22814, i64 1
+ %tmp22816 = getelementptr inbounds float* %tmp22815, i64 1
+ %tmp22817 = getelementptr inbounds float* %tmp22816, i64 1
+ %tmp22818 = getelementptr inbounds float* %tmp22817, i64 1
+ %tmp22819 = getelementptr inbounds float* %tmp22818, i64 1
+ %tmp22820 = getelementptr inbounds float* %tmp22819, i64 1
+ %tmp22821 = getelementptr inbounds float* %tmp22820, i64 1
+ %tmp22822 = getelementptr inbounds float* %tmp22821, i64 1
+ %tmp22823 = getelementptr inbounds float* %tmp22822, i64 1
+ %tmp22824 = getelementptr inbounds float* %tmp22823, i64 1
+ %tmp22825 = getelementptr inbounds float* %tmp22824, i64 1
+ %tmp22826 = getelementptr inbounds float* %tmp22825, i64 1
+ %tmp22827 = getelementptr inbounds float* %tmp22826, i64 1
+ %tmp22828 = getelementptr inbounds float* %tmp22827, i64 1
+ %tmp22829 = getelementptr inbounds float* %tmp22828, i64 1
+ %tmp22830 = getelementptr inbounds float* %tmp22829, i64 1
+ %tmp22831 = getelementptr inbounds float* %tmp22830, i64 1
+ %tmp22832 = getelementptr inbounds float* %tmp22831, i64 1
+ %tmp22833 = getelementptr inbounds float* %tmp22832, i64 1
+ %tmp22834 = getelementptr inbounds float* %tmp22833, i64 1
+ %tmp22835 = getelementptr inbounds float* %tmp22834, i64 1
+ %tmp22836 = getelementptr inbounds float* %tmp22835, i64 1
+ %tmp22837 = getelementptr inbounds float* %tmp22836, i64 1
+ %tmp22838 = getelementptr inbounds float* %tmp22837, i64 1
+ %tmp22839 = getelementptr inbounds float* %tmp22838, i64 1
+ %tmp22840 = getelementptr inbounds float* %tmp22839, i64 1
+ %tmp22841 = getelementptr inbounds float* %tmp22840, i64 1
+ %tmp22842 = getelementptr inbounds float* %tmp22841, i64 1
+ %tmp22843 = getelementptr inbounds float* %tmp22842, i64 1
+ %tmp22844 = getelementptr inbounds float* %tmp22843, i64 1
+ %tmp22845 = getelementptr inbounds float* %tmp22844, i64 1
+ %tmp22846 = getelementptr inbounds float* %tmp22845, i64 1
+ %tmp22847 = getelementptr inbounds float* %tmp22846, i64 1
+ %tmp22848 = getelementptr inbounds float* %tmp22847, i64 1
+ %tmp22849 = getelementptr inbounds float* %tmp22848, i64 1
+ %tmp22850 = getelementptr inbounds float* %tmp22849, i64 1
+ %tmp22851 = getelementptr inbounds float* %tmp22850, i64 1
+ %tmp22852 = getelementptr inbounds float* %tmp22851, i64 1
+ %tmp22853 = getelementptr inbounds float* %tmp22852, i64 1
+ %tmp22854 = getelementptr inbounds float* %tmp22853, i64 1
+ %tmp22855 = getelementptr inbounds float* %tmp22854, i64 1
+ %tmp22856 = getelementptr inbounds float* %tmp22855, i64 1
+ %tmp22857 = getelementptr inbounds float* %tmp22856, i64 1
+ %tmp22858 = getelementptr inbounds float* %tmp22857, i64 1
+ %tmp22859 = getelementptr inbounds float* %tmp22858, i64 1
+ %tmp22860 = getelementptr inbounds float* %tmp22859, i64 1
+ %tmp22861 = getelementptr inbounds float* %tmp22860, i64 1
+ %tmp22862 = getelementptr inbounds float* %tmp22861, i64 1
+ %tmp22863 = getelementptr inbounds float* %tmp22862, i64 1
+ %tmp22864 = getelementptr inbounds float* %tmp22863, i64 1
+ %tmp22865 = getelementptr inbounds float* %tmp22864, i64 1
+ %tmp22866 = getelementptr inbounds float* %tmp22865, i64 1
+ %tmp22867 = getelementptr inbounds float* %tmp22866, i64 1
+ %tmp22868 = getelementptr inbounds float* %tmp22867, i64 1
+ %tmp22869 = getelementptr inbounds float* %tmp22868, i64 1
+ %tmp22870 = getelementptr inbounds float* %tmp22869, i64 1
+ %tmp22871 = getelementptr inbounds float* %tmp22870, i64 1
+ %tmp22872 = getelementptr inbounds float* %tmp22871, i64 1
+ %tmp22873 = getelementptr inbounds float* %tmp22872, i64 1
+ %tmp22874 = getelementptr inbounds float* %tmp22873, i64 1
+ %tmp22875 = getelementptr inbounds float* %tmp22874, i64 1
+ %tmp22876 = getelementptr inbounds float* %tmp22875, i64 1
+ %tmp22877 = getelementptr inbounds float* %tmp22876, i64 1
+ %tmp22878 = getelementptr inbounds float* %tmp22877, i64 1
+ %tmp22879 = getelementptr inbounds float* %tmp22878, i64 1
+ %tmp22880 = getelementptr inbounds float* %tmp22879, i64 1
+ %tmp22881 = getelementptr inbounds float* %tmp22880, i64 1
+ %tmp22882 = getelementptr inbounds float* %tmp22881, i64 1
+ %tmp22883 = getelementptr inbounds float* %tmp22882, i64 1
+ %tmp22884 = getelementptr inbounds float* %tmp22883, i64 1
+ %tmp22885 = getelementptr inbounds float* %tmp22884, i64 1
+ %tmp22886 = getelementptr inbounds float* %tmp22885, i64 1
+ %tmp22887 = getelementptr inbounds float* %tmp22886, i64 1
+ %tmp22888 = getelementptr inbounds float* %tmp22887, i64 1
+ %tmp22889 = getelementptr inbounds float* %tmp22888, i64 1
+ %tmp22890 = getelementptr inbounds float* %tmp22889, i64 1
+ %tmp22891 = getelementptr inbounds float* %tmp22890, i64 1
+ %tmp22892 = getelementptr inbounds float* %tmp22891, i64 1
+ %tmp22893 = getelementptr inbounds float* %tmp22892, i64 1
+ %tmp22894 = getelementptr inbounds float* %tmp22893, i64 1
+ %tmp22895 = getelementptr inbounds float* %tmp22894, i64 1
+ %tmp22896 = getelementptr inbounds float* %tmp22895, i64 1
+ %tmp22897 = getelementptr inbounds float* %tmp22896, i64 1
+ %tmp22898 = getelementptr inbounds float* %tmp22897, i64 1
+ %tmp22899 = getelementptr inbounds float* %tmp22898, i64 1
+ %tmp22900 = getelementptr inbounds float* %tmp22899, i64 1
+ %tmp22901 = getelementptr inbounds float* %tmp22900, i64 1
+ %tmp22902 = getelementptr inbounds float* %tmp22901, i64 1
+ %tmp22903 = getelementptr inbounds float* %tmp22902, i64 1
+ %tmp22904 = getelementptr inbounds float* %tmp22903, i64 1
+ %tmp22905 = getelementptr inbounds float* %tmp22904, i64 1
+ %tmp22906 = getelementptr inbounds float* %tmp22905, i64 1
+ %tmp22907 = getelementptr inbounds float* %tmp22906, i64 1
+ %tmp22908 = getelementptr inbounds float* %tmp22907, i64 1
+ %tmp22909 = getelementptr inbounds float* %tmp22908, i64 1
+ %tmp22910 = getelementptr inbounds float* %tmp22909, i64 1
+ %tmp22911 = getelementptr inbounds float* %tmp22910, i64 1
+ %tmp22912 = getelementptr inbounds float* %tmp22911, i64 1
+ %tmp22913 = getelementptr inbounds float* %tmp22912, i64 1
+ %tmp22914 = getelementptr inbounds float* %tmp22913, i64 1
+ %tmp22915 = getelementptr inbounds float* %tmp22914, i64 1
+ %tmp22916 = getelementptr inbounds float* %tmp22915, i64 1
+ %tmp22917 = getelementptr inbounds float* %tmp22916, i64 1
+ %tmp22918 = getelementptr inbounds float* %tmp22917, i64 1
+ %tmp22919 = getelementptr inbounds float* %tmp22918, i64 1
+ %tmp22920 = getelementptr inbounds float* %tmp22919, i64 1
+ %tmp22921 = getelementptr inbounds float* %tmp22920, i64 1
+ %tmp22922 = getelementptr inbounds float* %tmp22921, i64 1
+ %tmp22923 = getelementptr inbounds float* %tmp22922, i64 1
+ %tmp22924 = getelementptr inbounds float* %tmp22923, i64 1
+ %tmp22925 = getelementptr inbounds float* %tmp22924, i64 1
+ %tmp22926 = getelementptr inbounds float* %tmp22925, i64 1
+ %tmp22927 = getelementptr inbounds float* %tmp22926, i64 1
+ %tmp22928 = getelementptr inbounds float* %tmp22927, i64 1
+ %tmp22929 = getelementptr inbounds float* %tmp22928, i64 1
+ %tmp22930 = getelementptr inbounds float* %tmp22929, i64 1
+ %tmp22931 = getelementptr inbounds float* %tmp22930, i64 1
+ %tmp22932 = getelementptr inbounds float* %tmp22931, i64 1
+ %tmp22933 = getelementptr inbounds float* %tmp22932, i64 1
+ %tmp22934 = getelementptr inbounds float* %tmp22933, i64 1
+ %tmp22935 = getelementptr inbounds float* %tmp22934, i64 1
+ %tmp22936 = getelementptr inbounds float* %tmp22935, i64 1
+ %tmp22937 = getelementptr inbounds float* %tmp22936, i64 1
+ %tmp22938 = getelementptr inbounds float* %tmp22937, i64 1
+ %tmp22939 = getelementptr inbounds float* %tmp22938, i64 1
+ %tmp22940 = getelementptr inbounds float* %tmp22939, i64 1
+ %tmp22941 = getelementptr inbounds float* %tmp22940, i64 1
+ %tmp22942 = getelementptr inbounds float* %tmp22941, i64 1
+ %tmp22943 = getelementptr inbounds float* %tmp22942, i64 1
+ %tmp22944 = getelementptr inbounds float* %tmp22943, i64 1
+ %tmp22945 = getelementptr inbounds float* %tmp22944, i64 1
+ %tmp22946 = getelementptr inbounds float* %tmp22945, i64 1
+ %tmp22947 = getelementptr inbounds float* %tmp22946, i64 1
+ %tmp22948 = getelementptr inbounds float* %tmp22947, i64 1
+ %tmp22949 = getelementptr inbounds float* %tmp22948, i64 1
+ %tmp22950 = getelementptr inbounds float* %tmp22949, i64 1
+ %tmp22951 = getelementptr inbounds float* %tmp22950, i64 1
+ %tmp22952 = getelementptr inbounds float* %tmp22951, i64 1
+ %tmp22953 = getelementptr inbounds float* %tmp22952, i64 1
+ %tmp22954 = getelementptr inbounds float* %tmp22953, i64 1
+ %tmp22955 = getelementptr inbounds float* %tmp22954, i64 1
+ %tmp22956 = getelementptr inbounds float* %tmp22955, i64 1
+ %tmp22957 = getelementptr inbounds float* %tmp22956, i64 1
+ %tmp22958 = getelementptr inbounds float* %tmp22957, i64 1
+ %tmp22959 = getelementptr inbounds float* %tmp22958, i64 1
+ %tmp22960 = getelementptr inbounds float* %tmp22959, i64 1
+ %tmp22961 = getelementptr inbounds float* %tmp22960, i64 1
+ %tmp22962 = getelementptr inbounds float* %tmp22961, i64 1
+ %tmp22963 = getelementptr inbounds float* %tmp22962, i64 1
+ %tmp22964 = getelementptr inbounds float* %tmp22963, i64 1
+ %tmp22965 = getelementptr inbounds float* %tmp22964, i64 1
+ %tmp22966 = getelementptr inbounds float* %tmp22965, i64 1
+ %tmp22967 = getelementptr inbounds float* %tmp22966, i64 1
+ %tmp22968 = getelementptr inbounds float* %tmp22967, i64 1
+ %tmp22969 = getelementptr inbounds float* %tmp22968, i64 1
+ %tmp22970 = getelementptr inbounds float* %tmp22969, i64 1
+ %tmp22971 = getelementptr inbounds float* %tmp22970, i64 1
+ %tmp22972 = getelementptr inbounds float* %tmp22971, i64 1
+ %tmp22973 = getelementptr inbounds float* %tmp22972, i64 1
+ %tmp22974 = getelementptr inbounds float* %tmp22973, i64 1
+ %tmp22975 = getelementptr inbounds float* %tmp22974, i64 1
+ %tmp22976 = getelementptr inbounds float* %tmp22975, i64 1
+ %tmp22977 = getelementptr inbounds float* %tmp22976, i64 1
+ %tmp22978 = getelementptr inbounds float* %tmp22977, i64 1
+ %tmp22979 = getelementptr inbounds float* %tmp22978, i64 1
+ %tmp22980 = getelementptr inbounds float* %tmp22979, i64 1
+ %tmp22981 = getelementptr inbounds float* %tmp22980, i64 1
+ %tmp22982 = getelementptr inbounds float* %tmp22981, i64 1
+ %tmp22983 = getelementptr inbounds float* %tmp22982, i64 1
+ %tmp22984 = getelementptr inbounds float* %tmp22983, i64 1
+ %tmp22985 = getelementptr inbounds float* %tmp22984, i64 1
+ %tmp22986 = getelementptr inbounds float* %tmp22985, i64 1
+ %tmp22987 = getelementptr inbounds float* %tmp22986, i64 1
+ %tmp22988 = getelementptr inbounds float* %tmp22987, i64 1
+ %tmp22989 = getelementptr inbounds float* %tmp22988, i64 1
+ %tmp22990 = getelementptr inbounds float* %tmp22989, i64 1
+ %tmp22991 = getelementptr inbounds float* %tmp22990, i64 1
+ %tmp22992 = getelementptr inbounds float* %tmp22991, i64 1
+ %tmp22993 = getelementptr inbounds float* %tmp22992, i64 1
+ %tmp22994 = getelementptr inbounds float* %tmp22993, i64 1
+ %tmp22995 = getelementptr inbounds float* %tmp22994, i64 1
+ %tmp22996 = getelementptr inbounds float* %tmp22995, i64 1
+ %tmp22997 = getelementptr inbounds float* %tmp22996, i64 1
+ %tmp22998 = getelementptr inbounds float* %tmp22997, i64 1
+ %tmp22999 = getelementptr inbounds float* %tmp22998, i64 1
+ %tmp23000 = getelementptr inbounds float* %tmp22999, i64 1
+ %tmp23001 = getelementptr inbounds float* %tmp23000, i64 1
+ %tmp23002 = getelementptr inbounds float* %tmp23001, i64 1
+ %tmp23003 = getelementptr inbounds float* %tmp23002, i64 1
+ %tmp23004 = getelementptr inbounds float* %tmp23003, i64 1
+ %tmp23005 = getelementptr inbounds float* %tmp23004, i64 1
+ %tmp23006 = getelementptr inbounds float* %tmp23005, i64 1
+ %tmp23007 = getelementptr inbounds float* %tmp23006, i64 1
+ %tmp23008 = getelementptr inbounds float* %tmp23007, i64 1
+ %tmp23009 = getelementptr inbounds float* %tmp23008, i64 1
+ %tmp23010 = getelementptr inbounds float* %tmp23009, i64 1
+ %tmp23011 = getelementptr inbounds float* %tmp23010, i64 1
+ %tmp23012 = getelementptr inbounds float* %tmp23011, i64 1
+ %tmp23013 = getelementptr inbounds float* %tmp23012, i64 1
+ %tmp23014 = getelementptr inbounds float* %tmp23013, i64 1
+ %tmp23015 = getelementptr inbounds float* %tmp23014, i64 1
+ %tmp23016 = getelementptr inbounds float* %tmp23015, i64 1
+ %tmp23017 = getelementptr inbounds float* %tmp23016, i64 1
+ %tmp23018 = getelementptr inbounds float* %tmp23017, i64 1
+ %tmp23019 = getelementptr inbounds float* %tmp23018, i64 1
+ %tmp23020 = getelementptr inbounds float* %tmp23019, i64 1
+ %tmp23021 = getelementptr inbounds float* %tmp23020, i64 1
+ %tmp23022 = getelementptr inbounds float* %tmp23021, i64 1
+ %tmp23023 = getelementptr inbounds float* %tmp23022, i64 1
+ %tmp23024 = getelementptr inbounds float* %tmp23023, i64 1
+ %tmp23025 = getelementptr inbounds float* %tmp23024, i64 1
+ %tmp23026 = getelementptr inbounds float* %tmp23025, i64 1
+ %tmp23027 = getelementptr inbounds float* %tmp23026, i64 1
+ %tmp23028 = getelementptr inbounds float* %tmp23027, i64 1
+ %tmp23029 = getelementptr inbounds float* %tmp23028, i64 1
+ %tmp23030 = getelementptr inbounds float* %tmp23029, i64 1
+ %tmp23031 = getelementptr inbounds float* %tmp23030, i64 1
+ %tmp23032 = getelementptr inbounds float* %tmp23031, i64 1
+ %tmp23033 = getelementptr inbounds float* %tmp23032, i64 1
+ %tmp23034 = getelementptr inbounds float* %tmp23033, i64 1
+ %tmp23035 = getelementptr inbounds float* %tmp23034, i64 1
+ %tmp23036 = getelementptr inbounds float* %tmp23035, i64 1
+ %tmp23037 = getelementptr inbounds float* %tmp23036, i64 1
+ %tmp23038 = getelementptr inbounds float* %tmp23037, i64 1
+ %tmp23039 = getelementptr inbounds float* %tmp23038, i64 1
+ %tmp23040 = getelementptr inbounds float* %tmp23039, i64 1
+ %tmp23041 = getelementptr inbounds float* %tmp23040, i64 1
+ %tmp23042 = getelementptr inbounds float* %tmp23041, i64 1
+ %tmp23043 = getelementptr inbounds float* %tmp23042, i64 1
+ %tmp23044 = getelementptr inbounds float* %tmp23043, i64 1
+ %tmp23045 = getelementptr inbounds float* %tmp23044, i64 1
+ %tmp23046 = getelementptr inbounds float* %tmp23045, i64 1
+ %tmp23047 = getelementptr inbounds float* %tmp23046, i64 1
+ %tmp23048 = getelementptr inbounds float* %tmp23047, i64 1
+ %tmp23049 = getelementptr inbounds float* %tmp23048, i64 1
+ %tmp23050 = getelementptr inbounds float* %tmp23049, i64 1
+ %tmp23051 = getelementptr inbounds float* %tmp23050, i64 1
+ %tmp23052 = getelementptr inbounds float* %tmp23051, i64 1
+ %tmp23053 = getelementptr inbounds float* %tmp23052, i64 1
+ %tmp23054 = getelementptr inbounds float* %tmp23053, i64 1
+ %tmp23055 = getelementptr inbounds float* %tmp23054, i64 1
+ %tmp23056 = getelementptr inbounds float* %tmp23055, i64 1
+ %tmp23057 = getelementptr inbounds float* %tmp23056, i64 1
+ %tmp23058 = getelementptr inbounds float* %tmp23057, i64 1
+ %tmp23059 = getelementptr inbounds float* %tmp23058, i64 1
+ %tmp23060 = getelementptr inbounds float* %tmp23059, i64 1
+ %tmp23061 = getelementptr inbounds float* %tmp23060, i64 1
+ %tmp23062 = getelementptr inbounds float* %tmp23061, i64 1
+ %tmp23063 = getelementptr inbounds float* %tmp23062, i64 1
+ %tmp23064 = getelementptr inbounds float* %tmp23063, i64 1
+ %tmp23065 = getelementptr inbounds float* %tmp23064, i64 1
+ %tmp23066 = getelementptr inbounds float* %tmp23065, i64 1
+ %tmp23067 = getelementptr inbounds float* %tmp23066, i64 1
+ %tmp23068 = getelementptr inbounds float* %tmp23067, i64 1
+ %tmp23069 = getelementptr inbounds float* %tmp23068, i64 1
+ %tmp23070 = getelementptr inbounds float* %tmp23069, i64 1
+ %tmp23071 = getelementptr inbounds float* %tmp23070, i64 1
+ %tmp23072 = getelementptr inbounds float* %tmp23071, i64 1
+ %tmp23073 = getelementptr inbounds float* %tmp23072, i64 1
+ %tmp23074 = getelementptr inbounds float* %tmp23073, i64 1
+ %tmp23075 = getelementptr inbounds float* %tmp23074, i64 1
+ %tmp23076 = getelementptr inbounds float* %tmp23075, i64 1
+ %tmp23077 = getelementptr inbounds float* %tmp23076, i64 1
+ %tmp23078 = getelementptr inbounds float* %tmp23077, i64 1
+ %tmp23079 = getelementptr inbounds float* %tmp23078, i64 1
+ %tmp23080 = getelementptr inbounds float* %tmp23079, i64 1
+ %tmp23081 = getelementptr inbounds float* %tmp23080, i64 1
+ %tmp23082 = getelementptr inbounds float* %tmp23081, i64 1
+ %tmp23083 = getelementptr inbounds float* %tmp23082, i64 1
+ %tmp23084 = getelementptr inbounds float* %tmp23083, i64 1
+ %tmp23085 = getelementptr inbounds float* %tmp23084, i64 1
+ %tmp23086 = getelementptr inbounds float* %tmp23085, i64 1
+ %tmp23087 = getelementptr inbounds float* %tmp23086, i64 1
+ %tmp23088 = getelementptr inbounds float* %tmp23087, i64 1
+ %tmp23089 = getelementptr inbounds float* %tmp23088, i64 1
+ %tmp23090 = getelementptr inbounds float* %tmp23089, i64 1
+ %tmp23091 = getelementptr inbounds float* %tmp23090, i64 1
+ %tmp23092 = getelementptr inbounds float* %tmp23091, i64 1
+ %tmp23093 = getelementptr inbounds float* %tmp23092, i64 1
+ %tmp23094 = getelementptr inbounds float* %tmp23093, i64 1
+ %tmp23095 = getelementptr inbounds float* %tmp23094, i64 1
+ %tmp23096 = getelementptr inbounds float* %tmp23095, i64 1
+ %tmp23097 = getelementptr inbounds float* %tmp23096, i64 1
+ %tmp23098 = getelementptr inbounds float* %tmp23097, i64 1
+ %tmp23099 = getelementptr inbounds float* %tmp23098, i64 1
+ %tmp23100 = getelementptr inbounds float* %tmp23099, i64 1
+ %tmp23101 = getelementptr inbounds float* %tmp23100, i64 1
+ %tmp23102 = getelementptr inbounds float* %tmp23101, i64 1
+ %tmp23103 = getelementptr inbounds float* %tmp23102, i64 1
+ %tmp23104 = getelementptr inbounds float* %tmp23103, i64 1
+ %tmp23105 = getelementptr inbounds float* %tmp23104, i64 1
+ %tmp23106 = getelementptr inbounds float* %tmp23105, i64 1
+ %tmp23107 = getelementptr inbounds float* %tmp23106, i64 1
+ %tmp23108 = getelementptr inbounds float* %tmp23107, i64 1
+ %tmp23109 = getelementptr inbounds float* %tmp23108, i64 1
+ %tmp23110 = getelementptr inbounds float* %tmp23109, i64 1
+ %tmp23111 = getelementptr inbounds float* %tmp23110, i64 1
+ %tmp23112 = getelementptr inbounds float* %tmp23111, i64 1
+ %tmp23113 = getelementptr inbounds float* %tmp23112, i64 1
+ %tmp23114 = getelementptr inbounds float* %tmp23113, i64 1
+ %tmp23115 = getelementptr inbounds float* %tmp23114, i64 1
+ %tmp23116 = getelementptr inbounds float* %tmp23115, i64 1
+ %tmp23117 = getelementptr inbounds float* %tmp23116, i64 1
+ %tmp23118 = getelementptr inbounds float* %tmp23117, i64 1
+ %tmp23119 = getelementptr inbounds float* %tmp23118, i64 1
+ %tmp23120 = getelementptr inbounds float* %tmp23119, i64 1
+ %tmp23121 = getelementptr inbounds float* %tmp23120, i64 1
+ %tmp23122 = getelementptr inbounds float* %tmp23121, i64 1
+ %tmp23123 = getelementptr inbounds float* %tmp23122, i64 1
+ %tmp23124 = getelementptr inbounds float* %tmp23123, i64 1
+ %tmp23125 = getelementptr inbounds float* %tmp23124, i64 1
+ %tmp23126 = getelementptr inbounds float* %tmp23125, i64 1
+ %tmp23127 = getelementptr inbounds float* %tmp23126, i64 1
+ %tmp23128 = getelementptr inbounds float* %tmp23127, i64 1
+ %tmp23129 = getelementptr inbounds float* %tmp23128, i64 1
+ %tmp23130 = getelementptr inbounds float* %tmp23129, i64 1
+ %tmp23131 = getelementptr inbounds float* %tmp23130, i64 1
+ %tmp23132 = getelementptr inbounds float* %tmp23131, i64 1
+ %tmp23133 = getelementptr inbounds float* %tmp23132, i64 1
+ %tmp23134 = getelementptr inbounds float* %tmp23133, i64 1
+ %tmp23135 = getelementptr inbounds float* %tmp23134, i64 1
+ %tmp23136 = getelementptr inbounds float* %tmp23135, i64 1
+ %tmp23137 = getelementptr inbounds float* %tmp23136, i64 1
+ %tmp23138 = getelementptr inbounds float* %tmp23137, i64 1
+ %tmp23139 = getelementptr inbounds float* %tmp23138, i64 1
+ %tmp23140 = getelementptr inbounds float* %tmp23139, i64 1
+ %tmp23141 = getelementptr inbounds float* %tmp23140, i64 1
+ %tmp23142 = getelementptr inbounds float* %tmp23141, i64 1
+ %tmp23143 = getelementptr inbounds float* %tmp23142, i64 1
+ %tmp23144 = getelementptr inbounds float* %tmp23143, i64 1
+ %tmp23145 = getelementptr inbounds float* %tmp23144, i64 1
+ %tmp23146 = getelementptr inbounds float* %tmp23145, i64 1
+ %tmp23147 = getelementptr inbounds float* %tmp23146, i64 1
+ %tmp23148 = getelementptr inbounds float* %tmp23147, i64 1
+ %tmp23149 = getelementptr inbounds float* %tmp23148, i64 1
+ %tmp23150 = getelementptr inbounds float* %tmp23149, i64 1
+ %tmp23151 = getelementptr inbounds float* %tmp23150, i64 1
+ %tmp23152 = getelementptr inbounds float* %tmp23151, i64 1
+ %tmp23153 = getelementptr inbounds float* %tmp23152, i64 1
+ %tmp23154 = getelementptr inbounds float* %tmp23153, i64 1
+ %tmp23155 = getelementptr inbounds float* %tmp23154, i64 1
+ %tmp23156 = getelementptr inbounds float* %tmp23155, i64 1
+ %tmp23157 = getelementptr inbounds float* %tmp23156, i64 1
+ %tmp23158 = getelementptr inbounds float* %tmp23157, i64 1
+ %tmp23159 = getelementptr inbounds float* %tmp23158, i64 1
+ %tmp23160 = getelementptr inbounds float* %tmp23159, i64 1
+ %tmp23161 = getelementptr inbounds float* %tmp23160, i64 1
+ %tmp23162 = getelementptr inbounds float* %tmp23161, i64 1
+ %tmp23163 = getelementptr inbounds float* %tmp23162, i64 1
+ %tmp23164 = getelementptr inbounds float* %tmp23163, i64 1
+ %tmp23165 = getelementptr inbounds float* %tmp23164, i64 1
+ %tmp23166 = getelementptr inbounds float* %tmp23165, i64 1
+ %tmp23167 = getelementptr inbounds float* %tmp23166, i64 1
+ %tmp23168 = getelementptr inbounds float* %tmp23167, i64 1
+ %tmp23169 = getelementptr inbounds float* %tmp23168, i64 1
+ %tmp23170 = getelementptr inbounds float* %tmp23169, i64 1
+ %tmp23171 = getelementptr inbounds float* %tmp23170, i64 1
+ %tmp23172 = getelementptr inbounds float* %tmp23171, i64 1
+ %tmp23173 = getelementptr inbounds float* %tmp23172, i64 1
+ %tmp23174 = getelementptr inbounds float* %tmp23173, i64 1
+ %tmp23175 = getelementptr inbounds float* %tmp23174, i64 1
+ %tmp23176 = getelementptr inbounds float* %tmp23175, i64 1
+ %tmp23177 = getelementptr inbounds float* %tmp23176, i64 1
+ %tmp23178 = getelementptr inbounds float* %tmp23177, i64 1
+ %tmp23179 = getelementptr inbounds float* %tmp23178, i64 1
+ %tmp23180 = getelementptr inbounds float* %tmp23179, i64 1
+ %tmp23181 = getelementptr inbounds float* %tmp23180, i64 1
+ %tmp23182 = getelementptr inbounds float* %tmp23181, i64 1
+ %tmp23183 = getelementptr inbounds float* %tmp23182, i64 1
+ %tmp23184 = getelementptr inbounds float* %tmp23183, i64 1
+ %tmp23185 = getelementptr inbounds float* %tmp23184, i64 1
+ %tmp23186 = getelementptr inbounds float* %tmp23185, i64 1
+ %tmp23187 = getelementptr inbounds float* %tmp23186, i64 1
+ %tmp23188 = getelementptr inbounds float* %tmp23187, i64 1
+ %tmp23189 = getelementptr inbounds float* %tmp23188, i64 1
+ %tmp23190 = getelementptr inbounds float* %tmp23189, i64 1
+ %tmp23191 = getelementptr inbounds float* %tmp23190, i64 1
+ %tmp23192 = getelementptr inbounds float* %tmp23191, i64 1
+ %tmp23193 = getelementptr inbounds float* %tmp23192, i64 1
+ %tmp23194 = getelementptr inbounds float* %tmp23193, i64 1
+ %tmp23195 = getelementptr inbounds float* %tmp23194, i64 1
+ %tmp23196 = getelementptr inbounds float* %tmp23195, i64 1
+ %tmp23197 = getelementptr inbounds float* %tmp23196, i64 1
+ %tmp23198 = getelementptr inbounds float* %tmp23197, i64 1
+ %tmp23199 = getelementptr inbounds float* %tmp23198, i64 1
+ %tmp23200 = getelementptr inbounds float* %tmp23199, i64 1
+ %tmp23201 = getelementptr inbounds float* %tmp23200, i64 1
+ %tmp23202 = getelementptr inbounds float* %tmp23201, i64 1
+ %tmp23203 = getelementptr inbounds float* %tmp23202, i64 1
+ %tmp23204 = getelementptr inbounds float* %tmp23203, i64 1
+ %tmp23205 = getelementptr inbounds float* %tmp23204, i64 1
+ %tmp23206 = getelementptr inbounds float* %tmp23205, i64 1
+ %tmp23207 = getelementptr inbounds float* %tmp23206, i64 1
+ %tmp23208 = getelementptr inbounds float* %tmp23207, i64 1
+ %tmp23209 = getelementptr inbounds float* %tmp23208, i64 1
+ %tmp23210 = getelementptr inbounds float* %tmp23209, i64 1
+ %tmp23211 = getelementptr inbounds float* %tmp23210, i64 1
+ %tmp23212 = getelementptr inbounds float* %tmp23211, i64 1
+ %tmp23213 = getelementptr inbounds float* %tmp23212, i64 1
+ %tmp23214 = getelementptr inbounds float* %tmp23213, i64 1
+ %tmp23215 = getelementptr inbounds float* %tmp23214, i64 1
+ %tmp23216 = getelementptr inbounds float* %tmp23215, i64 1
+ %tmp23217 = getelementptr inbounds float* %tmp23216, i64 1
+ %tmp23218 = getelementptr inbounds float* %tmp23217, i64 1
+ %tmp23219 = getelementptr inbounds float* %tmp23218, i64 1
+ %tmp23220 = getelementptr inbounds float* %tmp23219, i64 1
+ %tmp23221 = getelementptr inbounds float* %tmp23220, i64 1
+ %tmp23222 = getelementptr inbounds float* %tmp23221, i64 1
+ %tmp23223 = getelementptr inbounds float* %tmp23222, i64 1
+ %tmp23224 = getelementptr inbounds float* %tmp23223, i64 1
+ %tmp23225 = getelementptr inbounds float* %tmp23224, i64 1
+ %tmp23226 = getelementptr inbounds float* %tmp23225, i64 1
+ %tmp23227 = getelementptr inbounds float* %tmp23226, i64 1
+ %tmp23228 = getelementptr inbounds float* %tmp23227, i64 1
+ %tmp23229 = getelementptr inbounds float* %tmp23228, i64 1
+ %tmp23230 = getelementptr inbounds float* %tmp23229, i64 1
+ %tmp23231 = getelementptr inbounds float* %tmp23230, i64 1
+ %tmp23232 = getelementptr inbounds float* %tmp23231, i64 1
+ %tmp23233 = getelementptr inbounds float* %tmp23232, i64 1
+ %tmp23234 = getelementptr inbounds float* %tmp23233, i64 1
+ %tmp23235 = getelementptr inbounds float* %tmp23234, i64 1
+ %tmp23236 = getelementptr inbounds float* %tmp23235, i64 1
+ %tmp23237 = getelementptr inbounds float* %tmp23236, i64 1
+ %tmp23238 = getelementptr inbounds float* %tmp23237, i64 1
+ %tmp23239 = getelementptr inbounds float* %tmp23238, i64 1
+ %tmp23240 = getelementptr inbounds float* %tmp23239, i64 1
+ %tmp23241 = getelementptr inbounds float* %tmp23240, i64 1
+ %tmp23242 = getelementptr inbounds float* %tmp23241, i64 1
+ %tmp23243 = getelementptr inbounds float* %tmp23242, i64 1
+ %tmp23244 = getelementptr inbounds float* %tmp23243, i64 1
+ %tmp23245 = getelementptr inbounds float* %tmp23244, i64 1
+ %tmp23246 = getelementptr inbounds float* %tmp23245, i64 1
+ %tmp23247 = getelementptr inbounds float* %tmp23246, i64 1
+ %tmp23248 = getelementptr inbounds float* %tmp23247, i64 1
+ %tmp23249 = getelementptr inbounds float* %tmp23248, i64 1
+ %tmp23250 = getelementptr inbounds float* %tmp23249, i64 1
+ %tmp23251 = getelementptr inbounds float* %tmp23250, i64 1
+ %tmp23252 = getelementptr inbounds float* %tmp23251, i64 1
+ %tmp23253 = getelementptr inbounds float* %tmp23252, i64 1
+ %tmp23254 = getelementptr inbounds float* %tmp23253, i64 1
+ %tmp23255 = getelementptr inbounds float* %tmp23254, i64 1
+ %tmp23256 = getelementptr inbounds float* %tmp23255, i64 1
+ %tmp23257 = getelementptr inbounds float* %tmp23256, i64 1
+ %tmp23258 = getelementptr inbounds float* %tmp23257, i64 1
+ %tmp23259 = getelementptr inbounds float* %tmp23258, i64 1
+ %tmp23260 = getelementptr inbounds float* %tmp23259, i64 1
+ %tmp23261 = getelementptr inbounds float* %tmp23260, i64 1
+ %tmp23262 = getelementptr inbounds float* %tmp23261, i64 1
+ %tmp23263 = getelementptr inbounds float* %tmp23262, i64 1
+ %tmp23264 = getelementptr inbounds float* %tmp23263, i64 1
+ %tmp23265 = getelementptr inbounds float* %tmp23264, i64 1
+ %tmp23266 = getelementptr inbounds float* %tmp23265, i64 1
+ %tmp23267 = getelementptr inbounds float* %tmp23266, i64 1
+ %tmp23268 = getelementptr inbounds float* %tmp23267, i64 1
+ %tmp23269 = getelementptr inbounds float* %tmp23268, i64 1
+ %tmp23270 = getelementptr inbounds float* %tmp23269, i64 1
+ %tmp23271 = getelementptr inbounds float* %tmp23270, i64 1
+ %tmp23272 = getelementptr inbounds float* %tmp23271, i64 1
+ %tmp23273 = getelementptr inbounds float* %tmp23272, i64 1
+ %tmp23274 = getelementptr inbounds float* %tmp23273, i64 1
+ %tmp23275 = getelementptr inbounds float* %tmp23274, i64 1
+ %tmp23276 = getelementptr inbounds float* %tmp23275, i64 1
+ %tmp23277 = getelementptr inbounds float* %tmp23276, i64 1
+ %tmp23278 = getelementptr inbounds float* %tmp23277, i64 1
+ %tmp23279 = getelementptr inbounds float* %tmp23278, i64 1
+ %tmp23280 = getelementptr inbounds float* %tmp23279, i64 1
+ %tmp23281 = getelementptr inbounds float* %tmp23280, i64 1
+ %tmp23282 = getelementptr inbounds float* %tmp23281, i64 1
+ %tmp23283 = getelementptr inbounds float* %tmp23282, i64 1
+ %tmp23284 = getelementptr inbounds float* %tmp23283, i64 1
+ %tmp23285 = getelementptr inbounds float* %tmp23284, i64 1
+ %tmp23286 = getelementptr inbounds float* %tmp23285, i64 1
+ %tmp23287 = getelementptr inbounds float* %tmp23286, i64 1
+ %tmp23288 = getelementptr inbounds float* %tmp23287, i64 1
+ %tmp23289 = getelementptr inbounds float* %tmp23288, i64 1
+ %tmp23290 = getelementptr inbounds float* %tmp23289, i64 1
+ %tmp23291 = getelementptr inbounds float* %tmp23290, i64 1
+ %tmp23292 = getelementptr inbounds float* %tmp23291, i64 1
+ %tmp23293 = getelementptr inbounds float* %tmp23292, i64 1
+ %tmp23294 = getelementptr inbounds float* %tmp23293, i64 1
+ %tmp23295 = getelementptr inbounds float* %tmp23294, i64 1
+ %tmp23296 = getelementptr inbounds float* %tmp23295, i64 1
+ %tmp23297 = getelementptr inbounds float* %tmp23296, i64 1
+ %tmp23298 = getelementptr inbounds float* %tmp23297, i64 1
+ %tmp23299 = getelementptr inbounds float* %tmp23298, i64 1
+ %tmp23300 = getelementptr inbounds float* %tmp23299, i64 1
+ %tmp23301 = getelementptr inbounds float* %tmp23300, i64 1
+ %tmp23302 = getelementptr inbounds float* %tmp23301, i64 1
+ %tmp23303 = getelementptr inbounds float* %tmp23302, i64 1
+ %tmp23304 = getelementptr inbounds float* %tmp23303, i64 1
+ %tmp23305 = getelementptr inbounds float* %tmp23304, i64 1
+ %tmp23306 = getelementptr inbounds float* %tmp23305, i64 1
+ %tmp23307 = getelementptr inbounds float* %tmp23306, i64 1
+ %tmp23308 = getelementptr inbounds float* %tmp23307, i64 1
+ %tmp23309 = getelementptr inbounds float* %tmp23308, i64 1
+ %tmp23310 = getelementptr inbounds float* %tmp23309, i64 1
+ %tmp23311 = getelementptr inbounds float* %tmp23310, i64 1
+ %tmp23312 = getelementptr inbounds float* %tmp23311, i64 1
+ %tmp23313 = getelementptr inbounds float* %tmp23312, i64 1
+ %tmp23314 = getelementptr inbounds float* %tmp23313, i64 1
+ %tmp23315 = getelementptr inbounds float* %tmp23314, i64 1
+ %tmp23316 = getelementptr inbounds float* %tmp23315, i64 1
+ %tmp23317 = getelementptr inbounds float* %tmp23316, i64 1
+ %tmp23318 = getelementptr inbounds float* %tmp23317, i64 1
+ %tmp23319 = getelementptr inbounds float* %tmp23318, i64 1
+ %tmp23320 = getelementptr inbounds float* %tmp23319, i64 1
+ %tmp23321 = getelementptr inbounds float* %tmp23320, i64 1
+ %tmp23322 = getelementptr inbounds float* %tmp23321, i64 1
+ %tmp23323 = getelementptr inbounds float* %tmp23322, i64 1
+ %tmp23324 = getelementptr inbounds float* %tmp23323, i64 1
+ %tmp23325 = getelementptr inbounds float* %tmp23324, i64 1
+ %tmp23326 = getelementptr inbounds float* %tmp23325, i64 1
+ %tmp23327 = getelementptr inbounds float* %tmp23326, i64 1
+ %tmp23328 = getelementptr inbounds float* %tmp23327, i64 1
+ %tmp23329 = getelementptr inbounds float* %tmp23328, i64 1
+ %tmp23330 = getelementptr inbounds float* %tmp23329, i64 1
+ %tmp23331 = getelementptr inbounds float* %tmp23330, i64 1
+ %tmp23332 = getelementptr inbounds float* %tmp23331, i64 1
+ %tmp23333 = getelementptr inbounds float* %tmp23332, i64 1
+ %tmp23334 = getelementptr inbounds float* %tmp23333, i64 1
+ %tmp23335 = getelementptr inbounds float* %tmp23334, i64 1
+ %tmp23336 = getelementptr inbounds float* %tmp23335, i64 1
+ %tmp23337 = getelementptr inbounds float* %tmp23336, i64 1
+ %tmp23338 = getelementptr inbounds float* %tmp23337, i64 1
+ %tmp23339 = getelementptr inbounds float* %tmp23338, i64 1
+ %tmp23340 = getelementptr inbounds float* %tmp23339, i64 1
+ %tmp23341 = getelementptr inbounds float* %tmp23340, i64 1
+ %tmp23342 = getelementptr inbounds float* %tmp23341, i64 1
+ %tmp23343 = getelementptr inbounds float* %tmp23342, i64 1
+ %tmp23344 = getelementptr inbounds float* %tmp23343, i64 1
+ %tmp23345 = getelementptr inbounds float* %tmp23344, i64 1
+ %tmp23346 = getelementptr inbounds float* %tmp23345, i64 1
+ %tmp23347 = getelementptr inbounds float* %tmp23346, i64 1
+ %tmp23348 = getelementptr inbounds float* %tmp23347, i64 1
+ %tmp23349 = getelementptr inbounds float* %tmp23348, i64 1
+ %tmp23350 = getelementptr inbounds float* %tmp23349, i64 1
+ %tmp23351 = getelementptr inbounds float* %tmp23350, i64 1
+ %tmp23352 = getelementptr inbounds float* %tmp23351, i64 1
+ %tmp23353 = getelementptr inbounds float* %tmp23352, i64 1
+ %tmp23354 = getelementptr inbounds float* %tmp23353, i64 1
+ %tmp23355 = getelementptr inbounds float* %tmp23354, i64 1
+ %tmp23356 = getelementptr inbounds float* %tmp23355, i64 1
+ %tmp23357 = getelementptr inbounds float* %tmp23356, i64 1
+ %tmp23358 = getelementptr inbounds float* %tmp23357, i64 1
+ %tmp23359 = getelementptr inbounds float* %tmp23358, i64 1
+ %tmp23360 = getelementptr inbounds float* %tmp23359, i64 1
+ %tmp23361 = getelementptr inbounds float* %tmp23360, i64 1
+ %tmp23362 = getelementptr inbounds float* %tmp23361, i64 1
+ %tmp23363 = getelementptr inbounds float* %tmp23362, i64 1
+ %tmp23364 = getelementptr inbounds float* %tmp23363, i64 1
+ %tmp23365 = getelementptr inbounds float* %tmp23364, i64 1
+ %tmp23366 = getelementptr inbounds float* %tmp23365, i64 1
+ %tmp23367 = getelementptr inbounds float* %tmp23366, i64 1
+ %tmp23368 = getelementptr inbounds float* %tmp23367, i64 1
+ %tmp23369 = getelementptr inbounds float* %tmp23368, i64 1
+ %tmp23370 = getelementptr inbounds float* %tmp23369, i64 1
+ %tmp23371 = getelementptr inbounds float* %tmp23370, i64 1
+ %tmp23372 = getelementptr inbounds float* %tmp23371, i64 1
+ %tmp23373 = getelementptr inbounds float* %tmp23372, i64 1
+ %tmp23374 = getelementptr inbounds float* %tmp23373, i64 1
+ %tmp23375 = getelementptr inbounds float* %tmp23374, i64 1
+ %tmp23376 = getelementptr inbounds float* %tmp23375, i64 1
+ %tmp23377 = getelementptr inbounds float* %tmp23376, i64 1
+ %tmp23378 = getelementptr inbounds float* %tmp23377, i64 1
+ %tmp23379 = getelementptr inbounds float* %tmp23378, i64 1
+ %tmp23380 = getelementptr inbounds float* %tmp23379, i64 1
+ %tmp23381 = getelementptr inbounds float* %tmp23380, i64 1
+ %tmp23382 = getelementptr inbounds float* %tmp23381, i64 1
+ %tmp23383 = getelementptr inbounds float* %tmp23382, i64 1
+ %tmp23384 = getelementptr inbounds float* %tmp23383, i64 1
+ %tmp23385 = getelementptr inbounds float* %tmp23384, i64 1
+ %tmp23386 = getelementptr inbounds float* %tmp23385, i64 1
+ %tmp23387 = getelementptr inbounds float* %tmp23386, i64 1
+ %tmp23388 = getelementptr inbounds float* %tmp23387, i64 1
+ %tmp23389 = getelementptr inbounds float* %tmp23388, i64 1
+ %tmp23390 = getelementptr inbounds float* %tmp23389, i64 1
+ %tmp23391 = getelementptr inbounds float* %tmp23390, i64 1
+ %tmp23392 = getelementptr inbounds float* %tmp23391, i64 1
+ %tmp23393 = getelementptr inbounds float* %tmp23392, i64 1
+ %tmp23394 = getelementptr inbounds float* %tmp23393, i64 1
+ %tmp23395 = getelementptr inbounds float* %tmp23394, i64 1
+ %tmp23396 = getelementptr inbounds float* %tmp23395, i64 1
+ %tmp23397 = getelementptr inbounds float* %tmp23396, i64 1
+ %tmp23398 = getelementptr inbounds float* %tmp23397, i64 1
+ %tmp23399 = getelementptr inbounds float* %tmp23398, i64 1
+ %tmp23400 = getelementptr inbounds float* %tmp23399, i64 1
+ %tmp23401 = getelementptr inbounds float* %tmp23400, i64 1
+ %tmp23402 = getelementptr inbounds float* %tmp23401, i64 1
+ %tmp23403 = getelementptr inbounds float* %tmp23402, i64 1
+ %tmp23404 = getelementptr inbounds float* %tmp23403, i64 1
+ %tmp23405 = getelementptr inbounds float* %tmp23404, i64 1
+ %tmp23406 = getelementptr inbounds float* %tmp23405, i64 1
+ %tmp23407 = getelementptr inbounds float* %tmp23406, i64 1
+ %tmp23408 = getelementptr inbounds float* %tmp23407, i64 1
+ %tmp23409 = getelementptr inbounds float* %tmp23408, i64 1
+ %tmp23410 = getelementptr inbounds float* %tmp23409, i64 1
+ %tmp23411 = getelementptr inbounds float* %tmp23410, i64 1
+ %tmp23412 = getelementptr inbounds float* %tmp23411, i64 1
+ %tmp23413 = getelementptr inbounds float* %tmp23412, i64 1
+ %tmp23414 = getelementptr inbounds float* %tmp23413, i64 1
+ %tmp23415 = getelementptr inbounds float* %tmp23414, i64 1
+ %tmp23416 = getelementptr inbounds float* %tmp23415, i64 1
+ %tmp23417 = getelementptr inbounds float* %tmp23416, i64 1
+ %tmp23418 = getelementptr inbounds float* %tmp23417, i64 1
+ %tmp23419 = getelementptr inbounds float* %tmp23418, i64 1
+ %tmp23420 = getelementptr inbounds float* %tmp23419, i64 1
+ %tmp23421 = getelementptr inbounds float* %tmp23420, i64 1
+ %tmp23422 = getelementptr inbounds float* %tmp23421, i64 1
+ %tmp23423 = getelementptr inbounds float* %tmp23422, i64 1
+ %tmp23424 = getelementptr inbounds float* %tmp23423, i64 1
+ %tmp23425 = getelementptr inbounds float* %tmp23424, i64 1
+ %tmp23426 = getelementptr inbounds float* %tmp23425, i64 1
+ %tmp23427 = getelementptr inbounds float* %tmp23426, i64 1
+ %tmp23428 = getelementptr inbounds float* %tmp23427, i64 1
+ %tmp23429 = getelementptr inbounds float* %tmp23428, i64 1
+ %tmp23430 = getelementptr inbounds float* %tmp23429, i64 1
+ %tmp23431 = getelementptr inbounds float* %tmp23430, i64 1
+ %tmp23432 = getelementptr inbounds float* %tmp23431, i64 1
+ %tmp23433 = getelementptr inbounds float* %tmp23432, i64 1
+ %tmp23434 = getelementptr inbounds float* %tmp23433, i64 1
+ %tmp23435 = getelementptr inbounds float* %tmp23434, i64 1
+ %tmp23436 = getelementptr inbounds float* %tmp23435, i64 1
+ %tmp23437 = getelementptr inbounds float* %tmp23436, i64 1
+ %tmp23438 = getelementptr inbounds float* %tmp23437, i64 1
+ %tmp23439 = getelementptr inbounds float* %tmp23438, i64 1
+ %tmp23440 = getelementptr inbounds float* %tmp23439, i64 1
+ %tmp23441 = getelementptr inbounds float* %tmp23440, i64 1
+ %tmp23442 = getelementptr inbounds float* %tmp23441, i64 1
+ %tmp23443 = getelementptr inbounds float* %tmp23442, i64 1
+ %tmp23444 = getelementptr inbounds float* %tmp23443, i64 1
+ %tmp23445 = getelementptr inbounds float* %tmp23444, i64 1
+ %tmp23446 = getelementptr inbounds float* %tmp23445, i64 1
+ %tmp23447 = getelementptr inbounds float* %tmp23446, i64 1
+ %tmp23448 = getelementptr inbounds float* %tmp23447, i64 1
+ %tmp23449 = getelementptr inbounds float* %tmp23448, i64 1
+ %tmp23450 = getelementptr inbounds float* %tmp23449, i64 1
+ %tmp23451 = getelementptr inbounds float* %tmp23450, i64 1
+ %tmp23452 = getelementptr inbounds float* %tmp23451, i64 1
+ %tmp23453 = getelementptr inbounds float* %tmp23452, i64 1
+ %tmp23454 = getelementptr inbounds float* %tmp23453, i64 1
+ %tmp23455 = getelementptr inbounds float* %tmp23454, i64 1
+ %tmp23456 = getelementptr inbounds float* %tmp23455, i64 1
+ %tmp23457 = getelementptr inbounds float* %tmp23456, i64 1
+ %tmp23458 = getelementptr inbounds float* %tmp23457, i64 1
+ %tmp23459 = getelementptr inbounds float* %tmp23458, i64 1
+ %tmp23460 = getelementptr inbounds float* %tmp23459, i64 1
+ %tmp23461 = getelementptr inbounds float* %tmp23460, i64 1
+ %tmp23462 = getelementptr inbounds float* %tmp23461, i64 1
+ %tmp23463 = getelementptr inbounds float* %tmp23462, i64 1
+ %tmp23464 = getelementptr inbounds float* %tmp23463, i64 1
+ %tmp23465 = getelementptr inbounds float* %tmp23464, i64 1
+ %tmp23466 = getelementptr inbounds float* %tmp23465, i64 1
+ %tmp23467 = getelementptr inbounds float* %tmp23466, i64 1
+ %tmp23468 = getelementptr inbounds float* %tmp23467, i64 1
+ %tmp23469 = getelementptr inbounds float* %tmp23468, i64 1
+ %tmp23470 = getelementptr inbounds float* %tmp23469, i64 1
+ %tmp23471 = getelementptr inbounds float* %tmp23470, i64 1
+ %tmp23472 = getelementptr inbounds float* %tmp23471, i64 1
+ %tmp23473 = getelementptr inbounds float* %tmp23472, i64 1
+ %tmp23474 = getelementptr inbounds float* %tmp23473, i64 1
+ %tmp23475 = getelementptr inbounds float* %tmp23474, i64 1
+ %tmp23476 = getelementptr inbounds float* %tmp23475, i64 1
+ %tmp23477 = getelementptr inbounds float* %tmp23476, i64 1
+ %tmp23478 = getelementptr inbounds float* %tmp23477, i64 1
+ %tmp23479 = getelementptr inbounds float* %tmp23478, i64 1
+ %tmp23480 = getelementptr inbounds float* %tmp23479, i64 1
+ %tmp23481 = getelementptr inbounds float* %tmp23480, i64 1
+ %tmp23482 = getelementptr inbounds float* %tmp23481, i64 1
+ %tmp23483 = getelementptr inbounds float* %tmp23482, i64 1
+ %tmp23484 = getelementptr inbounds float* %tmp23483, i64 1
+ %tmp23485 = getelementptr inbounds float* %tmp23484, i64 1
+ %tmp23486 = getelementptr inbounds float* %tmp23485, i64 1
+ %tmp23487 = getelementptr inbounds float* %tmp23486, i64 1
+ %tmp23488 = getelementptr inbounds float* %tmp23487, i64 1
+ %tmp23489 = getelementptr inbounds float* %tmp23488, i64 1
+ %tmp23490 = getelementptr inbounds float* %tmp23489, i64 1
+ %tmp23491 = getelementptr inbounds float* %tmp23490, i64 1
+ %tmp23492 = getelementptr inbounds float* %tmp23491, i64 1
+ %tmp23493 = getelementptr inbounds float* %tmp23492, i64 1
+ %tmp23494 = getelementptr inbounds float* %tmp23493, i64 1
+ %tmp23495 = getelementptr inbounds float* %tmp23494, i64 1
+ %tmp23496 = getelementptr inbounds float* %tmp23495, i64 1
+ %tmp23497 = getelementptr inbounds float* %tmp23496, i64 1
+ %tmp23498 = getelementptr inbounds float* %tmp23497, i64 1
+ %tmp23499 = getelementptr inbounds float* %tmp23498, i64 1
+ %tmp23500 = getelementptr inbounds float* %tmp23499, i64 1
+ %tmp23501 = getelementptr inbounds float* %tmp23500, i64 1
+ %tmp23502 = getelementptr inbounds float* %tmp23501, i64 1
+ %tmp23503 = getelementptr inbounds float* %tmp23502, i64 1
+ %tmp23504 = getelementptr inbounds float* %tmp23503, i64 1
+ %tmp23505 = getelementptr inbounds float* %tmp23504, i64 1
+ %tmp23506 = getelementptr inbounds float* %tmp23505, i64 1
+ %tmp23507 = getelementptr inbounds float* %tmp23506, i64 1
+ %tmp23508 = getelementptr inbounds float* %tmp23507, i64 1
+ %tmp23509 = getelementptr inbounds float* %tmp23508, i64 1
+ %tmp23510 = getelementptr inbounds float* %tmp23509, i64 1
+ %tmp23511 = getelementptr inbounds float* %tmp23510, i64 1
+ %tmp23512 = getelementptr inbounds float* %tmp23511, i64 1
+ %tmp23513 = getelementptr inbounds float* %tmp23512, i64 1
+ %tmp23514 = getelementptr inbounds float* %tmp23513, i64 1
+ %tmp23515 = getelementptr inbounds float* %tmp23514, i64 1
+ %tmp23516 = getelementptr inbounds float* %tmp23515, i64 1
+ %tmp23517 = getelementptr inbounds float* %tmp23516, i64 1
+ %tmp23518 = getelementptr inbounds float* %tmp23517, i64 1
+ %tmp23519 = getelementptr inbounds float* %tmp23518, i64 1
+ %tmp23520 = getelementptr inbounds float* %tmp23519, i64 1
+ %tmp23521 = getelementptr inbounds float* %tmp23520, i64 1
+ %tmp23522 = getelementptr inbounds float* %tmp23521, i64 1
+ %tmp23523 = getelementptr inbounds float* %tmp23522, i64 1
+ %tmp23524 = getelementptr inbounds float* %tmp23523, i64 1
+ %tmp23525 = getelementptr inbounds float* %tmp23524, i64 1
+ %tmp23526 = getelementptr inbounds float* %tmp23525, i64 1
+ %tmp23527 = getelementptr inbounds float* %tmp23526, i64 1
+ %tmp23528 = getelementptr inbounds float* %tmp23527, i64 1
+ %tmp23529 = getelementptr inbounds float* %tmp23528, i64 1
+ %tmp23530 = getelementptr inbounds float* %tmp23529, i64 1
+ %tmp23531 = getelementptr inbounds float* %tmp23530, i64 1
+ %tmp23532 = getelementptr inbounds float* %tmp23531, i64 1
+ %tmp23533 = getelementptr inbounds float* %tmp23532, i64 1
+ %tmp23534 = getelementptr inbounds float* %tmp23533, i64 1
+ %tmp23535 = getelementptr inbounds float* %tmp23534, i64 1
+ %tmp23536 = getelementptr inbounds float* %tmp23535, i64 1
+ %tmp23537 = getelementptr inbounds float* %tmp23536, i64 1
+ %tmp23538 = getelementptr inbounds float* %tmp23537, i64 1
+ %tmp23539 = getelementptr inbounds float* %tmp23538, i64 1
+ %tmp23540 = getelementptr inbounds float* %tmp23539, i64 1
+ %tmp23541 = getelementptr inbounds float* %tmp23540, i64 1
+ %tmp23542 = getelementptr inbounds float* %tmp23541, i64 1
+ %tmp23543 = getelementptr inbounds float* %tmp23542, i64 1
+ %tmp23544 = getelementptr inbounds float* %tmp23543, i64 1
+ %tmp23545 = getelementptr inbounds float* %tmp23544, i64 1
+ %tmp23546 = getelementptr inbounds float* %tmp23545, i64 1
+ %tmp23547 = getelementptr inbounds float* %tmp23546, i64 1
+ %tmp23548 = getelementptr inbounds float* %tmp23547, i64 1
+ %tmp23549 = getelementptr inbounds float* %tmp23548, i64 1
+ %tmp23550 = getelementptr inbounds float* %tmp23549, i64 1
+ %tmp23551 = getelementptr inbounds float* %tmp23550, i64 1
+ %tmp23552 = getelementptr inbounds float* %tmp23551, i64 1
+ %tmp23553 = getelementptr inbounds float* %tmp23552, i64 1
+ %tmp23554 = getelementptr inbounds float* %tmp23553, i64 1
+ %tmp23555 = getelementptr inbounds float* %tmp23554, i64 1
+ %tmp23556 = getelementptr inbounds float* %tmp23555, i64 1
+ %tmp23557 = getelementptr inbounds float* %tmp23556, i64 1
+ %tmp23558 = getelementptr inbounds float* %tmp23557, i64 1
+ %tmp23559 = getelementptr inbounds float* %tmp23558, i64 1
+ %tmp23560 = getelementptr inbounds float* %tmp23559, i64 1
+ %tmp23561 = getelementptr inbounds float* %tmp23560, i64 1
+ %tmp23562 = getelementptr inbounds float* %tmp23561, i64 1
+ %tmp23563 = getelementptr inbounds float* %tmp23562, i64 1
+ %tmp23564 = getelementptr inbounds float* %tmp23563, i64 1
+ %tmp23565 = getelementptr inbounds float* %tmp23564, i64 1
+ %tmp23566 = getelementptr inbounds float* %tmp23565, i64 1
+ %tmp23567 = getelementptr inbounds float* %tmp23566, i64 1
+ %tmp23568 = getelementptr inbounds float* %tmp23567, i64 1
+ %tmp23569 = getelementptr inbounds float* %tmp23568, i64 1
+ %tmp23570 = getelementptr inbounds float* %tmp23569, i64 1
+ %tmp23571 = getelementptr inbounds float* %tmp23570, i64 1
+ %tmp23572 = getelementptr inbounds float* %tmp23571, i64 1
+ %tmp23573 = getelementptr inbounds float* %tmp23572, i64 1
+ %tmp23574 = getelementptr inbounds float* %tmp23573, i64 1
+ %tmp23575 = getelementptr inbounds float* %tmp23574, i64 1
+ %tmp23576 = getelementptr inbounds float* %tmp23575, i64 1
+ %tmp23577 = getelementptr inbounds float* %tmp23576, i64 1
+ %tmp23578 = getelementptr inbounds float* %tmp23577, i64 1
+ %tmp23579 = getelementptr inbounds float* %tmp23578, i64 1
+ %tmp23580 = getelementptr inbounds float* %tmp23579, i64 1
+ %tmp23581 = getelementptr inbounds float* %tmp23580, i64 1
+ %tmp23582 = getelementptr inbounds float* %tmp23581, i64 1
+ %tmp23583 = getelementptr inbounds float* %tmp23582, i64 1
+ %tmp23584 = getelementptr inbounds float* %tmp23583, i64 1
+ %tmp23585 = getelementptr inbounds float* %tmp23584, i64 1
+ %tmp23586 = getelementptr inbounds float* %tmp23585, i64 1
+ %tmp23587 = getelementptr inbounds float* %tmp23586, i64 1
+ %tmp23588 = getelementptr inbounds float* %tmp23587, i64 1
+ %tmp23589 = getelementptr inbounds float* %tmp23588, i64 1
+ %tmp23590 = getelementptr inbounds float* %tmp23589, i64 1
+ %tmp23591 = getelementptr inbounds float* %tmp23590, i64 1
+ %tmp23592 = getelementptr inbounds float* %tmp23591, i64 1
+ %tmp23593 = getelementptr inbounds float* %tmp23592, i64 1
+ %tmp23594 = getelementptr inbounds float* %tmp23593, i64 1
+ %tmp23595 = getelementptr inbounds float* %tmp23594, i64 1
+ %tmp23596 = getelementptr inbounds float* %tmp23595, i64 1
+ %tmp23597 = getelementptr inbounds float* %tmp23596, i64 1
+ %tmp23598 = getelementptr inbounds float* %tmp23597, i64 1
+ %tmp23599 = getelementptr inbounds float* %tmp23598, i64 1
+ %tmp23600 = getelementptr inbounds float* %tmp23599, i64 1
+ %tmp23601 = getelementptr inbounds float* %tmp23600, i64 1
+ %tmp23602 = getelementptr inbounds float* %tmp23601, i64 1
+ %tmp23603 = getelementptr inbounds float* %tmp23602, i64 1
+ %tmp23604 = getelementptr inbounds float* %tmp23603, i64 1
+ %tmp23605 = getelementptr inbounds float* %tmp23604, i64 1
+ %tmp23606 = getelementptr inbounds float* %tmp23605, i64 1
+ %tmp23607 = getelementptr inbounds float* %tmp23606, i64 1
+ %tmp23608 = getelementptr inbounds float* %tmp23607, i64 1
+ %tmp23609 = getelementptr inbounds float* %tmp23608, i64 1
+ %tmp23610 = getelementptr inbounds float* %tmp23609, i64 1
+ %tmp23611 = getelementptr inbounds float* %tmp23610, i64 1
+ %tmp23612 = getelementptr inbounds float* %tmp23611, i64 1
+ %tmp23613 = getelementptr inbounds float* %tmp23612, i64 1
+ %tmp23614 = getelementptr inbounds float* %tmp23613, i64 1
+ %tmp23615 = getelementptr inbounds float* %tmp23614, i64 1
+ %tmp23616 = getelementptr inbounds float* %tmp23615, i64 1
+ %tmp23617 = getelementptr inbounds float* %tmp23616, i64 1
+ %tmp23618 = getelementptr inbounds float* %tmp23617, i64 1
+ %tmp23619 = getelementptr inbounds float* %tmp23618, i64 1
+ %tmp23620 = getelementptr inbounds float* %tmp23619, i64 1
+ %tmp23621 = getelementptr inbounds float* %tmp23620, i64 1
+ %tmp23622 = getelementptr inbounds float* %tmp23621, i64 1
+ %tmp23623 = getelementptr inbounds float* %tmp23622, i64 1
+ %tmp23624 = getelementptr inbounds float* %tmp23623, i64 1
+ %tmp23625 = getelementptr inbounds float* %tmp23624, i64 1
+ %tmp23626 = getelementptr inbounds float* %tmp23625, i64 1
+ %tmp23627 = getelementptr inbounds float* %tmp23626, i64 1
+ %tmp23628 = getelementptr inbounds float* %tmp23627, i64 1
+ %tmp23629 = getelementptr inbounds float* %tmp23628, i64 1
+ %tmp23630 = getelementptr inbounds float* %tmp23629, i64 1
+ %tmp23631 = getelementptr inbounds float* %tmp23630, i64 1
+ %tmp23632 = getelementptr inbounds float* %tmp23631, i64 1
+ %tmp23633 = getelementptr inbounds float* %tmp23632, i64 1
+ %tmp23634 = getelementptr inbounds float* %tmp23633, i64 1
+ %tmp23635 = getelementptr inbounds float* %tmp23634, i64 1
+ %tmp23636 = getelementptr inbounds float* %tmp23635, i64 1
+ %tmp23637 = getelementptr inbounds float* %tmp23636, i64 1
+ %tmp23638 = getelementptr inbounds float* %tmp23637, i64 1
+ %tmp23639 = getelementptr inbounds float* %tmp23638, i64 1
+ %tmp23640 = getelementptr inbounds float* %tmp23639, i64 1
+ %tmp23641 = getelementptr inbounds float* %tmp23640, i64 1
+ %tmp23642 = getelementptr inbounds float* %tmp23641, i64 1
+ %tmp23643 = getelementptr inbounds float* %tmp23642, i64 1
+ %tmp23644 = getelementptr inbounds float* %tmp23643, i64 1
+ %tmp23645 = getelementptr inbounds float* %tmp23644, i64 1
+ %tmp23646 = getelementptr inbounds float* %tmp23645, i64 1
+ %tmp23647 = getelementptr inbounds float* %tmp23646, i64 1
+ %tmp23648 = getelementptr inbounds float* %tmp23647, i64 1
+ %tmp23649 = getelementptr inbounds float* %tmp23648, i64 1
+ %tmp23650 = getelementptr inbounds float* %tmp23649, i64 1
+ %tmp23651 = getelementptr inbounds float* %tmp23650, i64 1
+ %tmp23652 = getelementptr inbounds float* %tmp23651, i64 1
+ %tmp23653 = getelementptr inbounds float* %tmp23652, i64 1
+ %tmp23654 = getelementptr inbounds float* %tmp23653, i64 1
+ %tmp23655 = getelementptr inbounds float* %tmp23654, i64 1
+ %tmp23656 = getelementptr inbounds float* %tmp23655, i64 1
+ %tmp23657 = getelementptr inbounds float* %tmp23656, i64 1
+ %tmp23658 = getelementptr inbounds float* %tmp23657, i64 1
+ %tmp23659 = getelementptr inbounds float* %tmp23658, i64 1
+ %tmp23660 = getelementptr inbounds float* %tmp23659, i64 1
+ %tmp23661 = getelementptr inbounds float* %tmp23660, i64 1
+ %tmp23662 = getelementptr inbounds float* %tmp23661, i64 1
+ %tmp23663 = getelementptr inbounds float* %tmp23662, i64 1
+ %tmp23664 = getelementptr inbounds float* %tmp23663, i64 1
+ %tmp23665 = getelementptr inbounds float* %tmp23664, i64 1
+ %tmp23666 = getelementptr inbounds float* %tmp23665, i64 1
+ %tmp23667 = getelementptr inbounds float* %tmp23666, i64 1
+ %tmp23668 = getelementptr inbounds float* %tmp23667, i64 1
+ %tmp23669 = getelementptr inbounds float* %tmp23668, i64 1
+ %tmp23670 = getelementptr inbounds float* %tmp23669, i64 1
+ %tmp23671 = getelementptr inbounds float* %tmp23670, i64 1
+ %tmp23672 = getelementptr inbounds float* %tmp23671, i64 1
+ %tmp23673 = getelementptr inbounds float* %tmp23672, i64 1
+ %tmp23674 = getelementptr inbounds float* %tmp23673, i64 1
+ %tmp23675 = getelementptr inbounds float* %tmp23674, i64 1
+ %tmp23676 = getelementptr inbounds float* %tmp23675, i64 1
+ %tmp23677 = getelementptr inbounds float* %tmp23676, i64 1
+ %tmp23678 = getelementptr inbounds float* %tmp23677, i64 1
+ %tmp23679 = getelementptr inbounds float* %tmp23678, i64 1
+ %tmp23680 = getelementptr inbounds float* %tmp23679, i64 1
+ %tmp23681 = getelementptr inbounds float* %tmp23680, i64 1
+ %tmp23682 = getelementptr inbounds float* %tmp23681, i64 1
+ %tmp23683 = getelementptr inbounds float* %tmp23682, i64 1
+ %tmp23684 = getelementptr inbounds float* %tmp23683, i64 1
+ %tmp23685 = getelementptr inbounds float* %tmp23684, i64 1
+ %tmp23686 = getelementptr inbounds float* %tmp23685, i64 1
+ %tmp23687 = getelementptr inbounds float* %tmp23686, i64 1
+ %tmp23688 = getelementptr inbounds float* %tmp23687, i64 1
+ %tmp23689 = getelementptr inbounds float* %tmp23688, i64 1
+ %tmp23690 = getelementptr inbounds float* %tmp23689, i64 1
+ %tmp23691 = getelementptr inbounds float* %tmp23690, i64 1
+ %tmp23692 = getelementptr inbounds float* %tmp23691, i64 1
+ %tmp23693 = getelementptr inbounds float* %tmp23692, i64 1
+ %tmp23694 = getelementptr inbounds float* %tmp23693, i64 1
+ %tmp23695 = getelementptr inbounds float* %tmp23694, i64 1
+ %tmp23696 = getelementptr inbounds float* %tmp23695, i64 1
+ %tmp23697 = getelementptr inbounds float* %tmp23696, i64 1
+ %tmp23698 = getelementptr inbounds float* %tmp23697, i64 1
+ %tmp23699 = getelementptr inbounds float* %tmp23698, i64 1
+ %tmp23700 = getelementptr inbounds float* %tmp23699, i64 1
+ %tmp23701 = getelementptr inbounds float* %tmp23700, i64 1
+ %tmp23702 = getelementptr inbounds float* %tmp23701, i64 1
+ %tmp23703 = getelementptr inbounds float* %tmp23702, i64 1
+ %tmp23704 = getelementptr inbounds float* %tmp23703, i64 1
+ %tmp23705 = getelementptr inbounds float* %tmp23704, i64 1
+ %tmp23706 = getelementptr inbounds float* %tmp23705, i64 1
+ %tmp23707 = getelementptr inbounds float* %tmp23706, i64 1
+ %tmp23708 = getelementptr inbounds float* %tmp23707, i64 1
+ %tmp23709 = getelementptr inbounds float* %tmp23708, i64 1
+ %tmp23710 = getelementptr inbounds float* %tmp23709, i64 1
+ %tmp23711 = getelementptr inbounds float* %tmp23710, i64 1
+ %tmp23712 = getelementptr inbounds float* %tmp23711, i64 1
+ %tmp23713 = getelementptr inbounds float* %tmp23712, i64 1
+ %tmp23714 = getelementptr inbounds float* %tmp23713, i64 1
+ %tmp23715 = getelementptr inbounds float* %tmp23714, i64 1
+ %tmp23716 = getelementptr inbounds float* %tmp23715, i64 1
+ %tmp23717 = getelementptr inbounds float* %tmp23716, i64 1
+ %tmp23718 = getelementptr inbounds float* %tmp23717, i64 1
+ %tmp23719 = getelementptr inbounds float* %tmp23718, i64 1
+ %tmp23720 = getelementptr inbounds float* %tmp23719, i64 1
+ %tmp23721 = getelementptr inbounds float* %tmp23720, i64 1
+ %tmp23722 = getelementptr inbounds float* %tmp23721, i64 1
+ %tmp23723 = getelementptr inbounds float* %tmp23722, i64 1
+ %tmp23724 = getelementptr inbounds float* %tmp23723, i64 1
+ %tmp23725 = getelementptr inbounds float* %tmp23724, i64 1
+ %tmp23726 = getelementptr inbounds float* %tmp23725, i64 1
+ %tmp23727 = getelementptr inbounds float* %tmp23726, i64 1
+ %tmp23728 = getelementptr inbounds float* %tmp23727, i64 1
+ %tmp23729 = getelementptr inbounds float* %tmp23728, i64 1
+ %tmp23730 = getelementptr inbounds float* %tmp23729, i64 1
+ %tmp23731 = getelementptr inbounds float* %tmp23730, i64 1
+ %tmp23732 = getelementptr inbounds float* %tmp23731, i64 1
+ %tmp23733 = getelementptr inbounds float* %tmp23732, i64 1
+ %tmp23734 = getelementptr inbounds float* %tmp23733, i64 1
+ %tmp23735 = getelementptr inbounds float* %tmp23734, i64 1
+ %tmp23736 = getelementptr inbounds float* %tmp23735, i64 1
+ %tmp23737 = getelementptr inbounds float* %tmp23736, i64 1
+ %tmp23738 = getelementptr inbounds float* %tmp23737, i64 1
+ %tmp23739 = getelementptr inbounds float* %tmp23738, i64 1
+ %tmp23740 = getelementptr inbounds float* %tmp23739, i64 1
+ %tmp23741 = getelementptr inbounds float* %tmp23740, i64 1
+ %tmp23742 = getelementptr inbounds float* %tmp23741, i64 1
+ %tmp23743 = getelementptr inbounds float* %tmp23742, i64 1
+ %tmp23744 = getelementptr inbounds float* %tmp23743, i64 1
+ %tmp23745 = getelementptr inbounds float* %tmp23744, i64 1
+ %tmp23746 = getelementptr inbounds float* %tmp23745, i64 1
+ %tmp23747 = getelementptr inbounds float* %tmp23746, i64 1
+ %tmp23748 = getelementptr inbounds float* %tmp23747, i64 1
+ %tmp23749 = getelementptr inbounds float* %tmp23748, i64 1
+ %tmp23750 = getelementptr inbounds float* %tmp23749, i64 1
+ %tmp23751 = getelementptr inbounds float* %tmp23750, i64 1
+ %tmp23752 = getelementptr inbounds float* %tmp23751, i64 1
+ %tmp23753 = getelementptr inbounds float* %tmp23752, i64 1
+ %tmp23754 = getelementptr inbounds float* %tmp23753, i64 1
+ %tmp23755 = getelementptr inbounds float* %tmp23754, i64 1
+ %tmp23756 = getelementptr inbounds float* %tmp23755, i64 1
+ %tmp23757 = getelementptr inbounds float* %tmp23756, i64 1
+ %tmp23758 = getelementptr inbounds float* %tmp23757, i64 1
+ %tmp23759 = getelementptr inbounds float* %tmp23758, i64 1
+ %tmp23760 = getelementptr inbounds float* %tmp23759, i64 1
+ %tmp23761 = getelementptr inbounds float* %tmp23760, i64 1
+ %tmp23762 = getelementptr inbounds float* %tmp23761, i64 1
+ %tmp23763 = getelementptr inbounds float* %tmp23762, i64 1
+ %tmp23764 = getelementptr inbounds float* %tmp23763, i64 1
+ %tmp23765 = getelementptr inbounds float* %tmp23764, i64 1
+ %tmp23766 = getelementptr inbounds float* %tmp23765, i64 1
+ %tmp23767 = getelementptr inbounds float* %tmp23766, i64 1
+ %tmp23768 = getelementptr inbounds float* %tmp23767, i64 1
+ %tmp23769 = getelementptr inbounds float* %tmp23768, i64 1
+ %tmp23770 = getelementptr inbounds float* %tmp23769, i64 1
+ %tmp23771 = getelementptr inbounds float* %tmp23770, i64 1
+ %tmp23772 = getelementptr inbounds float* %tmp23771, i64 1
+ %tmp23773 = getelementptr inbounds float* %tmp23772, i64 1
+ %tmp23774 = getelementptr inbounds float* %tmp23773, i64 1
+ %tmp23775 = getelementptr inbounds float* %tmp23774, i64 1
+ %tmp23776 = getelementptr inbounds float* %tmp23775, i64 1
+ %tmp23777 = getelementptr inbounds float* %tmp23776, i64 1
+ %tmp23778 = getelementptr inbounds float* %tmp23777, i64 1
+ %tmp23779 = getelementptr inbounds float* %tmp23778, i64 1
+ %tmp23780 = getelementptr inbounds float* %tmp23779, i64 1
+ %tmp23781 = getelementptr inbounds float* %tmp23780, i64 1
+ %tmp23782 = getelementptr inbounds float* %tmp23781, i64 1
+ %tmp23783 = getelementptr inbounds float* %tmp23782, i64 1
+ %tmp23784 = getelementptr inbounds float* %tmp23783, i64 1
+ %tmp23785 = getelementptr inbounds float* %tmp23784, i64 1
+ %tmp23786 = getelementptr inbounds float* %tmp23785, i64 1
+ %tmp23787 = getelementptr inbounds float* %tmp23786, i64 1
+ %tmp23788 = getelementptr inbounds float* %tmp23787, i64 1
+ %tmp23789 = getelementptr inbounds float* %tmp23788, i64 1
+ %tmp23790 = getelementptr inbounds float* %tmp23789, i64 1
+ %tmp23791 = getelementptr inbounds float* %tmp23790, i64 1
+ %tmp23792 = getelementptr inbounds float* %tmp23791, i64 1
+ %tmp23793 = getelementptr inbounds float* %tmp23792, i64 1
+ %tmp23794 = getelementptr inbounds float* %tmp23793, i64 1
+ %tmp23795 = getelementptr inbounds float* %tmp23794, i64 1
+ %tmp23796 = getelementptr inbounds float* %tmp23795, i64 1
+ %tmp23797 = getelementptr inbounds float* %tmp23796, i64 1
+ %tmp23798 = getelementptr inbounds float* %tmp23797, i64 1
+ %tmp23799 = getelementptr inbounds float* %tmp23798, i64 1
+ %tmp23800 = getelementptr inbounds float* %tmp23799, i64 1
+ %tmp23801 = getelementptr inbounds float* %tmp23800, i64 1
+ %tmp23802 = getelementptr inbounds float* %tmp23801, i64 1
+ %tmp23803 = getelementptr inbounds float* %tmp23802, i64 1
+ %tmp23804 = getelementptr inbounds float* %tmp23803, i64 1
+ %tmp23805 = getelementptr inbounds float* %tmp23804, i64 1
+ %tmp23806 = getelementptr inbounds float* %tmp23805, i64 1
+ %tmp23807 = getelementptr inbounds float* %tmp23806, i64 1
+ %tmp23808 = getelementptr inbounds float* %tmp23807, i64 1
+ %tmp23809 = getelementptr inbounds float* %tmp23808, i64 1
+ %tmp23810 = getelementptr inbounds float* %tmp23809, i64 1
+ %tmp23811 = getelementptr inbounds float* %tmp23810, i64 1
+ %tmp23812 = getelementptr inbounds float* %tmp23811, i64 1
+ %tmp23813 = getelementptr inbounds float* %tmp23812, i64 1
+ %tmp23814 = getelementptr inbounds float* %tmp23813, i64 1
+ %tmp23815 = getelementptr inbounds float* %tmp23814, i64 1
+ %tmp23816 = getelementptr inbounds float* %tmp23815, i64 1
+ %tmp23817 = getelementptr inbounds float* %tmp23816, i64 1
+ %tmp23818 = getelementptr inbounds float* %tmp23817, i64 1
+ %tmp23819 = getelementptr inbounds float* %tmp23818, i64 1
+ %tmp23820 = getelementptr inbounds float* %tmp23819, i64 1
+ %tmp23821 = getelementptr inbounds float* %tmp23820, i64 1
+ %tmp23822 = getelementptr inbounds float* %tmp23821, i64 1
+ %tmp23823 = getelementptr inbounds float* %tmp23822, i64 1
+ %tmp23824 = getelementptr inbounds float* %tmp23823, i64 1
+ %tmp23825 = getelementptr inbounds float* %tmp23824, i64 1
+ %tmp23826 = getelementptr inbounds float* %tmp23825, i64 1
+ %tmp23827 = getelementptr inbounds float* %tmp23826, i64 1
+ %tmp23828 = getelementptr inbounds float* %tmp23827, i64 1
+ %tmp23829 = getelementptr inbounds float* %tmp23828, i64 1
+ %tmp23830 = getelementptr inbounds float* %tmp23829, i64 1
+ %tmp23831 = getelementptr inbounds float* %tmp23830, i64 1
+ %tmp23832 = getelementptr inbounds float* %tmp23831, i64 1
+ %tmp23833 = getelementptr inbounds float* %tmp23832, i64 1
+ %tmp23834 = getelementptr inbounds float* %tmp23833, i64 1
+ %tmp23835 = getelementptr inbounds float* %tmp23834, i64 1
+ %tmp23836 = getelementptr inbounds float* %tmp23835, i64 1
+ %tmp23837 = getelementptr inbounds float* %tmp23836, i64 1
+ %tmp23838 = getelementptr inbounds float* %tmp23837, i64 1
+ %tmp23839 = getelementptr inbounds float* %tmp23838, i64 1
+ %tmp23840 = getelementptr inbounds float* %tmp23839, i64 1
+ %tmp23841 = getelementptr inbounds float* %tmp23840, i64 1
+ %tmp23842 = getelementptr inbounds float* %tmp23841, i64 1
+ %tmp23843 = getelementptr inbounds float* %tmp23842, i64 1
+ %tmp23844 = getelementptr inbounds float* %tmp23843, i64 1
+ %tmp23845 = getelementptr inbounds float* %tmp23844, i64 1
+ %tmp23846 = getelementptr inbounds float* %tmp23845, i64 1
+ %tmp23847 = getelementptr inbounds float* %tmp23846, i64 1
+ %tmp23848 = getelementptr inbounds float* %tmp23847, i64 1
+ %tmp23849 = getelementptr inbounds float* %tmp23848, i64 1
+ %tmp23850 = getelementptr inbounds float* %tmp23849, i64 1
+ %tmp23851 = getelementptr inbounds float* %tmp23850, i64 1
+ %tmp23852 = getelementptr inbounds float* %tmp23851, i64 1
+ %tmp23853 = getelementptr inbounds float* %tmp23852, i64 1
+ %tmp23854 = getelementptr inbounds float* %tmp23853, i64 1
+ %tmp23855 = getelementptr inbounds float* %tmp23854, i64 1
+ %tmp23856 = getelementptr inbounds float* %tmp23855, i64 1
+ %tmp23857 = getelementptr inbounds float* %tmp23856, i64 1
+ %tmp23858 = getelementptr inbounds float* %tmp23857, i64 1
+ %tmp23859 = getelementptr inbounds float* %tmp23858, i64 1
+ %tmp23860 = getelementptr inbounds float* %tmp23859, i64 1
+ %tmp23861 = getelementptr inbounds float* %tmp23860, i64 1
+ %tmp23862 = getelementptr inbounds float* %tmp23861, i64 1
+ %tmp23863 = getelementptr inbounds float* %tmp23862, i64 1
+ %tmp23864 = getelementptr inbounds float* %tmp23863, i64 1
+ %tmp23865 = getelementptr inbounds float* %tmp23864, i64 1
+ %tmp23866 = getelementptr inbounds float* %tmp23865, i64 1
+ %tmp23867 = getelementptr inbounds float* %tmp23866, i64 1
+ %tmp23868 = getelementptr inbounds float* %tmp23867, i64 1
+ %tmp23869 = getelementptr inbounds float* %tmp23868, i64 1
+ %tmp23870 = getelementptr inbounds float* %tmp23869, i64 1
+ %tmp23871 = getelementptr inbounds float* %tmp23870, i64 1
+ %tmp23872 = getelementptr inbounds float* %tmp23871, i64 1
+ %tmp23873 = getelementptr inbounds float* %tmp23872, i64 1
+ %tmp23874 = getelementptr inbounds float* %tmp23873, i64 1
+ %tmp23875 = getelementptr inbounds float* %tmp23874, i64 1
+ %tmp23876 = getelementptr inbounds float* %tmp23875, i64 1
+ %tmp23877 = getelementptr inbounds float* %tmp23876, i64 1
+ %tmp23878 = getelementptr inbounds float* %tmp23877, i64 1
+ %tmp23879 = getelementptr inbounds float* %tmp23878, i64 1
+ %tmp23880 = getelementptr inbounds float* %tmp23879, i64 1
+ %tmp23881 = getelementptr inbounds float* %tmp23880, i64 1
+ %tmp23882 = getelementptr inbounds float* %tmp23881, i64 1
+ %tmp23883 = getelementptr inbounds float* %tmp23882, i64 1
+ %tmp23884 = getelementptr inbounds float* %tmp23883, i64 1
+ %tmp23885 = getelementptr inbounds float* %tmp23884, i64 1
+ %tmp23886 = getelementptr inbounds float* %tmp23885, i64 1
+ %tmp23887 = getelementptr inbounds float* %tmp23886, i64 1
+ %tmp23888 = getelementptr inbounds float* %tmp23887, i64 1
+ %tmp23889 = getelementptr inbounds float* %tmp23888, i64 1
+ %tmp23890 = getelementptr inbounds float* %tmp23889, i64 1
+ %tmp23891 = getelementptr inbounds float* %tmp23890, i64 1
+ %tmp23892 = getelementptr inbounds float* %tmp23891, i64 1
+ %tmp23893 = getelementptr inbounds float* %tmp23892, i64 1
+ %tmp23894 = getelementptr inbounds float* %tmp23893, i64 1
+ %tmp23895 = getelementptr inbounds float* %tmp23894, i64 1
+ %tmp23896 = getelementptr inbounds float* %tmp23895, i64 1
+ %tmp23897 = getelementptr inbounds float* %tmp23896, i64 1
+ %tmp23898 = getelementptr inbounds float* %tmp23897, i64 1
+ %tmp23899 = getelementptr inbounds float* %tmp23898, i64 1
+ %tmp23900 = getelementptr inbounds float* %tmp23899, i64 1
+ %tmp23901 = getelementptr inbounds float* %tmp23900, i64 1
+ %tmp23902 = getelementptr inbounds float* %tmp23901, i64 1
+ %tmp23903 = getelementptr inbounds float* %tmp23902, i64 1
+ %tmp23904 = getelementptr inbounds float* %tmp23903, i64 1
+ %tmp23905 = getelementptr inbounds float* %tmp23904, i64 1
+ %tmp23906 = getelementptr inbounds float* %tmp23905, i64 1
+ %tmp23907 = getelementptr inbounds float* %tmp23906, i64 1
+ %tmp23908 = getelementptr inbounds float* %tmp23907, i64 1
+ %tmp23909 = getelementptr inbounds float* %tmp23908, i64 1
+ %tmp23910 = getelementptr inbounds float* %tmp23909, i64 1
+ %tmp23911 = getelementptr inbounds float* %tmp23910, i64 1
+ %tmp23912 = getelementptr inbounds float* %tmp23911, i64 1
+ %tmp23913 = getelementptr inbounds float* %tmp23912, i64 1
+ %tmp23914 = getelementptr inbounds float* %tmp23913, i64 1
+ %tmp23915 = getelementptr inbounds float* %tmp23914, i64 1
+ %tmp23916 = getelementptr inbounds float* %tmp23915, i64 1
+ %tmp23917 = getelementptr inbounds float* %tmp23916, i64 1
+ %tmp23918 = getelementptr inbounds float* %tmp23917, i64 1
+ %tmp23919 = getelementptr inbounds float* %tmp23918, i64 1
+ %tmp23920 = getelementptr inbounds float* %tmp23919, i64 1
+ %tmp23921 = getelementptr inbounds float* %tmp23920, i64 1
+ %tmp23922 = getelementptr inbounds float* %tmp23921, i64 1
+ %tmp23923 = getelementptr inbounds float* %tmp23922, i64 1
+ %tmp23924 = getelementptr inbounds float* %tmp23923, i64 1
+ %tmp23925 = getelementptr inbounds float* %tmp23924, i64 1
+ %tmp23926 = getelementptr inbounds float* %tmp23925, i64 1
+ %tmp23927 = getelementptr inbounds float* %tmp23926, i64 1
+ %tmp23928 = getelementptr inbounds float* %tmp23927, i64 1
+ %tmp23929 = getelementptr inbounds float* %tmp23928, i64 1
+ %tmp23930 = getelementptr inbounds float* %tmp23929, i64 1
+ %tmp23931 = getelementptr inbounds float* %tmp23930, i64 1
+ %tmp23932 = getelementptr inbounds float* %tmp23931, i64 1
+ %tmp23933 = getelementptr inbounds float* %tmp23932, i64 1
+ %tmp23934 = getelementptr inbounds float* %tmp23933, i64 1
+ %tmp23935 = getelementptr inbounds float* %tmp23934, i64 1
+ %tmp23936 = getelementptr inbounds float* %tmp23935, i64 1
+ %tmp23937 = getelementptr inbounds float* %tmp23936, i64 1
+ %tmp23938 = getelementptr inbounds float* %tmp23937, i64 1
+ %tmp23939 = getelementptr inbounds float* %tmp23938, i64 1
+ %tmp23940 = getelementptr inbounds float* %tmp23939, i64 1
+ %tmp23941 = getelementptr inbounds float* %tmp23940, i64 1
+ %tmp23942 = getelementptr inbounds float* %tmp23941, i64 1
+ %tmp23943 = getelementptr inbounds float* %tmp23942, i64 1
+ %tmp23944 = getelementptr inbounds float* %tmp23943, i64 1
+ %tmp23945 = getelementptr inbounds float* %tmp23944, i64 1
+ %tmp23946 = getelementptr inbounds float* %tmp23945, i64 1
+ %tmp23947 = getelementptr inbounds float* %tmp23946, i64 1
+ %tmp23948 = getelementptr inbounds float* %tmp23947, i64 1
+ %tmp23949 = getelementptr inbounds float* %tmp23948, i64 1
+ %tmp23950 = getelementptr inbounds float* %tmp23949, i64 1
+ %tmp23951 = getelementptr inbounds float* %tmp23950, i64 1
+ %tmp23952 = getelementptr inbounds float* %tmp23951, i64 1
+ %tmp23953 = getelementptr inbounds float* %tmp23952, i64 1
+ %tmp23954 = getelementptr inbounds float* %tmp23953, i64 1
+ %tmp23955 = getelementptr inbounds float* %tmp23954, i64 1
+ %tmp23956 = getelementptr inbounds float* %tmp23955, i64 1
+ %tmp23957 = getelementptr inbounds float* %tmp23956, i64 1
+ %tmp23958 = getelementptr inbounds float* %tmp23957, i64 1
+ %tmp23959 = getelementptr inbounds float* %tmp23958, i64 1
+ %tmp23960 = getelementptr inbounds float* %tmp23959, i64 1
+ %tmp23961 = getelementptr inbounds float* %tmp23960, i64 1
+ %tmp23962 = getelementptr inbounds float* %tmp23961, i64 1
+ %tmp23963 = getelementptr inbounds float* %tmp23962, i64 1
+ %tmp23964 = getelementptr inbounds float* %tmp23963, i64 1
+ %tmp23965 = getelementptr inbounds float* %tmp23964, i64 1
+ %tmp23966 = getelementptr inbounds float* %tmp23965, i64 1
+ %tmp23967 = getelementptr inbounds float* %tmp23966, i64 1
+ %tmp23968 = getelementptr inbounds float* %tmp23967, i64 1
+ %tmp23969 = getelementptr inbounds float* %tmp23968, i64 1
+ %tmp23970 = getelementptr inbounds float* %tmp23969, i64 1
+ %tmp23971 = getelementptr inbounds float* %tmp23970, i64 1
+ %tmp23972 = getelementptr inbounds float* %tmp23971, i64 1
+ %tmp23973 = getelementptr inbounds float* %tmp23972, i64 1
+ %tmp23974 = getelementptr inbounds float* %tmp23973, i64 1
+ %tmp23975 = getelementptr inbounds float* %tmp23974, i64 1
+ %tmp23976 = getelementptr inbounds float* %tmp23975, i64 1
+ %tmp23977 = getelementptr inbounds float* %tmp23976, i64 1
+ %tmp23978 = getelementptr inbounds float* %tmp23977, i64 1
+ %tmp23979 = getelementptr inbounds float* %tmp23978, i64 1
+ %tmp23980 = getelementptr inbounds float* %tmp23979, i64 1
+ %tmp23981 = getelementptr inbounds float* %tmp23980, i64 1
+ %tmp23982 = getelementptr inbounds float* %tmp23981, i64 1
+ %tmp23983 = getelementptr inbounds float* %tmp23982, i64 1
+ %tmp23984 = getelementptr inbounds float* %tmp23983, i64 1
+ %tmp23985 = getelementptr inbounds float* %tmp23984, i64 1
+ %tmp23986 = getelementptr inbounds float* %tmp23985, i64 1
+ %tmp23987 = getelementptr inbounds float* %tmp23986, i64 1
+ %tmp23988 = getelementptr inbounds float* %tmp23987, i64 1
+ %tmp23989 = getelementptr inbounds float* %tmp23988, i64 1
+ %tmp23990 = getelementptr inbounds float* %tmp23989, i64 1
+ %tmp23991 = getelementptr inbounds float* %tmp23990, i64 1
+ %tmp23992 = getelementptr inbounds float* %tmp23991, i64 1
+ %tmp23993 = getelementptr inbounds float* %tmp23992, i64 1
+ %tmp23994 = getelementptr inbounds float* %tmp23993, i64 1
+ %tmp23995 = getelementptr inbounds float* %tmp23994, i64 1
+ %tmp23996 = getelementptr inbounds float* %tmp23995, i64 1
+ %tmp23997 = getelementptr inbounds float* %tmp23996, i64 1
+ %tmp23998 = getelementptr inbounds float* %tmp23997, i64 1
+ %tmp23999 = getelementptr inbounds float* %tmp23998, i64 1
+ %tmp24000 = getelementptr inbounds float* %tmp23999, i64 1
+ %tmp24001 = getelementptr inbounds float* %tmp24000, i64 1
+ %tmp24002 = getelementptr inbounds float* %tmp24001, i64 1
+ %tmp24003 = getelementptr inbounds float* %tmp24002, i64 1
+ %tmp24004 = getelementptr inbounds float* %tmp24003, i64 1
+ %tmp24005 = getelementptr inbounds float* %tmp24004, i64 1
+ %tmp24006 = getelementptr inbounds float* %tmp24005, i64 1
+ %tmp24007 = getelementptr inbounds float* %tmp24006, i64 1
+ %tmp24008 = getelementptr inbounds float* %tmp24007, i64 1
+ %tmp24009 = getelementptr inbounds float* %tmp24008, i64 1
+ %tmp24010 = getelementptr inbounds float* %tmp24009, i64 1
+ %tmp24011 = getelementptr inbounds float* %tmp24010, i64 1
+ %tmp24012 = getelementptr inbounds float* %tmp24011, i64 1
+ %tmp24013 = getelementptr inbounds float* %tmp24012, i64 1
+ %tmp24014 = getelementptr inbounds float* %tmp24013, i64 1
+ %tmp24015 = getelementptr inbounds float* %tmp24014, i64 1
+ %tmp24016 = getelementptr inbounds float* %tmp24015, i64 1
+ %tmp24017 = getelementptr inbounds float* %tmp24016, i64 1
+ %tmp24018 = getelementptr inbounds float* %tmp24017, i64 1
+ %tmp24019 = getelementptr inbounds float* %tmp24018, i64 1
+ %tmp24020 = getelementptr inbounds float* %tmp24019, i64 1
+ %tmp24021 = getelementptr inbounds float* %tmp24020, i64 1
+ %tmp24022 = getelementptr inbounds float* %tmp24021, i64 1
+ %tmp24023 = getelementptr inbounds float* %tmp24022, i64 1
+ %tmp24024 = getelementptr inbounds float* %tmp24023, i64 1
+ %tmp24025 = getelementptr inbounds float* %tmp24024, i64 1
+ %tmp24026 = getelementptr inbounds float* %tmp24025, i64 1
+ %tmp24027 = getelementptr inbounds float* %tmp24026, i64 1
+ %tmp24028 = getelementptr inbounds float* %tmp24027, i64 1
+ %tmp24029 = getelementptr inbounds float* %tmp24028, i64 1
+ %tmp24030 = getelementptr inbounds float* %tmp24029, i64 1
+ %tmp24031 = getelementptr inbounds float* %tmp24030, i64 1
+ %tmp24032 = getelementptr inbounds float* %tmp24031, i64 1
+ %tmp24033 = getelementptr inbounds float* %tmp24032, i64 1
+ %tmp24034 = getelementptr inbounds float* %tmp24033, i64 1
+ %tmp24035 = getelementptr inbounds float* %tmp24034, i64 1
+ %tmp24036 = getelementptr inbounds float* %tmp24035, i64 1
+ %tmp24037 = getelementptr inbounds float* %tmp24036, i64 1
+ %tmp24038 = getelementptr inbounds float* %tmp24037, i64 1
+ %tmp24039 = getelementptr inbounds float* %tmp24038, i64 1
+ %tmp24040 = getelementptr inbounds float* %tmp24039, i64 1
+ %tmp24041 = getelementptr inbounds float* %tmp24040, i64 1
+ %tmp24042 = getelementptr inbounds float* %tmp24041, i64 1
+ %tmp24043 = getelementptr inbounds float* %tmp24042, i64 1
+ %tmp24044 = getelementptr inbounds float* %tmp24043, i64 1
+ %tmp24045 = getelementptr inbounds float* %tmp24044, i64 1
+ %tmp24046 = getelementptr inbounds float* %tmp24045, i64 1
+ %tmp24047 = getelementptr inbounds float* %tmp24046, i64 1
+ %tmp24048 = getelementptr inbounds float* %tmp24047, i64 1
+ %tmp24049 = getelementptr inbounds float* %tmp24048, i64 1
+ %tmp24050 = getelementptr inbounds float* %tmp24049, i64 1
+ %tmp24051 = getelementptr inbounds float* %tmp24050, i64 1
+ %tmp24052 = getelementptr inbounds float* %tmp24051, i64 1
+ %tmp24053 = getelementptr inbounds float* %tmp24052, i64 1
+ %tmp24054 = getelementptr inbounds float* %tmp24053, i64 1
+ %tmp24055 = getelementptr inbounds float* %tmp24054, i64 1
+ %tmp24056 = getelementptr inbounds float* %tmp24055, i64 1
+ %tmp24057 = getelementptr inbounds float* %tmp24056, i64 1
+ %tmp24058 = getelementptr inbounds float* %tmp24057, i64 1
+ %tmp24059 = getelementptr inbounds float* %tmp24058, i64 1
+ %tmp24060 = getelementptr inbounds float* %tmp24059, i64 1
+ %tmp24061 = getelementptr inbounds float* %tmp24060, i64 1
+ %tmp24062 = getelementptr inbounds float* %tmp24061, i64 1
+ %tmp24063 = getelementptr inbounds float* %tmp24062, i64 1
+ %tmp24064 = getelementptr inbounds float* %tmp24063, i64 1
+ %tmp24065 = getelementptr inbounds float* %tmp24064, i64 1
+ %tmp24066 = getelementptr inbounds float* %tmp24065, i64 1
+ %tmp24067 = getelementptr inbounds float* %tmp24066, i64 1
+ %tmp24068 = getelementptr inbounds float* %tmp24067, i64 1
+ %tmp24069 = getelementptr inbounds float* %tmp24068, i64 1
+ %tmp24070 = getelementptr inbounds float* %tmp24069, i64 1
+ %tmp24071 = getelementptr inbounds float* %tmp24070, i64 1
+ %tmp24072 = getelementptr inbounds float* %tmp24071, i64 1
+ %tmp24073 = getelementptr inbounds float* %tmp24072, i64 1
+ %tmp24074 = getelementptr inbounds float* %tmp24073, i64 1
+ %tmp24075 = getelementptr inbounds float* %tmp24074, i64 1
+ %tmp24076 = getelementptr inbounds float* %tmp24075, i64 1
+ %tmp24077 = getelementptr inbounds float* %tmp24076, i64 1
+ %tmp24078 = getelementptr inbounds float* %tmp24077, i64 1
+ %tmp24079 = getelementptr inbounds float* %tmp24078, i64 1
+ %tmp24080 = getelementptr inbounds float* %tmp24079, i64 1
+ %tmp24081 = getelementptr inbounds float* %tmp24080, i64 1
+ %tmp24082 = getelementptr inbounds float* %tmp24081, i64 1
+ %tmp24083 = getelementptr inbounds float* %tmp24082, i64 1
+ %tmp24084 = getelementptr inbounds float* %tmp24083, i64 1
+ %tmp24085 = getelementptr inbounds float* %tmp24084, i64 1
+ %tmp24086 = getelementptr inbounds float* %tmp24085, i64 1
+ %tmp24087 = getelementptr inbounds float* %tmp24086, i64 1
+ %tmp24088 = getelementptr inbounds float* %tmp24087, i64 1
+ %tmp24089 = getelementptr inbounds float* %tmp24088, i64 1
+ %tmp24090 = getelementptr inbounds float* %tmp24089, i64 1
+ %tmp24091 = getelementptr inbounds float* %tmp24090, i64 1
+ %tmp24092 = getelementptr inbounds float* %tmp24091, i64 1
+ %tmp24093 = getelementptr inbounds float* %tmp24092, i64 1
+ %tmp24094 = getelementptr inbounds float* %tmp24093, i64 1
+ %tmp24095 = getelementptr inbounds float* %tmp24094, i64 1
+ %tmp24096 = getelementptr inbounds float* %tmp24095, i64 1
+ %tmp24097 = getelementptr inbounds float* %tmp24096, i64 1
+ %tmp24098 = getelementptr inbounds float* %tmp24097, i64 1
+ %tmp24099 = getelementptr inbounds float* %tmp24098, i64 1
+ %tmp24100 = getelementptr inbounds float* %tmp24099, i64 1
+ %tmp24101 = getelementptr inbounds float* %tmp24100, i64 1
+ %tmp24102 = getelementptr inbounds float* %tmp24101, i64 1
+ %tmp24103 = getelementptr inbounds float* %tmp24102, i64 1
+ %tmp24104 = getelementptr inbounds float* %tmp24103, i64 1
+ %tmp24105 = getelementptr inbounds float* %tmp24104, i64 1
+ %tmp24106 = getelementptr inbounds float* %tmp24105, i64 1
+ %tmp24107 = getelementptr inbounds float* %tmp24106, i64 1
+ %tmp24108 = getelementptr inbounds float* %tmp24107, i64 1
+ %tmp24109 = getelementptr inbounds float* %tmp24108, i64 1
+ %tmp24110 = getelementptr inbounds float* %tmp24109, i64 1
+ %tmp24111 = getelementptr inbounds float* %tmp24110, i64 1
+ %tmp24112 = getelementptr inbounds float* %tmp24111, i64 1
+ %tmp24113 = getelementptr inbounds float* %tmp24112, i64 1
+ %tmp24114 = getelementptr inbounds float* %tmp24113, i64 1
+ %tmp24115 = getelementptr inbounds float* %tmp24114, i64 1
+ %tmp24116 = getelementptr inbounds float* %tmp24115, i64 1
+ %tmp24117 = getelementptr inbounds float* %tmp24116, i64 1
+ %tmp24118 = getelementptr inbounds float* %tmp24117, i64 1
+ %tmp24119 = getelementptr inbounds float* %tmp24118, i64 1
+ %tmp24120 = getelementptr inbounds float* %tmp24119, i64 1
+ %tmp24121 = getelementptr inbounds float* %tmp24120, i64 1
+ %tmp24122 = getelementptr inbounds float* %tmp24121, i64 1
+ %tmp24123 = getelementptr inbounds float* %tmp24122, i64 1
+ %tmp24124 = getelementptr inbounds float* %tmp24123, i64 1
+ %tmp24125 = getelementptr inbounds float* %tmp24124, i64 1
+ %tmp24126 = getelementptr inbounds float* %tmp24125, i64 1
+ %tmp24127 = getelementptr inbounds float* %tmp24126, i64 1
+ %tmp24128 = getelementptr inbounds float* %tmp24127, i64 1
+ %tmp24129 = getelementptr inbounds float* %tmp24128, i64 1
+ %tmp24130 = getelementptr inbounds float* %tmp24129, i64 1
+ %tmp24131 = getelementptr inbounds float* %tmp24130, i64 1
+ %tmp24132 = getelementptr inbounds float* %tmp24131, i64 1
+ %tmp24133 = getelementptr inbounds float* %tmp24132, i64 1
+ %tmp24134 = getelementptr inbounds float* %tmp24133, i64 1
+ %tmp24135 = getelementptr inbounds float* %tmp24134, i64 1
+ %tmp24136 = getelementptr inbounds float* %tmp24135, i64 1
+ %tmp24137 = getelementptr inbounds float* %tmp24136, i64 1
+ %tmp24138 = getelementptr inbounds float* %tmp24137, i64 1
+ %tmp24139 = getelementptr inbounds float* %tmp24138, i64 1
+ %tmp24140 = getelementptr inbounds float* %tmp24139, i64 1
+ %tmp24141 = getelementptr inbounds float* %tmp24140, i64 1
+ %tmp24142 = getelementptr inbounds float* %tmp24141, i64 1
+ %tmp24143 = getelementptr inbounds float* %tmp24142, i64 1
+ %tmp24144 = getelementptr inbounds float* %tmp24143, i64 1
+ %tmp24145 = getelementptr inbounds float* %tmp24144, i64 1
+ %tmp24146 = getelementptr inbounds float* %tmp24145, i64 1
+ %tmp24147 = getelementptr inbounds float* %tmp24146, i64 1
+ %tmp24148 = getelementptr inbounds float* %tmp24147, i64 1
+ %tmp24149 = getelementptr inbounds float* %tmp24148, i64 1
+ %tmp24150 = getelementptr inbounds float* %tmp24149, i64 1
+ %tmp24151 = getelementptr inbounds float* %tmp24150, i64 1
+ %tmp24152 = getelementptr inbounds float* %tmp24151, i64 1
+ %tmp24153 = getelementptr inbounds float* %tmp24152, i64 1
+ %tmp24154 = getelementptr inbounds float* %tmp24153, i64 1
+ %tmp24155 = getelementptr inbounds float* %tmp24154, i64 1
+ %tmp24156 = getelementptr inbounds float* %tmp24155, i64 1
+ %tmp24157 = getelementptr inbounds float* %tmp24156, i64 1
+ %tmp24158 = getelementptr inbounds float* %tmp24157, i64 1
+ %tmp24159 = getelementptr inbounds float* %tmp24158, i64 1
+ %tmp24160 = getelementptr inbounds float* %tmp24159, i64 1
+ %tmp24161 = getelementptr inbounds float* %tmp24160, i64 1
+ %tmp24162 = getelementptr inbounds float* %tmp24161, i64 1
+ %tmp24163 = getelementptr inbounds float* %tmp24162, i64 1
+ %tmp24164 = getelementptr inbounds float* %tmp24163, i64 1
+ %tmp24165 = getelementptr inbounds float* %tmp24164, i64 1
+ %tmp24166 = getelementptr inbounds float* %tmp24165, i64 1
+ %tmp24167 = getelementptr inbounds float* %tmp24166, i64 1
+ %tmp24168 = getelementptr inbounds float* %tmp24167, i64 1
+ %tmp24169 = getelementptr inbounds float* %tmp24168, i64 1
+ %tmp24170 = getelementptr inbounds float* %tmp24169, i64 1
+ %tmp24171 = getelementptr inbounds float* %tmp24170, i64 1
+ %tmp24172 = getelementptr inbounds float* %tmp24171, i64 1
+ %tmp24173 = getelementptr inbounds float* %tmp24172, i64 1
+ %tmp24174 = getelementptr inbounds float* %tmp24173, i64 1
+ %tmp24175 = getelementptr inbounds float* %tmp24174, i64 1
+ %tmp24176 = getelementptr inbounds float* %tmp24175, i64 1
+ %tmp24177 = getelementptr inbounds float* %tmp24176, i64 1
+ %tmp24178 = getelementptr inbounds float* %tmp24177, i64 1
+ %tmp24179 = getelementptr inbounds float* %tmp24178, i64 1
+ %tmp24180 = getelementptr inbounds float* %tmp24179, i64 1
+ %tmp24181 = getelementptr inbounds float* %tmp24180, i64 1
+ %tmp24182 = getelementptr inbounds float* %tmp24181, i64 1
+ %tmp24183 = getelementptr inbounds float* %tmp24182, i64 1
+ %tmp24184 = getelementptr inbounds float* %tmp24183, i64 1
+ %tmp24185 = getelementptr inbounds float* %tmp24184, i64 1
+ %tmp24186 = getelementptr inbounds float* %tmp24185, i64 1
+ %tmp24187 = getelementptr inbounds float* %tmp24186, i64 1
+ %tmp24188 = getelementptr inbounds float* %tmp24187, i64 1
+ %tmp24189 = getelementptr inbounds float* %tmp24188, i64 1
+ %tmp24190 = getelementptr inbounds float* %tmp24189, i64 1
+ %tmp24191 = getelementptr inbounds float* %tmp24190, i64 1
+ %tmp24192 = getelementptr inbounds float* %tmp24191, i64 1
+ %tmp24193 = getelementptr inbounds float* %tmp24192, i64 1
+ %tmp24194 = getelementptr inbounds float* %tmp24193, i64 1
+ %tmp24195 = getelementptr inbounds float* %tmp24194, i64 1
+ %tmp24196 = getelementptr inbounds float* %tmp24195, i64 1
+ %tmp24197 = getelementptr inbounds float* %tmp24196, i64 1
+ %tmp24198 = getelementptr inbounds float* %tmp24197, i64 1
+ %tmp24199 = getelementptr inbounds float* %tmp24198, i64 1
+ %tmp24200 = getelementptr inbounds float* %tmp24199, i64 1
+ %tmp24201 = getelementptr inbounds float* %tmp24200, i64 1
+ %tmp24202 = getelementptr inbounds float* %tmp24201, i64 1
+ %tmp24203 = getelementptr inbounds float* %tmp24202, i64 1
+ %tmp24204 = getelementptr inbounds float* %tmp24203, i64 1
+ %tmp24205 = getelementptr inbounds float* %tmp24204, i64 1
+ %tmp24206 = getelementptr inbounds float* %tmp24205, i64 1
+ %tmp24207 = getelementptr inbounds float* %tmp24206, i64 1
+ %tmp24208 = getelementptr inbounds float* %tmp24207, i64 1
+ %tmp24209 = getelementptr inbounds float* %tmp24208, i64 1
+ %tmp24210 = getelementptr inbounds float* %tmp24209, i64 1
+ %tmp24211 = getelementptr inbounds float* %tmp24210, i64 1
+ %tmp24212 = getelementptr inbounds float* %tmp24211, i64 1
+ %tmp24213 = getelementptr inbounds float* %tmp24212, i64 1
+ %tmp24214 = getelementptr inbounds float* %tmp24213, i64 1
+ %tmp24215 = getelementptr inbounds float* %tmp24214, i64 1
+ %tmp24216 = getelementptr inbounds float* %tmp24215, i64 1
+ %tmp24217 = getelementptr inbounds float* %tmp24216, i64 1
+ %tmp24218 = getelementptr inbounds float* %tmp24217, i64 1
+ %tmp24219 = getelementptr inbounds float* %tmp24218, i64 1
+ %tmp24220 = getelementptr inbounds float* %tmp24219, i64 1
+ %tmp24221 = getelementptr inbounds float* %tmp24220, i64 1
+ %tmp24222 = getelementptr inbounds float* %tmp24221, i64 1
+ %tmp24223 = getelementptr inbounds float* %tmp24222, i64 1
+ %tmp24224 = getelementptr inbounds float* %tmp24223, i64 1
+ %tmp24225 = getelementptr inbounds float* %tmp24224, i64 1
+ %tmp24226 = getelementptr inbounds float* %tmp24225, i64 1
+ %tmp24227 = getelementptr inbounds float* %tmp24226, i64 1
+ %tmp24228 = getelementptr inbounds float* %tmp24227, i64 1
+ %tmp24229 = getelementptr inbounds float* %tmp24228, i64 1
+ %tmp24230 = getelementptr inbounds float* %tmp24229, i64 1
+ %tmp24231 = getelementptr inbounds float* %tmp24230, i64 1
+ %tmp24232 = getelementptr inbounds float* %tmp24231, i64 1
+ %tmp24233 = getelementptr inbounds float* %tmp24232, i64 1
+ %tmp24234 = getelementptr inbounds float* %tmp24233, i64 1
+ %tmp24235 = getelementptr inbounds float* %tmp24234, i64 1
+ %tmp24236 = getelementptr inbounds float* %tmp24235, i64 1
+ %tmp24237 = getelementptr inbounds float* %tmp24236, i64 1
+ %tmp24238 = getelementptr inbounds float* %tmp24237, i64 1
+ %tmp24239 = getelementptr inbounds float* %tmp24238, i64 1
+ %tmp24240 = getelementptr inbounds float* %tmp24239, i64 1
+ %tmp24241 = getelementptr inbounds float* %tmp24240, i64 1
+ %tmp24242 = getelementptr inbounds float* %tmp24241, i64 1
+ %tmp24243 = getelementptr inbounds float* %tmp24242, i64 1
+ %tmp24244 = getelementptr inbounds float* %tmp24243, i64 1
+ %tmp24245 = getelementptr inbounds float* %tmp24244, i64 1
+ %tmp24246 = getelementptr inbounds float* %tmp24245, i64 1
+ %tmp24247 = getelementptr inbounds float* %tmp24246, i64 1
+ %tmp24248 = getelementptr inbounds float* %tmp24247, i64 1
+ %tmp24249 = getelementptr inbounds float* %tmp24248, i64 1
+ %tmp24250 = getelementptr inbounds float* %tmp24249, i64 1
+ %tmp24251 = getelementptr inbounds float* %tmp24250, i64 1
+ %tmp24252 = getelementptr inbounds float* %tmp24251, i64 1
+ %tmp24253 = getelementptr inbounds float* %tmp24252, i64 1
+ %tmp24254 = getelementptr inbounds float* %tmp24253, i64 1
+ %tmp24255 = getelementptr inbounds float* %tmp24254, i64 1
+ %tmp24256 = getelementptr inbounds float* %tmp24255, i64 1
+ %tmp24257 = getelementptr inbounds float* %tmp24256, i64 1
+ %tmp24258 = getelementptr inbounds float* %tmp24257, i64 1
+ %tmp24259 = getelementptr inbounds float* %tmp24258, i64 1
+ %tmp24260 = getelementptr inbounds float* %tmp24259, i64 1
+ %tmp24261 = getelementptr inbounds float* %tmp24260, i64 1
+ %tmp24262 = getelementptr inbounds float* %tmp24261, i64 1
+ %tmp24263 = getelementptr inbounds float* %tmp24262, i64 1
+ %tmp24264 = getelementptr inbounds float* %tmp24263, i64 1
+ %tmp24265 = getelementptr inbounds float* %tmp24264, i64 1
+ %tmp24266 = getelementptr inbounds float* %tmp24265, i64 1
+ %tmp24267 = getelementptr inbounds float* %tmp24266, i64 1
+ %tmp24268 = getelementptr inbounds float* %tmp24267, i64 1
+ %tmp24269 = getelementptr inbounds float* %tmp24268, i64 1
+ %tmp24270 = getelementptr inbounds float* %tmp24269, i64 1
+ %tmp24271 = getelementptr inbounds float* %tmp24270, i64 1
+ %tmp24272 = getelementptr inbounds float* %tmp24271, i64 1
+ %tmp24273 = getelementptr inbounds float* %tmp24272, i64 1
+ %tmp24274 = getelementptr inbounds float* %tmp24273, i64 1
+ %tmp24275 = getelementptr inbounds float* %tmp24274, i64 1
+ %tmp24276 = getelementptr inbounds float* %tmp24275, i64 1
+ %tmp24277 = getelementptr inbounds float* %tmp24276, i64 1
+ %tmp24278 = getelementptr inbounds float* %tmp24277, i64 1
+ %tmp24279 = getelementptr inbounds float* %tmp24278, i64 1
+ %tmp24280 = getelementptr inbounds float* %tmp24279, i64 1
+ %tmp24281 = getelementptr inbounds float* %tmp24280, i64 1
+ %tmp24282 = getelementptr inbounds float* %tmp24281, i64 1
+ %tmp24283 = getelementptr inbounds float* %tmp24282, i64 1
+ %tmp24284 = getelementptr inbounds float* %tmp24283, i64 1
+ %tmp24285 = getelementptr inbounds float* %tmp24284, i64 1
+ %tmp24286 = getelementptr inbounds float* %tmp24285, i64 1
+ %tmp24287 = getelementptr inbounds float* %tmp24286, i64 1
+ %tmp24288 = getelementptr inbounds float* %tmp24287, i64 1
+ %tmp24289 = getelementptr inbounds float* %tmp24288, i64 1
+ %tmp24290 = getelementptr inbounds float* %tmp24289, i64 1
+ %tmp24291 = getelementptr inbounds float* %tmp24290, i64 1
+ %tmp24292 = getelementptr inbounds float* %tmp24291, i64 1
+ %tmp24293 = getelementptr inbounds float* %tmp24292, i64 1
+ %tmp24294 = getelementptr inbounds float* %tmp24293, i64 1
+ %tmp24295 = getelementptr inbounds float* %tmp24294, i64 1
+ %tmp24296 = getelementptr inbounds float* %tmp24295, i64 1
+ %tmp24297 = getelementptr inbounds float* %tmp24296, i64 1
+ %tmp24298 = getelementptr inbounds float* %tmp24297, i64 1
+ %tmp24299 = getelementptr inbounds float* %tmp24298, i64 1
+ %tmp24300 = getelementptr inbounds float* %tmp24299, i64 1
+ %tmp24301 = getelementptr inbounds float* %tmp24300, i64 1
+ %tmp24302 = getelementptr inbounds float* %tmp24301, i64 1
+ %tmp24303 = getelementptr inbounds float* %tmp24302, i64 1
+ %tmp24304 = getelementptr inbounds float* %tmp24303, i64 1
+ %tmp24305 = getelementptr inbounds float* %tmp24304, i64 1
+ %tmp24306 = getelementptr inbounds float* %tmp24305, i64 1
+ %tmp24307 = getelementptr inbounds float* %tmp24306, i64 1
+ %tmp24308 = getelementptr inbounds float* %tmp24307, i64 1
+ %tmp24309 = getelementptr inbounds float* %tmp24308, i64 1
+ %tmp24310 = getelementptr inbounds float* %tmp24309, i64 1
+ %tmp24311 = getelementptr inbounds float* %tmp24310, i64 1
+ %tmp24312 = getelementptr inbounds float* %tmp24311, i64 1
+ %tmp24313 = getelementptr inbounds float* %tmp24312, i64 1
+ %tmp24314 = getelementptr inbounds float* %tmp24313, i64 1
+ %tmp24315 = getelementptr inbounds float* %tmp24314, i64 1
+ %tmp24316 = getelementptr inbounds float* %tmp24315, i64 1
+ %tmp24317 = getelementptr inbounds float* %tmp24316, i64 1
+ %tmp24318 = getelementptr inbounds float* %tmp24317, i64 1
+ %tmp24319 = getelementptr inbounds float* %tmp24318, i64 1
+ %tmp24320 = getelementptr inbounds float* %tmp24319, i64 1
+ %tmp24321 = getelementptr inbounds float* %tmp24320, i64 1
+ %tmp24322 = getelementptr inbounds float* %tmp24321, i64 1
+ %tmp24323 = getelementptr inbounds float* %tmp24322, i64 1
+ %tmp24324 = getelementptr inbounds float* %tmp24323, i64 1
+ %tmp24325 = getelementptr inbounds float* %tmp24324, i64 1
+ %tmp24326 = getelementptr inbounds float* %tmp24325, i64 1
+ %tmp24327 = getelementptr inbounds float* %tmp24326, i64 1
+ %tmp24328 = getelementptr inbounds float* %tmp24327, i64 1
+ %tmp24329 = getelementptr inbounds float* %tmp24328, i64 1
+ %tmp24330 = getelementptr inbounds float* %tmp24329, i64 1
+ %tmp24331 = getelementptr inbounds float* %tmp24330, i64 1
+ %tmp24332 = getelementptr inbounds float* %tmp24331, i64 1
+ %tmp24333 = getelementptr inbounds float* %tmp24332, i64 1
+ %tmp24334 = getelementptr inbounds float* %tmp24333, i64 1
+ %tmp24335 = getelementptr inbounds float* %tmp24334, i64 1
+ %tmp24336 = getelementptr inbounds float* %tmp24335, i64 1
+ %tmp24337 = getelementptr inbounds float* %tmp24336, i64 1
+ %tmp24338 = getelementptr inbounds float* %tmp24337, i64 1
+ %tmp24339 = getelementptr inbounds float* %tmp24338, i64 1
+ %tmp24340 = getelementptr inbounds float* %tmp24339, i64 1
+ %tmp24341 = getelementptr inbounds float* %tmp24340, i64 1
+ %tmp24342 = getelementptr inbounds float* %tmp24341, i64 1
+ %tmp24343 = getelementptr inbounds float* %tmp24342, i64 1
+ %tmp24344 = getelementptr inbounds float* %tmp24343, i64 1
+ %tmp24345 = getelementptr inbounds float* %tmp24344, i64 1
+ %tmp24346 = getelementptr inbounds float* %tmp24345, i64 1
+ %tmp24347 = getelementptr inbounds float* %tmp24346, i64 1
+ %tmp24348 = getelementptr inbounds float* %tmp24347, i64 1
+ %tmp24349 = getelementptr inbounds float* %tmp24348, i64 1
+ %tmp24350 = getelementptr inbounds float* %tmp24349, i64 1
+ %tmp24351 = getelementptr inbounds float* %tmp24350, i64 1
+ %tmp24352 = getelementptr inbounds float* %tmp24351, i64 1
+ %tmp24353 = getelementptr inbounds float* %tmp24352, i64 1
+ %tmp24354 = getelementptr inbounds float* %tmp24353, i64 1
+ %tmp24355 = getelementptr inbounds float* %tmp24354, i64 1
+ %tmp24356 = getelementptr inbounds float* %tmp24355, i64 1
+ %tmp24357 = getelementptr inbounds float* %tmp24356, i64 1
+ %tmp24358 = getelementptr inbounds float* %tmp24357, i64 1
+ %tmp24359 = getelementptr inbounds float* %tmp24358, i64 1
+ %tmp24360 = getelementptr inbounds float* %tmp24359, i64 1
+ %tmp24361 = getelementptr inbounds float* %tmp24360, i64 1
+ %tmp24362 = getelementptr inbounds float* %tmp24361, i64 1
+ %tmp24363 = getelementptr inbounds float* %tmp24362, i64 1
+ %tmp24364 = getelementptr inbounds float* %tmp24363, i64 1
+ %tmp24365 = getelementptr inbounds float* %tmp24364, i64 1
+ %tmp24366 = getelementptr inbounds float* %tmp24365, i64 1
+ %tmp24367 = getelementptr inbounds float* %tmp24366, i64 1
+ %tmp24368 = getelementptr inbounds float* %tmp24367, i64 1
+ %tmp24369 = getelementptr inbounds float* %tmp24368, i64 1
+ %tmp24370 = getelementptr inbounds float* %tmp24369, i64 1
+ %tmp24371 = getelementptr inbounds float* %tmp24370, i64 1
+ %tmp24372 = getelementptr inbounds float* %tmp24371, i64 1
+ %tmp24373 = getelementptr inbounds float* %tmp24372, i64 1
+ %tmp24374 = getelementptr inbounds float* %tmp24373, i64 1
+ %tmp24375 = getelementptr inbounds float* %tmp24374, i64 1
+ %tmp24376 = getelementptr inbounds float* %tmp24375, i64 1
+ %tmp24377 = getelementptr inbounds float* %tmp24376, i64 1
+ %tmp24378 = getelementptr inbounds float* %tmp24377, i64 1
+ %tmp24379 = getelementptr inbounds float* %tmp24378, i64 1
+ %tmp24380 = getelementptr inbounds float* %tmp24379, i64 1
+ %tmp24381 = getelementptr inbounds float* %tmp24380, i64 1
+ %tmp24382 = getelementptr inbounds float* %tmp24381, i64 1
+ %tmp24383 = getelementptr inbounds float* %tmp24382, i64 1
+ %tmp24384 = getelementptr inbounds float* %tmp24383, i64 1
+ %tmp24385 = getelementptr inbounds float* %tmp24384, i64 1
+ %tmp24386 = getelementptr inbounds float* %tmp24385, i64 1
+ %tmp24387 = getelementptr inbounds float* %tmp24386, i64 1
+ %tmp24388 = getelementptr inbounds float* %tmp24387, i64 1
+ %tmp24389 = getelementptr inbounds float* %tmp24388, i64 1
+ %tmp24390 = getelementptr inbounds float* %tmp24389, i64 1
+ %tmp24391 = getelementptr inbounds float* %tmp24390, i64 1
+ %tmp24392 = getelementptr inbounds float* %tmp24391, i64 1
+ %tmp24393 = getelementptr inbounds float* %tmp24392, i64 1
+ %tmp24394 = getelementptr inbounds float* %tmp24393, i64 1
+ %tmp24395 = getelementptr inbounds float* %tmp24394, i64 1
+ %tmp24396 = getelementptr inbounds float* %tmp24395, i64 1
+ %tmp24397 = getelementptr inbounds float* %tmp24396, i64 1
+ %tmp24398 = getelementptr inbounds float* %tmp24397, i64 1
+ %tmp24399 = getelementptr inbounds float* %tmp24398, i64 1
+ %tmp24400 = getelementptr inbounds float* %tmp24399, i64 1
+ %tmp24401 = getelementptr inbounds float* %tmp24400, i64 1
+ %tmp24402 = getelementptr inbounds float* %tmp24401, i64 1
+ %tmp24403 = getelementptr inbounds float* %tmp24402, i64 1
+ %tmp24404 = getelementptr inbounds float* %tmp24403, i64 1
+ %tmp24405 = getelementptr inbounds float* %tmp24404, i64 1
+ %tmp24406 = getelementptr inbounds float* %tmp24405, i64 1
+ %tmp24407 = getelementptr inbounds float* %tmp24406, i64 1
+ %tmp24408 = getelementptr inbounds float* %tmp24407, i64 1
+ %tmp24409 = getelementptr inbounds float* %tmp24408, i64 1
+ %tmp24410 = getelementptr inbounds float* %tmp24409, i64 1
+ %tmp24411 = getelementptr inbounds float* %tmp24410, i64 1
+ %tmp24412 = getelementptr inbounds float* %tmp24411, i64 1
+ %tmp24413 = getelementptr inbounds float* %tmp24412, i64 1
+ %tmp24414 = getelementptr inbounds float* %tmp24413, i64 1
+ %tmp24415 = getelementptr inbounds float* %tmp24414, i64 1
+ %tmp24416 = getelementptr inbounds float* %tmp24415, i64 1
+ %tmp24417 = getelementptr inbounds float* %tmp24416, i64 1
+ %tmp24418 = getelementptr inbounds float* %tmp24417, i64 1
+ %tmp24419 = getelementptr inbounds float* %tmp24418, i64 1
+ %tmp24420 = getelementptr inbounds float* %tmp24419, i64 1
+ %tmp24421 = getelementptr inbounds float* %tmp24420, i64 1
+ %tmp24422 = getelementptr inbounds float* %tmp24421, i64 1
+ %tmp24423 = getelementptr inbounds float* %tmp24422, i64 1
+ %tmp24424 = getelementptr inbounds float* %tmp24423, i64 1
+ %tmp24425 = getelementptr inbounds float* %tmp24424, i64 1
+ %tmp24426 = getelementptr inbounds float* %tmp24425, i64 1
+ %tmp24427 = getelementptr inbounds float* %tmp24426, i64 1
+ %tmp24428 = getelementptr inbounds float* %tmp24427, i64 1
+ %tmp24429 = getelementptr inbounds float* %tmp24428, i64 1
+ %tmp24430 = getelementptr inbounds float* %tmp24429, i64 1
+ %tmp24431 = getelementptr inbounds float* %tmp24430, i64 1
+ %tmp24432 = getelementptr inbounds float* %tmp24431, i64 1
+ %tmp24433 = getelementptr inbounds float* %tmp24432, i64 1
+ %tmp24434 = getelementptr inbounds float* %tmp24433, i64 1
+ %tmp24435 = getelementptr inbounds float* %tmp24434, i64 1
+ %tmp24436 = getelementptr inbounds float* %tmp24435, i64 1
+ %tmp24437 = getelementptr inbounds float* %tmp24436, i64 1
+ %tmp24438 = getelementptr inbounds float* %tmp24437, i64 1
+ %tmp24439 = getelementptr inbounds float* %tmp24438, i64 1
+ %tmp24440 = getelementptr inbounds float* %tmp24439, i64 1
+ %tmp24441 = getelementptr inbounds float* %tmp24440, i64 1
+ %tmp24442 = getelementptr inbounds float* %tmp24441, i64 1
+ %tmp24443 = getelementptr inbounds float* %tmp24442, i64 1
+ %tmp24444 = getelementptr inbounds float* %tmp24443, i64 1
+ %tmp24445 = getelementptr inbounds float* %tmp24444, i64 1
+ %tmp24446 = getelementptr inbounds float* %tmp24445, i64 1
+ %tmp24447 = getelementptr inbounds float* %tmp24446, i64 1
+ %tmp24448 = getelementptr inbounds float* %tmp24447, i64 1
+ %tmp24449 = getelementptr inbounds float* %tmp24448, i64 1
+ %tmp24450 = getelementptr inbounds float* %tmp24449, i64 1
+ %tmp24451 = getelementptr inbounds float* %tmp24450, i64 1
+ %tmp24452 = getelementptr inbounds float* %tmp24451, i64 1
+ %tmp24453 = getelementptr inbounds float* %tmp24452, i64 1
+ %tmp24454 = getelementptr inbounds float* %tmp24453, i64 1
+ %tmp24455 = getelementptr inbounds float* %tmp24454, i64 1
+ %tmp24456 = getelementptr inbounds float* %tmp24455, i64 1
+ %tmp24457 = getelementptr inbounds float* %tmp24456, i64 1
+ %tmp24458 = getelementptr inbounds float* %tmp24457, i64 1
+ %tmp24459 = getelementptr inbounds float* %tmp24458, i64 1
+ %tmp24460 = getelementptr inbounds float* %tmp24459, i64 1
+ %tmp24461 = getelementptr inbounds float* %tmp24460, i64 1
+ %tmp24462 = getelementptr inbounds float* %tmp24461, i64 1
+ %tmp24463 = getelementptr inbounds float* %tmp24462, i64 1
+ %tmp24464 = getelementptr inbounds float* %tmp24463, i64 1
+ %tmp24465 = getelementptr inbounds float* %tmp24464, i64 1
+ %tmp24466 = getelementptr inbounds float* %tmp24465, i64 1
+ %tmp24467 = getelementptr inbounds float* %tmp24466, i64 1
+ %tmp24468 = getelementptr inbounds float* %tmp24467, i64 1
+ %tmp24469 = getelementptr inbounds float* %tmp24468, i64 1
+ %tmp24470 = getelementptr inbounds float* %tmp24469, i64 1
+ %tmp24471 = getelementptr inbounds float* %tmp24470, i64 1
+ %tmp24472 = getelementptr inbounds float* %tmp24471, i64 1
+ %tmp24473 = getelementptr inbounds float* %tmp24472, i64 1
+ %tmp24474 = getelementptr inbounds float* %tmp24473, i64 1
+ %tmp24475 = getelementptr inbounds float* %tmp24474, i64 1
+ %tmp24476 = getelementptr inbounds float* %tmp24475, i64 1
+ %tmp24477 = getelementptr inbounds float* %tmp24476, i64 1
+ %tmp24478 = getelementptr inbounds float* %tmp24477, i64 1
+ %tmp24479 = getelementptr inbounds float* %tmp24478, i64 1
+ %tmp24480 = getelementptr inbounds float* %tmp24479, i64 1
+ %tmp24481 = getelementptr inbounds float* %tmp24480, i64 1
+ %tmp24482 = getelementptr inbounds float* %tmp24481, i64 1
+ %tmp24483 = getelementptr inbounds float* %tmp24482, i64 1
+ %tmp24484 = getelementptr inbounds float* %tmp24483, i64 1
+ %tmp24485 = getelementptr inbounds float* %tmp24484, i64 1
+ %tmp24486 = getelementptr inbounds float* %tmp24485, i64 1
+ %tmp24487 = getelementptr inbounds float* %tmp24486, i64 1
+ %tmp24488 = getelementptr inbounds float* %tmp24487, i64 1
+ %tmp24489 = getelementptr inbounds float* %tmp24488, i64 1
+ %tmp24490 = getelementptr inbounds float* %tmp24489, i64 1
+ %tmp24491 = getelementptr inbounds float* %tmp24490, i64 1
+ %tmp24492 = getelementptr inbounds float* %tmp24491, i64 1
+ %tmp24493 = getelementptr inbounds float* %tmp24492, i64 1
+ %tmp24494 = getelementptr inbounds float* %tmp24493, i64 1
+ %tmp24495 = getelementptr inbounds float* %tmp24494, i64 1
+ %tmp24496 = getelementptr inbounds float* %tmp24495, i64 1
+ %tmp24497 = getelementptr inbounds float* %tmp24496, i64 1
+ %tmp24498 = getelementptr inbounds float* %tmp24497, i64 1
+ %tmp24499 = getelementptr inbounds float* %tmp24498, i64 1
+ %tmp24500 = getelementptr inbounds float* %tmp24499, i64 1
+ %tmp24501 = getelementptr inbounds float* %tmp24500, i64 1
+ %tmp24502 = getelementptr inbounds float* %tmp24501, i64 1
+ %tmp24503 = getelementptr inbounds float* %tmp24502, i64 1
+ %tmp24504 = getelementptr inbounds float* %tmp24503, i64 1
+ %tmp24505 = getelementptr inbounds float* %tmp24504, i64 1
+ %tmp24506 = getelementptr inbounds float* %tmp24505, i64 1
+ %tmp24507 = getelementptr inbounds float* %tmp24506, i64 1
+ %tmp24508 = getelementptr inbounds float* %tmp24507, i64 1
+ %tmp24509 = getelementptr inbounds float* %tmp24508, i64 1
+ %tmp24510 = getelementptr inbounds float* %tmp24509, i64 1
+ %tmp24511 = getelementptr inbounds float* %tmp24510, i64 1
+ %tmp24512 = getelementptr inbounds float* %tmp24511, i64 1
+ %tmp24513 = getelementptr inbounds float* %tmp24512, i64 1
+ %tmp24514 = getelementptr inbounds float* %tmp24513, i64 1
+ %tmp24515 = getelementptr inbounds float* %tmp24514, i64 1
+ %tmp24516 = getelementptr inbounds float* %tmp24515, i64 1
+ %tmp24517 = getelementptr inbounds float* %tmp24516, i64 1
+ %tmp24518 = getelementptr inbounds float* %tmp24517, i64 1
+ %tmp24519 = getelementptr inbounds float* %tmp24518, i64 1
+ %tmp24520 = getelementptr inbounds float* %tmp24519, i64 1
+ %tmp24521 = getelementptr inbounds float* %tmp24520, i64 1
+ %tmp24522 = getelementptr inbounds float* %tmp24521, i64 1
+ %tmp24523 = getelementptr inbounds float* %tmp24522, i64 1
+ %tmp24524 = getelementptr inbounds float* %tmp24523, i64 1
+ %tmp24525 = getelementptr inbounds float* %tmp24524, i64 1
+ %tmp24526 = getelementptr inbounds float* %tmp24525, i64 1
+ %tmp24527 = getelementptr inbounds float* %tmp24526, i64 1
+ %tmp24528 = getelementptr inbounds float* %tmp24527, i64 1
+ %tmp24529 = getelementptr inbounds float* %tmp24528, i64 1
+ %tmp24530 = getelementptr inbounds float* %tmp24529, i64 1
+ %tmp24531 = getelementptr inbounds float* %tmp24530, i64 1
+ %tmp24532 = getelementptr inbounds float* %tmp24531, i64 1
+ %tmp24533 = getelementptr inbounds float* %tmp24532, i64 1
+ %tmp24534 = getelementptr inbounds float* %tmp24533, i64 1
+ %tmp24535 = getelementptr inbounds float* %tmp24534, i64 1
+ %tmp24536 = getelementptr inbounds float* %tmp24535, i64 1
+ %tmp24537 = getelementptr inbounds float* %tmp24536, i64 1
+ %tmp24538 = getelementptr inbounds float* %tmp24537, i64 1
+ %tmp24539 = getelementptr inbounds float* %tmp24538, i64 1
+ %tmp24540 = getelementptr inbounds float* %tmp24539, i64 1
+ %tmp24541 = getelementptr inbounds float* %tmp24540, i64 1
+ %tmp24542 = getelementptr inbounds float* %tmp24541, i64 1
+ %tmp24543 = getelementptr inbounds float* %tmp24542, i64 1
+ %tmp24544 = getelementptr inbounds float* %tmp24543, i64 1
+ %tmp24545 = getelementptr inbounds float* %tmp24544, i64 1
+ %tmp24546 = getelementptr inbounds float* %tmp24545, i64 1
+ %tmp24547 = getelementptr inbounds float* %tmp24546, i64 1
+ %tmp24548 = getelementptr inbounds float* %tmp24547, i64 1
+ %tmp24549 = getelementptr inbounds float* %tmp24548, i64 1
+ %tmp24550 = getelementptr inbounds float* %tmp24549, i64 1
+ %tmp24551 = getelementptr inbounds float* %tmp24550, i64 1
+ %tmp24552 = getelementptr inbounds float* %tmp24551, i64 1
+ %tmp24553 = getelementptr inbounds float* %tmp24552, i64 1
+ %tmp24554 = getelementptr inbounds float* %tmp24553, i64 1
+ %tmp24555 = getelementptr inbounds float* %tmp24554, i64 1
+ %tmp24556 = getelementptr inbounds float* %tmp24555, i64 1
+ %tmp24557 = getelementptr inbounds float* %tmp24556, i64 1
+ %tmp24558 = getelementptr inbounds float* %tmp24557, i64 1
+ %tmp24559 = getelementptr inbounds float* %tmp24558, i64 1
+ %tmp24560 = getelementptr inbounds float* %tmp24559, i64 1
+ %tmp24561 = getelementptr inbounds float* %tmp24560, i64 1
+ %tmp24562 = getelementptr inbounds float* %tmp24561, i64 1
+ %tmp24563 = getelementptr inbounds float* %tmp24562, i64 1
+ %tmp24564 = getelementptr inbounds float* %tmp24563, i64 1
+ %tmp24565 = getelementptr inbounds float* %tmp24564, i64 1
+ %tmp24566 = getelementptr inbounds float* %tmp24565, i64 1
+ %tmp24567 = getelementptr inbounds float* %tmp24566, i64 1
+ %tmp24568 = getelementptr inbounds float* %tmp24567, i64 1
+ %tmp24569 = getelementptr inbounds float* %tmp24568, i64 1
+ %tmp24570 = getelementptr inbounds float* %tmp24569, i64 1
+ %tmp24571 = getelementptr inbounds float* %tmp24570, i64 1
+ %tmp24572 = getelementptr inbounds float* %tmp24571, i64 1
+ %tmp24573 = getelementptr inbounds float* %tmp24572, i64 1
+ %tmp24574 = getelementptr inbounds float* %tmp24573, i64 1
+ %tmp24575 = getelementptr inbounds float* %tmp24574, i64 1
+ %tmp24576 = getelementptr inbounds float* %tmp24575, i64 1
+ %tmp24577 = getelementptr inbounds float* %tmp24576, i64 1
+ %tmp24578 = getelementptr inbounds float* %tmp24577, i64 1
+ %tmp24579 = getelementptr inbounds float* %tmp24578, i64 1
+ %tmp24580 = getelementptr inbounds float* %tmp24579, i64 1
+ %tmp24581 = getelementptr inbounds float* %tmp24580, i64 1
+ %tmp24582 = getelementptr inbounds float* %tmp24581, i64 1
+ %tmp24583 = getelementptr inbounds float* %tmp24582, i64 1
+ %tmp24584 = getelementptr inbounds float* %tmp24583, i64 1
+ %tmp24585 = getelementptr inbounds float* %tmp24584, i64 1
+ %tmp24586 = getelementptr inbounds float* %tmp24585, i64 1
+ %tmp24587 = getelementptr inbounds float* %tmp24586, i64 1
+ %tmp24588 = getelementptr inbounds float* %tmp24587, i64 1
+ %tmp24589 = getelementptr inbounds float* %tmp24588, i64 1
+ %tmp24590 = getelementptr inbounds float* %tmp24589, i64 1
+ %tmp24591 = getelementptr inbounds float* %tmp24590, i64 1
+ %tmp24592 = getelementptr inbounds float* %tmp24591, i64 1
+ %tmp24593 = getelementptr inbounds float* %tmp24592, i64 1
+ %tmp24594 = getelementptr inbounds float* %tmp24593, i64 1
+ %tmp24595 = getelementptr inbounds float* %tmp24594, i64 1
+ %tmp24596 = getelementptr inbounds float* %tmp24595, i64 1
+ %tmp24597 = getelementptr inbounds float* %tmp24596, i64 1
+ %tmp24598 = getelementptr inbounds float* %tmp24597, i64 1
+ %tmp24599 = getelementptr inbounds float* %tmp24598, i64 1
+ %tmp24600 = getelementptr inbounds float* %tmp24599, i64 1
+ %tmp24601 = getelementptr inbounds float* %tmp24600, i64 1
+ %tmp24602 = getelementptr inbounds float* %tmp24601, i64 1
+ %tmp24603 = getelementptr inbounds float* %tmp24602, i64 1
+ %tmp24604 = getelementptr inbounds float* %tmp24603, i64 1
+ %tmp24605 = getelementptr inbounds float* %tmp24604, i64 1
+ %tmp24606 = getelementptr inbounds float* %tmp24605, i64 1
+ %tmp24607 = getelementptr inbounds float* %tmp24606, i64 1
+ %tmp24608 = getelementptr inbounds float* %tmp24607, i64 1
+ %tmp24609 = getelementptr inbounds float* %tmp24608, i64 1
+ %tmp24610 = getelementptr inbounds float* %tmp24609, i64 1
+ %tmp24611 = getelementptr inbounds float* %tmp24610, i64 1
+ %tmp24612 = getelementptr inbounds float* %tmp24611, i64 1
+ %tmp24613 = getelementptr inbounds float* %tmp24612, i64 1
+ %tmp24614 = getelementptr inbounds float* %tmp24613, i64 1
+ %tmp24615 = getelementptr inbounds float* %tmp24614, i64 1
+ %tmp24616 = getelementptr inbounds float* %tmp24615, i64 1
+ %tmp24617 = getelementptr inbounds float* %tmp24616, i64 1
+ %tmp24618 = getelementptr inbounds float* %tmp24617, i64 1
+ %tmp24619 = getelementptr inbounds float* %tmp24618, i64 1
+ %tmp24620 = getelementptr inbounds float* %tmp24619, i64 1
+ %tmp24621 = getelementptr inbounds float* %tmp24620, i64 1
+ %tmp24622 = getelementptr inbounds float* %tmp24621, i64 1
+ %tmp24623 = getelementptr inbounds float* %tmp24622, i64 1
+ %tmp24624 = getelementptr inbounds float* %tmp24623, i64 1
+ %tmp24625 = getelementptr inbounds float* %tmp24624, i64 1
+ %tmp24626 = getelementptr inbounds float* %tmp24625, i64 1
+ %tmp24627 = getelementptr inbounds float* %tmp24626, i64 1
+ %tmp24628 = getelementptr inbounds float* %tmp24627, i64 1
+ %tmp24629 = getelementptr inbounds float* %tmp24628, i64 1
+ %tmp24630 = getelementptr inbounds float* %tmp24629, i64 1
+ %tmp24631 = getelementptr inbounds float* %tmp24630, i64 1
+ %tmp24632 = getelementptr inbounds float* %tmp24631, i64 1
+ %tmp24633 = getelementptr inbounds float* %tmp24632, i64 1
+ %tmp24634 = getelementptr inbounds float* %tmp24633, i64 1
+ %tmp24635 = getelementptr inbounds float* %tmp24634, i64 1
+ %tmp24636 = getelementptr inbounds float* %tmp24635, i64 1
+ %tmp24637 = getelementptr inbounds float* %tmp24636, i64 1
+ %tmp24638 = getelementptr inbounds float* %tmp24637, i64 1
+ %tmp24639 = getelementptr inbounds float* %tmp24638, i64 1
+ %tmp24640 = getelementptr inbounds float* %tmp24639, i64 1
+ %tmp24641 = getelementptr inbounds float* %tmp24640, i64 1
+ %tmp24642 = getelementptr inbounds float* %tmp24641, i64 1
+ %tmp24643 = getelementptr inbounds float* %tmp24642, i64 1
+ %tmp24644 = getelementptr inbounds float* %tmp24643, i64 1
+ %tmp24645 = getelementptr inbounds float* %tmp24644, i64 1
+ %tmp24646 = getelementptr inbounds float* %tmp24645, i64 1
+ %tmp24647 = getelementptr inbounds float* %tmp24646, i64 1
+ %tmp24648 = getelementptr inbounds float* %tmp24647, i64 1
+ %tmp24649 = getelementptr inbounds float* %tmp24648, i64 1
+ %tmp24650 = getelementptr inbounds float* %tmp24649, i64 1
+ %tmp24651 = getelementptr inbounds float* %tmp24650, i64 1
+ %tmp24652 = getelementptr inbounds float* %tmp24651, i64 1
+ %tmp24653 = getelementptr inbounds float* %tmp24652, i64 1
+ %tmp24654 = getelementptr inbounds float* %tmp24653, i64 1
+ %tmp24655 = getelementptr inbounds float* %tmp24654, i64 1
+ %tmp24656 = getelementptr inbounds float* %tmp24655, i64 1
+ %tmp24657 = getelementptr inbounds float* %tmp24656, i64 1
+ %tmp24658 = getelementptr inbounds float* %tmp24657, i64 1
+ %tmp24659 = getelementptr inbounds float* %tmp24658, i64 1
+ %tmp24660 = getelementptr inbounds float* %tmp24659, i64 1
+ %tmp24661 = getelementptr inbounds float* %tmp24660, i64 1
+ %tmp24662 = getelementptr inbounds float* %tmp24661, i64 1
+ %tmp24663 = getelementptr inbounds float* %tmp24662, i64 1
+ %tmp24664 = getelementptr inbounds float* %tmp24663, i64 1
+ %tmp24665 = getelementptr inbounds float* %tmp24664, i64 1
+ %tmp24666 = getelementptr inbounds float* %tmp24665, i64 1
+ %tmp24667 = getelementptr inbounds float* %tmp24666, i64 1
+ %tmp24668 = getelementptr inbounds float* %tmp24667, i64 1
+ %tmp24669 = getelementptr inbounds float* %tmp24668, i64 1
+ %tmp24670 = getelementptr inbounds float* %tmp24669, i64 1
+ %tmp24671 = getelementptr inbounds float* %tmp24670, i64 1
+ %tmp24672 = getelementptr inbounds float* %tmp24671, i64 1
+ %tmp24673 = getelementptr inbounds float* %tmp24672, i64 1
+ %tmp24674 = getelementptr inbounds float* %tmp24673, i64 1
+ %tmp24675 = getelementptr inbounds float* %tmp24674, i64 1
+ %tmp24676 = getelementptr inbounds float* %tmp24675, i64 1
+ %tmp24677 = getelementptr inbounds float* %tmp24676, i64 1
+ %tmp24678 = getelementptr inbounds float* %tmp24677, i64 1
+ %tmp24679 = getelementptr inbounds float* %tmp24678, i64 1
+ %tmp24680 = getelementptr inbounds float* %tmp24679, i64 1
+ %tmp24681 = getelementptr inbounds float* %tmp24680, i64 1
+ %tmp24682 = getelementptr inbounds float* %tmp24681, i64 1
+ %tmp24683 = getelementptr inbounds float* %tmp24682, i64 1
+ %tmp24684 = getelementptr inbounds float* %tmp24683, i64 1
+ %tmp24685 = getelementptr inbounds float* %tmp24684, i64 1
+ %tmp24686 = getelementptr inbounds float* %tmp24685, i64 1
+ %tmp24687 = getelementptr inbounds float* %tmp24686, i64 1
+ %tmp24688 = getelementptr inbounds float* %tmp24687, i64 1
+ %tmp24689 = getelementptr inbounds float* %tmp24688, i64 1
+ %tmp24690 = getelementptr inbounds float* %tmp24689, i64 1
+ %tmp24691 = getelementptr inbounds float* %tmp24690, i64 1
+ %tmp24692 = getelementptr inbounds float* %tmp24691, i64 1
+ %tmp24693 = getelementptr inbounds float* %tmp24692, i64 1
+ %tmp24694 = getelementptr inbounds float* %tmp24693, i64 1
+ %tmp24695 = getelementptr inbounds float* %tmp24694, i64 1
+ %tmp24696 = getelementptr inbounds float* %tmp24695, i64 1
+ %tmp24697 = getelementptr inbounds float* %tmp24696, i64 1
+ %tmp24698 = getelementptr inbounds float* %tmp24697, i64 1
+ %tmp24699 = getelementptr inbounds float* %tmp24698, i64 1
+ %tmp24700 = getelementptr inbounds float* %tmp24699, i64 1
+ %tmp24701 = getelementptr inbounds float* %tmp24700, i64 1
+ %tmp24702 = getelementptr inbounds float* %tmp24701, i64 1
+ %tmp24703 = getelementptr inbounds float* %tmp24702, i64 1
+ %tmp24704 = getelementptr inbounds float* %tmp24703, i64 1
+ %tmp24705 = getelementptr inbounds float* %tmp24704, i64 1
+ %tmp24706 = getelementptr inbounds float* %tmp24705, i64 1
+ %tmp24707 = getelementptr inbounds float* %tmp24706, i64 1
+ %tmp24708 = getelementptr inbounds float* %tmp24707, i64 1
+ %tmp24709 = getelementptr inbounds float* %tmp24708, i64 1
+ %tmp24710 = getelementptr inbounds float* %tmp24709, i64 1
+ %tmp24711 = getelementptr inbounds float* %tmp24710, i64 1
+ %tmp24712 = getelementptr inbounds float* %tmp24711, i64 1
+ %tmp24713 = getelementptr inbounds float* %tmp24712, i64 1
+ %tmp24714 = getelementptr inbounds float* %tmp24713, i64 1
+ %tmp24715 = getelementptr inbounds float* %tmp24714, i64 1
+ %tmp24716 = getelementptr inbounds float* %tmp24715, i64 1
+ %tmp24717 = getelementptr inbounds float* %tmp24716, i64 1
+ %tmp24718 = getelementptr inbounds float* %tmp24717, i64 1
+ %tmp24719 = getelementptr inbounds float* %tmp24718, i64 1
+ %tmp24720 = getelementptr inbounds float* %tmp24719, i64 1
+ %tmp24721 = getelementptr inbounds float* %tmp24720, i64 1
+ %tmp24722 = getelementptr inbounds float* %tmp24721, i64 1
+ %tmp24723 = getelementptr inbounds float* %tmp24722, i64 1
+ %tmp24724 = getelementptr inbounds float* %tmp24723, i64 1
+ %tmp24725 = getelementptr inbounds float* %tmp24724, i64 1
+ %tmp24726 = getelementptr inbounds float* %tmp24725, i64 1
+ %tmp24727 = getelementptr inbounds float* %tmp24726, i64 1
+ %tmp24728 = getelementptr inbounds float* %tmp24727, i64 1
+ %tmp24729 = getelementptr inbounds float* %tmp24728, i64 1
+ %tmp24730 = getelementptr inbounds float* %tmp24729, i64 1
+ %tmp24731 = getelementptr inbounds float* %tmp24730, i64 1
+ %tmp24732 = getelementptr inbounds float* %tmp24731, i64 1
+ %tmp24733 = getelementptr inbounds float* %tmp24732, i64 1
+ %tmp24734 = getelementptr inbounds float* %tmp24733, i64 1
+ %tmp24735 = getelementptr inbounds float* %tmp24734, i64 1
+ %tmp24736 = getelementptr inbounds float* %tmp24735, i64 1
+ %tmp24737 = getelementptr inbounds float* %tmp24736, i64 1
+ %tmp24738 = getelementptr inbounds float* %tmp24737, i64 1
+ %tmp24739 = getelementptr inbounds float* %tmp24738, i64 1
+ %tmp24740 = getelementptr inbounds float* %tmp24739, i64 1
+ %tmp24741 = getelementptr inbounds float* %tmp24740, i64 1
+ %tmp24742 = getelementptr inbounds float* %tmp24741, i64 1
+ %tmp24743 = getelementptr inbounds float* %tmp24742, i64 1
+ %tmp24744 = getelementptr inbounds float* %tmp24743, i64 1
+ %tmp24745 = getelementptr inbounds float* %tmp24744, i64 1
+ %tmp24746 = getelementptr inbounds float* %tmp24745, i64 1
+ %tmp24747 = getelementptr inbounds float* %tmp24746, i64 1
+ %tmp24748 = getelementptr inbounds float* %tmp24747, i64 1
+ %tmp24749 = getelementptr inbounds float* %tmp24748, i64 1
+ %tmp24750 = getelementptr inbounds float* %tmp24749, i64 1
+ %tmp24751 = getelementptr inbounds float* %tmp24750, i64 1
+ %tmp24752 = getelementptr inbounds float* %tmp24751, i64 1
+ %tmp24753 = getelementptr inbounds float* %tmp24752, i64 1
+ %tmp24754 = getelementptr inbounds float* %tmp24753, i64 1
+ %tmp24755 = getelementptr inbounds float* %tmp24754, i64 1
+ %tmp24756 = getelementptr inbounds float* %tmp24755, i64 1
+ %tmp24757 = getelementptr inbounds float* %tmp24756, i64 1
+ %tmp24758 = getelementptr inbounds float* %tmp24757, i64 1
+ %tmp24759 = getelementptr inbounds float* %tmp24758, i64 1
+ %tmp24760 = getelementptr inbounds float* %tmp24759, i64 1
+ %tmp24761 = getelementptr inbounds float* %tmp24760, i64 1
+ %tmp24762 = getelementptr inbounds float* %tmp24761, i64 1
+ %tmp24763 = getelementptr inbounds float* %tmp24762, i64 1
+ %tmp24764 = getelementptr inbounds float* %tmp24763, i64 1
+ %tmp24765 = getelementptr inbounds float* %tmp24764, i64 1
+ %tmp24766 = getelementptr inbounds float* %tmp24765, i64 1
+ %tmp24767 = getelementptr inbounds float* %tmp24766, i64 1
+ %tmp24768 = getelementptr inbounds float* %tmp24767, i64 1
+ %tmp24769 = getelementptr inbounds float* %tmp24768, i64 1
+ %tmp24770 = getelementptr inbounds float* %tmp24769, i64 1
+ %tmp24771 = getelementptr inbounds float* %tmp24770, i64 1
+ %tmp24772 = getelementptr inbounds float* %tmp24771, i64 1
+ %tmp24773 = getelementptr inbounds float* %tmp24772, i64 1
+ %tmp24774 = getelementptr inbounds float* %tmp24773, i64 1
+ %tmp24775 = getelementptr inbounds float* %tmp24774, i64 1
+ %tmp24776 = getelementptr inbounds float* %tmp24775, i64 1
+ %tmp24777 = getelementptr inbounds float* %tmp24776, i64 1
+ %tmp24778 = getelementptr inbounds float* %tmp24777, i64 1
+ %tmp24779 = getelementptr inbounds float* %tmp24778, i64 1
+ %tmp24780 = getelementptr inbounds float* %tmp24779, i64 1
+ %tmp24781 = getelementptr inbounds float* %tmp24780, i64 1
+ %tmp24782 = getelementptr inbounds float* %tmp24781, i64 1
+ %tmp24783 = getelementptr inbounds float* %tmp24782, i64 1
+ %tmp24784 = getelementptr inbounds float* %tmp24783, i64 1
+ %tmp24785 = getelementptr inbounds float* %tmp24784, i64 1
+ %tmp24786 = getelementptr inbounds float* %tmp24785, i64 1
+ %tmp24787 = getelementptr inbounds float* %tmp24786, i64 1
+ %tmp24788 = getelementptr inbounds float* %tmp24787, i64 1
+ %tmp24789 = getelementptr inbounds float* %tmp24788, i64 1
+ %tmp24790 = getelementptr inbounds float* %tmp24789, i64 1
+ %tmp24791 = getelementptr inbounds float* %tmp24790, i64 1
+ %tmp24792 = getelementptr inbounds float* %tmp24791, i64 1
+ %tmp24793 = getelementptr inbounds float* %tmp24792, i64 1
+ %tmp24794 = getelementptr inbounds float* %tmp24793, i64 1
+ %tmp24795 = getelementptr inbounds float* %tmp24794, i64 1
+ %tmp24796 = getelementptr inbounds float* %tmp24795, i64 1
+ %tmp24797 = getelementptr inbounds float* %tmp24796, i64 1
+ %tmp24798 = getelementptr inbounds float* %tmp24797, i64 1
+ %tmp24799 = getelementptr inbounds float* %tmp24798, i64 1
+ %tmp24800 = getelementptr inbounds float* %tmp24799, i64 1
+ %tmp24801 = getelementptr inbounds float* %tmp24800, i64 1
+ %tmp24802 = getelementptr inbounds float* %tmp24801, i64 1
+ %tmp24803 = getelementptr inbounds float* %tmp24802, i64 1
+ %tmp24804 = getelementptr inbounds float* %tmp24803, i64 1
+ %tmp24805 = getelementptr inbounds float* %tmp24804, i64 1
+ %tmp24806 = getelementptr inbounds float* %tmp24805, i64 1
+ %tmp24807 = getelementptr inbounds float* %tmp24806, i64 1
+ %tmp24808 = getelementptr inbounds float* %tmp24807, i64 1
+ %tmp24809 = getelementptr inbounds float* %tmp24808, i64 1
+ %tmp24810 = getelementptr inbounds float* %tmp24809, i64 1
+ %tmp24811 = getelementptr inbounds float* %tmp24810, i64 1
+ %tmp24812 = getelementptr inbounds float* %tmp24811, i64 1
+ %tmp24813 = getelementptr inbounds float* %tmp24812, i64 1
+ %tmp24814 = getelementptr inbounds float* %tmp24813, i64 1
+ %tmp24815 = getelementptr inbounds float* %tmp24814, i64 1
+ %tmp24816 = getelementptr inbounds float* %tmp24815, i64 1
+ %tmp24817 = getelementptr inbounds float* %tmp24816, i64 1
+ %tmp24818 = getelementptr inbounds float* %tmp24817, i64 1
+ %tmp24819 = getelementptr inbounds float* %tmp24818, i64 1
+ %tmp24820 = getelementptr inbounds float* %tmp24819, i64 1
+ %tmp24821 = getelementptr inbounds float* %tmp24820, i64 1
+ %tmp24822 = getelementptr inbounds float* %tmp24821, i64 1
+ %tmp24823 = getelementptr inbounds float* %tmp24822, i64 1
+ %tmp24824 = getelementptr inbounds float* %tmp24823, i64 1
+ %tmp24825 = getelementptr inbounds float* %tmp24824, i64 1
+ %tmp24826 = getelementptr inbounds float* %tmp24825, i64 1
+ %tmp24827 = getelementptr inbounds float* %tmp24826, i64 1
+ %tmp24828 = getelementptr inbounds float* %tmp24827, i64 1
+ %tmp24829 = getelementptr inbounds float* %tmp24828, i64 1
+ %tmp24830 = getelementptr inbounds float* %tmp24829, i64 1
+ %tmp24831 = getelementptr inbounds float* %tmp24830, i64 1
+ %tmp24832 = getelementptr inbounds float* %tmp24831, i64 1
+ %tmp24833 = getelementptr inbounds float* %tmp24832, i64 1
+ %tmp24834 = getelementptr inbounds float* %tmp24833, i64 1
+ %tmp24835 = getelementptr inbounds float* %tmp24834, i64 1
+ %tmp24836 = getelementptr inbounds float* %tmp24835, i64 1
+ %tmp24837 = getelementptr inbounds float* %tmp24836, i64 1
+ %tmp24838 = getelementptr inbounds float* %tmp24837, i64 1
+ %tmp24839 = getelementptr inbounds float* %tmp24838, i64 1
+ %tmp24840 = getelementptr inbounds float* %tmp24839, i64 1
+ %tmp24841 = getelementptr inbounds float* %tmp24840, i64 1
+ %tmp24842 = getelementptr inbounds float* %tmp24841, i64 1
+ %tmp24843 = getelementptr inbounds float* %tmp24842, i64 1
+ %tmp24844 = getelementptr inbounds float* %tmp24843, i64 1
+ %tmp24845 = getelementptr inbounds float* %tmp24844, i64 1
+ %tmp24846 = getelementptr inbounds float* %tmp24845, i64 1
+ %tmp24847 = getelementptr inbounds float* %tmp24846, i64 1
+ %tmp24848 = getelementptr inbounds float* %tmp24847, i64 1
+ %tmp24849 = getelementptr inbounds float* %tmp24848, i64 1
+ %tmp24850 = getelementptr inbounds float* %tmp24849, i64 1
+ %tmp24851 = getelementptr inbounds float* %tmp24850, i64 1
+ %tmp24852 = getelementptr inbounds float* %tmp24851, i64 1
+ %tmp24853 = getelementptr inbounds float* %tmp24852, i64 1
+ %tmp24854 = getelementptr inbounds float* %tmp24853, i64 1
+ %tmp24855 = getelementptr inbounds float* %tmp24854, i64 1
+ %tmp24856 = getelementptr inbounds float* %tmp24855, i64 1
+ %tmp24857 = getelementptr inbounds float* %tmp24856, i64 1
+ %tmp24858 = getelementptr inbounds float* %tmp24857, i64 1
+ %tmp24859 = getelementptr inbounds float* %tmp24858, i64 1
+ %tmp24860 = getelementptr inbounds float* %tmp24859, i64 1
+ %tmp24861 = getelementptr inbounds float* %tmp24860, i64 1
+ %tmp24862 = getelementptr inbounds float* %tmp24861, i64 1
+ %tmp24863 = getelementptr inbounds float* %tmp24862, i64 1
+ %tmp24864 = getelementptr inbounds float* %tmp24863, i64 1
+ %tmp24865 = getelementptr inbounds float* %tmp24864, i64 1
+ %tmp24866 = getelementptr inbounds float* %tmp24865, i64 1
+ %tmp24867 = getelementptr inbounds float* %tmp24866, i64 1
+ %tmp24868 = getelementptr inbounds float* %tmp24867, i64 1
+ %tmp24869 = getelementptr inbounds float* %tmp24868, i64 1
+ %tmp24870 = getelementptr inbounds float* %tmp24869, i64 1
+ %tmp24871 = getelementptr inbounds float* %tmp24870, i64 1
+ %tmp24872 = getelementptr inbounds float* %tmp24871, i64 1
+ %tmp24873 = getelementptr inbounds float* %tmp24872, i64 1
+ %tmp24874 = getelementptr inbounds float* %tmp24873, i64 1
+ %tmp24875 = getelementptr inbounds float* %tmp24874, i64 1
+ %tmp24876 = getelementptr inbounds float* %tmp24875, i64 1
+ %tmp24877 = getelementptr inbounds float* %tmp24876, i64 1
+ %tmp24878 = getelementptr inbounds float* %tmp24877, i64 1
+ %tmp24879 = getelementptr inbounds float* %tmp24878, i64 1
+ %tmp24880 = getelementptr inbounds float* %tmp24879, i64 1
+ %tmp24881 = getelementptr inbounds float* %tmp24880, i64 1
+ %tmp24882 = getelementptr inbounds float* %tmp24881, i64 1
+ %tmp24883 = getelementptr inbounds float* %tmp24882, i64 1
+ %tmp24884 = getelementptr inbounds float* %tmp24883, i64 1
+ %tmp24885 = getelementptr inbounds float* %tmp24884, i64 1
+ %tmp24886 = getelementptr inbounds float* %tmp24885, i64 1
+ %tmp24887 = getelementptr inbounds float* %tmp24886, i64 1
+ %tmp24888 = getelementptr inbounds float* %tmp24887, i64 1
+ %tmp24889 = getelementptr inbounds float* %tmp24888, i64 1
+ %tmp24890 = getelementptr inbounds float* %tmp24889, i64 1
+ %tmp24891 = getelementptr inbounds float* %tmp24890, i64 1
+ %tmp24892 = getelementptr inbounds float* %tmp24891, i64 1
+ %tmp24893 = getelementptr inbounds float* %tmp24892, i64 1
+ %tmp24894 = getelementptr inbounds float* %tmp24893, i64 1
+ %tmp24895 = getelementptr inbounds float* %tmp24894, i64 1
+ %tmp24896 = getelementptr inbounds float* %tmp24895, i64 1
+ %tmp24897 = getelementptr inbounds float* %tmp24896, i64 1
+ %tmp24898 = getelementptr inbounds float* %tmp24897, i64 1
+ %tmp24899 = getelementptr inbounds float* %tmp24898, i64 1
+ %tmp24900 = getelementptr inbounds float* %tmp24899, i64 1
+ %tmp24901 = getelementptr inbounds float* %tmp24900, i64 1
+ %tmp24902 = getelementptr inbounds float* %tmp24901, i64 1
+ %tmp24903 = getelementptr inbounds float* %tmp24902, i64 1
+ %tmp24904 = getelementptr inbounds float* %tmp24903, i64 1
+ %tmp24905 = getelementptr inbounds float* %tmp24904, i64 1
+ %tmp24906 = getelementptr inbounds float* %tmp24905, i64 1
+ %tmp24907 = getelementptr inbounds float* %tmp24906, i64 1
+ %tmp24908 = getelementptr inbounds float* %tmp24907, i64 1
+ %tmp24909 = getelementptr inbounds float* %tmp24908, i64 1
+ %tmp24910 = getelementptr inbounds float* %tmp24909, i64 1
+ %tmp24911 = getelementptr inbounds float* %tmp24910, i64 1
+ %tmp24912 = getelementptr inbounds float* %tmp24911, i64 1
+ %tmp24913 = getelementptr inbounds float* %tmp24912, i64 1
+ %tmp24914 = getelementptr inbounds float* %tmp24913, i64 1
+ %tmp24915 = getelementptr inbounds float* %tmp24914, i64 1
+ %tmp24916 = getelementptr inbounds float* %tmp24915, i64 1
+ %tmp24917 = getelementptr inbounds float* %tmp24916, i64 1
+ %tmp24918 = getelementptr inbounds float* %tmp24917, i64 1
+ %tmp24919 = getelementptr inbounds float* %tmp24918, i64 1
+ %tmp24920 = getelementptr inbounds float* %tmp24919, i64 1
+ %tmp24921 = getelementptr inbounds float* %tmp24920, i64 1
+ %tmp24922 = getelementptr inbounds float* %tmp24921, i64 1
+ %tmp24923 = getelementptr inbounds float* %tmp24922, i64 1
+ %tmp24924 = getelementptr inbounds float* %tmp24923, i64 1
+ %tmp24925 = getelementptr inbounds float* %tmp24924, i64 1
+ %tmp24926 = getelementptr inbounds float* %tmp24925, i64 1
+ %tmp24927 = getelementptr inbounds float* %tmp24926, i64 1
+ %tmp24928 = getelementptr inbounds float* %tmp24927, i64 1
+ %tmp24929 = getelementptr inbounds float* %tmp24928, i64 1
+ %tmp24930 = getelementptr inbounds float* %tmp24929, i64 1
+ %tmp24931 = getelementptr inbounds float* %tmp24930, i64 1
+ %tmp24932 = getelementptr inbounds float* %tmp24931, i64 1
+ %tmp24933 = getelementptr inbounds float* %tmp24932, i64 1
+ %tmp24934 = getelementptr inbounds float* %tmp24933, i64 1
+ %tmp24935 = getelementptr inbounds float* %tmp24934, i64 1
+ %tmp24936 = getelementptr inbounds float* %tmp24935, i64 1
+ %tmp24937 = getelementptr inbounds float* %tmp24936, i64 1
+ %tmp24938 = getelementptr inbounds float* %tmp24937, i64 1
+ %tmp24939 = getelementptr inbounds float* %tmp24938, i64 1
+ %tmp24940 = getelementptr inbounds float* %tmp24939, i64 1
+ %tmp24941 = getelementptr inbounds float* %tmp24940, i64 1
+ %tmp24942 = getelementptr inbounds float* %tmp24941, i64 1
+ %tmp24943 = getelementptr inbounds float* %tmp24942, i64 1
+ %tmp24944 = getelementptr inbounds float* %tmp24943, i64 1
+ %tmp24945 = getelementptr inbounds float* %tmp24944, i64 1
+ %tmp24946 = getelementptr inbounds float* %tmp24945, i64 1
+ store float 0x3F43FD0D00000000, float* %tmp24946
+ %tmp24947 = getelementptr inbounds float* undef, i64 1
+ %tmp24948 = getelementptr inbounds float* undef, i64 1
+ %tmp24949 = getelementptr inbounds float* undef, i64 1
+ %tmp24950 = getelementptr inbounds float* undef, i64 1
+ %tmp24951 = getelementptr inbounds float* %tmp24950, i64 1
+ %tmp24952 = getelementptr inbounds float* undef, i64 1
+ %tmp24953 = getelementptr inbounds float* undef, i64 1
+ %tmp24954 = getelementptr inbounds float* undef, i64 1
+ %tmp24955 = getelementptr inbounds float* undef, i64 1
+ %tmp24956 = getelementptr inbounds float* undef, i64 1
+ %tmp24957 = getelementptr inbounds float* undef, i64 1
+ %tmp24958 = getelementptr inbounds float* %tmp24957, i64 1
+ %tmp24959 = getelementptr inbounds float* undef, i64 1
+ %tmp24960 = getelementptr inbounds float* undef, i64 1
+ %tmp24961 = getelementptr inbounds float* undef, i64 1
+ %tmp24962 = getelementptr inbounds float* undef, i64 1
+ %tmp24963 = getelementptr inbounds float* undef, i64 1
+ %tmp24964 = getelementptr inbounds float* undef, i64 1
+ %tmp24965 = getelementptr inbounds float* undef, i64 1
+ %tmp24966 = getelementptr inbounds float* %tmp24965, i64 1
+ %tmp24967 = getelementptr inbounds float* undef, i64 1
+ %tmp24968 = getelementptr inbounds float* undef, i64 1
+ %tmp24969 = getelementptr inbounds float* undef, i64 1
+ %tmp24970 = getelementptr inbounds float* undef, i64 1
+ %tmp24971 = getelementptr inbounds float* %tmp24970, i64 1
+ %tmp24972 = getelementptr inbounds float* %tmp24971, i64 1
+ %tmp24973 = getelementptr inbounds float* %tmp24972, i64 1
+ %tmp24974 = getelementptr inbounds float* undef, i64 1
+ %tmp24975 = getelementptr inbounds float* undef, i64 1
+ %tmp24976 = getelementptr inbounds float* %tmp24975, i64 1
+ %tmp24977 = getelementptr inbounds float* undef, i64 1
+ %tmp24978 = getelementptr inbounds float* undef, i64 1
+ %tmp24979 = getelementptr inbounds float* undef, i64 1
+ %tmp24980 = getelementptr inbounds float* undef, i64 1
+ %tmp24981 = getelementptr inbounds float* undef, i64 1
+ %tmp24982 = getelementptr inbounds float* undef, i64 1
+ %tmp24983 = getelementptr inbounds float* %tmp24982, i64 1
+ %tmp24984 = getelementptr inbounds float* undef, i64 1
+ %tmp24985 = getelementptr inbounds float* %tmp24984, i64 1
+ %tmp24986 = getelementptr inbounds float* undef, i64 1
+ %tmp24987 = getelementptr inbounds float* %tmp24986, i64 1
+ %tmp24988 = getelementptr inbounds float* %tmp24987, i64 1
+ %tmp24989 = getelementptr inbounds float* undef, i64 1
+ %tmp24990 = getelementptr inbounds float* undef, i64 1
+ %tmp24991 = getelementptr inbounds float* %tmp24990, i64 1
+ %tmp24992 = getelementptr inbounds float* undef, i64 1
+ %tmp24993 = getelementptr inbounds float* %tmp24992, i64 1
+ %tmp24994 = getelementptr inbounds float* %tmp24993, i64 1
+ %tmp24995 = getelementptr inbounds float* undef, i64 1
+ %tmp24996 = getelementptr inbounds float* undef, i64 1
+ %tmp24997 = getelementptr inbounds float* undef, i64 1
+ %tmp24998 = getelementptr inbounds float* undef, i64 1
+ %tmp24999 = getelementptr inbounds float* undef, i64 1
+ %tmp25000 = getelementptr inbounds float* undef, i64 1
+ %tmp25001 = getelementptr inbounds float* undef, i64 1
+ %tmp25002 = getelementptr inbounds float* undef, i64 1
+ %tmp25003 = getelementptr inbounds float* undef, i64 1
+ %tmp25004 = getelementptr inbounds float* undef, i64 1
+ %tmp25005 = getelementptr inbounds float* undef, i64 1
+ %tmp25006 = getelementptr inbounds float* undef, i64 1
+ %tmp25007 = getelementptr inbounds float* undef, i64 1
+ %tmp25008 = getelementptr inbounds float* undef, i64 1
+ %tmp25009 = getelementptr inbounds float* undef, i64 1
+ %tmp25010 = getelementptr inbounds float* undef, i64 1
+ %tmp25011 = getelementptr inbounds float* undef, i64 1
+ %tmp25012 = getelementptr inbounds float* %tmp25011, i64 1
+ %tmp25013 = getelementptr inbounds float* undef, i64 1
+ %tmp25014 = getelementptr inbounds float* undef, i64 1
+ %tmp25015 = getelementptr inbounds float* undef, i64 1
+ %tmp25016 = getelementptr inbounds float* undef, i64 1
+ %tmp25017 = getelementptr inbounds float* %tmp25016, i64 1
+ %tmp25018 = getelementptr inbounds float* undef, i64 1
+ %tmp25019 = getelementptr inbounds float* undef, i64 1
+ %tmp25020 = getelementptr inbounds float* undef, i64 1
+ %tmp25021 = getelementptr inbounds float* undef, i64 1
+ %tmp25022 = getelementptr inbounds float* undef, i64 1
+ %tmp25023 = getelementptr inbounds float* %tmp25022, i64 1
+ %tmp25024 = getelementptr inbounds float* %tmp25023, i64 1
+ %tmp25025 = getelementptr inbounds float* undef, i64 1
+ %tmp25026 = getelementptr inbounds float* undef, i64 1
+ %tmp25027 = getelementptr inbounds float* undef, i64 1
+ %tmp25028 = getelementptr inbounds float* undef, i64 1
+ %tmp25029 = getelementptr inbounds float* undef, i64 1
+ %tmp25030 = getelementptr inbounds float* undef, i64 1
+ %tmp25031 = getelementptr inbounds float* undef, i64 1
+ %tmp25032 = getelementptr inbounds float* undef, i64 1
+ %tmp25033 = getelementptr inbounds float* undef, i64 1
+ %tmp25034 = getelementptr inbounds float* undef, i64 1
+ %tmp25035 = getelementptr inbounds float* %tmp25034, i64 1
+ %tmp25036 = getelementptr inbounds float* undef, i64 1
+ %tmp25037 = getelementptr inbounds float* undef, i64 1
+ %tmp25038 = getelementptr inbounds float* %tmp25037, i64 1
+ %tmp25039 = getelementptr inbounds float* undef, i64 1
+ %tmp25040 = getelementptr inbounds float* undef, i64 1
+ %tmp25041 = getelementptr inbounds float* undef, i64 1
+ %tmp25042 = getelementptr inbounds float* undef, i64 1
+ %tmp25043 = getelementptr inbounds float* undef, i64 1
+ %tmp25044 = getelementptr inbounds float* undef, i64 1
+ %tmp25045 = getelementptr inbounds float* %tmp25044, i64 1
+ %tmp25046 = getelementptr inbounds float* undef, i64 1
+ %tmp25047 = getelementptr inbounds float* %tmp25046, i64 1
+ %tmp25048 = getelementptr inbounds float* undef, i64 1
+ %tmp25049 = getelementptr inbounds float* %tmp25048, i64 1
+ %tmp25050 = getelementptr inbounds float* %tmp25049, i64 1
+ %tmp25051 = getelementptr inbounds float* undef, i64 1
+ %tmp25052 = getelementptr inbounds float* undef, i64 1
+ %tmp25053 = getelementptr inbounds float* undef, i64 1
+ %tmp25054 = getelementptr inbounds float* undef, i64 1
+ %tmp25055 = getelementptr inbounds float* undef, i64 1
+ %tmp25056 = getelementptr inbounds float* undef, i64 1
+ %tmp25057 = getelementptr inbounds float* undef, i64 1
+ %tmp25058 = getelementptr inbounds float* undef, i64 1
+ %tmp25059 = getelementptr inbounds float* undef, i64 1
+ %tmp25060 = getelementptr inbounds float* undef, i64 1
+ %tmp25061 = getelementptr inbounds float* undef, i64 1
+ %tmp25062 = getelementptr inbounds float* undef, i64 1
+ %tmp25063 = getelementptr inbounds float* undef, i64 1
+ %tmp25064 = getelementptr inbounds float* undef, i64 1
+ %tmp25065 = getelementptr inbounds float* undef, i64 1
+ %tmp25066 = getelementptr inbounds float* undef, i64 1
+ %tmp25067 = getelementptr inbounds float* %tmp25066, i64 1
+ %tmp25068 = getelementptr inbounds float* undef, i64 1
+ %tmp25069 = getelementptr inbounds float* %tmp25068, i64 1
+ %tmp25070 = getelementptr inbounds float* undef, i64 1
+ %tmp25071 = getelementptr inbounds float* undef, i64 1
+ %tmp25072 = getelementptr inbounds float* undef, i64 1
+ %tmp25073 = getelementptr inbounds float* undef, i64 1
+ %tmp25074 = getelementptr inbounds float* undef, i64 1
+ %tmp25075 = getelementptr inbounds float* %tmp25074, i64 1
+ %tmp25076 = getelementptr inbounds float* undef, i64 1
+ %tmp25077 = getelementptr inbounds float* undef, i64 1
+ %tmp25078 = getelementptr inbounds float* undef, i64 1
+ %tmp25079 = getelementptr inbounds float* undef, i64 1
+ %tmp25080 = getelementptr inbounds float* undef, i64 1
+ %tmp25081 = getelementptr inbounds float* undef, i64 1
+ %tmp25082 = getelementptr inbounds float* undef, i64 1
+ %tmp25083 = getelementptr inbounds float* undef, i64 1
+ %tmp25084 = getelementptr inbounds float* undef, i64 1
+ %tmp25085 = getelementptr inbounds float* undef, i64 1
+ %tmp25086 = getelementptr inbounds float* undef, i64 1
+ %tmp25087 = getelementptr inbounds float* undef, i64 1
+ %tmp25088 = getelementptr inbounds float* undef, i64 1
+ %tmp25089 = getelementptr inbounds float* undef, i64 1
+ %tmp25090 = getelementptr inbounds float* undef, i64 1
+ %tmp25091 = getelementptr inbounds float* undef, i64 1
+ %tmp25092 = getelementptr inbounds float* undef, i64 1
+ %tmp25093 = getelementptr inbounds float* undef, i64 1
+ %tmp25094 = getelementptr inbounds float* undef, i64 1
+ %tmp25095 = getelementptr inbounds float* %tmp25094, i64 1
+ %tmp25096 = getelementptr inbounds float* undef, i64 1
+ %tmp25097 = getelementptr inbounds float* %tmp25096, i64 1
+ %tmp25098 = getelementptr inbounds float* %tmp25097, i64 1
+ %tmp25099 = getelementptr inbounds float* undef, i64 1
+ %tmp25100 = getelementptr inbounds float* undef, i64 1
+ %tmp25101 = getelementptr inbounds float* undef, i64 1
+ %tmp25102 = getelementptr inbounds float* undef, i64 1
+ %tmp25103 = getelementptr inbounds float* undef, i64 1
+ %tmp25104 = getelementptr inbounds float* undef, i64 1
+ %tmp25105 = getelementptr inbounds float* undef, i64 1
+ %tmp25106 = getelementptr inbounds float* undef, i64 1
+ %tmp25107 = getelementptr inbounds float* %tmp25106, i64 1
+ %tmp25108 = getelementptr inbounds float* undef, i64 1
+ %tmp25109 = getelementptr inbounds float* undef, i64 1
+ %tmp25110 = getelementptr inbounds float* undef, i64 1
+ %tmp25111 = getelementptr inbounds float* undef, i64 1
+ %tmp25112 = getelementptr inbounds float* undef, i64 1
+ %tmp25113 = getelementptr inbounds float* undef, i64 1
+ %tmp25114 = getelementptr inbounds float* undef, i64 1
+ %tmp25115 = getelementptr inbounds float* undef, i64 1
+ %tmp25116 = getelementptr inbounds float* undef, i64 1
+ %tmp25117 = getelementptr inbounds float* undef, i64 1
+ %tmp25118 = getelementptr inbounds float* undef, i64 1
+ %tmp25119 = getelementptr inbounds float* undef, i64 1
+ %tmp25120 = getelementptr inbounds float* undef, i64 1
+ %tmp25121 = getelementptr inbounds float* undef, i64 1
+ %tmp25122 = getelementptr inbounds float* %tmp25121, i64 1
+ %tmp25123 = getelementptr inbounds float* undef, i64 1
+ %tmp25124 = getelementptr inbounds float* undef, i64 1
+ %tmp25125 = getelementptr inbounds float* undef, i64 1
+ %tmp25126 = getelementptr inbounds float* undef, i64 1
+ %tmp25127 = getelementptr inbounds float* undef, i64 1
+ %tmp25128 = getelementptr inbounds float* undef, i64 1
+ %tmp25129 = getelementptr inbounds float* undef, i64 1
+ %tmp25130 = getelementptr inbounds float* undef, i64 1
+ %tmp25131 = getelementptr inbounds float* undef, i64 1
+ %tmp25132 = getelementptr inbounds float* undef, i64 1
+ %tmp25133 = getelementptr inbounds float* undef, i64 1
+ %tmp25134 = getelementptr inbounds float* undef, i64 1
+ %tmp25135 = getelementptr inbounds float* undef, i64 1
+ %tmp25136 = getelementptr inbounds float* undef, i64 1
+ %tmp25137 = getelementptr inbounds float* undef, i64 1
+ %tmp25138 = getelementptr inbounds float* undef, i64 1
+ %tmp25139 = getelementptr inbounds float* undef, i64 1
+ %tmp25140 = getelementptr inbounds float* undef, i64 1
+ %tmp25141 = getelementptr inbounds float* undef, i64 1
+ %tmp25142 = getelementptr inbounds float* undef, i64 1
+ %tmp25143 = getelementptr inbounds float* undef, i64 1
+ %tmp25144 = getelementptr inbounds float* undef, i64 1
+ %tmp25145 = getelementptr inbounds float* undef, i64 1
+ %tmp25146 = getelementptr inbounds float* %tmp25145, i64 1
+ %tmp25147 = getelementptr inbounds float* undef, i64 1
+ %tmp25148 = getelementptr inbounds float* %tmp25147, i64 1
+ %tmp25149 = getelementptr inbounds float* undef, i64 1
+ %tmp25150 = getelementptr inbounds float* undef, i64 1
+ %tmp25151 = getelementptr inbounds float* undef, i64 1
+ %tmp25152 = getelementptr inbounds float* undef, i64 1
+ %tmp25153 = getelementptr inbounds float* %tmp25152, i64 1
+ %tmp25154 = getelementptr inbounds float* undef, i64 1
+ %tmp25155 = getelementptr inbounds float* undef, i64 1
+ %tmp25156 = getelementptr inbounds float* undef, i64 1
+ %tmp25157 = getelementptr inbounds float* undef, i64 1
+ %tmp25158 = getelementptr inbounds float* undef, i64 1
+ %tmp25159 = getelementptr inbounds float* undef, i64 1
+ %tmp25160 = getelementptr inbounds float* undef, i64 1
+ %tmp25161 = getelementptr inbounds float* undef, i64 1
+ %tmp25162 = getelementptr inbounds float* %tmp25161, i64 1
+ %tmp25163 = getelementptr inbounds float* undef, i64 1
+ %tmp25164 = getelementptr inbounds float* undef, i64 1
+ %tmp25165 = getelementptr inbounds float* undef, i64 1
+ %tmp25166 = getelementptr inbounds float* undef, i64 1
+ %tmp25167 = getelementptr inbounds float* undef, i64 1
+ %tmp25168 = getelementptr inbounds float* undef, i64 1
+ %tmp25169 = getelementptr inbounds float* undef, i64 1
+ %tmp25170 = getelementptr inbounds float* %tmp25169, i64 1
+ %tmp25171 = getelementptr inbounds float* undef, i64 1
+ %tmp25172 = getelementptr inbounds float* undef, i64 1
+ %tmp25173 = getelementptr inbounds float* undef, i64 1
+ %tmp25174 = getelementptr inbounds float* undef, i64 1
+ %tmp25175 = getelementptr inbounds float* %tmp25174, i64 1
+ %tmp25176 = getelementptr inbounds float* undef, i64 1
+ %tmp25177 = getelementptr inbounds float* undef, i64 1
+ %tmp25178 = getelementptr inbounds float* %tmp25177, i64 1
+ %tmp25179 = getelementptr inbounds float* undef, i64 1
+ %tmp25180 = getelementptr inbounds float* undef, i64 1
+ %tmp25181 = getelementptr inbounds float* undef, i64 1
+ %tmp25182 = getelementptr inbounds float* undef, i64 1
+ %tmp25183 = getelementptr inbounds float* undef, i64 1
+ %tmp25184 = getelementptr inbounds float* undef, i64 1
+ %tmp25185 = getelementptr inbounds float* undef, i64 1
+ %tmp25186 = getelementptr inbounds float* undef, i64 1
+ %tmp25187 = getelementptr inbounds float* %tmp25186, i64 1
+ %tmp25188 = getelementptr inbounds float* %tmp25187, i64 1
+ %tmp25189 = getelementptr inbounds float* undef, i64 1
+ %tmp25190 = getelementptr inbounds float* undef, i64 1
+ %tmp25191 = getelementptr inbounds float* undef, i64 1
+ %tmp25192 = getelementptr inbounds float* %tmp25191, i64 1
+ %tmp25193 = getelementptr inbounds float* undef, i64 1
+ %tmp25194 = getelementptr inbounds float* undef, i64 1
+ %tmp25195 = getelementptr inbounds float* undef, i64 1
+ %tmp25196 = getelementptr inbounds float* undef, i64 1
+ %tmp25197 = getelementptr inbounds float* undef, i64 1
+ %tmp25198 = getelementptr inbounds float* undef, i64 1
+ %tmp25199 = getelementptr inbounds float* undef, i64 1
+ %tmp25200 = getelementptr inbounds float* undef, i64 1
+ %tmp25201 = getelementptr inbounds float* %tmp25200, i64 1
+ %tmp25202 = getelementptr inbounds float* undef, i64 1
+ %tmp25203 = getelementptr inbounds float* undef, i64 1
+ %tmp25204 = getelementptr inbounds float* undef, i64 1
+ %tmp25205 = getelementptr inbounds float* undef, i64 1
+ %tmp25206 = getelementptr inbounds float* undef, i64 1
+ %tmp25207 = getelementptr inbounds float* undef, i64 1
+ %tmp25208 = getelementptr inbounds float* undef, i64 1
+ %tmp25209 = getelementptr inbounds float* undef, i64 1
+ %tmp25210 = getelementptr inbounds float* undef, i64 1
+ %tmp25211 = getelementptr inbounds float* undef, i64 1
+ %tmp25212 = getelementptr inbounds float* undef, i64 1
+ %tmp25213 = getelementptr inbounds float* undef, i64 1
+ %tmp25214 = getelementptr inbounds float* undef, i64 1
+ %tmp25215 = getelementptr inbounds float* undef, i64 1
+ %tmp25216 = getelementptr inbounds float* undef, i64 1
+ %tmp25217 = getelementptr inbounds float* undef, i64 1
+ %tmp25218 = getelementptr inbounds float* undef, i64 1
+ %tmp25219 = getelementptr inbounds float* undef, i64 1
+ %tmp25220 = getelementptr inbounds float* undef, i64 1
+ %tmp25221 = getelementptr inbounds float* undef, i64 1
+ %tmp25222 = getelementptr inbounds float* undef, i64 1
+ %tmp25223 = getelementptr inbounds float* undef, i64 1
+ %tmp25224 = getelementptr inbounds float* undef, i64 1
+ %tmp25225 = getelementptr inbounds float* undef, i64 1
+ %tmp25226 = getelementptr inbounds float* undef, i64 1
+ %tmp25227 = getelementptr inbounds float* undef, i64 1
+ %tmp25228 = getelementptr inbounds float* undef, i64 1
+ %tmp25229 = getelementptr inbounds float* undef, i64 1
+ %tmp25230 = getelementptr inbounds float* %tmp25229, i64 1
+ %tmp25231 = getelementptr inbounds float* undef, i64 1
+ %tmp25232 = getelementptr inbounds float* undef, i64 1
+ %tmp25233 = getelementptr inbounds float* undef, i64 1
+ %tmp25234 = getelementptr inbounds float* undef, i64 1
+ %tmp25235 = getelementptr inbounds float* %tmp25234, i64 1
+ %tmp25236 = getelementptr inbounds float* undef, i64 1
+ %tmp25237 = getelementptr inbounds float* %tmp25236, i64 1
+ %tmp25238 = getelementptr inbounds float* undef, i64 1
+ %tmp25239 = getelementptr inbounds float* undef, i64 1
+ %tmp25240 = getelementptr inbounds float* undef, i64 1
+ %tmp25241 = getelementptr inbounds float* undef, i64 1
+ %tmp25242 = getelementptr inbounds float* undef, i64 1
+ %tmp25243 = getelementptr inbounds float* undef, i64 1
+ %tmp25244 = getelementptr inbounds float* undef, i64 1
+ %tmp25245 = getelementptr inbounds float* undef, i64 1
+ %tmp25246 = getelementptr inbounds float* undef, i64 1
+ %tmp25247 = getelementptr inbounds float* undef, i64 1
+ %tmp25248 = getelementptr inbounds float* %tmp25247, i64 1
+ %tmp25249 = getelementptr inbounds float* undef, i64 1
+ %tmp25250 = getelementptr inbounds float* undef, i64 1
+ %tmp25251 = getelementptr inbounds float* undef, i64 1
+ %tmp25252 = getelementptr inbounds float* undef, i64 1
+ %tmp25253 = getelementptr inbounds float* undef, i64 1
+ %tmp25254 = getelementptr inbounds float* undef, i64 1
+ %tmp25255 = getelementptr inbounds float* undef, i64 1
+ %tmp25256 = getelementptr inbounds float* undef, i64 1
+ %tmp25257 = getelementptr inbounds float* undef, i64 1
+ %tmp25258 = getelementptr inbounds float* undef, i64 1
+ %tmp25259 = getelementptr inbounds float* undef, i64 1
+ %tmp25260 = getelementptr inbounds float* undef, i64 1
+ %tmp25261 = getelementptr inbounds float* undef, i64 1
+ %tmp25262 = getelementptr inbounds float* undef, i64 1
+ %tmp25263 = getelementptr inbounds float* undef, i64 1
+ %tmp25264 = getelementptr inbounds float* undef, i64 1
+ %tmp25265 = getelementptr inbounds float* undef, i64 1
+ %tmp25266 = getelementptr inbounds float* undef, i64 1
+ %tmp25267 = getelementptr inbounds float* undef, i64 1
+ %tmp25268 = getelementptr inbounds float* undef, i64 1
+ %tmp25269 = getelementptr inbounds float* undef, i64 1
+ br i1 undef, label %bb25270, label %bb25271
+
+bb25270: ; preds = %bb2
+ br label %bb25362
+
+bb25271: ; preds = %bb2
+ br label %bb25272
+
+bb25272: ; preds = %bb25275, %bb25271
+ br i1 false, label %bb25273, label %bb25278
+
+bb25273: ; preds = %bb25272
+ invoke void @foo()
+ to label %bb25274 unwind label %bb25276
+
+bb25274: ; preds = %bb25273
+ invoke void @bar()
+ to label %bb25275 unwind label %bb25276
+
+bb25275: ; preds = %bb25274
+ br label %bb25272
+
+bb25276: ; preds = %bb25283, %bb25274, %bb25273
+ %tmp25277 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
+ cleanup
+ br label %bb25361
+
+bb25278: ; preds = %bb25272
+ br label %bb25279
+
+bb25279: ; preds = %bb25284, %bb25278
+ br i1 undef, label %bb25280, label %bb25285
+
+bb25280: ; preds = %bb25279
+ br label %bb25281
+
+bb25281: ; preds = %bb25282, %bb25280
+ br i1 undef, label %bb25282, label %bb25283
+
+bb25282: ; preds = %bb25281
+ br label %bb25281
+
+bb25283: ; preds = %bb25281
+ invoke void @bar()
+ to label %bb25284 unwind label %bb25276
+
+bb25284: ; preds = %bb25283
+ br label %bb25279
+
+bb25285: ; preds = %bb25279
+ br label %bb25286
+
+bb25286: ; preds = %bb25303, %bb25285
+ br i1 undef, label %bb25287, label %bb25304
+
+bb25287: ; preds = %bb25286
+ invoke void @bar()
+ to label %bb25288 unwind label %bb25298
+
+bb25288: ; preds = %bb25287
+ br i1 undef, label %bb25289, label %bb25300
+
+bb25289: ; preds = %bb25288
+ br i1 undef, label %bb25290, label %bb25300
+
+bb25290: ; preds = %bb25289
+ invoke void @bar()
+ to label %bb25291 unwind label %bb25298
+
+bb25291: ; preds = %bb25290
+ br i1 undef, label %bb25292, label %bb25295
+
+bb25292: ; preds = %bb25291
+ br i1 undef, label %bb25294, label %bb25293
+
+bb25293: ; preds = %bb25292
+ br label %bb25294
+
+bb25294: ; preds = %bb25293, %bb25292
+ br label %bb25296
+
+bb25295: ; preds = %bb25291
+ invoke void @quuuux()
+ to label %bb25296 unwind label %bb25298
+
+bb25296: ; preds = %bb25295, %bb25294
+ invoke void @baz()
+ to label %bb25297 unwind label %bb25298
+
+bb25297: ; preds = %bb25296
+ br label %bb25300
+
+bb25298: ; preds = %bb25296, %bb25295, %bb25290, %bb25287
+ %tmp25299 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
+ cleanup
+ br label %bb25360
+
+bb25300: ; preds = %bb25297, %bb25289, %bb25288
+ br i1 undef, label %bb25301, label %bb25302
+
+bb25301: ; preds = %bb25300
+ br label %bb25303
+
+bb25302: ; preds = %bb25300
+ br label %bb25303
+
+bb25303: ; preds = %bb25302, %bb25301
+ br label %bb25286
+
+bb25304: ; preds = %bb25286
+ br label %bb25305
+
+bb25305: ; preds = %bb25331, %bb25304
+ br i1 undef, label %bb25306, label %bb25332
+
+bb25306: ; preds = %bb25305
+ invoke void @quuux()
+ to label %bb25307 unwind label %bb25324
+
+bb25307: ; preds = %bb25306
+ invoke void @quux()
+ to label %bb25308 unwind label %bb25324
+
+bb25308: ; preds = %bb25307
+ br i1 undef, label %bb25309, label %bb25330
+
+bb25309: ; preds = %bb25308
+ br i1 undef, label %bb25310, label %bb25330
+
+bb25310: ; preds = %bb25309
+ br i1 undef, label %bb25311, label %bb25317
+
+bb25311: ; preds = %bb25310
+ br label %bb25312
+
+bb25312: ; preds = %bb25316, %bb25315, %bb25311
+ br i1 undef, label %bb25313, label %bb25317
+
+bb25313: ; preds = %bb25312
+ %tmp25314 = invoke zeroext i1 undef(%0* undef, %0* undef)
+ to label %bb25315 unwind label %bb25324
+
+bb25315: ; preds = %bb25313
+ br i1 %tmp25314, label %bb25316, label %bb25312
+
+bb25316: ; preds = %bb25315
+ br label %bb25312
+
+bb25317: ; preds = %bb25312, %bb25310
+ br i1 undef, label %bb25318, label %bb25326
+
+bb25318: ; preds = %bb25317
+ br i1 undef, label %bb25319, label %bb25326
+
+bb25319: ; preds = %bb25318
+ br i1 undef, label %bb25320, label %bb25323
+
+bb25320: ; preds = %bb25319
+ br i1 undef, label %bb25322, label %bb25321
+
+bb25321: ; preds = %bb25320
+ br label %bb25322
+
+bb25322: ; preds = %bb25321, %bb25320
+ br label %bb25326
+
+bb25323: ; preds = %bb25319
+ invoke void @qux()
+ to label %bb25326 unwind label %bb25324
+
+bb25324: ; preds = %bb25357, %bb25344, %bb25343, %bb25342, %bb25337, %bb25334, %bb25333, %bb25323, %bb25313, %bb25307, %bb25306
+ %tmp25325 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
+ cleanup
+ br label %bb25359
+
+bb25326: ; preds = %bb25323, %bb25322, %bb25318, %bb25317
+ br label %bb25327
+
+bb25327: ; preds = %bb25328, %bb25326
+ br i1 undef, label %bb25328, label %bb25329
+
+bb25328: ; preds = %bb25327
+ br label %bb25327
+
+bb25329: ; preds = %bb25327
+ br label %bb25330
+
+bb25330: ; preds = %bb25329, %bb25309, %bb25308
+ br i1 undef, label %bb25332, label %bb25331
+
+bb25331: ; preds = %bb25330
+ br label %bb25305
+
+bb25332: ; preds = %bb25330, %bb25305
+ br i1 undef, label %bb25333, label %bb25357
+
+bb25333: ; preds = %bb25332
+ invoke void (...)* @printf()
+ to label %bb25334 unwind label %bb25324
+
+bb25334: ; preds = %bb25333
+ invoke void (...)* @printf(i32 undef)
+ to label %bb25335 unwind label %bb25324
+
+bb25335: ; preds = %bb25334
+ br label %bb25336
+
+bb25336: ; preds = %bb25338, %bb25335
+ br i1 undef, label %bb25337, label %bb25339
+
+bb25337: ; preds = %bb25336
+ invoke void (...)* @printf(i32 undef, double undef)
+ to label %bb25338 unwind label %bb25324
+
+bb25338: ; preds = %bb25337
+ br label %bb25336
+
+bb25339: ; preds = %bb25336
+ br label %bb25340
+
+bb25340: ; preds = %bb25341, %bb25339
+ br i1 undef, label %bb25341, label %bb25342
+
+bb25341: ; preds = %bb25340
+ br label %bb25340
+
+bb25342: ; preds = %bb25340
+ invoke void (...)* @printf()
+ to label %bb25343 unwind label %bb25324
+
+bb25343: ; preds = %bb25342
+ invoke void (...)* @printf(double undef, double undef)
+ to label %bb25344 unwind label %bb25324
+
+bb25344: ; preds = %bb25343
+ invoke void @mux()
+ to label %bb25345 unwind label %bb25324
+
+bb25345: ; preds = %bb25344
+ br label %bb25346
+
+bb25346: ; preds = %bb25347, %bb25345
+ br i1 undef, label %bb25347, label %bb25348
+
+bb25347: ; preds = %bb25346
+ br label %bb25346
+
+bb25348: ; preds = %bb25346
+ br label %bb25349
+
+bb25349: ; preds = %bb25350, %bb25348
+ br i1 undef, label %bb25350, label %bb25351
+
+bb25350: ; preds = %bb25349
+ br label %bb25349
+
+bb25351: ; preds = %bb25349
+ invoke void (...)* @printf()
+ to label %bb25352 unwind label %bb25355
+
+bb25352: ; preds = %bb25351
+ invoke void (...)* @printf(double undef)
+ to label %bb25353 unwind label %bb25355
+
+bb25353: ; preds = %bb25352
+ invoke void (...)* @printf()
+ to label %bb25354 unwind label %bb25355
+
+bb25354: ; preds = %bb25353
+ br label %bb25358
+
+bb25355: ; preds = %bb25353, %bb25352, %bb25351
+ %tmp25356 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
+ cleanup
+ br label %bb25359
+
+bb25357: ; preds = %bb25332
+ invoke void (...)* @printf()
+ to label %bb25358 unwind label %bb25324
+
+bb25358: ; preds = %bb25357, %bb25354
+ br label %bb25362
+
+bb25359: ; preds = %bb25355, %bb25324
+ br label %bb25360
+
+bb25360: ; preds = %bb25359, %bb25298
+ br label %bb25361
+
+bb25361: ; preds = %bb25360, %bb25276
+ resume { i8*, i32 } undef
+
+bb25362: ; preds = %bb25358, %bb25270, %bb1
+ ret void
+}
+
+declare void @foo()
+
+declare i32 @__gxx_personality_v0(...)
+
+declare void @bar() uwtable ssp align 2
+
+declare hidden void @baz() uwtable ssp align 2
+
+declare void @printf(...)
+
+declare void @mux() unnamed_addr uwtable ssp align 2
+
+declare hidden void @qux() uwtable ssp align 2
+
+declare void @quux() uwtable ssp
+
+declare void @quuux() uwtable ssp
+
+declare hidden void @quuuux() uwtable ssp align 2
diff --git a/test/CodeGen/X86/lea-2.ll b/test/CodeGen/X86/lea-2.ll
index 21128096e6e75..82cefb728c6e5 100644
--- a/test/CodeGen/X86/lea-2.ll
+++ b/test/CodeGen/X86/lea-2.ll
@@ -7,7 +7,7 @@ define i32 @test1(i32 %A, i32 %B) {
; The above computation of %tmp4 should match a single lea, without using
; actual add instructions.
; CHECK-NOT: add
-; CHECK: lea {{[A-Z]+}}, DWORD PTR [{{[A-Z]+}} + 4*{{[A-Z]+}} - 5]
+; CHECK: lea {{[a-z]+}}, dword ptr [{{[a-z]+}} + 4*{{[a-z]+}} - 5]
ret i32 %tmp4
}
diff --git a/test/CodeGen/X86/lea-recursion.ll b/test/CodeGen/X86/lea-recursion.ll
index 3f32fd27c5c11..9480600312ce2 100644
--- a/test/CodeGen/X86/lea-recursion.ll
+++ b/test/CodeGen/X86/lea-recursion.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86-64 | grep lea | count 12
+; RUN: llc < %s -march=x86-64 | grep lea | count 13
; This testcase was written to demonstrate an instruction-selection problem,
; however it also happens to expose a limitation in the DAGCombiner's
@@ -44,4 +44,3 @@ entry:
store i32 %tmp10.6, i32* getelementptr ([1000 x i32]* @g0, i32 0, i32 7)
ret void
}
-
diff --git a/test/CodeGen/X86/lea.ll b/test/CodeGen/X86/lea.ll
index 542135529f1d0..93cfe4611b44e 100644
--- a/test/CodeGen/X86/lea.ll
+++ b/test/CodeGen/X86/lea.ll
@@ -5,8 +5,8 @@ define i32 @test1(i32 %x) nounwind {
%tmp1 = shl i32 %x, 3
%tmp2 = add i32 %tmp1, 7
ret i32 %tmp2
-; CHECK: test1:
-; CHECK: leal 7(,[[A0:%rdi|%rcx]],8), %eax
+; CHECK-LABEL: test1:
+; CHECK: leal 7(,%r[[A0:di|cx]],8), %eax
}
@@ -27,9 +27,9 @@ bb.nph:
bb2:
ret i32 %x_offs
-; CHECK: test2:
-; CHECK: leal -5([[A0]]), %eax
+; CHECK-LABEL: test2:
+; CHECK: leal -5(%r[[A0:..]]), %eax
; CHECK: andl $-4, %eax
; CHECK: negl %eax
-; CHECK: leal -4([[A0]],%rax), %eax
+; CHECK: leal -4(%r[[A0]],%rax), %eax
}
diff --git a/test/CodeGen/X86/leaf-fp-elim.ll b/test/CodeGen/X86/leaf-fp-elim.ll
index 607dc72e2fa30..1bb3c75191468 100644
--- a/test/CodeGen/X86/leaf-fp-elim.ll
+++ b/test/CodeGen/X86/leaf-fp-elim.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -disable-non-leaf-fp-elim -relocation-model=pic -mtriple=x86_64-apple-darwin | FileCheck %s
+; RUN: llc < %s -relocation-model=pic -mtriple=x86_64-apple-darwin | FileCheck %s
; <rdar://problem/8170192>
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
target triple = "x86_64-apple-darwin11.0"
@@ -6,7 +6,7 @@ target triple = "x86_64-apple-darwin11.0"
@msg = internal global i8* null ; <i8**> [#uses=1]
@.str = private constant [2 x i8] c"x\00", align 1 ; <[2 x i8]*> [#uses=1]
-define void @test(i8* %p) nounwind optsize ssp {
+define void @test(i8* %p) "no-frame-pointer-elim-non-leaf" nounwind optsize ssp {
; No stack frame, please.
; CHECK: _test
diff --git a/test/CodeGen/X86/legalize-shift-64.ll b/test/CodeGen/X86/legalize-shift-64.ll
index 71ef2d3152f8d..64460bb91186c 100644
--- a/test/CodeGen/X86/legalize-shift-64.ll
+++ b/test/CodeGen/X86/legalize-shift-64.ll
@@ -1,12 +1,11 @@
-; RUN: llc -mcpu=generic -march=x86 < %s | FileCheck %s
-
+; RUN: llc -mcpu=generic -mtriple=i686-unknown-unknown < %s | FileCheck %s
define i64 @test1(i32 %xx, i32 %test) nounwind {
%conv = zext i32 %xx to i64
%and = and i32 %test, 7
%sh_prom = zext i32 %and to i64
%shl = shl i64 %conv, %sh_prom
ret i64 %shl
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: shll %cl, %eax
; CHECK: shrl %edx
; CHECK: xorb $31
@@ -18,7 +17,7 @@ define i64 @test2(i64 %xx, i32 %test) nounwind {
%sh_prom = zext i32 %and to i64
%shl = shl i64 %xx, %sh_prom
ret i64 %shl
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK: shll %cl, %esi
; CHECK: shrl %edx
; CHECK: xorb $31
@@ -32,7 +31,7 @@ define i64 @test3(i64 %xx, i32 %test) nounwind {
%sh_prom = zext i32 %and to i64
%shr = lshr i64 %xx, %sh_prom
ret i64 %shr
-; CHECK: test3:
+; CHECK-LABEL: test3:
; CHECK: shrl %cl, %esi
; CHECK: leal (%edx,%edx), %eax
; CHECK: xorb $31, %cl
@@ -46,7 +45,7 @@ define i64 @test4(i64 %xx, i32 %test) nounwind {
%sh_prom = zext i32 %and to i64
%shr = ashr i64 %xx, %sh_prom
ret i64 %shr
-; CHECK: test4:
+; CHECK-LABEL: test4:
; CHECK: shrl %cl, %esi
; CHECK: leal (%edx,%edx), %eax
; CHECK: xorb $31, %cl
@@ -65,3 +64,31 @@ define <2 x i64> @test5(<2 x i64> %A, <2 x i64> %B) {
; CHECK: shl
; CHECK: shldl
}
+
+; PR16108
+define i32 @test6() {
+ %x = alloca i32, align 4
+ %t = alloca i64, align 8
+ store i32 1, i32* %x, align 4
+ store i64 1, i64* %t, align 8 ;; DEAD
+ %load = load i32* %x, align 4
+ %shl = shl i32 %load, 8
+ %add = add i32 %shl, -224
+ %sh_prom = zext i32 %add to i64
+ %shl1 = shl i64 1, %sh_prom
+ %cmp = icmp ne i64 %shl1, 4294967296
+ br i1 %cmp, label %if.then, label %if.end
+
+if.then: ; preds = %entry
+ ret i32 1
+
+if.end: ; preds = %entry
+ ret i32 0
+
+; CHECK-LABEL: test6:
+; CHECK-NOT: andb $31
+; CHECK: sete
+; CHECK: movzbl
+; CHECK: xorl $1
+; CHECK: orl
+}
diff --git a/test/CodeGen/X86/licm-dominance.ll b/test/CodeGen/X86/licm-dominance.ll
index 019f8a32b6c06..7e3c6fdf95147 100644
--- a/test/CodeGen/X86/licm-dominance.ll
+++ b/test/CodeGen/X86/licm-dominance.ll
@@ -2,7 +2,7 @@
; MachineLICM should check dominance before hoisting instructions.
; CHECK: ## in Loop:
-; CHECK-NEXT: xorb %al, %al
+; CHECK-NEXT: xorl %eax, %eax
; CHECK-NEXT: testb %al, %al
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
diff --git a/test/CodeGen/X86/licm-nested.ll b/test/CodeGen/X86/licm-nested.ll
index 66074fb3682c6..083ae0875e39b 100644
--- a/test/CodeGen/X86/licm-nested.ll
+++ b/test/CodeGen/X86/licm-nested.ll
@@ -1,5 +1,5 @@
; REQUIRES: asserts
-; RUN: llc -mtriple=x86_64-apple-darwin -march=x86-64 < %s -o /dev/null -stats -info-output-file - | grep "hoisted out of loops" | grep 3
+; RUN: llc -mtriple=x86_64-apple-darwin -march=x86-64 < %s -o /dev/null -stats -info-output-file - | grep "hoisted out of loops" | grep 4
; MachineLICM should be able to hoist the symbolic addresses out of
; the inner loops.
diff --git a/test/CodeGen/X86/lit.local.cfg b/test/CodeGen/X86/lit.local.cfg
index 9d285bf4e238d..1637fa46536ac 100644
--- a/test/CodeGen/X86/lit.local.cfg
+++ b/test/CodeGen/X86/lit.local.cfg
@@ -1,4 +1,10 @@
-config.suffixes = ['.ll', '.c', '.cpp', '.test']
+# FIXME: For now, override suffixes to exclude any .s tests, because some of the
+# buildbots have a stray misched-copy.s output file lying around that causes
+# failures. See misched-copy.s where we try and clean up that file.
+#
+# It should be possible to remove this override once all the bots have cycled
+# cleanly.
+config.suffixes = ['.ll', '.c', '.cpp', '.test', '.txt']
targets = set(config.root.targets_to_build.split())
if not 'X86' in targets:
diff --git a/test/CodeGen/X86/load-slice.ll b/test/CodeGen/X86/load-slice.ll
new file mode 100644
index 0000000000000..85fd7f03ef620
--- /dev/null
+++ b/test/CodeGen/X86/load-slice.ll
@@ -0,0 +1,139 @@
+; RUN: llc -mtriple x86_64-apple-macosx -mcpu=corei7-avx -combiner-stress-load-slicing < %s -o - | FileCheck %s --check-prefix=STRESS
+; RUN: llc -mtriple x86_64-apple-macosx -mcpu=corei7-avx < %s -o - | FileCheck %s --check-prefix=REGULAR
+;
+; <rdar://problem/14477220>
+
+%class.Complex = type { float, float }
+
+
+; Check that independant slices leads to independant loads then the slices leads to
+; different register file.
+;
+; The layout is:
+; LSB 0 1 2 3 | 4 5 6 7 MSB
+; Low High
+; The base address points to 0 and is 8-bytes aligned.
+; Low slice starts at 0 (base) and is 8-bytes aligned.
+; High slice starts at 4 (base + 4-bytes) and is 4-bytes aligned.
+;
+; STRESS-LABEL: t1:
+; Load out[out_start + 8].real, this is base + 8 * 8 + 0.
+; STRESS: vmovss 64([[BASE:[^(]+]]), [[OUT_Real:%xmm[0-9]+]]
+; Add low slice: out[out_start].real, this is base + 0.
+; STRESS-NEXT: vaddss ([[BASE]]), [[OUT_Real]], [[RES_Real:%xmm[0-9]+]]
+; Load out[out_start + 8].imm, this is base + 8 * 8 + 4.
+; STRESS-NEXT: vmovss 68([[BASE]]), [[OUT_Imm:%xmm[0-9]+]]
+; Add high slice: out[out_start].imm, this is base + 4.
+; STRESS-NEXT: vaddss 4([[BASE]]), [[OUT_Imm]], [[RES_Imm:%xmm[0-9]+]]
+; Swap Imm and Real.
+; STRESS-NEXT: vinsertps $16, [[RES_Imm]], [[RES_Real]], [[RES_Vec:%xmm[0-9]+]]
+; Put the results back into out[out_start].
+; STRESS-NEXT: vmovq [[RES_Vec]], ([[BASE]])
+;
+; Same for REGULAR, we eliminate register bank copy with each slices.
+; REGULAR-LABEL: t1:
+; Load out[out_start + 8].real, this is base + 8 * 8 + 0.
+; REGULAR: vmovss 64([[BASE:[^)]+]]), [[OUT_Real:%xmm[0-9]+]]
+; Add low slice: out[out_start].real, this is base + 0.
+; REGULAR-NEXT: vaddss ([[BASE]]), [[OUT_Real]], [[RES_Real:%xmm[0-9]+]]
+; Load out[out_start + 8].imm, this is base + 8 * 8 + 4.
+; REGULAR-NEXT: vmovss 68([[BASE]]), [[OUT_Imm:%xmm[0-9]+]]
+; Add high slice: out[out_start].imm, this is base + 4.
+; REGULAR-NEXT: vaddss 4([[BASE]]), [[OUT_Imm]], [[RES_Imm:%xmm[0-9]+]]
+; Swap Imm and Real.
+; REGULAR-NEXT: vinsertps $16, [[RES_Imm]], [[RES_Real]], [[RES_Vec:%xmm[0-9]+]]
+; Put the results back into out[out_start].
+; REGULAR-NEXT: vmovq [[RES_Vec]], ([[BASE]])
+define void @t1(%class.Complex* nocapture %out, i64 %out_start) {
+entry:
+ %arrayidx = getelementptr inbounds %class.Complex* %out, i64 %out_start
+ %tmp = bitcast %class.Complex* %arrayidx to i64*
+ %tmp1 = load i64* %tmp, align 8
+ %t0.sroa.0.0.extract.trunc = trunc i64 %tmp1 to i32
+ %tmp2 = bitcast i32 %t0.sroa.0.0.extract.trunc to float
+ %t0.sroa.2.0.extract.shift = lshr i64 %tmp1, 32
+ %t0.sroa.2.0.extract.trunc = trunc i64 %t0.sroa.2.0.extract.shift to i32
+ %tmp3 = bitcast i32 %t0.sroa.2.0.extract.trunc to float
+ %add = add i64 %out_start, 8
+ %arrayidx2 = getelementptr inbounds %class.Complex* %out, i64 %add
+ %i.i = getelementptr inbounds %class.Complex* %arrayidx2, i64 0, i32 0
+ %tmp4 = load float* %i.i, align 4
+ %add.i = fadd float %tmp4, %tmp2
+ %retval.sroa.0.0.vec.insert.i = insertelement <2 x float> undef, float %add.i, i32 0
+ %r.i = getelementptr inbounds %class.Complex* %arrayidx2, i64 0, i32 1
+ %tmp5 = load float* %r.i, align 4
+ %add5.i = fadd float %tmp5, %tmp3
+ %retval.sroa.0.4.vec.insert.i = insertelement <2 x float> %retval.sroa.0.0.vec.insert.i, float %add5.i, i32 1
+ %ref.tmp.sroa.0.0.cast = bitcast %class.Complex* %arrayidx to <2 x float>*
+ store <2 x float> %retval.sroa.0.4.vec.insert.i, <2 x float>* %ref.tmp.sroa.0.0.cast, align 4
+ ret void
+}
+
+; Function Attrs: nounwind
+declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture readonly, i64, i32, i1) #1
+
+; Function Attrs: nounwind
+declare void @llvm.lifetime.start(i64, i8* nocapture)
+
+; Function Attrs: nounwind
+declare void @llvm.lifetime.end(i64, i8* nocapture)
+
+; Check that we do not read outside of the chunk of bits of the original loads.
+;
+; The 64-bits should have been split in one 32-bits and one 16-bits slices.
+; The 16-bits should be zero extended to match the final type.
+;
+; The memory layout is:
+; LSB 0 1 2 3 | 4 5 | 6 7 MSB
+; Low High
+; The base address points to 0 and is 8-bytes aligned.
+; Low slice starts at 0 (base) and is 8-bytes aligned.
+; High slice starts at 6 (base + 6-bytes) and is 2-bytes aligned.
+;
+; STRESS-LABEL: t2:
+; STRESS: movzwl 6([[BASE:[^)]+]]), %eax
+; STRESS-NEXT: addl ([[BASE]]), %eax
+; STRESS-NEXT: ret
+;
+; For the REGULAR heuristic, this is not profitable to slice things that are not
+; next to each other in memory. Here we have a hole with bytes #4-5.
+; REGULAR-LABEL: t2:
+; REGULAR: shrq $48
+define i32 @t2(%class.Complex* nocapture %out, i64 %out_start) {
+ %arrayidx = getelementptr inbounds %class.Complex* %out, i64 %out_start
+ %bitcast = bitcast %class.Complex* %arrayidx to i64*
+ %chunk64 = load i64* %bitcast, align 8
+ %slice32_low = trunc i64 %chunk64 to i32
+ %shift48 = lshr i64 %chunk64, 48
+ %slice32_high = trunc i64 %shift48 to i32
+ %res = add i32 %slice32_high, %slice32_low
+ ret i32 %res
+}
+
+; Check that we do not optimize overlapping slices.
+;
+; The 64-bits should NOT have been split in as slices are overlapping.
+; First slice uses bytes numbered 0 to 3.
+; Second slice uses bytes numbered 6 and 7.
+; Third slice uses bytes numbered 4 to 7.
+;
+; STRESS-LABEL: t3:
+; STRESS: shrq $48
+; STRESS: shrq $32
+;
+; REGULAR-LABEL: t3:
+; REGULAR: shrq $48
+; REGULAR: shrq $32
+define i32 @t3(%class.Complex* nocapture %out, i64 %out_start) {
+ %arrayidx = getelementptr inbounds %class.Complex* %out, i64 %out_start
+ %bitcast = bitcast %class.Complex* %arrayidx to i64*
+ %chunk64 = load i64* %bitcast, align 8
+ %slice32_low = trunc i64 %chunk64 to i32
+ %shift48 = lshr i64 %chunk64, 48
+ %slice32_high = trunc i64 %shift48 to i32
+ %shift32 = lshr i64 %chunk64, 32
+ %slice32_lowhigh = trunc i64 %shift32 to i32
+ %tmpres = add i32 %slice32_high, %slice32_low
+ %res = add i32 %slice32_lowhigh, %tmpres
+ ret i32 %res
+}
diff --git a/test/CodeGen/X86/lock-inst-encoding.ll b/test/CodeGen/X86/lock-inst-encoding.ll
index 9765faeecadc1..5ce771f14ab26 100644
--- a/test/CodeGen/X86/lock-inst-encoding.ll
+++ b/test/CodeGen/X86/lock-inst-encoding.ll
@@ -3,7 +3,7 @@
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
target triple = "x86_64-apple-darwin10.0.0"
-; CHECK: f1:
+; CHECK-LABEL: f1:
; CHECK: addq %{{.*}}, ({{.*}}){{.*}}encoding: [0xf0,0x48,0x01,0x37]
; CHECK: ret
define void @f1(i64* %a, i64 %b) nounwind {
@@ -11,7 +11,7 @@ define void @f1(i64* %a, i64 %b) nounwind {
ret void
}
-; CHECK: f2:
+; CHECK-LABEL: f2:
; CHECK: subq %{{.*}}, ({{.*}}){{.*}}encoding: [0xf0,0x48,0x29,0x37]
; CHECK: ret
define void @f2(i64* %a, i64 %b) nounwind {
@@ -19,7 +19,7 @@ define void @f2(i64* %a, i64 %b) nounwind {
ret void
}
-; CHECK: f3:
+; CHECK-LABEL: f3:
; CHECK: andq %{{.*}}, ({{.*}}){{.*}}encoding: [0xf0,0x48,0x21,0x37]
; CHECK: ret
define void @f3(i64* %a, i64 %b) nounwind {
@@ -27,7 +27,7 @@ define void @f3(i64* %a, i64 %b) nounwind {
ret void
}
-; CHECK: f4:
+; CHECK-LABEL: f4:
; CHECK: orq %{{.*}}, ({{.*}}){{.*}}encoding: [0xf0,0x48,0x09,0x37]
; CHECK: ret
define void @f4(i64* %a, i64 %b) nounwind {
@@ -35,7 +35,7 @@ define void @f4(i64* %a, i64 %b) nounwind {
ret void
}
-; CHECK: f5:
+; CHECK-LABEL: f5:
; CHECK: xorq %{{.*}}, ({{.*}}){{.*}}encoding: [0xf0,0x48,0x31,0x37]
; CHECK: ret
define void @f5(i64* %a, i64 %b) nounwind {
diff --git a/test/CodeGen/X86/long-extend.ll b/test/CodeGen/X86/long-extend.ll
new file mode 100644
index 0000000000000..5bbd41dad9d26
--- /dev/null
+++ b/test/CodeGen/X86/long-extend.ll
@@ -0,0 +1,18 @@
+; RUN: llc < %s -mcpu=core-avx-i -mtriple=x86_64-linux -asm-verbose=0| FileCheck %s
+define void @test_long_extend(<16 x i8> %a, <16 x i32>* %p) nounwind {
+; CHECK-LABEL: test_long_extend
+; CHECK: vpunpcklbw %xmm1, %xmm0, [[REG1:%xmm[0-9]+]]
+; CHECK: vpunpckhwd %xmm1, [[REG1]], [[REG2:%xmm[0-9]+]]
+; CHECK: vpunpcklwd %xmm1, [[REG1]], %x[[REG3:mm[0-9]+]]
+; CHECK: vinsertf128 $1, [[REG2]], %y[[REG3]], [[REG_result0:%ymm[0-9]+]]
+; CHECK: vpunpckhbw %xmm1, %xmm0, [[REG4:%xmm[0-9]+]]
+; CHECK: vpunpckhwd %xmm1, [[REG4]], [[REG5:%xmm[0-9]+]]
+; CHECK: vpunpcklwd %xmm1, [[REG4]], %x[[REG6:mm[0-9]+]]
+; CHECK: vinsertf128 $1, [[REG5]], %y[[REG6]], [[REG_result1:%ymm[0-9]+]]
+; CHECK: vmovaps [[REG_result1]], 32(%rdi)
+; CHECK: vmovaps [[REG_result0]], (%rdi)
+
+ %tmp = zext <16 x i8> %a to <16 x i32>
+ store <16 x i32> %tmp, <16 x i32>*%p
+ ret void
+}
diff --git a/test/CodeGen/X86/longlong-deadload.ll b/test/CodeGen/X86/longlong-deadload.ll
index db91961e04103..73e10127c065a 100644
--- a/test/CodeGen/X86/longlong-deadload.ll
+++ b/test/CodeGen/X86/longlong-deadload.ll
@@ -2,7 +2,7 @@
; This should not load or store the top part of *P.
define void @test(i64* %P) nounwind {
-; CHECK: test:
+; CHECK-LABEL: test:
; CHECK: movl 4(%esp), %[[REGISTER:.*]]
; CHECK-NOT: 4(%[[REGISTER]])
; CHECK: ret
diff --git a/test/CodeGen/X86/loop-blocks.ll b/test/CodeGen/X86/loop-blocks.ll
index 4bd162b452944..a81ceb902ab4e 100644
--- a/test/CodeGen/X86/loop-blocks.ll
+++ b/test/CodeGen/X86/loop-blocks.ll
@@ -6,7 +6,7 @@
; CodeGen should insert a branch into the middle of the loop in
; order to avoid a branch within the loop.
-; CHECK: simple:
+; CHECK-LABEL: simple:
; CHECK: jmp .LBB0_1
; CHECK-NEXT: align
; CHECK-NEXT: .LBB0_2:
@@ -36,7 +36,7 @@ done:
; CodeGen should move block_a to the top of the loop so that it
; falls through into the loop, avoiding a branch within the loop.
-; CHECK: slightly_more_involved:
+; CHECK-LABEL: slightly_more_involved:
; CHECK: jmp .LBB1_1
; CHECK-NEXT: align
; CHECK-NEXT: .LBB1_4:
@@ -72,7 +72,7 @@ exit:
; fallthrough edges which should be preserved.
; "callq block_a_merge_func" is tail duped.
-; CHECK: yet_more_involved:
+; CHECK-LABEL: yet_more_involved:
; CHECK: jmp .LBB2_1
; CHECK-NEXT: align
; CHECK-NEXT: .LBB2_5:
@@ -132,7 +132,7 @@ exit:
; conveniently fit anywhere so that they are at least contiguous with the
; loop.
-; CHECK: cfg_islands:
+; CHECK-LABEL: cfg_islands:
; CHECK: jmp .LBB3_1
; CHECK-NEXT: align
; CHECK-NEXT: .LBB3_7:
diff --git a/test/CodeGen/X86/lsr-interesting-step.ll b/test/CodeGen/X86/lsr-interesting-step.ll
index d1de0510a0462..d4a7ac7da12d7 100644
--- a/test/CodeGen/X86/lsr-interesting-step.ll
+++ b/test/CodeGen/X86/lsr-interesting-step.ll
@@ -5,7 +5,7 @@
; CHECK: BB0_3:
; CHECK-NEXT: movb $0, flags(%rdx)
-; CHECK-NEXT: addq %rcx, %rdx
+; CHECK-NEXT: addq %rax, %rdx
; CHECK-NEXT: cmpq $8192, %rdx
; CHECK-NEXT: jl
diff --git a/test/CodeGen/X86/lsr-loop-exit-cond.ll b/test/CodeGen/X86/lsr-loop-exit-cond.ll
index 8a81f70a8a2a0..e7d74a9240754 100644
--- a/test/CodeGen/X86/lsr-loop-exit-cond.ll
+++ b/test/CodeGen/X86/lsr-loop-exit-cond.ll
@@ -1,13 +1,13 @@
; RUN: llc -mtriple=x86_64-darwin -mcpu=generic < %s | FileCheck %s
; RUN: llc -mtriple=x86_64-darwin -mcpu=atom < %s | FileCheck -check-prefix=ATOM %s
-; CHECK: t:
-; CHECK: decq
-; CHECK-NEXT: movl (%r9,%rax,4), %eax
+; CHECK-LABEL: t:
+; CHECK: movl (%r9,%rax,4), %e{{..}}
+; CHECK-NEXT: decq
; CHECK-NEXT: jne
-; ATOM: t:
-; ATOM: movl (%r9,%rax,4), %eax
+; ATOM-LABEL: t:
+; ATOM: movl (%r9,%r{{.+}},4), %e{{..}}
; ATOM-NEXT: decq
; ATOM-NEXT: jne
@@ -148,14 +148,14 @@ bb2: ; preds = %bb
; is equal to the stride.
; It must not fold (cmp (add iv, 1), 1) --> (cmp iv, 0).
-; CHECK: f:
+; CHECK-LABEL: f:
; CHECK: %for.body
; CHECK: incl [[IV:%e..]]
; CHECK: cmpl $1, [[IV]]
; CHECK: jne
; CHECK: ret
-; ATOM: f:
+; ATOM-LABEL: f:
; ATOM: %for.body
; ATOM: incl [[IV:%e..]]
; ATOM: cmpl $1, [[IV]]
@@ -190,4 +190,3 @@ for.end: ; preds = %for.body, %entry
%bi.0.lcssa = phi i32 [ 0, %entry ], [ %i.addr.0.bi.0, %for.body ]
ret i32 %bi.0.lcssa
}
-
diff --git a/test/CodeGen/X86/lsr-reuse.ll b/test/CodeGen/X86/lsr-reuse.ll
index 1311a73fd32c7..40c041ab6b09b 100644
--- a/test/CodeGen/X86/lsr-reuse.ll
+++ b/test/CodeGen/X86/lsr-reuse.ll
@@ -8,7 +8,7 @@ target triple = "x86_64-unknown-unknown"
; Instruction selection should use the FLAGS value from the dec for
; the branch. Scheduling should push the adds upwards.
-; CHECK: full_me_0:
+; CHECK-LABEL: full_me_0:
; CHECK: movsd (%rsi), %xmm0
; CHECK: mulsd (%rdx), %xmm0
; CHECK: movsd %xmm0, (%rdi)
@@ -50,7 +50,7 @@ return:
; would be better on x86-64, since the start value would be 0 instead of
; 2048.
-; CHECK: mostly_full_me_0:
+; CHECK-LABEL: mostly_full_me_0:
; CHECK: movsd -2048(%rsi), %xmm0
; CHECK: mulsd -2048(%rdx), %xmm0
; CHECK: movsd %xmm0, -2048(%rdi)
@@ -96,7 +96,7 @@ return:
; A minor variation on mostly_full_me_0.
; Prefer to start the indvar at 0.
-; CHECK: mostly_full_me_1:
+; CHECK-LABEL: mostly_full_me_1:
; CHECK: movsd (%rsi), %xmm0
; CHECK: mulsd (%rdx), %xmm0
; CHECK: movsd %xmm0, (%rdi)
@@ -141,7 +141,7 @@ return:
; A slightly less minor variation on mostly_full_me_0.
-; CHECK: mostly_full_me_2:
+; CHECK-LABEL: mostly_full_me_2:
; CHECK: movsd (%rsi), %xmm0
; CHECK: mulsd (%rdx), %xmm0
; CHECK: movsd %xmm0, (%rdi)
@@ -190,7 +190,7 @@ return:
; cases away, but it's useful here to verify that LSR's register pressure
; heuristics are working as expected.
-; CHECK: count_me_0:
+; CHECK-LABEL: count_me_0:
; CHECK: movsd (%rsi,%rax,8), %xmm0
; CHECK: mulsd (%rdx,%rax,8), %xmm0
; CHECK: movsd %xmm0, (%rdi,%rax,8)
@@ -225,7 +225,7 @@ return:
; would not reduce register pressure.
; (though it would reduce register pressure inside the loop...)
-; CHECK: count_me_1:
+; CHECK-LABEL: count_me_1:
; CHECK: movsd (%rsi,%rax,8), %xmm0
; CHECK: mulsd (%rdx,%rax,8), %xmm0
; CHECK: movsd %xmm0, (%rdi,%rax,8)
@@ -259,7 +259,7 @@ return:
; Full strength reduction doesn't save any registers here because the
; loop tripcount is a constant.
-; CHECK: count_me_2:
+; CHECK-LABEL: count_me_2:
; CHECK: movl $10, %eax
; CHECK: align
; CHECK: BB6_1:
@@ -305,7 +305,7 @@ return:
; This should be fully strength-reduced to reduce register pressure.
-; CHECK: full_me_1:
+; CHECK-LABEL: full_me_1:
; CHECK: align
; CHECK: BB7_1:
; CHECK: movsd (%rdi), %xmm0
@@ -353,7 +353,7 @@ return:
; This is a variation on full_me_0 in which the 0,+,1 induction variable
; has a non-address use, pinning that value in a register.
-; CHECK: count_me_3:
+; CHECK-LABEL: count_me_3:
; CHECK: call
; CHECK: movsd (%r{{[^,]*}},%r{{[^,]*}},8), %xmm0
; CHECK: mulsd (%r{{[^,]*}},%r{{[^,]*}},8), %xmm0
@@ -390,7 +390,7 @@ return:
; LSR should use only one indvar for the inner loop.
; rdar://7657764
-; CHECK: asd:
+; CHECK-LABEL: asd:
; CHECK: BB9_4:
; CHECK-NEXT: addl (%r{{[^,]*}},%rdi,4), %e
; CHECK-NEXT: incq %rdi
@@ -447,7 +447,7 @@ bb5: ; preds = %bb3, %entry
; we don't want to leave extra induction variables around, or use an
; lea to compute an exit condition inside the loop:
-; CHECK: test:
+; CHECK-LABEL: test:
; CHECK: BB10_4:
; CHECK-NEXT: movaps %xmm{{.*}}, %xmm{{.*}}
diff --git a/test/CodeGen/X86/lsr-static-addr.ll b/test/CodeGen/X86/lsr-static-addr.ll
index b2aea90500c42..1bac790f57f94 100644
--- a/test/CodeGen/X86/lsr-static-addr.ll
+++ b/test/CodeGen/X86/lsr-static-addr.ll
@@ -10,8 +10,9 @@
; CHECK-NEXT: movsd
; CHECK-NEXT: incq %rax
-; ATOM: movsd .LCPI0_0(%rip), %xmm0
+
; ATOM: xorl %eax, %eax
+; ATOM: movsd .LCPI0_0(%rip), %xmm0
; ATOM: align
; ATOM-NEXT: BB0_2:
; ATOM-NEXT: movsd A(,%rax,8)
diff --git a/test/CodeGen/X86/lzcnt.ll b/test/CodeGen/X86/lzcnt.ll
index 2faa24a9a5441..ff83f8540946e 100644
--- a/test/CodeGen/X86/lzcnt.ll
+++ b/test/CodeGen/X86/lzcnt.ll
@@ -8,55 +8,55 @@ declare i64 @llvm.ctlz.i64(i64, i1) nounwind readnone
define i8 @t1(i8 %x) nounwind {
%tmp = tail call i8 @llvm.ctlz.i8( i8 %x, i1 false )
ret i8 %tmp
-; CHECK: t1:
+; CHECK-LABEL: t1:
; CHECK: lzcntl
}
define i16 @t2(i16 %x) nounwind {
%tmp = tail call i16 @llvm.ctlz.i16( i16 %x, i1 false )
ret i16 %tmp
-; CHECK: t2:
+; CHECK-LABEL: t2:
; CHECK: lzcntw
}
define i32 @t3(i32 %x) nounwind {
%tmp = tail call i32 @llvm.ctlz.i32( i32 %x, i1 false )
ret i32 %tmp
-; CHECK: t3:
+; CHECK-LABEL: t3:
; CHECK: lzcntl
}
define i64 @t4(i64 %x) nounwind {
%tmp = tail call i64 @llvm.ctlz.i64( i64 %x, i1 false )
ret i64 %tmp
-; CHECK: t4:
+; CHECK-LABEL: t4:
; CHECK: lzcntq
}
define i8 @t5(i8 %x) nounwind {
%tmp = tail call i8 @llvm.ctlz.i8( i8 %x, i1 true )
ret i8 %tmp
-; CHECK: t5:
+; CHECK-LABEL: t5:
; CHECK: lzcntl
}
define i16 @t6(i16 %x) nounwind {
%tmp = tail call i16 @llvm.ctlz.i16( i16 %x, i1 true )
ret i16 %tmp
-; CHECK: t6:
+; CHECK-LABEL: t6:
; CHECK: lzcntw
}
define i32 @t7(i32 %x) nounwind {
%tmp = tail call i32 @llvm.ctlz.i32( i32 %x, i1 true )
ret i32 %tmp
-; CHECK: t7:
+; CHECK-LABEL: t7:
; CHECK: lzcntl
}
define i64 @t8(i64 %x) nounwind {
%tmp = tail call i64 @llvm.ctlz.i64( i64 %x, i1 true )
ret i64 %tmp
-; CHECK: t8:
+; CHECK-LABEL: t8:
; CHECK: lzcntq
}
diff --git a/test/CodeGen/X86/machine-cp.ll b/test/CodeGen/X86/machine-cp.ll
index 8e97b991d076c..f04e111714ae9 100644
--- a/test/CodeGen/X86/machine-cp.ll
+++ b/test/CodeGen/X86/machine-cp.ll
@@ -4,7 +4,7 @@
; rdar://10640363
define i32 @t1(i32 %a, i32 %b) nounwind {
entry:
-; CHECK: t1:
+; CHECK-LABEL: t1:
; CHECK: je [[LABEL:.*BB.*]]
%cmp1 = icmp eq i32 %b, 0
br i1 %cmp1, label %while.end, label %while.body
@@ -29,7 +29,7 @@ while.end: ; preds = %while.body, %entry
; rdar://10428165
define <8 x i16> @t2(<8 x i16> %T0, <8 x i16> %T1) nounwind readnone {
entry:
-; CHECK: t2:
+; CHECK-LABEL: t2:
; CHECK-NOT: movdqa
%tmp8 = shufflevector <8 x i16> %T0, <8 x i16> %T1, <8 x i32> < i32 undef, i32 undef, i32 7, i32 2, i32 8, i32 undef, i32 undef , i32 undef >
ret <8 x i16> %tmp8
diff --git a/test/CodeGen/X86/machine-cse.ll b/test/CodeGen/X86/machine-cse.ll
index d171fd5f1d9fa..409147b1d1f10 100644
--- a/test/CodeGen/X86/machine-cse.ll
+++ b/test/CodeGen/X86/machine-cse.ll
@@ -8,7 +8,7 @@
define fastcc i8* @t(i32 %base) nounwind {
entry:
-; CHECK: t:
+; CHECK-LABEL: t:
; CHECK: leaq (%rax,%rax,4)
%0 = zext i32 %base to i64
%1 = getelementptr inbounds %struct.s2* null, i64 %0
@@ -43,7 +43,7 @@ declare fastcc i8* @foo(%struct.s2*) nounwind
declare void @printf(...) nounwind
define void @commute(i32 %test_case, i32 %scale) nounwind ssp {
-; CHECK: commute:
+; CHECK-LABEL: commute:
entry:
switch i32 %test_case, label %sw.bb307 [
i32 1, label %sw.bb
@@ -52,13 +52,14 @@ entry:
]
sw.bb: ; preds = %entry, %entry, %entry
+; CHECK: %sw.bb
+; CHECK: imull
%mul = mul nsw i32 %test_case, 3
%mul20 = mul nsw i32 %mul, %scale
br i1 undef, label %if.end34, label %sw.bb307
if.end34: ; preds = %sw.bb
; CHECK: %if.end34
-; CHECK: imull
; CHECK: leal
; CHECK-NOT: imull
tail call void (...)* @printf(i32 %test_case, i32 %mul20) nounwind
@@ -82,7 +83,7 @@ sw.bb307: ; preds = %sw.bb, %entry
; rdar://10660865
define i32 @cross_mbb_phys_cse(i32 %a, i32 %b) nounwind ssp {
entry:
-; CHECK: cross_mbb_phys_cse:
+; CHECK-LABEL: cross_mbb_phys_cse:
; CHECK: cmpl
; CHECK: ja
%cmp = icmp ugt i32 %a, %b
@@ -152,7 +153,7 @@ a:
b:
ret i32 0
-; CHECK: t2:
+; CHECK-LABEL: t2:
; CHECK: t2_global@GOTPCREL(%rip)
; CHECK-NOT: t2_global@GOTPCREL(%rip)
}
diff --git a/test/CodeGen/X86/masked-iv-safe.ll b/test/CodeGen/X86/masked-iv-safe.ll
index a7b036e9b6588..4a4d178f6e418 100644
--- a/test/CodeGen/X86/masked-iv-safe.ll
+++ b/test/CodeGen/X86/masked-iv-safe.ll
@@ -1,16 +1,13 @@
-; RUN: llc < %s -mcpu=generic -march=x86-64 > %t
-; RUN: not grep and %t
-; RUN: not grep movz %t
-; RUN: not grep sar %t
-; RUN: not grep shl %t
-; RUN: grep add %t | count 1
-; RUN: grep inc %t | count 4
-; RUN: grep dec %t | count 2
-; RUN: grep lea %t | count 3
+; RUN: llc < %s -mcpu=generic -march=x86-64 | FileCheck %s
; Optimize away zext-inreg and sext-inreg on the loop induction
; variable using trip-count information.
+; CHECK-LABEL: count_up
+; CHECK-NOT: {{and|movz|sar|shl}}
+; CHECK: inc
+; CHECK-NOT: {{and|movz|sar|shl}}
+; CHECK: jne
define void @count_up(double* %d, i64 %n) nounwind {
entry:
br label %loop
@@ -39,6 +36,11 @@ return:
ret void
}
+; CHECK-LABEL: count_down
+; CHECK-NOT: {{and|movz|sar|shl}}
+; CHECK: addq
+; CHECK-NOT: {{and|movz|sar|shl}}
+; CHECK: jne
define void @count_down(double* %d, i64 %n) nounwind {
entry:
br label %loop
@@ -67,6 +69,11 @@ return:
ret void
}
+; CHECK-LABEL: count_up_signed
+; CHECK-NOT: {{and|movz|sar|shl}}
+; CHECK: inc
+; CHECK-NOT: {{and|movz|sar|shl}}
+; CHECK: jne
define void @count_up_signed(double* %d, i64 %n) nounwind {
entry:
br label %loop
@@ -97,6 +104,11 @@ return:
ret void
}
+; CHECK-LABEL: count_down_signed
+; CHECK-NOT: {{and|movz|sar|shl}}
+; CHECK: addq
+; CHECK-NOT: {{and|movz|sar|shl}}
+; CHECK: jne
define void @count_down_signed(double* %d, i64 %n) nounwind {
entry:
br label %loop
@@ -127,6 +139,11 @@ return:
ret void
}
+; CHECK-LABEL: another_count_up
+; CHECK-NOT: {{and|movz|sar|shl}}
+; CHECK: addq
+; CHECK-NOT: {{and|movz|sar|shl}}
+; CHECK: jne
define void @another_count_up(double* %d, i64 %n) nounwind {
entry:
br label %loop
@@ -155,6 +172,11 @@ return:
ret void
}
+; CHECK-LABEL: another_count_down
+; CHECK-NOT: {{and|movz|sar|shl}}
+; CHECK: decq
+; CHECK-NOT: {{and|movz|sar|shl}}
+; CHECK: jne
define void @another_count_down(double* %d, i64 %n) nounwind {
entry:
br label %loop
@@ -183,6 +205,11 @@ return:
ret void
}
+; CHECK-LABEL: another_count_up_signed
+; CHECK-NOT: {{and|movz|sar|shl}}
+; CHECK: addq
+; CHECK-NOT: {{and|movz|sar|shl}}
+; CHECK: jne
define void @another_count_up_signed(double* %d, i64 %n) nounwind {
entry:
br label %loop
@@ -213,6 +240,11 @@ return:
ret void
}
+; CHECK-LABEL: another_count_down_signed
+; CHECK-NOT: {{and|movz|sar|shl}}
+; CHECK: decq
+; CHECK-NOT: {{and|movz|sar|shl}}
+; CHECK: jne
define void @another_count_down_signed(double* %d, i64 %n) nounwind {
entry:
br label %loop
diff --git a/test/CodeGen/X86/maskmovdqu.ll b/test/CodeGen/X86/maskmovdqu.ll
index 7796f0e9a19e2..0b3334d19f89a 100644
--- a/test/CodeGen/X86/maskmovdqu.ll
+++ b/test/CodeGen/X86/maskmovdqu.ll
@@ -1,5 +1,7 @@
-; RUN: llc < %s -march=x86 -mattr=+sse2 | grep -i EDI
-; RUN: llc < %s -march=x86-64 -mattr=+sse2 | grep -i RDI
+; RUN: llc < %s -march=x86 -mattr=+sse2,-avx | grep -i EDI
+; RUN: llc < %s -march=x86-64 -mattr=+sse2,-avx | grep -i RDI
+; RUN: llc < %s -march=x86 -mattr=+avx | grep -i EDI
+; RUN: llc < %s -march=x86-64 -mattr=+avx | grep -i RDI
; rdar://6573467
define void @test(<16 x i8> %a, <16 x i8> %b, i32 %dummy, i8* %c) nounwind {
diff --git a/test/CodeGen/X86/mcinst-avx-lowering.ll b/test/CodeGen/X86/mcinst-avx-lowering.ll
index 41f96e8856c98..db72e0871c8e2 100644
--- a/test/CodeGen/X86/mcinst-avx-lowering.ll
+++ b/test/CodeGen/X86/mcinst-avx-lowering.ll
@@ -4,7 +4,7 @@ define i64 @t1(double %d_ivar) nounwind uwtable ssp {
entry:
; CHECK: t1
%0 = bitcast double %d_ivar to i64
-; CHECK: vmovd
+; CHECK: vmovq
; CHECK: encoding: [0xc4,0xe1,0xf9,0x7e,0xc0]
ret i64 %0
}
@@ -13,7 +13,7 @@ define double @t2(i64 %d_ivar) nounwind uwtable ssp {
entry:
; CHECK: t2
%0 = bitcast i64 %d_ivar to double
-; CHECK: vmovd
+; CHECK: vmovq
; CHECK: encoding: [0xc4,0xe1,0xf9,0x6e,0xc7]
ret double %0
}
diff --git a/test/CodeGen/X86/mcinst-lowering.ll b/test/CodeGen/X86/mcinst-lowering.ll
index 1ef5a971bab3a..a82cfc431ba4c 100644
--- a/test/CodeGen/X86/mcinst-lowering.ll
+++ b/test/CodeGen/X86/mcinst-lowering.ll
@@ -24,3 +24,21 @@ if.end: ; preds = %entry
return: ; preds = %entry
ret i32 0
}
+
+define i32 @f1() nounwind {
+ %ax = tail call i16 asm sideeffect "", "={ax},~{dirflag},~{fpsr},~{flags}"()
+ %conv = sext i16 %ax to i32
+ ret i32 %conv
+
+; CHECK-LABEL: f1:
+; CHECK: cwtl ## encoding: [0x98]
+}
+
+define i64 @f2() nounwind {
+ %eax = tail call i32 asm sideeffect "", "={ax},~{dirflag},~{fpsr},~{flags}"()
+ %conv = sext i32 %eax to i64
+ ret i64 %conv
+
+; CHECK-LABEL: f2:
+; CHECK: cltq ## encoding: [0x48,0x98]
+}
diff --git a/test/CodeGen/X86/memcmp.ll b/test/CodeGen/X86/memcmp.ll
index 723d1d89427ee..cb0797d3eb33e 100644
--- a/test/CodeGen/X86/memcmp.ll
+++ b/test/CodeGen/X86/memcmp.ll
@@ -21,10 +21,10 @@ bb: ; preds = %entry
return: ; preds = %entry
ret void
-; CHECK: memcmp2:
+; CHECK-LABEL: memcmp2:
; CHECK: movw ([[A0:%rdi|%rcx]]), %ax
; CHECK: cmpw ([[A1:%rsi|%rdx]]), %ax
-; NOBUILTIN: memcmp2:
+; NOBUILTIN-LABEL: memcmp2:
; NOBUILTIN: callq
}
@@ -40,7 +40,7 @@ bb: ; preds = %entry
return: ; preds = %entry
ret void
-; CHECK: memcmp2a:
+; CHECK-LABEL: memcmp2a:
; CHECK: cmpw $28527, ([[A0]])
}
@@ -57,7 +57,7 @@ bb: ; preds = %entry
return: ; preds = %entry
ret void
-; CHECK: memcmp4:
+; CHECK-LABEL: memcmp4:
; CHECK: movl ([[A0]]), %eax
; CHECK: cmpl ([[A1]]), %eax
}
@@ -74,7 +74,7 @@ bb: ; preds = %entry
return: ; preds = %entry
ret void
-; CHECK: memcmp4a:
+; CHECK-LABEL: memcmp4a:
; CHECK: cmpl $1869573999, ([[A0]])
}
@@ -90,7 +90,7 @@ bb: ; preds = %entry
return: ; preds = %entry
ret void
-; CHECK: memcmp8:
+; CHECK-LABEL: memcmp8:
; CHECK: movq ([[A0]]), %rax
; CHECK: cmpq ([[A1]]), %rax
}
@@ -107,7 +107,7 @@ bb: ; preds = %entry
return: ; preds = %entry
ret void
-; CHECK: memcmp8a:
+; CHECK-LABEL: memcmp8a:
; CHECK: movabsq $8029759185026510694, %rax
; CHECK: cmpq %rax, ([[A0]])
}
diff --git a/test/CodeGen/X86/memcpy-2.ll b/test/CodeGen/X86/memcpy-2.ll
index 630c0ed1a33c3..6ae7807810e90 100644
--- a/test/CodeGen/X86/memcpy-2.ll
+++ b/test/CodeGen/X86/memcpy-2.ll
@@ -9,28 +9,28 @@
define void @t1(i32 %argc, i8** %argv) nounwind {
entry:
-; SSE2-Darwin: t1:
+; SSE2-Darwin-LABEL: t1:
; SSE2-Darwin: movsd _.str+16, %xmm0
; SSE2-Darwin: movsd %xmm0, 16(%esp)
; SSE2-Darwin: movaps _.str, %xmm0
; SSE2-Darwin: movaps %xmm0
; SSE2-Darwin: movb $0, 24(%esp)
-; SSE2-Mingw32: t1:
+; SSE2-Mingw32-LABEL: t1:
; SSE2-Mingw32: movsd _.str+16, %xmm0
; SSE2-Mingw32: movsd %xmm0, 16(%esp)
; SSE2-Mingw32: movaps _.str, %xmm0
; SSE2-Mingw32: movups %xmm0
; SSE2-Mingw32: movb $0, 24(%esp)
-; SSE1: t1:
+; SSE1-LABEL: t1:
; SSE1: movaps _.str, %xmm0
; SSE1: movaps %xmm0
; SSE1: movb $0, 24(%esp)
; SSE1: movl $0, 20(%esp)
; SSE1: movl $0, 16(%esp)
-; NOSSE: t1:
+; NOSSE-LABEL: t1:
; NOSSE: movb $0
; NOSSE: movl $0
; NOSSE: movl $0
@@ -39,7 +39,7 @@ entry:
; NOSSE: movl $101
; NOSSE: movl $1734438249
-; X86-64: t1:
+; X86-64-LABEL: t1:
; X86-64: movaps _.str(%rip), %xmm0
; X86-64: movaps %xmm0
; X86-64: movb $0
@@ -55,19 +55,19 @@ entry:
define void @t2(%struct.s0* nocapture %a, %struct.s0* nocapture %b) nounwind ssp {
entry:
-; SSE2-Darwin: t2:
-; SSE2-Darwin: movaps (%eax), %xmm0
+; SSE2-Darwin-LABEL: t2:
+; SSE2-Darwin: movaps (%ecx), %xmm0
; SSE2-Darwin: movaps %xmm0, (%eax)
-; SSE2-Mingw32: t2:
-; SSE2-Mingw32: movaps (%eax), %xmm0
+; SSE2-Mingw32-LABEL: t2:
+; SSE2-Mingw32: movaps (%ecx), %xmm0
; SSE2-Mingw32: movaps %xmm0, (%eax)
-; SSE1: t2:
-; SSE1: movaps (%eax), %xmm0
+; SSE1-LABEL: t2:
+; SSE1: movaps (%ecx), %xmm0
; SSE1: movaps %xmm0, (%eax)
-; NOSSE: t2:
+; NOSSE-LABEL: t2:
; NOSSE: movl
; NOSSE: movl
; NOSSE: movl
@@ -79,7 +79,7 @@ entry:
; NOSSE: movl
; NOSSE: movl
-; X86-64: t2:
+; X86-64-LABEL: t2:
; X86-64: movaps (%rsi), %xmm0
; X86-64: movaps %xmm0, (%rdi)
%tmp2 = bitcast %struct.s0* %a to i8* ; <i8*> [#uses=1]
@@ -90,19 +90,19 @@ entry:
define void @t3(%struct.s0* nocapture %a, %struct.s0* nocapture %b) nounwind ssp {
entry:
-; SSE2-Darwin: t3:
-; SSE2-Darwin: movsd (%eax), %xmm0
-; SSE2-Darwin: movsd 8(%eax), %xmm1
+; SSE2-Darwin-LABEL: t3:
+; SSE2-Darwin: movsd (%ecx), %xmm0
+; SSE2-Darwin: movsd 8(%ecx), %xmm1
; SSE2-Darwin: movsd %xmm1, 8(%eax)
; SSE2-Darwin: movsd %xmm0, (%eax)
-; SSE2-Mingw32: t3:
-; SSE2-Mingw32: movsd (%eax), %xmm0
-; SSE2-Mingw32: movsd 8(%eax), %xmm1
+; SSE2-Mingw32-LABEL: t3:
+; SSE2-Mingw32: movsd (%ecx), %xmm0
+; SSE2-Mingw32: movsd 8(%ecx), %xmm1
; SSE2-Mingw32: movsd %xmm1, 8(%eax)
; SSE2-Mingw32: movsd %xmm0, (%eax)
-; SSE1: t3:
+; SSE1-LABEL: t3:
; SSE1: movl
; SSE1: movl
; SSE1: movl
@@ -114,7 +114,7 @@ entry:
; SSE1: movl
; SSE1: movl
-; NOSSE: t3:
+; NOSSE-LABEL: t3:
; NOSSE: movl
; NOSSE: movl
; NOSSE: movl
@@ -126,7 +126,7 @@ entry:
; NOSSE: movl
; NOSSE: movl
-; X86-64: t3:
+; X86-64-LABEL: t3:
; X86-64: movq (%rsi), %rax
; X86-64: movq 8(%rsi), %rcx
; X86-64: movq %rcx, 8(%rdi)
@@ -139,7 +139,7 @@ entry:
define void @t4() nounwind {
entry:
-; SSE2-Darwin: t4:
+; SSE2-Darwin-LABEL: t4:
; SSE2-Darwin: movw $120
; SSE2-Darwin: movl $2021161080
; SSE2-Darwin: movl $2021161080
@@ -149,7 +149,7 @@ entry:
; SSE2-Darwin: movl $2021161080
; SSE2-Darwin: movl $2021161080
-; SSE2-Mingw32: t4:
+; SSE2-Mingw32-LABEL: t4:
; SSE2-Mingw32: movw $120
; SSE2-Mingw32: movl $2021161080
; SSE2-Mingw32: movl $2021161080
@@ -159,7 +159,7 @@ entry:
; SSE2-Mingw32: movl $2021161080
; SSE2-Mingw32: movl $2021161080
-; SSE1: t4:
+; SSE1-LABEL: t4:
; SSE1: movw $120
; SSE1: movl $2021161080
; SSE1: movl $2021161080
@@ -169,7 +169,7 @@ entry:
; SSE1: movl $2021161080
; SSE1: movl $2021161080
-; NOSSE: t4:
+; NOSSE-LABEL: t4:
; NOSSE: movw $120
; NOSSE: movl $2021161080
; NOSSE: movl $2021161080
@@ -179,7 +179,7 @@ entry:
; NOSSE: movl $2021161080
; NOSSE: movl $2021161080
-; X86-64: t4:
+; X86-64-LABEL: t4:
; X86-64: movabsq $8680820740569200760, %rax
; X86-64: movq %rax
; X86-64: movq %rax
diff --git a/test/CodeGen/X86/memcpy.ll b/test/CodeGen/X86/memcpy.ll
index 3372a4adc5eeb..88b6cfd2295fd 100644
--- a/test/CodeGen/X86/memcpy.ll
+++ b/test/CodeGen/X86/memcpy.ll
@@ -10,7 +10,7 @@ entry:
tail call void @llvm.memcpy.p0i8.p0i8.i64( i8* %a, i8* %b, i64 %n, i32 1, i1 0 )
ret i8* %a
-; LINUX: test1:
+; LINUX-LABEL: test1:
; LINUX: memcpy
}
@@ -22,7 +22,7 @@ entry:
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %tmp14, i8* %tmp25, i64 %n, i32 8, i1 0 )
ret i8* %tmp14
-; LINUX: test2:
+; LINUX-LABEL: test2:
; LINUX: memcpy
}
@@ -36,10 +36,10 @@ define void @test3(i8* nocapture %A, i8* nocapture %B) nounwind optsize noredzon
entry:
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %A, i8* %B, i64 64, i32 1, i1 false)
ret void
-; LINUX: test3:
+; LINUX-LABEL: test3:
; LINUX: memcpy
-; DARWIN: test3:
+; DARWIN-LABEL: test3:
; DARWIN-NOT: memcpy
; DARWIN: movq
; DARWIN: movq
@@ -64,7 +64,7 @@ define void @test4(i8* nocapture %A, i8* nocapture %B) nounwind noredzone {
entry:
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %A, i8* %B, i64 64, i32 1, i1 false)
ret void
-; LINUX: test4:
+; LINUX-LABEL: test4:
; LINUX: movq
; LINUX: movq
; LINUX: movq
@@ -87,7 +87,7 @@ entry:
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %C, i8* getelementptr inbounds ([30 x i8]* @.str, i64 0, i64 0), i64 16, i32 1, i1 false)
ret void
-; DARWIN: test5:
+; DARWIN-LABEL: test5:
; DARWIN: movabsq $7016996765293437281
; DARWIN: movabsq $7016996765293437184
}
diff --git a/test/CodeGen/X86/memset-2.ll b/test/CodeGen/X86/memset-2.ll
index b2bd72bb312be..d0a3c7a74bce4 100644
--- a/test/CodeGen/X86/memset-2.ll
+++ b/test/CodeGen/X86/memset-2.ll
@@ -4,7 +4,7 @@ declare void @llvm.memset.i32(i8*, i8, i32, i32) nounwind
define fastcc void @t1() nounwind {
entry:
-; CHECK: t1:
+; CHECK-LABEL: t1:
; CHECK: calll _memset
call void @llvm.memset.p0i8.i32(i8* null, i8 0, i32 188, i32 1, i1 false)
unreachable
@@ -12,7 +12,7 @@ entry:
define fastcc void @t2(i8 signext %c) nounwind {
entry:
-; CHECK: t2:
+; CHECK-LABEL: t2:
; CHECK: calll _memset
call void @llvm.memset.p0i8.i32(i8* undef, i8 %c, i32 76, i32 1, i1 false)
unreachable
@@ -24,7 +24,7 @@ define void @t3(i8* nocapture %s, i8 %a) nounwind {
entry:
tail call void @llvm.memset.p0i8.i32(i8* %s, i8 %a, i32 8, i32 1, i1 false)
ret void
-; CHECK: t3:
+; CHECK-LABEL: t3:
; CHECK: imull $16843009
}
@@ -32,7 +32,7 @@ define void @t4(i8* nocapture %s, i8 %a) nounwind {
entry:
tail call void @llvm.memset.p0i8.i32(i8* %s, i8 %a, i32 15, i32 1, i1 false)
ret void
-; CHECK: t4:
+; CHECK-LABEL: t4:
; CHECK: imull $16843009
; CHECK-NOT: imul
; CHECK: ret
diff --git a/test/CodeGen/X86/memset-sse-stack-realignment.ll b/test/CodeGen/X86/memset-sse-stack-realignment.ll
index df9de5dfaf22b..d77a7ed381651 100644
--- a/test/CodeGen/X86/memset-sse-stack-realignment.ll
+++ b/test/CodeGen/X86/memset-sse-stack-realignment.ll
@@ -14,26 +14,26 @@ define void @test1(i32 %t) nounwind {
call void @dummy(i8* %x)
ret void
-; NOSSE: test1:
+; NOSSE-LABEL: test1:
; NOSSE-NOT: and
; NOSSE: movl $0
-; SSE1: test1:
+; SSE1-LABEL: test1:
; SSE1: andl $-16
; SSE1: movl %esp, %esi
; SSE1: movaps
-; SSE2: test1:
+; SSE2-LABEL: test1:
; SSE2: andl $-16
; SSE2: movl %esp, %esi
; SSE2: movaps
-; AVX1: test1:
+; AVX1-LABEL: test1:
; AVX1: andl $-32
; AVX1: movl %esp, %esi
; AVX1: vmovaps %ymm
-; AVX2: test1:
+; AVX2-LABEL: test1:
; AVX2: andl $-32
; AVX2: movl %esp, %esi
; AVX2: vmovaps %ymm
@@ -47,26 +47,26 @@ define void @test2(i32 %t) nounwind {
call void @dummy(i8* %x)
ret void
-; NOSSE: test2:
+; NOSSE-LABEL: test2:
; NOSSE-NOT: and
; NOSSE: movl $0
-; SSE1: test2:
+; SSE1-LABEL: test2:
; SSE1: andl $-16
; SSE1: movl %esp, %esi
; SSE1: movaps
-; SSE2: test2:
+; SSE2-LABEL: test2:
; SSE2: andl $-16
; SSE2: movl %esp, %esi
; SSE2: movaps
-; AVX1: test2:
+; AVX1-LABEL: test2:
; AVX1: andl $-16
; AVX1: movl %esp, %esi
; AVX1: vmovaps %xmm
-; AVX2: test2:
+; AVX2-LABEL: test2:
; AVX2: andl $-16
; AVX2: movl %esp, %esi
; AVX2: vmovaps %xmm
diff --git a/test/CodeGen/X86/merge_store.ll b/test/CodeGen/X86/merge_store.ll
new file mode 100644
index 0000000000000..940688c6252f7
--- /dev/null
+++ b/test/CodeGen/X86/merge_store.ll
@@ -0,0 +1,30 @@
+; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mcpu=x86-64 | FileCheck %s
+
+define void @merge_store(i32* nocapture %a) {
+; CHECK-LABEL: merge_store:
+; CHECK: movq
+; CHECK: movq
+entry:
+ br label %for.body
+
+ for.body:
+ %indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.body ]
+ %arrayidx = getelementptr inbounds i32* %a, i64 %indvars.iv
+ store i32 1, i32* %arrayidx, align 4
+ %0 = or i64 %indvars.iv, 1
+ %arrayidx2 = getelementptr inbounds i32* %a, i64 %0
+ store i32 1, i32* %arrayidx2, align 4
+ %1 = or i64 %indvars.iv, 2
+ %arrayidx5 = getelementptr inbounds i32* %a, i64 %1
+ store i32 1, i32* %arrayidx5, align 4
+ %2 = or i64 %indvars.iv, 3
+ %arrayidx8 = getelementptr inbounds i32* %a, i64 %2
+ store i32 1, i32* %arrayidx8, align 4
+ %indvars.iv.next = add nuw nsw i64 %indvars.iv, 4
+ %3 = trunc i64 %indvars.iv.next to i32
+ %cmp = icmp slt i32 %3, 1000
+ br i1 %cmp, label %for.body, label %for.end
+
+ for.end:
+ ret void
+}
diff --git a/test/CodeGen/X86/mingw-alloca.ll b/test/CodeGen/X86/mingw-alloca.ll
index ded4b73d09317..72b69400ffa13 100644
--- a/test/CodeGen/X86/mingw-alloca.ll
+++ b/test/CodeGen/X86/mingw-alloca.ll
@@ -1,12 +1,14 @@
-; RUN: llc < %s | FileCheck %s
+; RUN: llc < %s -mtriple=i386-pc-mingw32 | FileCheck %s -check-prefix=COFF
+; RUN: llc < %s -mtriple=i386-pc-mingw32-elf | FileCheck %s -check-prefix=ELF
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "i386-pc-mingw32"
define void @foo1(i32 %N) nounwind {
entry:
-; CHECK: _foo1:
-; CHECK: calll __alloca
+; COFF: _foo1:
+; COFF: calll __alloca
+; ELF: foo1:
+; ELF: calll _alloca
%tmp14 = alloca i32, i32 %N ; <i32*> [#uses=1]
call void @bar1( i32* %tmp14 )
ret void
@@ -16,11 +18,16 @@ declare void @bar1(i32*)
define void @foo2(i32 inreg %N) nounwind {
entry:
-; CHECK: _foo2:
-; CHECK: andl $-16, %esp
-; CHECK: pushl %eax
-; CHECK: calll __alloca
-; CHECK: movl 8028(%esp), %eax
+; COFF: _foo2:
+; COFF: andl $-16, %esp
+; COFF: pushl %eax
+; COFF: calll __alloca
+; COFF: movl 8028(%esp), %eax
+; ELF: foo2:
+; ELF: andl $-16, %esp
+; ELF: pushl %eax
+; ELF: calll _alloca
+; ELF: movl 8028(%esp), %eax
%A2 = alloca [2000 x i32], align 16 ; <[2000 x i32]*> [#uses=1]
%A2.sub = getelementptr [2000 x i32]* %A2, i32 0, i32 0 ; <i32*> [#uses=1]
call void @bar2( i32* %A2.sub, i32 %N )
diff --git a/test/CodeGen/X86/misched-balance.ll b/test/CodeGen/X86/misched-balance.ll
index 2184d9e960363..1900802ac9b3e 100644
--- a/test/CodeGen/X86/misched-balance.ll
+++ b/test/CodeGen/X86/misched-balance.ll
@@ -1,5 +1,4 @@
-; RUN: llc < %s -march=x86-64 -mcpu=core2 -pre-RA-sched=source -enable-misched \
-; RUN: -verify-machineinstrs | FileCheck %s
+; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu -mcpu=core2 -pre-RA-sched=source -enable-misched -verify-machineinstrs | FileCheck %s
;
; Verify that misched resource/latency balancy heuristics are sane.
@@ -16,7 +15,7 @@ entry:
; Since mmult1 IR is already in good order, this effectively ensure
; the scheduler maintains source order.
;
-; CHECK: %for.body
+; CHECK-LABEL: %for.body
; CHECK-NOT: %rsp
; CHECK: imull 4
; CHECK-NOT: {{imull|rsp}}
@@ -46,7 +45,7 @@ entry:
; CHECK-NOT: {{imull|rsp}}
; CHECK: addl
; CHECK-NOT: {{imull|rsp}}
-; CHECK: %end
+; CHECK-LABEL: %end
for.body:
%indvars.iv42.i = phi i64 [ %indvars.iv.next43.i, %for.body ], [ 0, %entry ]
%tmp57 = load i32* %tmp56, align 4
@@ -121,7 +120,7 @@ end:
; Unlike the above loop, this IR starts out bad and must be
; rescheduled.
;
-; CHECK: %for.body
+; CHECK-LABEL: %for.body
; CHECK-NOT: %rsp
; CHECK: imull 4
; CHECK-NOT: {{imull|rsp}}
@@ -151,7 +150,7 @@ end:
; CHECK-NOT: {{imull|rsp}}
; CHECK: addl
; CHECK-NOT: {{imull|rsp}}
-; CHECK: %end
+; CHECK-LABEL: %end
define void @unrolled_mmult2(i32* %tmp55, i32* %tmp56, i32* %pre, i32* %pre94,
i32* %pre95, i32* %pre96, i32* %pre97, i32* %pre98, i32* %pre99,
i32* %pre100, i32* %pre101, i32* %pre102, i32* %pre103, i32* %pre104)
@@ -228,3 +227,51 @@ for.body:
end:
ret void
}
+
+; A mildly interesting little block extracted from a cipher. The
+; balanced heuristics are interesting here because we have resource,
+; latency, and register limits all at once. For now, simply check that
+; we don't use any callee-saves.
+; CHECK-LABEL: @encpc1
+; CHECK-LABEL: %entry
+; CHECK-NOT: push
+; CHECK-NOT: pop
+; CHECK: ret
+@a = external global i32, align 4
+@b = external global i32, align 4
+@c = external global i32, align 4
+@d = external global i32, align 4
+define i32 @encpc1() nounwind {
+entry:
+ %l1 = load i32* @a, align 16
+ %conv = shl i32 %l1, 8
+ %s5 = lshr i32 %l1, 8
+ %add = or i32 %conv, %s5
+ store i32 %add, i32* @b
+ %l6 = load i32* @a
+ %l7 = load i32* @c
+ %add.i = add i32 %l7, %l6
+ %idxprom.i = zext i32 %l7 to i64
+ %arrayidx.i = getelementptr inbounds i32* @d, i64 %idxprom.i
+ %l8 = load i32* %arrayidx.i
+ store i32 346, i32* @c
+ store i32 20021, i32* @d
+ %l9 = load i32* @a
+ store i32 %l8, i32* @a
+ store i32 %l9, i32* @b
+ store i32 %add.i, i32* @c
+ store i32 %l9, i32* @d
+ %cmp.i = icmp eq i32 %add.i, 0
+ %s10 = lshr i32 %l1, 16
+ %s12 = lshr i32 %l1, 24
+ %s14 = lshr i32 %l1, 30
+ br i1 %cmp.i, label %if, label %return
+if:
+ %sa = add i32 %s5, %s10
+ %sb = add i32 %sa, %s12
+ %sc = add i32 %sb, %s14
+ br label %return
+return:
+ %result = phi i32 [0, %entry], [%sc, %if]
+ ret i32 %result
+}
diff --git a/test/CodeGen/X86/misched-copy.ll b/test/CodeGen/X86/misched-copy.ll
index 0450cfb539089..4485b8a244a81 100644
--- a/test/CodeGen/X86/misched-copy.ll
+++ b/test/CodeGen/X86/misched-copy.ll
@@ -8,11 +8,11 @@
; MUL_HiLo PhysReg use copies should be just above the mul.
; MUL_HiLo PhysReg def copies should be just below the mul.
;
-; CHECK: *** Final schedule for BB#1 ***
-; CHECK-NEXT: %EAX<def> = COPY
-; CHECK: MUL32r %vreg{{[0-9]+}}, %EAX<imp-def>, %EDX<imp-def>, %EFLAGS<imp-def,dead>, %EAX<imp-use>;
-; CHECK-NEXT: COPY %E{{[AD]}}X;
-; CHECK-NEXT: COPY %E{{[AD]}}X;
+; CHECK: *** Final schedule for BB#1 ***
+; CHECK: %EAX<def> = COPY
+; CHECK-NEXT: MUL32r %vreg{{[0-9]+}}, %EAX<imp-def>, %EDX<imp-def>, %EFLAGS<imp-def,dead>, %EAX<imp-use>;
+; CHECK-NEXT: COPY %E{{[AD]}}X
+; CHECK-NEXT: COPY %E{{[AD]}}X
; CHECK: DIVSSrm
define i64 @mulhoist(i32 %a, i32 %b) #0 {
entry:
@@ -42,7 +42,7 @@ end:
ret i64 %add
}
-attributes #0 = { nounwind ssp uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" }
+attributes #0 = { nounwind ssp uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" }
!0 = metadata !{metadata !"float", metadata !1}
!1 = metadata !{metadata !"omnipotent char", metadata !2}
diff --git a/test/CodeGen/X86/misched-fusion.ll b/test/CodeGen/X86/misched-fusion.ll
new file mode 100644
index 0000000000000..859d92d6978bc
--- /dev/null
+++ b/test/CodeGen/X86/misched-fusion.ll
@@ -0,0 +1,108 @@
+; RUN: llc < %s -march=x86-64 -mcpu=corei7-avx -disable-lsr -pre-RA-sched=source -enable-misched -verify-machineinstrs | FileCheck %s
+
+; Verify that TEST+JE are scheduled together.
+; CHECK: test_je
+; CHECK: %loop
+; CHECK: test
+; CHECK-NEXT: je
+define void @test_je() {
+entry:
+ br label %loop
+
+loop:
+ %var = phi i32* [ null, %entry ], [ %next.load, %loop1 ], [ %var, %loop2 ]
+ %next.ptr = phi i32** [ null, %entry ], [ %next.ptr, %loop1 ], [ %gep, %loop2 ]
+ br label %loop1
+
+loop1:
+ %cond = icmp eq i32* %var, null
+ %next.load = load i32** %next.ptr
+ br i1 %cond, label %loop, label %loop2
+
+loop2: ; preds = %loop1
+ %gep = getelementptr inbounds i32** %next.ptr, i32 1
+ store i32* %next.load, i32** undef
+ br label %loop
+}
+
+; Verify that DEC+JE are scheduled together.
+; CHECK: dec_je
+; CHECK: %loop1
+; CHECK: dec
+; CHECK-NEXT: je
+define void @dec_je() {
+entry:
+ br label %loop
+
+loop:
+ %var = phi i32 [ 0, %entry ], [ %next.var, %loop1 ], [ %var2, %loop2 ]
+ %next.ptr = phi i32** [ null, %entry ], [ %next.ptr, %loop1 ], [ %gep, %loop2 ]
+ br label %loop1
+
+loop1:
+ %var2 = sub i32 %var, 1
+ %cond = icmp eq i32 %var2, 0
+ %next.load = load i32** %next.ptr
+ %next.var = load i32* %next.load
+ br i1 %cond, label %loop, label %loop2
+
+loop2:
+ %gep = getelementptr inbounds i32** %next.ptr, i32 1
+ store i32* %next.load, i32** undef
+ br label %loop
+}
+
+; DEC+JS should *not* be scheduled together.
+; CHECK: dec_js
+; CHECK: %loop1
+; CHECK: dec
+; CHECK: mov
+; CHECK: js
+define void @dec_js() {
+entry:
+ br label %loop2a
+
+loop2a: ; preds = %loop1, %body, %entry
+ %var = phi i32 [ 0, %entry ], [ %next.var, %loop1 ], [ %var2, %loop2b ]
+ %next.ptr = phi i32** [ null, %entry ], [ %next.ptr, %loop1 ], [ %gep, %loop2b ]
+ br label %loop1
+
+loop1: ; preds = %loop2a, %loop2b
+ %var2 = sub i32 %var, 1
+ %cond = icmp slt i32 %var2, 0
+ %next.load = load i32** %next.ptr
+ %next.var = load i32* %next.load
+ br i1 %cond, label %loop2a, label %loop2b
+
+loop2b: ; preds = %loop1
+ %gep = getelementptr inbounds i32** %next.ptr, i32 1
+ store i32* %next.load, i32** undef
+ br label %loop2a
+}
+
+; Verify that CMP+JB are scheduled together.
+; CHECK: cmp_jb
+; CHECK: %loop1
+; CHECK: cmp
+; CHECK-NEXT: jb
+define void @cmp_jb(i32 %n) {
+entry:
+ br label %loop2a
+
+loop2a: ; preds = %loop1, %body, %entry
+ %var = phi i32 [ 0, %entry ], [ %next.var, %loop1 ], [ %var2, %loop2b ]
+ %next.ptr = phi i32** [ null, %entry ], [ %next.ptr, %loop1 ], [ %gep, %loop2b ]
+ br label %loop1
+
+loop1: ; preds = %loop2a, %loop2b
+ %var2 = sub i32 %var, 1
+ %cond = icmp ult i32 %var2, %n
+ %next.load = load i32** %next.ptr
+ %next.var = load i32* %next.load
+ br i1 %cond, label %loop2a, label %loop2b
+
+loop2b: ; preds = %loop1
+ %gep = getelementptr inbounds i32** %next.ptr, i32 1
+ store i32* %next.load, i32** undef
+ br label %loop2a
+}
diff --git a/test/CodeGen/X86/misched-matmul.ll b/test/CodeGen/X86/misched-matmul.ll
index 15e8a0ad6f4ba..5454b7cf780a1 100644
--- a/test/CodeGen/X86/misched-matmul.ll
+++ b/test/CodeGen/X86/misched-matmul.ll
@@ -3,11 +3,14 @@
;
; Verify that register pressure heuristics are working in MachineScheduler.
;
-; When we enable subtree scheduling heuristics on X86, we may need a
-; flag to disable it for this test case.
+; We can further reduce spills in this case with a global register
+; pressure heuristic, like sethi-ullman numbers or biasing toward
+; scheduled subtrees. However, these heuristics are marginally
+; beneficial on x86_64 and exacerbate register pressure in other
+; more complex cases.
;
; CHECK: @wrap_mul4
-; CHECK: 30 regalloc - Number of spills inserted
+; CHECK: 23 regalloc - Number of spills inserted
define void @wrap_mul4(double* nocapture %Out, [4 x double]* nocapture %A, [4 x double]* nocapture %B) #0 {
entry:
@@ -221,4 +224,4 @@ entry:
ret void
}
-attributes #0 = { noinline nounwind ssp uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" }
+attributes #0 = { noinline nounwind ssp uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" }
diff --git a/test/CodeGen/X86/misched-matrix.ll b/test/CodeGen/X86/misched-matrix.ll
index 4dc95c5e9326a..23b561f6e5db4 100644
--- a/test/CodeGen/X86/misched-matrix.ll
+++ b/test/CodeGen/X86/misched-matrix.ll
@@ -15,19 +15,19 @@
; been reordered with the stores. This tests the scheduler's cheap
; alias analysis ability (that doesn't require any AliasAnalysis pass).
;
-; TOPDOWN: %for.body
+; TOPDOWN-LABEL: %for.body
; TOPDOWN: movl %{{.*}}, (
; TOPDOWN: imull {{[0-9]*}}(
; TOPDOWN: movl %{{.*}}, 4(
; TOPDOWN: imull {{[0-9]*}}(
; TOPDOWN: movl %{{.*}}, 8(
; TOPDOWN: movl %{{.*}}, 12(
-; TOPDOWN: %for.end
+; TOPDOWN-LABEL: %for.end
;
; For -misched=ilpmin, verify that each expression subtree is
; scheduled independently, and that the imull/adds are interleaved.
;
-; ILPMIN: %for.body
+; ILPMIN-LABEL: %for.body
; ILPMIN: movl %{{.*}}, (
; ILPMIN: imull
; ILPMIN: imull
@@ -53,12 +53,12 @@
; ILPMIN: imull
; ILPMIN: addl
; ILPMIN: movl %{{.*}}, 12(
-; ILPMIN: %for.end
+; ILPMIN-LABEL: %for.end
;
; For -misched=ilpmax, verify that each expression subtree is
; scheduled independently, and that the imull/adds are clustered.
;
-; ILPMAX: %for.body
+; ILPMAX-LABEL: %for.body
; ILPMAX: movl %{{.*}}, (
; ILPMAX: imull
; ILPMAX: imull
@@ -84,7 +84,7 @@
; ILPMAX: addl
; ILPMAX: addl
; ILPMAX: movl %{{.*}}, 12(
-; ILPMAX: %for.end
+; ILPMAX-LABEL: %for.end
define void @mmult([4 x i32]* noalias nocapture %m1, [4 x i32]* noalias nocapture %m2,
[4 x i32]* noalias nocapture %m3) nounwind uwtable ssp {
diff --git a/test/CodeGen/X86/mmx-arg-passing.ll b/test/CodeGen/X86/mmx-arg-passing.ll
index b348512b57985..3a0fb95711e53 100644
--- a/test/CodeGen/X86/mmx-arg-passing.ll
+++ b/test/CodeGen/X86/mmx-arg-passing.ll
@@ -1,8 +1,5 @@
-; RUN: llc < %s -mtriple=i386-apple-darwin -mattr=+mmx | grep mm0 | count 1
-; RUN: llc < %s -mtriple=i386-apple-darwin -mattr=+mmx | grep esp | count 2
-; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr=+mmx,+sse2 | grep xmm0
-; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr=+mmx,+sse2 | grep rdi
-; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr=+mmx,+sse2 | not grep movups
+; RUN: llc < %s -mtriple=i386-apple-darwin -mattr=+mmx | FileCheck %s -check-prefix=X86-32
+; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr=+mmx,+sse2 | FileCheck %s -check-prefix=X86-64
;
; On Darwin x86-32, v8i8, v4i16, v2i32 values are passed in MM[0-2].
; On Darwin x86-32, v1i64 values are passed in memory. In this example, they
@@ -15,6 +12,13 @@
define void @t1(x86_mmx %v1) nounwind {
store x86_mmx %v1, x86_mmx* @u1, align 8
ret void
+
+; X86-32-LABEL: t1:
+; X86-32: movq %mm0
+
+; X86-64-LABEL: t1:
+; X86-64: movdq2q %xmm0
+; X86-64: movq %mm0
}
@u2 = external global x86_mmx
@@ -23,5 +27,12 @@ define void @t2(<1 x i64> %v1) nounwind {
%tmp = bitcast <1 x i64> %v1 to x86_mmx
store x86_mmx %tmp, x86_mmx* @u2, align 8
ret void
+
+; X86-32-LABEL: t2:
+; X86-32: movl 4(%esp)
+; X86-32: movl 8(%esp)
+
+; X86-64-LABEL: t2:
+; X86-64: movq %rdi
}
diff --git a/test/CodeGen/X86/mmx-builtins.ll b/test/CodeGen/X86/mmx-builtins.ll
index a8d33f43da013..aabdd53b09d63 100644
--- a/test/CodeGen/X86/mmx-builtins.ll
+++ b/test/CodeGen/X86/mmx-builtins.ll
@@ -1,5 +1,7 @@
-; RUN: llc < %s -march=x86 -mattr=+mmx,+ssse3 | FileCheck %s
+; RUN: llc < %s -march=x86 -mattr=+mmx,+ssse3,-avx | FileCheck %s
; RUN: llc < %s -march=x86 -mattr=+avx | FileCheck %s
+; RUN: llc < %s -march=x86-64 -mattr=+mmx,+ssse3,-avx | FileCheck %s
+; RUN: llc < %s -march=x86-64 -mattr=+avx | FileCheck %s
declare x86_mmx @llvm.x86.ssse3.phadd.w(x86_mmx, x86_mmx) nounwind readnone
@@ -1337,3 +1339,11 @@ entry:
%7 = extractelement <1 x i64> %6, i32 0
ret i64 %7
}
+
+define <4 x float> @test89(<4 x float> %a, x86_mmx %b) nounwind {
+; CHECK: cvtpi2ps
+ %c = tail call <4 x float> @llvm.x86.sse.cvtpi2ps(<4 x float> %a, x86_mmx %b)
+ ret <4 x float> %c
+}
+
+declare <4 x float> @llvm.x86.sse.cvtpi2ps(<4 x float>, x86_mmx) nounwind readnone
diff --git a/test/CodeGen/X86/mmx-punpckhdq.ll b/test/CodeGen/X86/mmx-punpckhdq.ll
index 206cb33494cf3..9e8f5bf53363b 100644
--- a/test/CodeGen/X86/mmx-punpckhdq.ll
+++ b/test/CodeGen/X86/mmx-punpckhdq.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86 -mattr=+mmx,+sse42 -mtriple=x86_64-apple-darwin10 | FileCheck %s
+; RUN: llc < %s -march=x86 -mattr=+mmx,+sse4.2 -mtriple=x86_64-apple-darwin10 | FileCheck %s
; There are no MMX operations in bork; promoted to XMM.
define void @bork(<1 x i64>* %x) {
diff --git a/test/CodeGen/X86/mmx-shift.ll b/test/CodeGen/X86/mmx-shift.ll
index bafc75444d919..c7c6e75a50717 100644
--- a/test/CodeGen/X86/mmx-shift.ll
+++ b/test/CodeGen/X86/mmx-shift.ll
@@ -1,7 +1,5 @@
-; RUN: llc < %s -march=x86 -mattr=+mmx | grep psllq | grep 32
-; RUN: llc < %s -march=x86-64 -mattr=+mmx | grep psllq | grep 32
-; RUN: llc < %s -march=x86 -mattr=+mmx | grep psrad
-; RUN: llc < %s -march=x86-64 -mattr=+mmx | grep psrlw
+; RUN: llc < %s -march=x86 -mattr=+mmx | FileCheck %s
+; RUN: llc < %s -march=x86-64 -mattr=+mmx | FileCheck %s
define i64 @t1(<1 x i64> %mm1) nounwind {
entry:
@@ -9,6 +7,9 @@ entry:
%tmp6 = tail call x86_mmx @llvm.x86.mmx.pslli.q( x86_mmx %tmp, i32 32 ) ; <x86_mmx> [#uses=1]
%retval1112 = bitcast x86_mmx %tmp6 to i64
ret i64 %retval1112
+
+; CHECK-LABEL: t1:
+; CHECK: psllq $32
}
declare x86_mmx @llvm.x86.mmx.pslli.q(x86_mmx, i32) nounwind readnone
@@ -18,6 +19,9 @@ entry:
%tmp7 = tail call x86_mmx @llvm.x86.mmx.psra.d( x86_mmx %mm1, x86_mmx %mm2 ) nounwind readnone ; <x86_mmx> [#uses=1]
%retval1112 = bitcast x86_mmx %tmp7 to i64
ret i64 %retval1112
+
+; CHECK-LABEL: t2:
+; CHECK: psrad
}
declare x86_mmx @llvm.x86.mmx.psra.d(x86_mmx, x86_mmx) nounwind readnone
@@ -27,6 +31,9 @@ entry:
%tmp8 = tail call x86_mmx @llvm.x86.mmx.psrli.w( x86_mmx %mm1, i32 %bits ) nounwind readnone ; <x86_mmx> [#uses=1]
%retval1314 = bitcast x86_mmx %tmp8 to i64
ret i64 %retval1314
+
+; CHECK-LABEL: t3:
+; CHECK: psrlw
}
declare x86_mmx @llvm.x86.mmx.psrli.w(x86_mmx, i32) nounwind readnone
diff --git a/test/CodeGen/X86/movbe.ll b/test/CodeGen/X86/movbe.ll
index 3d3d8cf19b79c..3f459be70d2a6 100644
--- a/test/CodeGen/X86/movbe.ll
+++ b/test/CodeGen/X86/movbe.ll
@@ -1,4 +1,5 @@
; RUN: llc -mtriple=x86_64-linux -mcpu=atom < %s | FileCheck %s
+; RUN: llc -mtriple=x86_64-linux -mcpu=slm < %s | FileCheck %s -check-prefix=SLM
declare i32 @llvm.bswap.i32(i32) nounwind readnone
declare i64 @llvm.bswap.i64(i64) nounwind readnone
@@ -7,30 +8,38 @@ define void @test1(i32* nocapture %x, i32 %y) nounwind {
%bswap = call i32 @llvm.bswap.i32(i32 %y)
store i32 %bswap, i32* %x, align 4
ret void
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: movbel %esi, (%rdi)
+; SLM-LABEL: test1:
+; SLM: movbel %esi, (%rdi)
}
define i32 @test2(i32* %x) nounwind {
%load = load i32* %x, align 4
%bswap = call i32 @llvm.bswap.i32(i32 %load)
ret i32 %bswap
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK: movbel (%rdi), %eax
+; SLM-LABEL: test2:
+; SLM: movbel (%rdi), %eax
}
define void @test3(i64* %x, i64 %y) nounwind {
%bswap = call i64 @llvm.bswap.i64(i64 %y)
store i64 %bswap, i64* %x, align 8
ret void
-; CHECK: test3:
+; CHECK-LABEL: test3:
; CHECK: movbeq %rsi, (%rdi)
+; SLM-LABEL: test3:
+; SLM: movbeq %rsi, (%rdi)
}
define i64 @test4(i64* %x) nounwind {
%load = load i64* %x, align 8
%bswap = call i64 @llvm.bswap.i64(i64 %load)
ret i64 %bswap
-; CHECK: test4:
+; CHECK-LABEL: test4:
; CHECK: movbeq (%rdi), %rax
+; SLM-LABEL: test4:
+; SLM: movbeq (%rdi), %rax
}
diff --git a/test/CodeGen/X86/movgs.ll b/test/CodeGen/X86/movgs.ll
index bb42734833ddc..71b0723c429e0 100644
--- a/test/CodeGen/X86/movgs.ll
+++ b/test/CodeGen/X86/movgs.ll
@@ -1,6 +1,6 @@
-; RUN: llc < %s -march=x86 -mtriple=i386-linux-gnu -mcpu=penryn -mattr=sse41 | FileCheck %s --check-prefix=X32
-; RUN: llc < %s -mtriple=x86_64-linux -mcpu=penryn -mattr=sse41 | FileCheck %s --check-prefix=X64
-; RUN: llc < %s -mtriple=x86_64-win32 -mcpu=penryn -mattr=sse41 | FileCheck %s --check-prefix=X64
+; RUN: llc < %s -march=x86 -mtriple=i386-linux-gnu -mcpu=penryn -mattr=sse4.1 | FileCheck %s --check-prefix=X32
+; RUN: llc < %s -mtriple=x86_64-linux -mcpu=penryn -mattr=sse4.1 | FileCheck %s --check-prefix=X64
+; RUN: llc < %s -mtriple=x86_64-win32 -mcpu=penryn -mattr=sse4.1 | FileCheck %s --check-prefix=X64
define i32 @test1() nounwind readonly {
entry:
@@ -8,12 +8,12 @@ entry:
%tmp1 = load i32* %tmp ; <i32> [#uses=1]
ret i32 %tmp1
}
-; X32: test1:
+; X32-LABEL: test1:
; X32: movl %gs:196, %eax
; X32: movl (%eax), %eax
; X32: ret
-; X64: test1:
+; X64-LABEL: test1:
; X64: movq %gs:320, %rax
; X64: movl (%rax), %eax
; X64: ret
@@ -26,11 +26,11 @@ entry:
}
; rdar://8453210
-; X32: test2:
+; X32-LABEL: test2:
; X32: movl {{.*}}(%esp), %eax
; X32: calll *%gs:(%eax)
-; X64: test2:
+; X64-LABEL: test2:
; X64: callq *%gs:([[A0:%rdi|%rcx]])
@@ -45,12 +45,12 @@ entry:
%3 = bitcast <4 x i32> %2 to <2 x i64>
ret <2 x i64> %3
-; X32: pmovsxwd_1:
+; X32-LABEL: pmovsxwd_1:
; X32: movl 4(%esp), %eax
; X32: pmovsxwd %gs:(%eax), %xmm0
; X32: ret
-; X64: pmovsxwd_1:
+; X64-LABEL: pmovsxwd_1:
; X64: pmovsxwd %gs:([[A0]]), %xmm0
; X64: ret
}
@@ -66,7 +66,7 @@ entry:
%tmp4 = add i32 %tmp1, %tmp3
ret i32 %tmp4
}
-; X32: test_no_cse:
+; X32-LABEL: test_no_cse:
; X32: movl %gs:196
; X32: movl %fs:196
; X32: ret
diff --git a/test/CodeGen/X86/movmsk.ll b/test/CodeGen/X86/movmsk.ll
index 928ad037c1ce4..25206621077ba 100644
--- a/test/CodeGen/X86/movmsk.ll
+++ b/test/CodeGen/X86/movmsk.ll
@@ -83,7 +83,7 @@ define void @float_call_signbit(double %n) {
entry:
; FIXME: This should also use movmskps; we don't form the FGETSIGN node
; in this case, though.
-; CHECK: float_call_signbit:
+; CHECK-LABEL: float_call_signbit:
; CHECK: movd %xmm0, %rdi
; FIXME
%t0 = bitcast double %n to i64
@@ -99,7 +99,7 @@ declare void @float_call_signbit_callee(i1 zeroext)
define i32 @t1(<4 x float> %x, i32* nocapture %indexTable) nounwind uwtable readonly ssp {
entry:
-; CHECK: t1:
+; CHECK-LABEL: t1:
; CHECK: movmskps
; CHECK-NOT: movslq
%0 = tail call i32 @llvm.x86.sse.movmsk.ps(<4 x float> %x) nounwind
@@ -111,7 +111,7 @@ entry:
define i32 @t2(<4 x float> %x, i32* nocapture %indexTable) nounwind uwtable readonly ssp {
entry:
-; CHECK: t2:
+; CHECK-LABEL: t2:
; CHECK: movmskpd
; CHECK-NOT: movslq
%0 = bitcast <4 x float> %x to <2 x double>
diff --git a/test/CodeGen/X86/ms-inline-asm.ll b/test/CodeGen/X86/ms-inline-asm.ll
index 5048a93ad302a..5e7ba37b39c01 100644
--- a/test/CodeGen/X86/ms-inline-asm.ll
+++ b/test/CodeGen/X86/ms-inline-asm.ll
@@ -75,7 +75,7 @@ define void @t19() nounwind {
entry:
call void asm sideeffect inteldialect "call $0", "r,~{dirflag},~{fpsr},~{flags}"(void ()* @t19_helper) nounwind
ret void
-; CHECK: t19:
+; CHECK-LABEL: t19:
; CHECK: movl %esp, %ebp
; CHECK: movl ${{_?}}t19_helper, %eax
; CHECK: {{## InlineAsm Start|#APP}}
@@ -94,7 +94,7 @@ entry:
call void asm sideeffect inteldialect "mov dword ptr $0, edi", "=*m,~{dirflag},~{fpsr},~{flags}"(i32** %res) nounwind
%0 = load i32** %res, align 4
ret i32* %0
-; CHECK: t30:
+; CHECK-LABEL: t30:
; CHECK: movl %esp, %ebp
; CHECK: {{## InlineAsm Start|#APP}}
; CHECK: .intel_syntax
diff --git a/test/CodeGen/X86/narrow-shl-cst.ll b/test/CodeGen/X86/narrow-shl-cst.ll
index a404f34b9caa2..40b976014a77f 100644
--- a/test/CodeGen/X86/narrow-shl-cst.ll
+++ b/test/CodeGen/X86/narrow-shl-cst.ll
@@ -5,7 +5,7 @@ define i32 @test1(i32 %x) nounwind {
%and = shl i32 %x, 10
%shl = and i32 %and, 31744
ret i32 %shl
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: andl $31
; CHECK: shll $10
}
@@ -14,7 +14,7 @@ define i32 @test2(i32 %x) nounwind {
%or = shl i32 %x, 10
%shl = or i32 %or, 31744
ret i32 %shl
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK: orl $31
; CHECK: shll $10
}
@@ -23,7 +23,7 @@ define i32 @test3(i32 %x) nounwind {
%xor = shl i32 %x, 10
%shl = xor i32 %xor, 31744
ret i32 %shl
-; CHECK: test3:
+; CHECK-LABEL: test3:
; CHECK: xorl $31
; CHECK: shll $10
}
@@ -32,7 +32,7 @@ define i64 @test4(i64 %x) nounwind {
%and = shl i64 %x, 40
%shl = and i64 %and, 264982302294016
ret i64 %shl
-; CHECK: test4:
+; CHECK-LABEL: test4:
; CHECK: andq $241
; CHECK: shlq $40
}
@@ -41,7 +41,7 @@ define i64 @test5(i64 %x) nounwind {
%and = shl i64 %x, 40
%shl = and i64 %and, 34084860461056
ret i64 %shl
-; CHECK: test5:
+; CHECK-LABEL: test5:
; CHECK: andq $31
; CHECK: shlq $40
}
@@ -50,7 +50,7 @@ define i64 @test6(i64 %x) nounwind {
%and = shl i64 %x, 32
%shl = and i64 %and, -281474976710656
ret i64 %shl
-; CHECK: test6:
+; CHECK-LABEL: test6:
; CHECK: andq $-65536
; CHECK: shlq $32
}
@@ -59,7 +59,7 @@ define i64 @test7(i64 %x) nounwind {
%or = shl i64 %x, 40
%shl = or i64 %or, 264982302294016
ret i64 %shl
-; CHECK: test7:
+; CHECK-LABEL: test7:
; CHECK: orq $241
; CHECK: shlq $40
}
@@ -68,7 +68,7 @@ define i64 @test8(i64 %x) nounwind {
%or = shl i64 %x, 40
%shl = or i64 %or, 34084860461056
ret i64 %shl
-; CHECK: test8:
+; CHECK-LABEL: test8:
; CHECK: orq $31
; CHECK: shlq $40
}
@@ -77,7 +77,7 @@ define i64 @test9(i64 %x) nounwind {
%xor = shl i64 %x, 40
%shl = xor i64 %xor, 264982302294016
ret i64 %shl
-; CHECK: test9:
+; CHECK-LABEL: test9:
; CHECK: orq $241
; CHECK: shlq $40
}
@@ -86,7 +86,7 @@ define i64 @test10(i64 %x) nounwind {
%xor = shl i64 %x, 40
%shl = xor i64 %xor, 34084860461056
ret i64 %shl
-; CHECK: test10:
+; CHECK-LABEL: test10:
; CHECK: xorq $31
; CHECK: shlq $40
}
@@ -95,7 +95,7 @@ define i64 @test11(i64 %x) nounwind {
%xor = shl i64 %x, 33
%shl = xor i64 %xor, -562949953421312
ret i64 %shl
-; CHECK: test11:
+; CHECK-LABEL: test11:
; CHECK: xorq $-65536
; CHECK: shlq $33
}
diff --git a/test/CodeGen/X86/narrow-shl-load.ll b/test/CodeGen/X86/narrow-shl-load.ll
index 7822453add4f5..30387925b34d7 100644
--- a/test/CodeGen/X86/narrow-shl-load.ll
+++ b/test/CodeGen/X86/narrow-shl-load.ll
@@ -33,7 +33,7 @@ while.end: ; preds = %while.cond
; DAGCombiner shouldn't fold the sdiv (ashr) away.
; rdar://8636812
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK: sarl
define i32 @test2() nounwind {
diff --git a/test/CodeGen/X86/narrow_op-1.ll b/test/CodeGen/X86/narrow_op-1.ll
index 18f110821bd56..89ae3f1a3353d 100644
--- a/test/CodeGen/X86/narrow_op-1.ll
+++ b/test/CodeGen/X86/narrow_op-1.ll
@@ -1,7 +1,4 @@
-; RUN: llc < %s -march=x86-64 | grep orb | count 1
-; RUN: llc < %s -march=x86-64 | grep orb | grep 1
-; RUN: llc < %s -march=x86-64 | grep orl | count 1
-; RUN: llc < %s -march=x86-64 | grep orl | grep 16842752
+; RUN: llc < %s -march=x86-64 | FileCheck %s
%struct.bf = type { i64, i16, i16, i32 }
@bfi = common global %struct.bf zeroinitializer, align 16
@@ -12,6 +9,10 @@ entry:
%1 = or i32 %0, 65536
store i32 %1, i32* bitcast (i16* getelementptr (%struct.bf* @bfi, i32 0, i32 1) to i32*), align 8
ret void
+
+; CHECK-LABEL: t1:
+; CHECK: orb $1
+; CHECK-NEXT: ret
}
define void @t2() nounwind optsize ssp {
@@ -20,4 +21,8 @@ entry:
%1 = or i32 %0, 16842752
store i32 %1, i32* bitcast (i16* getelementptr (%struct.bf* @bfi, i32 0, i32 1) to i32*), align 8
ret void
+
+; CHECK-LABEL: t2:
+; CHECK: orl $16842752
+; CHECK-NEXT: ret
}
diff --git a/test/CodeGen/X86/neg_cmp.ll b/test/CodeGen/X86/neg_cmp.ll
index 866514ed9a2f7..79050720d8e7b 100644
--- a/test/CodeGen/X86/neg_cmp.ll
+++ b/test/CodeGen/X86/neg_cmp.ll
@@ -4,7 +4,7 @@
; PR12545
define void @f(i32 %x, i32 %y) nounwind uwtable ssp {
entry:
-; CHECK: f:
+; CHECK-LABEL: f:
; CHECK-NOT: neg
; CHECK: add
%sub = sub i32 0, %y
diff --git a/test/CodeGen/X86/neg_fp.ll b/test/CodeGen/X86/neg_fp.ll
index 57164f2bcaf9c..efb02f8832e6d 100644
--- a/test/CodeGen/X86/neg_fp.ll
+++ b/test/CodeGen/X86/neg_fp.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86 -mattr=+sse41 -o %t
+; RUN: llc < %s -march=x86 -mattr=+sse4.1 -o %t
; RUN: grep xorps %t | count 1
; Test that when we don't -enable-unsafe-fp-math, we don't do the optimization
diff --git a/test/CodeGen/X86/newline-and-quote.ll b/test/CodeGen/X86/newline-and-quote.ll
new file mode 100644
index 0000000000000..9206e9f398eb3
--- /dev/null
+++ b/test/CodeGen/X86/newline-and-quote.ll
@@ -0,0 +1,6 @@
+; RUN: llc < %s -mtriple=x86_64-pc-linux-gnu | FileCheck %s
+@"foo\22bar" = global i32 42
+; CHECK: .globl "foo\"bar"
+
+@"foo\0abar" = global i32 42
+; CHECK: .globl "foo\nbar"
diff --git a/test/CodeGen/X86/no-cmov.ll b/test/CodeGen/X86/no-cmov.ll
index 62d73b0732e7d..e13edf26cad7c 100644
--- a/test/CodeGen/X86/no-cmov.ll
+++ b/test/CodeGen/X86/no-cmov.ll
@@ -6,6 +6,6 @@ define i32 @test1(i32 %g, i32* %j) {
%retval.0 = select i1 %tobool, i32 1, i32 %cmp
ret i32 %retval.0
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK-NOT: cmov
}
diff --git a/test/CodeGen/X86/no-compact-unwind.ll b/test/CodeGen/X86/no-compact-unwind.ll
index 627f7da9f7070..991cd4ed73630 100644
--- a/test/CodeGen/X86/no-compact-unwind.ll
+++ b/test/CodeGen/X86/no-compact-unwind.ll
@@ -1,4 +1,10 @@
-; RUN: llc < %s -mtriple x86_64-apple-macosx10.8.0 -disable-cfi | FileCheck %s
+; RUN: llc < %s -mtriple x86_64-apple-macosx10.8.0 -mcpu corei7 -filetype=obj -o - \
+; RUN: | llvm-objdump -triple x86_64-apple-macosx10.8.0 -s - \
+; RUN: | FileCheck -check-prefix=CU %s
+; RUN: llc < %s -mtriple x86_64-apple-darwin11 -mcpu corei7 \
+; RUN: | llvm-mc -triple x86_64-apple-darwin11 -filetype=obj -o - \
+; RUN: | llvm-objdump -triple x86_64-apple-darwin11 -s - \
+; RUN: | FileCheck -check-prefix=FROM-ASM %s
%"struct.dyld::MappedRanges" = type { [400 x %struct.anon], %"struct.dyld::MappedRanges"* }
%struct.anon = type { %class.ImageLoader*, i64, i64 }
@@ -12,13 +18,15 @@ declare void @OSMemoryBarrier() optsize
; This compact unwind encoding indicates that we could not generate correct
; compact unwind encodings for this function. This then defaults to using the
; DWARF EH frame.
-;
-; CHECK: .section __LD,__compact_unwind,regular,debug
-; CHECK: .quad _func
-; CHECK: .long 67108864 ## Compact Unwind Encoding: 0x4000000
-; CHECK: .quad 0 ## Personality Function
-; CHECK: .quad 0 ## LSDA
-;
+
+; CU: Contents of section __compact_unwind:
+; CU-NEXT: 0048 00000000 00000000 42000000 00000004
+; CU-NEXT: 0058 00000000 00000000 00000000 00000000
+
+; FROM-ASM: Contents of section __compact_unwind:
+; FROM-ASM-NEXT: 0048 00000000 00000000 42000000 00000004
+; FROM-ASM-NEXT: 0058 00000000 00000000 00000000 00000000
+
define void @func(%class.ImageLoader* %image) optsize ssp uwtable {
entry:
br label %for.cond1.preheader
diff --git a/test/CodeGen/X86/no-elf-compact-unwind.ll b/test/CodeGen/X86/no-elf-compact-unwind.ll
new file mode 100644
index 0000000000000..8a15817bcfe9e
--- /dev/null
+++ b/test/CodeGen/X86/no-elf-compact-unwind.ll
@@ -0,0 +1,48 @@
+; RUN: llc < %s -mtriple x86_64-apple-macosx10.8.0 -disable-cfi | FileCheck -check-prefix=MACHO %s
+; RUN: llc < %s -mtriple x86_64-unknown-linux -disable-cfi | FileCheck -check-prefix=ELF %s
+
+; Make sure we don't generate a compact unwind for ELF.
+
+; MACHO-LABEL: _Z3barv:
+; MACHO: __compact_unwind
+
+; ELF-LABEL: _Z3barv:
+; ELF-NOT: __compact_unwind
+
+@_ZTIi = external constant i8*
+
+define void @_Z3barv() uwtable {
+entry:
+ invoke void @_Z3foov()
+ to label %try.cont unwind label %lpad
+
+lpad: ; preds = %entry
+ %0 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
+ catch i8* bitcast (i8** @_ZTIi to i8*)
+ %1 = extractvalue { i8*, i32 } %0, 1
+ %2 = tail call i32 @llvm.eh.typeid.for(i8* bitcast (i8** @_ZTIi to i8*))
+ %matches = icmp eq i32 %1, %2
+ br i1 %matches, label %catch, label %eh.resume
+
+catch: ; preds = %lpad
+ %3 = extractvalue { i8*, i32 } %0, 0
+ %4 = tail call i8* @__cxa_begin_catch(i8* %3)
+ tail call void @__cxa_end_catch()
+ br label %try.cont
+
+try.cont: ; preds = %entry, %catch
+ ret void
+
+eh.resume: ; preds = %lpad
+ resume { i8*, i32 } %0
+}
+
+declare void @_Z3foov()
+
+declare i32 @__gxx_personality_v0(...)
+
+declare i32 @llvm.eh.typeid.for(i8*)
+
+declare i8* @__cxa_begin_catch(i8*)
+
+declare void @__cxa_end_catch()
diff --git a/test/CodeGen/X86/nocx16.ll b/test/CodeGen/X86/nocx16.ll
new file mode 100644
index 0000000000000..cceaac47122df
--- /dev/null
+++ b/test/CodeGen/X86/nocx16.ll
@@ -0,0 +1,21 @@
+; RUN: llc < %s -march=x86-64 -mcpu=corei7 -mattr=-cx16 | FileCheck %s
+define void @test(i128* %a) nounwind {
+entry:
+; CHECK: __sync_val_compare_and_swap_16
+ %0 = cmpxchg i128* %a, i128 1, i128 1 seq_cst
+; CHECK: __sync_lock_test_and_set_16
+ %1 = atomicrmw xchg i128* %a, i128 1 seq_cst
+; CHECK: __sync_fetch_and_add_16
+ %2 = atomicrmw add i128* %a, i128 1 seq_cst
+; CHECK: __sync_fetch_and_sub_16
+ %3 = atomicrmw sub i128* %a, i128 1 seq_cst
+; CHECK: __sync_fetch_and_and_16
+ %4 = atomicrmw and i128* %a, i128 1 seq_cst
+; CHECK: __sync_fetch_and_nand_16
+ %5 = atomicrmw nand i128* %a, i128 1 seq_cst
+; CHECK: __sync_fetch_and_or_16
+ %6 = atomicrmw or i128* %a, i128 1 seq_cst
+; CHECK: __sync_fetch_and_xor_16
+ %7 = atomicrmw xor i128* %a, i128 1 seq_cst
+ ret void
+}
diff --git a/test/CodeGen/X86/non-lazy-bind.ll b/test/CodeGen/X86/non-lazy-bind.ll
index f72965877ddb3..546a1365f26ab 100644
--- a/test/CodeGen/X86/non-lazy-bind.ll
+++ b/test/CodeGen/X86/non-lazy-bind.ll
@@ -3,7 +3,7 @@
declare void @lazy() nonlazybind
declare void @not()
-; CHECK: foo:
+; CHECK-LABEL: foo:
; CHECK: callq _not
; CHECK: callq *_lazy@GOTPCREL(%rip)
define void @foo() nounwind {
@@ -12,14 +12,14 @@ define void @foo() nounwind {
ret void
}
-; CHECK: tail_call_regular:
+; CHECK-LABEL: tail_call_regular:
; CHECK: jmp _not
define void @tail_call_regular() nounwind {
tail call void @not()
ret void
}
-; CHECK: tail_call_eager:
+; CHECK-LABEL: tail_call_eager:
; CHECK: jmpq *_lazy@GOTPCREL(%rip)
define void @tail_call_eager() nounwind {
tail call void @lazy()
diff --git a/test/CodeGen/X86/nonconst-static-ev.ll b/test/CodeGen/X86/nonconst-static-ev.ll
new file mode 100644
index 0000000000000..f852caeeea216
--- /dev/null
+++ b/test/CodeGen/X86/nonconst-static-ev.ll
@@ -0,0 +1,9 @@
+; RUN: not llc -march=x86 -mtriple=x86_64-linux-gnu < %s 2> %t
+; RUN: FileCheck --check-prefix=CHECK-ERRORS < %t %s
+; REQUIRES: shell
+
+@0 = global i8 extractvalue ([1 x i8] select (i1 ptrtoint (i32* @1 to i1), [1 x i8] [ i8 1 ], [1 x i8] [ i8 2 ]), 0)
+@1 = external global i32
+
+; CHECK-ERRORS: Unsupported expression in static initializer: extractvalue
+
diff --git a/test/CodeGen/X86/nonconst-static-iv.ll b/test/CodeGen/X86/nonconst-static-iv.ll
new file mode 100644
index 0000000000000..8fad39bcbf72b
--- /dev/null
+++ b/test/CodeGen/X86/nonconst-static-iv.ll
@@ -0,0 +1,9 @@
+; RUN: not llc -march=x86 -mtriple=x86_64-linux-gnu < %s 2> %t
+; RUN: FileCheck --check-prefix=CHECK-ERRORS < %t %s
+; REQUIRES: shell
+
+@0 = global i8 insertvalue( { i8 } select (i1 ptrtoint (i32* @1 to i1), { i8 } { i8 1 }, { i8 } { i8 2 }), i8 0, 0)
+@1 = external global i32
+
+; CHECK-ERRORS: Unsupported expression in static initializer: insertvalue
+
diff --git a/test/CodeGen/X86/nosse-error1.ll b/test/CodeGen/X86/nosse-error1.ll
index cddff3f2753b9..291379eeaec96 100644
--- a/test/CodeGen/X86/nosse-error1.ll
+++ b/test/CodeGen/X86/nosse-error1.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86-64 -mattr=-sse 2>&1 | FileCheck --check-prefix NOSSE %s
+; RUN: not llc < %s -march=x86-64 -mattr=-sse 2>&1 | FileCheck --check-prefix NOSSE %s
; RUN: llc < %s -march=x86-64 | FileCheck %s
; NOSSE: {{SSE register return with SSE disabled}}
diff --git a/test/CodeGen/X86/nosse-error2.ll b/test/CodeGen/X86/nosse-error2.ll
index fc9ba010e19df..a7cee2dd8211b 100644
--- a/test/CodeGen/X86/nosse-error2.ll
+++ b/test/CodeGen/X86/nosse-error2.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86 -mcpu=i686 -mattr=-sse 2>&1 | FileCheck --check-prefix NOSSE %s
+; RUN: not llc < %s -march=x86 -mcpu=i686 -mattr=-sse 2>&1 | FileCheck --check-prefix NOSSE %s
; RUN: llc < %s -march=x86 -mcpu=i686 -mattr=+sse | FileCheck %s
; NOSSE: {{SSE register return with SSE disabled}}
diff --git a/test/CodeGen/X86/object-size.ll b/test/CodeGen/X86/object-size.ll
index 8f1eabde7423c..ec35d2981a163 100644
--- a/test/CodeGen/X86/object-size.ll
+++ b/test/CodeGen/X86/object-size.ll
@@ -10,7 +10,7 @@ target triple = "x86_64-apple-darwin10.0"
define void @bar() nounwind ssp {
entry:
%tmp = load i8** @p ; <i8*> [#uses=1]
- %0 = call i64 @llvm.objectsize.i64(i8* %tmp, i1 0) ; <i64> [#uses=1]
+ %0 = call i64 @llvm.objectsize.i64.p0i8(i8* %tmp, i1 0) ; <i64> [#uses=1]
%cmp = icmp ne i64 %0, -1 ; <i1> [#uses=1]
; X64: movabsq $-1, [[RAX:%r..]]
; X64: cmpq $-1, [[RAX]]
@@ -19,7 +19,7 @@ entry:
cond.true: ; preds = %entry
%tmp1 = load i8** @p ; <i8*> [#uses=1]
%tmp2 = load i8** @p ; <i8*> [#uses=1]
- %1 = call i64 @llvm.objectsize.i64(i8* %tmp2, i1 1) ; <i64> [#uses=1]
+ %1 = call i64 @llvm.objectsize.i64.p0i8(i8* %tmp2, i1 1) ; <i64> [#uses=1]
%call = call i8* @__strcpy_chk(i8* %tmp1, i8* getelementptr inbounds ([3 x i8]* @.str, i32 0, i32 0), i64 %1) ssp ; <i8*> [#uses=1]
br label %cond.end
@@ -33,7 +33,7 @@ cond.end: ; preds = %cond.false, %cond.t
ret void
}
-declare i64 @llvm.objectsize.i64(i8*, i1) nounwind readonly
+declare i64 @llvm.objectsize.i64.p0i8(i8*, i1) nounwind readonly
declare i8* @__strcpy_chk(i8*, i8*, i64) ssp
@@ -47,7 +47,7 @@ entry:
%tmp = load i8** %__dest.addr ; <i8*> [#uses=1]
%tmp1 = load i8** %__src.addr ; <i8*> [#uses=1]
%tmp2 = load i8** %__dest.addr ; <i8*> [#uses=1]
- %0 = call i64 @llvm.objectsize.i64(i8* %tmp2, i1 1) ; <i64> [#uses=1]
+ %0 = call i64 @llvm.objectsize.i64.p0i8(i8* %tmp2, i1 1) ; <i64> [#uses=1]
%call = call i8* @__strcpy_chk(i8* %tmp, i8* %tmp1, i64 %0) ssp ; <i8*> [#uses=1]
store i8* %call, i8** %retval
%1 = load i8** %retval ; <i8*> [#uses=1]
diff --git a/test/CodeGen/X86/opt-shuff-tstore.ll b/test/CodeGen/X86/opt-shuff-tstore.ll
index 3e720844c437b..fc43e81bf9b5e 100644
--- a/test/CodeGen/X86/opt-shuff-tstore.ll
+++ b/test/CodeGen/X86/opt-shuff-tstore.ll
@@ -1,4 +1,4 @@
-; RUN: llc -mcpu=corei7 -mtriple=x86_64-linux < %s -mattr=+sse2,+sse41 | FileCheck %s
+; RUN: llc -mcpu=corei7 -mtriple=x86_64-linux < %s -mattr=+sse2,+sse4.1 | FileCheck %s
; CHECK: func_4_8
; A single memory write
diff --git a/test/CodeGen/X86/optimize-max-3.ll b/test/CodeGen/X86/optimize-max-3.ll
index d092916ac6fc5..1b653736ad3b0 100644
--- a/test/CodeGen/X86/optimize-max-3.ll
+++ b/test/CodeGen/X86/optimize-max-3.ll
@@ -3,7 +3,7 @@
; LSR's OptimizeMax should eliminate the select (max).
-; CHECK: foo:
+; CHECK-LABEL: foo:
; CHECK-NOT: cmov
; CHECK: jle
@@ -37,7 +37,7 @@ for.end: ; preds = %for.body, %entry
; OptimizeMax should handle this case.
; PR7454
-; CHECK: _Z18GenerateStatusPagei:
+; CHECK-LABEL: _Z18GenerateStatusPagei:
; CHECK: jle
; CHECK-NOT: cmov
diff --git a/test/CodeGen/X86/or-address.ll b/test/CodeGen/X86/or-address.ll
index f866e419c3049..6bea864027bd2 100644
--- a/test/CodeGen/X86/or-address.ll
+++ b/test/CodeGen/X86/or-address.ll
@@ -46,7 +46,7 @@ return: ; preds = %bb
ret void
}
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: movl %{{.*}}, (%[[RDI:...]],%[[RCX:...]],4)
; CHECK: movl %{{.*}}, 8(%[[RDI]],%[[RCX]],4)
; CHECK: movl %{{.*}}, 4(%[[RDI]],%[[RCX]],4)
diff --git a/test/CodeGen/X86/palignr-2.ll b/test/CodeGen/X86/palignr-2.ll
index 116d4c71814a2..4df9a2284cb74 100644
--- a/test/CodeGen/X86/palignr-2.ll
+++ b/test/CodeGen/X86/palignr-2.ll
@@ -7,7 +7,7 @@
define void @t1(<2 x i64> %a, <2 x i64> %b) nounwind ssp {
entry:
-; CHECK: t1:
+; CHECK-LABEL: t1:
; palignr $3, %xmm1, %xmm0
%0 = tail call <2 x i64> @llvm.x86.ssse3.palign.r.128(<2 x i64> %a, <2 x i64> %b, i8 24) nounwind readnone
store <2 x i64> %0, <2 x i64>* bitcast ([4 x i32]* @c to <2 x i64>*), align 16
@@ -18,7 +18,7 @@ declare <2 x i64> @llvm.x86.ssse3.palign.r.128(<2 x i64>, <2 x i64>, i8) nounwin
define void @t2() nounwind ssp {
entry:
-; CHECK: t2:
+; CHECK-LABEL: t2:
; palignr $4, _b, %xmm0
%0 = load <2 x i64>* bitcast ([4 x i32]* @b to <2 x i64>*), align 16 ; <<2 x i64>> [#uses=1]
%1 = load <2 x i64>* bitcast ([4 x i32]* @a to <2 x i64>*), align 16 ; <<2 x i64>> [#uses=1]
diff --git a/test/CodeGen/X86/palignr.ll b/test/CodeGen/X86/palignr.ll
index 6875fb3392423..ec6564d7e2eb4 100644
--- a/test/CodeGen/X86/palignr.ll
+++ b/test/CodeGen/X86/palignr.ll
@@ -1,8 +1,8 @@
; RUN: llc < %s -march=x86 -mcpu=core2 -mattr=+ssse3 | FileCheck %s
-; RUN: llc < %s -march=x86 -mcpu=yonah | FileCheck --check-prefix=YONAH %s
+; RUN: llc < %s -march=x86 -mcpu=yonah | FileCheck --check-prefix=CHECK-YONAH %s
define <4 x i32> @test1(<4 x i32> %A, <4 x i32> %B) nounwind {
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: pshufd
; CHECK-YONAH: pshufd
%C = shufflevector <4 x i32> %A, <4 x i32> undef, <4 x i32> < i32 1, i32 2, i32 3, i32 0 >
@@ -10,7 +10,7 @@ define <4 x i32> @test1(<4 x i32> %A, <4 x i32> %B) nounwind {
}
define <4 x i32> @test2(<4 x i32> %A, <4 x i32> %B) nounwind {
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK: palignr
; CHECK-YONAH: shufps
%C = shufflevector <4 x i32> %A, <4 x i32> %B, <4 x i32> < i32 1, i32 2, i32 3, i32 4 >
@@ -18,42 +18,42 @@ define <4 x i32> @test2(<4 x i32> %A, <4 x i32> %B) nounwind {
}
define <4 x i32> @test3(<4 x i32> %A, <4 x i32> %B) nounwind {
-; CHECK: test3:
+; CHECK-LABEL: test3:
; CHECK: palignr
%C = shufflevector <4 x i32> %A, <4 x i32> %B, <4 x i32> < i32 1, i32 2, i32 undef, i32 4 >
ret <4 x i32> %C
}
define <4 x i32> @test4(<4 x i32> %A, <4 x i32> %B) nounwind {
-; CHECK: test4:
+; CHECK-LABEL: test4:
; CHECK: palignr
%C = shufflevector <4 x i32> %A, <4 x i32> %B, <4 x i32> < i32 6, i32 7, i32 undef, i32 1 >
ret <4 x i32> %C
}
define <4 x float> @test5(<4 x float> %A, <4 x float> %B) nounwind {
-; CHECK: test5:
+; CHECK-LABEL: test5:
; CHECK: palignr
%C = shufflevector <4 x float> %A, <4 x float> %B, <4 x i32> < i32 6, i32 7, i32 undef, i32 1 >
ret <4 x float> %C
}
define <8 x i16> @test6(<8 x i16> %A, <8 x i16> %B) nounwind {
-; CHECK: test6:
+; CHECK-LABEL: test6:
; CHECK: palignr
%C = shufflevector <8 x i16> %A, <8 x i16> %B, <8 x i32> < i32 3, i32 4, i32 undef, i32 6, i32 7, i32 8, i32 9, i32 10 >
ret <8 x i16> %C
}
define <8 x i16> @test7(<8 x i16> %A, <8 x i16> %B) nounwind {
-; CHECK: test7:
+; CHECK-LABEL: test7:
; CHECK: palignr
%C = shufflevector <8 x i16> %A, <8 x i16> %B, <8 x i32> < i32 undef, i32 6, i32 undef, i32 8, i32 9, i32 10, i32 11, i32 12 >
ret <8 x i16> %C
}
define <16 x i8> @test8(<16 x i8> %A, <16 x i8> %B) nounwind {
-; CHECK: test8:
+; CHECK-LABEL: test8:
; CHECK: palignr
%C = shufflevector <16 x i8> %A, <16 x i8> %B, <16 x i32> < i32 5, i32 6, i32 7, i32 undef, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20 >
ret <16 x i8> %C
@@ -64,7 +64,7 @@ define <16 x i8> @test8(<16 x i8> %A, <16 x i8> %B) nounwind {
; incorrectly. In particular, one of the operands of the palignr node
; was an UNDEF.)
define <8 x i16> @test9(<8 x i16> %A, <8 x i16> %B) nounwind {
-; CHECK: test9:
+; CHECK-LABEL: test9:
; CHECK-NOT: palignr
; CHECK: pshufb
%C = shufflevector <8 x i16> %B, <8 x i16> %A, <8 x i32> < i32 undef, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 0 >
diff --git a/test/CodeGen/X86/pass-three.ll b/test/CodeGen/X86/pass-three.ll
index 23005c77c13d5..39ff69a43f48a 100644
--- a/test/CodeGen/X86/pass-three.ll
+++ b/test/CodeGen/X86/pass-three.ll
@@ -11,6 +11,6 @@ entry:
ret { i8*, i64, i64* } %2
}
-; CHECK: copy_3:
+; CHECK-LABEL: copy_3:
; CHECK-NOT: (%rdi)
; CHECK: ret
diff --git a/test/CodeGen/X86/patchpoint.ll b/test/CodeGen/X86/patchpoint.ll
new file mode 100644
index 0000000000000..d534639953b34
--- /dev/null
+++ b/test/CodeGen/X86/patchpoint.ll
@@ -0,0 +1,100 @@
+; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=corei7 -disable-fp-elim | FileCheck %s
+
+; Trivial patchpoint codegen
+;
+define i64 @trivial_patchpoint_codegen(i64 %p1, i64 %p2, i64 %p3, i64 %p4) {
+entry:
+; CHECK-LABEL: trivial_patchpoint_codegen:
+; CHECK: movabsq $-559038736, %r11
+; CHECK-NEXT: callq *%r11
+; CHECK-NEXT: nop
+; CHECK: movq %rax, %[[REG:r.+]]
+; CHECK: callq *%r11
+; CHECK-NEXT: nop
+; CHECK: movq %[[REG]], %rax
+; CHECK: ret
+ %resolveCall2 = inttoptr i64 -559038736 to i8*
+ %result = tail call i64 (i32, i32, i8*, i32, ...)* @llvm.experimental.patchpoint.i64(i32 2, i32 15, i8* %resolveCall2, i32 4, i64 %p1, i64 %p2, i64 %p3, i64 %p4)
+ %resolveCall3 = inttoptr i64 -559038737 to i8*
+ tail call void (i32, i32, i8*, i32, ...)* @llvm.experimental.patchpoint.void(i32 3, i32 15, i8* %resolveCall3, i32 2, i64 %p1, i64 %result)
+ ret i64 %result
+}
+
+; Caller frame metadata with stackmaps. This should not be optimized
+; as a leaf function.
+;
+; CHECK-LABEL: caller_meta_leaf
+; CHECK: subq $32, %rsp
+; CHECK: Ltmp
+; CHECK: addq $32, %rsp
+; CHECK: ret
+define void @caller_meta_leaf() {
+entry:
+ %metadata = alloca i64, i32 3, align 8
+ store i64 11, i64* %metadata
+ store i64 12, i64* %metadata
+ store i64 13, i64* %metadata
+ call void (i32, i32, ...)* @llvm.experimental.stackmap(i32 4, i32 0, i64* %metadata)
+ ret void
+}
+
+; Test the webkit_jscc calling convention.
+; Two arguments will be pushed on the stack.
+; Return value in $rax.
+define void @jscall_patchpoint_codegen(i64 %p1, i64 %p2, i64 %p3, i64 %p4) {
+entry:
+; CHECK-LABEL: jscall_patchpoint_codegen:
+; CHECK: Ltmp
+; CHECK: movq %r{{.+}}, 8(%rsp)
+; CHECK: movq %r{{.+}}, (%rsp)
+; CHECK: Ltmp
+; CHECK-NEXT: movabsq $-559038736, %r11
+; CHECK-NEXT: callq *%r11
+; CHECK: movq %rax, 8(%rsp)
+; CHECK: callq
+ %resolveCall2 = inttoptr i64 -559038736 to i8*
+ %result = tail call webkit_jscc i64 (i32, i32, i8*, i32, ...)* @llvm.experimental.patchpoint.i64(i32 5, i32 15, i8* %resolveCall2, i32 2, i64 %p1, i64 %p2)
+ %resolveCall3 = inttoptr i64 -559038737 to i8*
+ tail call webkit_jscc void (i32, i32, i8*, i32, ...)* @llvm.experimental.patchpoint.void(i32 6, i32 15, i8* %resolveCall3, i32 2, i64 %p1, i64 %result)
+ ret void
+}
+
+; Test patchpoints reusing the same TargetConstant.
+; <rdar:15390785> Assertion failed: (CI.getNumArgOperands() >= NumArgs + 4)
+; There is no way to verify this, since it depends on memory allocation.
+; But I think it's useful to include as a working example.
+define i64 @testLowerConstant(i64 %arg, i64 %tmp2, i64 %tmp10, i64* %tmp33, i64 %tmp79) {
+entry:
+ %tmp80 = add i64 %tmp79, -16
+ %tmp81 = inttoptr i64 %tmp80 to i64*
+ %tmp82 = load i64* %tmp81, align 8
+ tail call void (i32, i32, ...)* @llvm.experimental.stackmap(i32 14, i32 5, i64 %arg, i64 %tmp2, i64 %tmp10, i64 %tmp82)
+ tail call void (i32, i32, i8*, i32, ...)* @llvm.experimental.patchpoint.void(i32 15, i32 30, i8* null, i32 3, i64 %arg, i64 %tmp10, i64 %tmp82)
+ %tmp83 = load i64* %tmp33, align 8
+ %tmp84 = add i64 %tmp83, -24
+ %tmp85 = inttoptr i64 %tmp84 to i64*
+ %tmp86 = load i64* %tmp85, align 8
+ tail call void (i32, i32, ...)* @llvm.experimental.stackmap(i32 17, i32 5, i64 %arg, i64 %tmp10, i64 %tmp86)
+ tail call void (i32, i32, i8*, i32, ...)* @llvm.experimental.patchpoint.void(i32 18, i32 30, i8* null, i32 3, i64 %arg, i64 %tmp10, i64 %tmp86)
+ ret i64 10
+}
+
+; Test small patchpoints that don't emit calls.
+define void @small_patchpoint_codegen(i64 %p1, i64 %p2, i64 %p3, i64 %p4) {
+entry:
+; CHECK-LABEL: small_patchpoint_codegen:
+; CHECK: Ltmp
+; CHECK: nop
+; CHECK-NEXT: nop
+; CHECK-NEXT: nop
+; CHECK-NEXT: nop
+; CHECK-NEXT: nop
+; CHECK-NEXT: popq
+; CHECK-NEXT: ret
+ %result = tail call i64 (i32, i32, i8*, i32, ...)* @llvm.experimental.patchpoint.i64(i32 5, i32 5, i8* null, i32 2, i64 %p1, i64 %p2)
+ ret void
+}
+
+declare void @llvm.experimental.stackmap(i32, i32, ...)
+declare void @llvm.experimental.patchpoint.void(i32, i32, i8*, i32, ...)
+declare i64 @llvm.experimental.patchpoint.i64(i32, i32, i8*, i32, ...)
diff --git a/test/CodeGen/X86/peep-setb.ll b/test/CodeGen/X86/peep-setb.ll
index 0bab789076354..adae8acd0432b 100644
--- a/test/CodeGen/X86/peep-setb.ll
+++ b/test/CodeGen/X86/peep-setb.ll
@@ -5,7 +5,7 @@ define i8 @test1(i8 %a, i8 %b) nounwind {
%cond = zext i1 %cmp to i8
%add = add i8 %cond, %b
ret i8 %add
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: adcb $0
}
@@ -14,7 +14,7 @@ define i32 @test2(i32 %a, i32 %b) nounwind {
%cond = zext i1 %cmp to i32
%add = add i32 %cond, %b
ret i32 %add
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK: adcl $0
}
@@ -23,7 +23,7 @@ define i64 @test3(i64 %a, i64 %b) nounwind {
%conv = zext i1 %cmp to i64
%add = add i64 %conv, %b
ret i64 %add
-; CHECK: test3:
+; CHECK-LABEL: test3:
; CHECK: adcq $0
}
@@ -32,7 +32,7 @@ define i8 @test4(i8 %a, i8 %b) nounwind {
%cond = zext i1 %cmp to i8
%sub = sub i8 %b, %cond
ret i8 %sub
-; CHECK: test4:
+; CHECK-LABEL: test4:
; CHECK: sbbb $0
}
@@ -41,7 +41,7 @@ define i32 @test5(i32 %a, i32 %b) nounwind {
%cond = zext i1 %cmp to i32
%sub = sub i32 %b, %cond
ret i32 %sub
-; CHECK: test5:
+; CHECK-LABEL: test5:
; CHECK: sbbl $0
}
@@ -50,7 +50,7 @@ define i64 @test6(i64 %a, i64 %b) nounwind {
%conv = zext i1 %cmp to i64
%sub = sub i64 %b, %conv
ret i64 %sub
-; CHECK: test6:
+; CHECK-LABEL: test6:
; CHECK: sbbq $0
}
@@ -59,7 +59,7 @@ define i8 @test7(i8 %a, i8 %b) nounwind {
%cond = sext i1 %cmp to i8
%sub = sub i8 %b, %cond
ret i8 %sub
-; CHECK: test7:
+; CHECK-LABEL: test7:
; CHECK: adcb $0
}
@@ -68,7 +68,7 @@ define i32 @test8(i32 %a, i32 %b) nounwind {
%cond = sext i1 %cmp to i32
%sub = sub i32 %b, %cond
ret i32 %sub
-; CHECK: test8:
+; CHECK-LABEL: test8:
; CHECK: adcl $0
}
@@ -77,6 +77,6 @@ define i64 @test9(i64 %a, i64 %b) nounwind {
%conv = sext i1 %cmp to i64
%sub = sub i64 %b, %conv
ret i64 %sub
-; CHECK: test9:
+; CHECK-LABEL: test9:
; CHECK: adcq $0
}
diff --git a/test/CodeGen/X86/peep-test-3.ll b/test/CodeGen/X86/peep-test-3.ll
index a3799807b3841..b3d4f585f45df 100644
--- a/test/CodeGen/X86/peep-test-3.ll
+++ b/test/CodeGen/X86/peep-test-3.ll
@@ -3,7 +3,7 @@
; LLVM should omit the testl and use the flags result from the orl.
-; CHECK: or:
+; CHECK-LABEL: or:
define void @or(float* %A, i32 %IA, i32 %N) nounwind {
entry:
%0 = ptrtoint float* %A to i32 ; <i32> [#uses=1]
@@ -22,7 +22,7 @@ bb: ; preds = %entry
return: ; preds = %entry
ret void
}
-; CHECK: xor:
+; CHECK-LABEL: xor:
define void @xor(float* %A, i32 %IA, i32 %N) nounwind {
entry:
%0 = ptrtoint float* %A to i32 ; <i32> [#uses=1]
@@ -41,7 +41,7 @@ bb: ; preds = %entry
return: ; preds = %entry
ret void
}
-; CHECK: and:
+; CHECK-LABEL: and:
define void @and(float* %A, i32 %IA, i32 %N, i8* %p) nounwind {
entry:
store i8 0, i8* %p
@@ -67,7 +67,7 @@ return: ; preds = %entry
; Just like @and, but without the trunc+store. This should use a testb
; instead of an andl.
-; CHECK: test:
+; CHECK-LABEL: test:
define void @test(float* %A, i32 %IA, i32 %N, i8* %p) nounwind {
entry:
store i8 0, i8* %p
diff --git a/test/CodeGen/X86/peep-test-4.ll b/test/CodeGen/X86/peep-test-4.ll
new file mode 100644
index 0000000000000..884ee7c2ba281
--- /dev/null
+++ b/test/CodeGen/X86/peep-test-4.ll
@@ -0,0 +1,191 @@
+; RUN: llc < %s -mtriple=x86_64-pc-linux -mattr=+bmi,+bmi2,+popcnt | FileCheck %s
+declare void @foo(i32)
+declare void @foo64(i64)
+
+; CHECK-LABEL: neg:
+; CHECK: negl %edi
+; CHECK-NEXT: je
+; CHECK: jmp foo
+; CHECK: ret
+define void @neg(i32 %x) nounwind {
+ %sub = sub i32 0, %x
+ %cmp = icmp eq i32 %sub, 0
+ br i1 %cmp, label %return, label %bb
+
+bb:
+ tail call void @foo(i32 %sub)
+ br label %return
+
+return:
+ ret void
+}
+
+; CHECK-LABEL: sar:
+; CHECK: sarl %edi
+; CHECK-NEXT: je
+; CHECK: jmp foo
+; CHECK: ret
+define void @sar(i32 %x) nounwind {
+ %ashr = ashr i32 %x, 1
+ %cmp = icmp eq i32 %ashr, 0
+ br i1 %cmp, label %return, label %bb
+
+bb:
+ tail call void @foo(i32 %ashr)
+ br label %return
+
+return:
+ ret void
+}
+
+; CHECK-LABEL: shr:
+; CHECK: shrl %edi
+; CHECK-NEXT: je
+; CHECK: jmp foo
+; CHECK: ret
+define void @shr(i32 %x) nounwind {
+ %ashr = lshr i32 %x, 1
+ %cmp = icmp eq i32 %ashr, 0
+ br i1 %cmp, label %return, label %bb
+
+bb:
+ tail call void @foo(i32 %ashr)
+ br label %return
+
+return:
+ ret void
+}
+
+; CHECK-LABEL: shri:
+; CHECK: shrl $3, %edi
+; CHECK-NEXT: je
+; CHECK: jmp foo
+; CHECK: ret
+define void @shri(i32 %x) nounwind {
+ %ashr = lshr i32 %x, 3
+ %cmp = icmp eq i32 %ashr, 0
+ br i1 %cmp, label %return, label %bb
+
+bb:
+ tail call void @foo(i32 %ashr)
+ br label %return
+
+return:
+ ret void
+}
+
+; CHECK-LABEL: shl:
+; CHECK: addl %edi, %edi
+; CHECK-NEXT: je
+; CHECK: jmp foo
+; CHECK: ret
+define void @shl(i32 %x) nounwind {
+ %shl = shl i32 %x, 1
+ %cmp = icmp eq i32 %shl, 0
+ br i1 %cmp, label %return, label %bb
+
+bb:
+ tail call void @foo(i32 %shl)
+ br label %return
+
+return:
+ ret void
+}
+
+; CHECK-LABEL: shli:
+; CHECK: shll $4, %edi
+; CHECK-NEXT: je
+; CHECK: jmp foo
+; CHECK: ret
+define void @shli(i32 %x) nounwind {
+ %shl = shl i32 %x, 4
+ %cmp = icmp eq i32 %shl, 0
+ br i1 %cmp, label %return, label %bb
+
+bb:
+ tail call void @foo(i32 %shl)
+ br label %return
+
+return:
+ ret void
+}
+
+; CHECK-LABEL: adc:
+; CHECK: movabsq $-9223372036854775808, %rax
+; CHECK-NEXT: addq %rdi, %rax
+; CHECK-NEXT: adcq $0, %rsi
+; CHECK-NEXT: sete %al
+; CHECK: ret
+define zeroext i1 @adc(i128 %x) nounwind {
+ %add = add i128 %x, 9223372036854775808
+ %cmp = icmp ult i128 %add, 18446744073709551616
+ ret i1 %cmp
+}
+
+; CHECK-LABEL: sbb:
+; CHECK: cmpq %rdx, %rdi
+; CHECK-NEXT: sbbq %rcx, %rsi
+; CHECK-NEXT: setns %al
+; CHECK: ret
+define zeroext i1 @sbb(i128 %x, i128 %y) nounwind {
+ %sub = sub i128 %x, %y
+ %cmp = icmp sge i128 %sub, 0
+ ret i1 %cmp
+}
+
+; CHECK-LABEL: andn:
+; CHECK: andnl %esi, %edi, %edi
+; CHECK-NEXT: je
+; CHECK: jmp foo
+; CHECK: ret
+define void @andn(i32 %x, i32 %y) nounwind {
+ %not = xor i32 %x, -1
+ %andn = and i32 %y, %not
+ %cmp = icmp eq i32 %andn, 0
+ br i1 %cmp, label %return, label %bb
+
+bb:
+ tail call void @foo(i32 %andn)
+ br label %return
+
+return:
+ ret void
+}
+
+; CHECK-LABEL: bextr:
+; CHECK: bextrl %esi, %edi, %edi
+; CHECK-NEXT: je
+; CHECK: jmp foo
+; CHECK: ret
+declare i32 @llvm.x86.bmi.bextr.32(i32, i32) nounwind readnone
+define void @bextr(i32 %x, i32 %y) nounwind {
+ %bextr = tail call i32 @llvm.x86.bmi.bextr.32(i32 %x, i32 %y)
+ %cmp = icmp eq i32 %bextr, 0
+ br i1 %cmp, label %return, label %bb
+
+bb:
+ tail call void @foo(i32 %bextr)
+ br label %return
+
+return:
+ ret void
+}
+
+; CHECK-LABEL: popcnt:
+; CHECK: popcntl
+; CHECK-NEXT: je
+; CHECK: jmp foo
+; CHECK: ret
+declare i32 @llvm.ctpop.i32(i32) nounwind readnone
+define void @popcnt(i32 %x) nounwind {
+ %popcnt = tail call i32 @llvm.ctpop.i32(i32 %x)
+ %cmp = icmp eq i32 %popcnt, 0
+ br i1 %cmp, label %return, label %bb
+;
+bb:
+ tail call void @foo(i32 %popcnt)
+ br label %return
+;
+return:
+ ret void
+}
diff --git a/test/CodeGen/X86/peep-vector-extract-concat.ll b/test/CodeGen/X86/peep-vector-extract-concat.ll
index 606a9be68bd41..f73ebb944dcdd 100644
--- a/test/CodeGen/X86/peep-vector-extract-concat.ll
+++ b/test/CodeGen/X86/peep-vector-extract-concat.ll
@@ -1,7 +1,7 @@
-; RUN: llc < %s -mtriple=x86_64-linux -mattr=+sse2,-sse41 | FileCheck %s
+; RUN: llc < %s -mtriple=x86_64-linux -mattr=+sse2,-sse4.1 | FileCheck %s
; CHECK: pshufd $3, %xmm0, %xmm0
-; RUN: llc < %s -mtriple=x86_64-win32 -mattr=+sse2,-sse41 | FileCheck %s -check-prefix=WIN64
+; RUN: llc < %s -mtriple=x86_64-win32 -mattr=+sse2,-sse4.1 | FileCheck %s -check-prefix=WIN64
; %a is passed indirectly on Win64.
; WIN64: movss 12(%rcx), %xmm0
diff --git a/test/CodeGen/X86/phaddsub.ll b/test/CodeGen/X86/phaddsub.ll
index 62d85f7ee7c75..17e7e1dfdcf7d 100644
--- a/test/CodeGen/X86/phaddsub.ll
+++ b/test/CodeGen/X86/phaddsub.ll
@@ -1,10 +1,10 @@
; RUN: llc < %s -march=x86-64 -mattr=+ssse3,-avx | FileCheck %s -check-prefix=SSSE3
; RUN: llc < %s -march=x86-64 -mattr=-ssse3,+avx | FileCheck %s -check-prefix=AVX
-; SSSE3: phaddw1:
+; SSSE3-LABEL: phaddw1:
; SSSE3-NOT: vphaddw
; SSSE3: phaddw
-; AVX: phaddw1:
+; AVX-LABEL: phaddw1:
; AVX: vphaddw
define <8 x i16> @phaddw1(<8 x i16> %x, <8 x i16> %y) {
%a = shufflevector <8 x i16> %x, <8 x i16> %y, <8 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14>
@@ -13,10 +13,10 @@ define <8 x i16> @phaddw1(<8 x i16> %x, <8 x i16> %y) {
ret <8 x i16> %r
}
-; SSSE3: phaddw2:
+; SSSE3-LABEL: phaddw2:
; SSSE3-NOT: vphaddw
; SSSE3: phaddw
-; AVX: phaddw2:
+; AVX-LABEL: phaddw2:
; AVX: vphaddw
define <8 x i16> @phaddw2(<8 x i16> %x, <8 x i16> %y) {
%a = shufflevector <8 x i16> %x, <8 x i16> %y, <8 x i32> <i32 1, i32 2, i32 5, i32 6, i32 9, i32 10, i32 13, i32 14>
@@ -25,10 +25,10 @@ define <8 x i16> @phaddw2(<8 x i16> %x, <8 x i16> %y) {
ret <8 x i16> %r
}
-; SSSE3: phaddd1:
+; SSSE3-LABEL: phaddd1:
; SSSE3-NOT: vphaddd
; SSSE3: phaddd
-; AVX: phaddd1:
+; AVX-LABEL: phaddd1:
; AVX: vphaddd
define <4 x i32> @phaddd1(<4 x i32> %x, <4 x i32> %y) {
%a = shufflevector <4 x i32> %x, <4 x i32> %y, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
@@ -37,10 +37,10 @@ define <4 x i32> @phaddd1(<4 x i32> %x, <4 x i32> %y) {
ret <4 x i32> %r
}
-; SSSE3: phaddd2:
+; SSSE3-LABEL: phaddd2:
; SSSE3-NOT: vphaddd
; SSSE3: phaddd
-; AVX: phaddd2:
+; AVX-LABEL: phaddd2:
; AVX: vphaddd
define <4 x i32> @phaddd2(<4 x i32> %x, <4 x i32> %y) {
%a = shufflevector <4 x i32> %x, <4 x i32> %y, <4 x i32> <i32 1, i32 2, i32 5, i32 6>
@@ -49,10 +49,10 @@ define <4 x i32> @phaddd2(<4 x i32> %x, <4 x i32> %y) {
ret <4 x i32> %r
}
-; SSSE3: phaddd3:
+; SSSE3-LABEL: phaddd3:
; SSSE3-NOT: vphaddd
; SSSE3: phaddd
-; AVX: phaddd3:
+; AVX-LABEL: phaddd3:
; AVX: vphaddd
define <4 x i32> @phaddd3(<4 x i32> %x) {
%a = shufflevector <4 x i32> %x, <4 x i32> undef, <4 x i32> <i32 undef, i32 2, i32 4, i32 6>
@@ -61,10 +61,10 @@ define <4 x i32> @phaddd3(<4 x i32> %x) {
ret <4 x i32> %r
}
-; SSSE3: phaddd4:
+; SSSE3-LABEL: phaddd4:
; SSSE3-NOT: vphaddd
; SSSE3: phaddd
-; AVX: phaddd4:
+; AVX-LABEL: phaddd4:
; AVX: vphaddd
define <4 x i32> @phaddd4(<4 x i32> %x) {
%a = shufflevector <4 x i32> %x, <4 x i32> undef, <4 x i32> <i32 0, i32 2, i32 undef, i32 undef>
@@ -73,10 +73,10 @@ define <4 x i32> @phaddd4(<4 x i32> %x) {
ret <4 x i32> %r
}
-; SSSE3: phaddd5:
+; SSSE3-LABEL: phaddd5:
; SSSE3-NOT: vphaddd
; SSSE3: phaddd
-; AVX: phaddd5:
+; AVX-LABEL: phaddd5:
; AVX: vphaddd
define <4 x i32> @phaddd5(<4 x i32> %x) {
%a = shufflevector <4 x i32> %x, <4 x i32> undef, <4 x i32> <i32 0, i32 3, i32 undef, i32 undef>
@@ -85,10 +85,10 @@ define <4 x i32> @phaddd5(<4 x i32> %x) {
ret <4 x i32> %r
}
-; SSSE3: phaddd6:
+; SSSE3-LABEL: phaddd6:
; SSSE3-NOT: vphaddd
; SSSE3: phaddd
-; AVX: phaddd6:
+; AVX-LABEL: phaddd6:
; AVX: vphaddd
define <4 x i32> @phaddd6(<4 x i32> %x) {
%a = shufflevector <4 x i32> %x, <4 x i32> undef, <4 x i32> <i32 0, i32 undef, i32 undef, i32 undef>
@@ -97,10 +97,10 @@ define <4 x i32> @phaddd6(<4 x i32> %x) {
ret <4 x i32> %r
}
-; SSSE3: phaddd7:
+; SSSE3-LABEL: phaddd7:
; SSSE3-NOT: vphaddd
; SSSE3: phaddd
-; AVX: phaddd7:
+; AVX-LABEL: phaddd7:
; AVX: vphaddd
define <4 x i32> @phaddd7(<4 x i32> %x) {
%a = shufflevector <4 x i32> %x, <4 x i32> undef, <4 x i32> <i32 undef, i32 3, i32 undef, i32 undef>
@@ -109,10 +109,10 @@ define <4 x i32> @phaddd7(<4 x i32> %x) {
ret <4 x i32> %r
}
-; SSSE3: phsubw1:
+; SSSE3-LABEL: phsubw1:
; SSSE3-NOT: vphsubw
; SSSE3: phsubw
-; AVX: phsubw1:
+; AVX-LABEL: phsubw1:
; AVX: vphsubw
define <8 x i16> @phsubw1(<8 x i16> %x, <8 x i16> %y) {
%a = shufflevector <8 x i16> %x, <8 x i16> %y, <8 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14>
@@ -121,10 +121,10 @@ define <8 x i16> @phsubw1(<8 x i16> %x, <8 x i16> %y) {
ret <8 x i16> %r
}
-; SSSE3: phsubd1:
+; SSSE3-LABEL: phsubd1:
; SSSE3-NOT: vphsubd
; SSSE3: phsubd
-; AVX: phsubd1:
+; AVX-LABEL: phsubd1:
; AVX: vphsubd
define <4 x i32> @phsubd1(<4 x i32> %x, <4 x i32> %y) {
%a = shufflevector <4 x i32> %x, <4 x i32> %y, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
@@ -133,10 +133,10 @@ define <4 x i32> @phsubd1(<4 x i32> %x, <4 x i32> %y) {
ret <4 x i32> %r
}
-; SSSE3: phsubd2:
+; SSSE3-LABEL: phsubd2:
; SSSE3-NOT: vphsubd
; SSSE3: phsubd
-; AVX: phsubd2:
+; AVX-LABEL: phsubd2:
; AVX: vphsubd
define <4 x i32> @phsubd2(<4 x i32> %x) {
%a = shufflevector <4 x i32> %x, <4 x i32> undef, <4 x i32> <i32 undef, i32 2, i32 4, i32 6>
@@ -145,10 +145,10 @@ define <4 x i32> @phsubd2(<4 x i32> %x) {
ret <4 x i32> %r
}
-; SSSE3: phsubd3:
+; SSSE3-LABEL: phsubd3:
; SSSE3-NOT: vphsubd
; SSSE3: phsubd
-; AVX: phsubd3:
+; AVX-LABEL: phsubd3:
; AVX: vphsubd
define <4 x i32> @phsubd3(<4 x i32> %x) {
%a = shufflevector <4 x i32> %x, <4 x i32> undef, <4 x i32> <i32 0, i32 2, i32 undef, i32 undef>
@@ -157,10 +157,10 @@ define <4 x i32> @phsubd3(<4 x i32> %x) {
ret <4 x i32> %r
}
-; SSSE3: phsubd4:
+; SSSE3-LABEL: phsubd4:
; SSSE3-NOT: vphsubd
; SSSE3: phsubd
-; AVX: phsubd4:
+; AVX-LABEL: phsubd4:
; AVX: vphsubd
define <4 x i32> @phsubd4(<4 x i32> %x) {
%a = shufflevector <4 x i32> %x, <4 x i32> undef, <4 x i32> <i32 0, i32 undef, i32 undef, i32 undef>
diff --git a/test/CodeGen/X86/phys_subreg_coalesce-3.ll b/test/CodeGen/X86/phys_subreg_coalesce-3.ll
index 2a20e7ad6f15c..6eb97c3cd7ab7 100644
--- a/test/CodeGen/X86/phys_subreg_coalesce-3.ll
+++ b/test/CodeGen/X86/phys_subreg_coalesce-3.ll
@@ -7,7 +7,7 @@
; 336L %vreg15<def> = SAR32rCL %vreg15, %EFLAGS<imp-def,dead>, %CL<imp-use,kill>; GR32:%vreg15
define void @foo(i32* nocapture %quadrant, i32* nocapture %ptr, i32 %bbSize, i32 %bbStart, i32 %shifts) nounwind ssp {
-; CHECK: foo:
+; CHECK-LABEL: foo:
entry:
%j.03 = add i32 %bbSize, -1 ; <i32> [#uses=2]
%0 = icmp sgt i32 %j.03, -1 ; <i1> [#uses=1]
diff --git a/test/CodeGen/X86/pic.ll b/test/CodeGen/X86/pic.ll
index fc0630991c9c4..7bb127eae930e 100644
--- a/test/CodeGen/X86/pic.ll
+++ b/test/CodeGen/X86/pic.ll
@@ -11,7 +11,7 @@ entry:
store i32 %tmp.s, i32* @dst
ret void
-; LINUX: test0:
+; LINUX-LABEL: test0:
; LINUX: calll .L0$pb
; LINUX-NEXT: .L0$pb:
; LINUX-NEXT: popl
@@ -33,7 +33,7 @@ entry:
store i32 %tmp.s, i32* @dst2
ret void
-; LINUX: test1:
+; LINUX-LABEL: test1:
; LINUX: calll .L1$pb
; LINUX-NEXT: .L1$pb:
; LINUX-NEXT: popl
@@ -51,7 +51,7 @@ define void @test2() nounwind {
entry:
%ptr = call i8* @malloc(i32 40)
ret void
-; LINUX: test2:
+; LINUX-LABEL: test2:
; LINUX: pushl %ebx
; LINUX-NEXT: subl $8, %esp
; LINUX-NEXT: calll .L2$pb
@@ -74,7 +74,7 @@ entry:
%tmp1 = load void(...)** @pfoo
call void(...)* %tmp1()
ret void
-; LINUX: test3:
+; LINUX-LABEL: test3:
; LINUX: calll .L3$pb
; LINUX-NEXT: .L3$pb:
; LINUX: popl
@@ -90,7 +90,7 @@ define void @test4() nounwind {
entry:
call void(...)* @foo()
ret void
-; LINUX: test4:
+; LINUX-LABEL: test4:
; LINUX: calll .L4$pb
; LINUX: popl %ebx
; LINUX: addl $_GLOBAL_OFFSET_TABLE_+(.L{{.*}}-.L4$pb), %ebx
@@ -111,7 +111,7 @@ entry:
store i32 %tmp.s, i32* @dst6
ret void
-; LINUX: test5:
+; LINUX-LABEL: test5:
; LINUX: calll .L5$pb
; LINUX-NEXT: .L5$pb:
; LINUX-NEXT: popl %eax
@@ -133,7 +133,7 @@ entry:
; LINUX: .LCPI6_0:
-; LINUX: test6:
+; LINUX-LABEL: test6:
; LINUX: calll .L6$pb
; LINUX: .L6$pb:
; LINUX: addl $_GLOBAL_OFFSET_TABLE_+(.L{{.*}}-.L6$pb),
@@ -185,7 +185,7 @@ bb12:
tail call void(...)* @foo6()
ret void
-; LINUX: test7:
+; LINUX-LABEL: test7:
; LINUX: calll .L7$pb
; LINUX: .L7$pb:
; LINUX: addl $_GLOBAL_OFFSET_TABLE_+(.L{{.*}}-.L7$pb),
diff --git a/test/CodeGen/X86/pmovext.ll b/test/CodeGen/X86/pmovext.ll
index 16e9c28fcdefe..f0e468f53cb33 100644
--- a/test/CodeGen/X86/pmovext.ll
+++ b/test/CodeGen/X86/pmovext.ll
@@ -2,7 +2,7 @@
; rdar://11897677
-;CHECK: intrin_pmov
+;CHECK-LABEL: intrin_pmov:
;CHECK: pmovzxbw (%{{.*}}), %xmm0
;CHECK-NEXT: movdqu
;CHECK-NEXT: ret
@@ -18,5 +18,28 @@ define void @intrin_pmov(i16* noalias %dest, i8* noalias %src) nounwind uwtable
}
declare <8 x i16> @llvm.x86.sse41.pmovzxbw(<16 x i8>) nounwind readnone
-
declare void @llvm.x86.sse2.storeu.dq(i8*, <16 x i8>) nounwind
+
+; rdar://15245794
+
+define <4 x i32> @foo0(double %v.coerce) nounwind ssp {
+; CHECK-LABEL: foo0
+; CHECK: pmovzxwd %xmm0, %xmm0
+; CHECK-NEXT: ret
+ %tmp = bitcast double %v.coerce to <4 x i16>
+ %tmp1 = shufflevector <4 x i16> %tmp, <4 x i16> undef, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef>
+ %tmp2 = tail call <4 x i32> @llvm.x86.sse41.pmovzxwd(<8 x i16> %tmp1) nounwind
+ ret <4 x i32> %tmp2
+}
+
+define <8 x i16> @foo1(double %v.coerce) nounwind ssp {
+; CHECK-LABEL: foo1
+; CHECK: pmovzxbw %xmm0, %xmm0
+; CHECK-NEXT: ret
+ %tmp = bitcast double %v.coerce to <8 x i8>
+ %tmp1 = shufflevector <8 x i8> %tmp, <8 x i8> undef, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
+ %tmp2 = tail call <8 x i16> @llvm.x86.sse41.pmovzxbw(<16 x i8> %tmp1)
+ ret <8 x i16> %tmp2
+}
+
+declare <4 x i32> @llvm.x86.sse41.pmovzxwd(<8 x i16>) nounwind readnone
diff --git a/test/CodeGen/X86/pmovsx-inreg.ll b/test/CodeGen/X86/pmovsx-inreg.ll
index d8c27f25043a6..07979f61ddd85 100644
--- a/test/CodeGen/X86/pmovsx-inreg.ll
+++ b/test/CodeGen/X86/pmovsx-inreg.ll
@@ -12,13 +12,13 @@ define void @test1(<2 x i8>* %in, <2 x i64>* %out) nounwind {
store <2 x i64> %sext, <2 x i64>* %out, align 8
ret void
-; SSE41: test1:
+; SSE41-LABEL: test1:
; SSE41: pmovsxbq
-; AVX1: test1:
+; AVX1-LABEL: test1:
; AVX1: vpmovsxbq
-; AVX2: test1:
+; AVX2-LABEL: test1:
; AVX2: vpmovsxbq
}
@@ -29,7 +29,7 @@ define void @test2(<4 x i8>* %in, <4 x i64>* %out) nounwind {
store <4 x i64> %sext, <4 x i64>* %out, align 8
ret void
-; AVX2: test2:
+; AVX2-LABEL: test2:
; AVX2: vpmovsxbq
}
@@ -40,13 +40,13 @@ define void @test3(<4 x i8>* %in, <4 x i32>* %out) nounwind {
store <4 x i32> %sext, <4 x i32>* %out, align 8
ret void
-; SSE41: test3:
+; SSE41-LABEL: test3:
; SSE41: pmovsxbd
-; AVX1: test3:
+; AVX1-LABEL: test3:
; AVX1: vpmovsxbd
-; AVX2: test3:
+; AVX2-LABEL: test3:
; AVX2: vpmovsxbd
}
@@ -57,7 +57,7 @@ define void @test4(<8 x i8>* %in, <8 x i32>* %out) nounwind {
store <8 x i32> %sext, <8 x i32>* %out, align 8
ret void
-; AVX2: test4:
+; AVX2-LABEL: test4:
; AVX2: vpmovsxbd
}
@@ -68,13 +68,13 @@ define void @test5(<8 x i8>* %in, <8 x i16>* %out) nounwind {
store <8 x i16> %sext, <8 x i16>* %out, align 8
ret void
-; SSE41: test5:
+; SSE41-LABEL: test5:
; SSE41: pmovsxbw
-; AVX1: test5:
+; AVX1-LABEL: test5:
; AVX1: vpmovsxbw
-; AVX2: test5:
+; AVX2-LABEL: test5:
; AVX2: vpmovsxbw
}
@@ -85,9 +85,8 @@ define void @test6(<16 x i8>* %in, <16 x i16>* %out) nounwind {
store <16 x i16> %sext, <16 x i16>* %out, align 8
ret void
-; AVX2: test6:
-; FIXME: v16i8 -> v16i16 is scalarized.
-; AVX2-NOT: pmovsx
+; AVX2-LABEL: test6:
+; AVX2: vpmovsxbw
}
define void @test7(<2 x i16>* %in, <2 x i64>* %out) nounwind {
@@ -98,13 +97,13 @@ define void @test7(<2 x i16>* %in, <2 x i64>* %out) nounwind {
ret void
-; SSE41: test7:
+; SSE41-LABEL: test7:
; SSE41: pmovsxwq
-; AVX1: test7:
+; AVX1-LABEL: test7:
; AVX1: vpmovsxwq
-; AVX2: test7:
+; AVX2-LABEL: test7:
; AVX2: vpmovsxwq
}
@@ -115,7 +114,7 @@ define void @test8(<4 x i16>* %in, <4 x i64>* %out) nounwind {
store <4 x i64> %sext, <4 x i64>* %out, align 8
ret void
-; AVX2: test8:
+; AVX2-LABEL: test8:
; AVX2: vpmovsxwq
}
@@ -126,13 +125,13 @@ define void @test9(<4 x i16>* %in, <4 x i32>* %out) nounwind {
store <4 x i32> %sext, <4 x i32>* %out, align 8
ret void
-; SSE41: test9:
+; SSE41-LABEL: test9:
; SSE41: pmovsxwd
-; AVX1: test9:
+; AVX1-LABEL: test9:
; AVX1: vpmovsxwd
-; AVX2: test9:
+; AVX2-LABEL: test9:
; AVX2: vpmovsxwd
}
@@ -143,7 +142,7 @@ define void @test10(<8 x i16>* %in, <8 x i32>* %out) nounwind {
store <8 x i32> %sext, <8 x i32>* %out, align 8
ret void
-; AVX2: test10:
+; AVX2-LABEL: test10:
; AVX2: vpmovsxwd
}
@@ -154,13 +153,13 @@ define void @test11(<2 x i32>* %in, <2 x i64>* %out) nounwind {
store <2 x i64> %sext, <2 x i64>* %out, align 8
ret void
-; SSE41: test11:
+; SSE41-LABEL: test11:
; SSE41: pmovsxdq
-; AVX1: test11:
+; AVX1-LABEL: test11:
; AVX1: vpmovsxdq
-; AVX2: test11:
+; AVX2-LABEL: test11:
; AVX2: vpmovsxdq
}
@@ -171,6 +170,6 @@ define void @test12(<4 x i32>* %in, <4 x i64>* %out) nounwind {
store <4 x i64> %sext, <4 x i64>* %out, align 8
ret void
-; AVX2: test12:
+; AVX2-LABEL: test12:
; AVX2: vpmovsxdq
}
diff --git a/test/CodeGen/X86/pmul.ll b/test/CodeGen/X86/pmul.ll
index da4af81959dc2..7bf8a618fa772 100644
--- a/test/CodeGen/X86/pmul.ll
+++ b/test/CodeGen/X86/pmul.ll
@@ -1,6 +1,6 @@
-; RUN: llc < %s -march=x86 -mattr=sse41 -mcpu=nehalem -stack-alignment=16 > %t
+; RUN: llc < %s -march=x86 -mattr=sse4.1 -mcpu=nehalem -stack-alignment=16 > %t
; RUN: grep pmul %t | count 12
-; RUN: grep mov %t | count 11
+; RUN: grep mov %t | count 14
define <4 x i32> @a(<4 x i32> %i) nounwind {
%A = mul <4 x i32> %i, < i32 117, i32 117, i32 117, i32 117 >
diff --git a/test/CodeGen/X86/pmulld.ll b/test/CodeGen/X86/pmulld.ll
index be527aed9a986..3db0f73954d7b 100644
--- a/test/CodeGen/X86/pmulld.ll
+++ b/test/CodeGen/X86/pmulld.ll
@@ -1,11 +1,11 @@
-; RUN: llc < %s -mtriple=x86_64-linux -mattr=+sse41 -asm-verbose=0 | FileCheck %s
-; RUN: llc < %s -mtriple=x86_64-win32 -mattr=+sse41 -asm-verbose=0 | FileCheck %s -check-prefix=WIN64
+; RUN: llc < %s -mtriple=x86_64-linux -mattr=+sse4.1 -asm-verbose=0 | FileCheck %s
+; RUN: llc < %s -mtriple=x86_64-win32 -mattr=+sse4.1 -asm-verbose=0 | FileCheck %s -check-prefix=WIN64
define <4 x i32> @test1(<4 x i32> %A, <4 x i32> %B) nounwind {
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK-NEXT: pmulld
-; WIN64: test1:
+; WIN64-LABEL: test1:
; WIN64-NEXT: movdqa (%rcx), %xmm0
; WIN64-NEXT: pmulld (%rdx), %xmm0
%C = mul <4 x i32> %A, %B
@@ -13,10 +13,10 @@ define <4 x i32> @test1(<4 x i32> %A, <4 x i32> %B) nounwind {
}
define <4 x i32> @test1a(<4 x i32> %A, <4 x i32> *%Bp) nounwind {
-; CHECK: test1a:
+; CHECK-LABEL: test1a:
; CHECK-NEXT: pmulld
-; WIN64: test1a:
+; WIN64-LABEL: test1a:
; WIN64-NEXT: movdqa (%rcx), %xmm0
; WIN64-NEXT: pmulld (%rdx), %xmm0
diff --git a/test/CodeGen/X86/popcnt.ll b/test/CodeGen/X86/popcnt.ll
index 430214c73b138..e9350de101f6a 100644
--- a/test/CodeGen/X86/popcnt.ll
+++ b/test/CodeGen/X86/popcnt.ll
@@ -3,7 +3,7 @@
define i8 @cnt8(i8 %x) nounwind readnone {
%cnt = tail call i8 @llvm.ctpop.i8(i8 %x)
ret i8 %cnt
-; CHECK: cnt8:
+; CHECK-LABEL: cnt8:
; CHECK: popcntw
; CHECK: ret
}
@@ -11,7 +11,7 @@ define i8 @cnt8(i8 %x) nounwind readnone {
define i16 @cnt16(i16 %x) nounwind readnone {
%cnt = tail call i16 @llvm.ctpop.i16(i16 %x)
ret i16 %cnt
-; CHECK: cnt16:
+; CHECK-LABEL: cnt16:
; CHECK: popcntw
; CHECK: ret
}
@@ -19,7 +19,7 @@ define i16 @cnt16(i16 %x) nounwind readnone {
define i32 @cnt32(i32 %x) nounwind readnone {
%cnt = tail call i32 @llvm.ctpop.i32(i32 %x)
ret i32 %cnt
-; CHECK: cnt32:
+; CHECK-LABEL: cnt32:
; CHECK: popcntl
; CHECK: ret
}
@@ -27,7 +27,7 @@ define i32 @cnt32(i32 %x) nounwind readnone {
define i64 @cnt64(i64 %x) nounwind readnone {
%cnt = tail call i64 @llvm.ctpop.i64(i64 %x)
ret i64 %cnt
-; CHECK: cnt64:
+; CHECK-LABEL: cnt64:
; CHECK: popcntq
; CHECK: ret
}
diff --git a/test/CodeGen/X86/postra-licm.ll b/test/CodeGen/X86/postra-licm.ll
index 01d6cbef1ee56..946b8362122df 100644
--- a/test/CodeGen/X86/postra-licm.ll
+++ b/test/CodeGen/X86/postra-licm.ll
@@ -16,7 +16,7 @@
@.str24 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=1]
define i32 @t1(i32 %c, i8** nocapture %v) nounwind ssp {
-; X86-32: t1:
+; X86-32-LABEL: t1:
entry:
br i1 undef, label %bb, label %bb3
@@ -146,7 +146,7 @@ declare i32 @strcmp(i8* nocapture, i8* nocapture) nounwind readonly
@map_4_to_16 = external constant [16 x i16], align 32 ; <[16 x i16]*> [#uses=2]
define void @t2(i8* nocapture %bufp, i8* nocapture %data, i32 %dsize) nounwind ssp {
-; X86-64: t2:
+; X86-64-LABEL: t2:
entry:
br i1 undef, label %return, label %bb.nph
diff --git a/test/CodeGen/X86/pr10523.ll b/test/CodeGen/X86/pr10523.ll
index 7191d6949c183..0ec22a08e4401 100644
--- a/test/CodeGen/X86/pr10523.ll
+++ b/test/CodeGen/X86/pr10523.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86-64 -mattr=+sse2,+sse41
+; RUN: llc < %s -march=x86-64 -mattr=+sse2,+sse4.1
; No check in a crash test
diff --git a/test/CodeGen/X86/pr10524.ll b/test/CodeGen/X86/pr10524.ll
index ed3e7c5280520..12bdba9fa595b 100644
--- a/test/CodeGen/X86/pr10524.ll
+++ b/test/CodeGen/X86/pr10524.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86-64 -mattr=+sse2,+sse41
+; RUN: llc < %s -march=x86-64 -mattr=+sse2,+sse4.1
; No check in a crash test
diff --git a/test/CodeGen/X86/pr10525.ll b/test/CodeGen/X86/pr10525.ll
index 342c1d63e192b..30ce2979e8e1e 100644
--- a/test/CodeGen/X86/pr10525.ll
+++ b/test/CodeGen/X86/pr10525.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86-64 -mattr=+sse2,+sse41
+; RUN: llc < %s -march=x86-64 -mattr=+sse2,+sse4.1
; No check in a crash test
diff --git a/test/CodeGen/X86/pr10526.ll b/test/CodeGen/X86/pr10526.ll
index 6963fe515898d..9fa83ce17b553 100644
--- a/test/CodeGen/X86/pr10526.ll
+++ b/test/CodeGen/X86/pr10526.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86-64 -mattr=+sse2,+sse41
+; RUN: llc < %s -march=x86-64 -mattr=+sse2,+sse4.1
; No check in a crash test
diff --git a/test/CodeGen/X86/pr12312.ll b/test/CodeGen/X86/pr12312.ll
index 087b8d7539ec8..81aaf91f26887 100644
--- a/test/CodeGen/X86/pr12312.ll
+++ b/test/CodeGen/X86/pr12312.ll
@@ -1,4 +1,4 @@
-; RUN: llc -mtriple=x86_64-unknown-unknown -mattr=+sse41,-avx < %s | FileCheck %s --check-prefix SSE41
+; RUN: llc -mtriple=x86_64-unknown-unknown -mattr=+sse4.1,-avx < %s | FileCheck %s --check-prefix SSE41
; RUN: llc -mtriple=x86_64-unknown-unknown -mattr=+avx,-avx2 < %s | FileCheck %s --check-prefix AVX
define i32 @veccond128(<4 x i32> %input) {
diff --git a/test/CodeGen/X86/pr12360.ll b/test/CodeGen/X86/pr12360.ll
index f29e50e29a3b7..8b30596cd8ac1 100644
--- a/test/CodeGen/X86/pr12360.ll
+++ b/test/CodeGen/X86/pr12360.ll
@@ -1,7 +1,7 @@
; RUN: llc < %s -mtriple=x86_64-apple-darwin | FileCheck %s
define zeroext i1 @f1(i8* %x) {
-; CHECK: f1:
+; CHECK-LABEL: f1:
; CHECK: movb (%rdi), %al
; CHECK-NEXT: ret
@@ -12,7 +12,7 @@ entry:
}
define zeroext i1 @f2(i8* %x) {
-; CHECK: f2:
+; CHECK-LABEL: f2:
; CHECK: movb (%rdi), %al
; CHECK-NEXT: ret
@@ -27,7 +27,7 @@ entry:
; check that we don't build a "trunc" from i1 to i1, which would assert.
define zeroext i1 @f3(i1 %x) {
-; CHECK: f3:
+; CHECK-LABEL: f3:
entry:
%tobool = icmp ne i1 %x, 0
@@ -36,7 +36,7 @@ entry:
; check that we don't build a trunc when other bits are needed
define zeroext i1 @f4(i32 %x) {
-; CHECK: f4:
+; CHECK-LABEL: f4:
; CHECK: and
entry:
diff --git a/test/CodeGen/X86/pr13209.ll b/test/CodeGen/X86/pr13209.ll
index 1c93163659596..8e5eca2b2c217 100644
--- a/test/CodeGen/X86/pr13209.ll
+++ b/test/CodeGen/X86/pr13209.ll
@@ -1,6 +1,6 @@
; RUN: llc < %s -mtriple=x86_64-pc-linux | FileCheck %s
-; CHECK: pr13209:
+; CHECK-LABEL: pr13209:
; CHECK-NOT: mov
; CHECK: .size pr13209
diff --git a/test/CodeGen/X86/pr14088.ll b/test/CodeGen/X86/pr14088.ll
index 505e3b5cf262a..16f20d0500a12 100644
--- a/test/CodeGen/X86/pr14088.ll
+++ b/test/CodeGen/X86/pr14088.ll
@@ -19,7 +19,14 @@ return:
ret i32 %retval.0
}
-; We were miscompiling this and using %ax instead of %cx in the movw.
-; CHECK: movswl %cx, %ecx
-; CHECK: movw %cx, (%rsi)
-; CHECK: movslq %ecx, %rcx
+; We were miscompiling this and using %ax instead of %cx in the movw
+; in the following sequence:
+; movswl %cx, %ecx
+; movw %cx, (%rsi)
+; movslq %ecx, %rcx
+;
+; We can't produce the above sequence without special SD-level
+; heuristics. Now we produce this:
+; CHECK: movw %ax, (%rsi)
+; CHECK: cwtl
+; CHECK: cltq
diff --git a/test/CodeGen/X86/pr14090.ll b/test/CodeGen/X86/pr14090.ll
index d76b912fd8e2b..2f7c720386be9 100644
--- a/test/CodeGen/X86/pr14090.ll
+++ b/test/CodeGen/X86/pr14090.ll
@@ -48,11 +48,11 @@ entry:
%fifteen = bitcast i64* %retval.i.i to i32**
%sixteen = bitcast i64* %retval.i.i to i8*
call void @llvm.lifetime.start(i64 8, i8* %sixteen)
- store i32* %.ph.i80, i32** %fifteen, align 8, !tbaa !0
+ store i32* %.ph.i80, i32** %fifteen, align 8
%sunkaddr = ptrtoint i64* %retval.i.i to i32
%sunkaddr86 = add i32 %sunkaddr, 4
%sunkaddr87 = inttoptr i32 %sunkaddr86 to i32*
- store i32 %fourteen, i32* %sunkaddr87, align 4, !tbaa !3
+ store i32 %fourteen, i32* %sunkaddr87, align 4
%seventeen = load i64* %retval.i.i, align 8
call void @llvm.lifetime.end(i64 8, i8* %sixteen)
%eighteen = lshr i64 %seventeen, 32
@@ -68,9 +68,3 @@ entry:
declare void @llvm.lifetime.start(i64, i8* nocapture) nounwind
declare void @llvm.lifetime.end(i64, i8* nocapture) nounwind
-
-!0 = metadata !{metadata !"int", metadata !1}
-!1 = metadata !{metadata !"omnipotent char", metadata !2}
-!2 = metadata !{metadata !"Simple C/C++ TBAA"}
-!3 = metadata !{metadata !"any pointer", metadata !1}
-!4 = metadata !{metadata !"vtable pointer", metadata !2}
diff --git a/test/CodeGen/X86/pr1505b.ll b/test/CodeGen/X86/pr1505b.ll
index 9b0ef83ab0421..c348fec546744 100644
--- a/test/CodeGen/X86/pr1505b.ll
+++ b/test/CodeGen/X86/pr1505b.ll
@@ -57,11 +57,10 @@ entry:
%tmp22 = tail call %"struct.std::basic_ostream<char,std::char_traits<char> >"* @_ZNSolsEd( %"struct.std::basic_ostream<char,std::char_traits<char> >"* %tmp16, double %tmp1920 ) ; <%"struct.std::basic_ostream<char,std::char_traits<char> >"*> [#uses=1]
%tmp30 = tail call %"struct.std::basic_ostream<char,std::char_traits<char> >"* @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_( %"struct.std::basic_ostream<char,std::char_traits<char> >"* %tmp22 ) ; <%"struct.std::basic_ostream<char,std::char_traits<char> >"*> [#uses=0]
; reload:
-; CHECK: fld
-; CHECK: fstps
; CHECK: ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
%tmp34 = tail call %"struct.std::basic_ostream<char,std::char_traits<char> >"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc( %"struct.std::basic_ostream<char,std::char_traits<char> >"* @_ZSt4cout, i8* getelementptr ([13 x i8]* @.str1, i32 0, i32 0) ) ; <%"struct.std::basic_ostream<char,std::char_traits<char> >"*> [#uses=1]
%tmp3940 = fpext float %tmp1314 to double ; <double> [#uses=1]
+; CHECK: fld
; CHECK: fstpl
; CHECK: ZNSolsEd
%tmp42 = tail call %"struct.std::basic_ostream<char,std::char_traits<char> >"* @_ZNSolsEd( %"struct.std::basic_ostream<char,std::char_traits<char> >"* %tmp34, double %tmp3940 ) ; <%"struct.std::basic_ostream<char,std::char_traits<char> >"*> [#uses=1]
diff --git a/test/CodeGen/X86/pr16031.ll b/test/CodeGen/X86/pr16031.ll
new file mode 100644
index 0000000000000..ecf6218aeb386
--- /dev/null
+++ b/test/CodeGen/X86/pr16031.ll
@@ -0,0 +1,27 @@
+; RUN: llc < %s -mtriple=i386-unknown-linux-gnu -mcpu=corei7-avx -enable-misched=false | FileCheck %s
+
+; CHECK-LABEL: main:
+; CHECK: pushl %esi
+; CHECK-NEXT: movl $-12, %eax
+; CHECK-NEXT: movl $-1, %edx
+; CHECK-NEXT: testb $1, 8(%esp)
+; CHECK-NEXT: cmovel %edx, %eax
+; CHECK-NEXT: xorl %ecx, %ecx
+; CHECK-NEXT: movl %eax, %esi
+; CHECK-NEXT: addl $-1, %esi
+; CHECK-NEXT: movl $-1, %esi
+; CHECK-NEXT: adcl $-1, %esi
+; CHECK-NEXT: cmovsl %ecx, %eax
+; CHECK-NEXT: cmovsl %ecx, %edx
+; CHECK-NEXT: popl %esi
+define i64 @main(i1 %tobool1) nounwind {
+entry:
+ %0 = zext i1 %tobool1 to i32
+ %. = xor i32 %0, 1
+ %.21 = select i1 %tobool1, i32 -12, i32 -1
+ %conv = sext i32 %.21 to i64
+ %1 = add i64 %conv, -1
+ %cmp10 = icmp slt i64 %1, 0
+ %sub17 = select i1 %cmp10, i64 0, i64 %conv
+ ret i64 %sub17
+}
diff --git a/test/CodeGen/X86/pr16360.ll b/test/CodeGen/X86/pr16360.ll
new file mode 100644
index 0000000000000..1f73a4d43600a
--- /dev/null
+++ b/test/CodeGen/X86/pr16360.ll
@@ -0,0 +1,16 @@
+; RUN: llc < %s -mcpu=pentium4 -mtriple=i686-pc-linux | FileCheck %s
+
+define i64 @foo(i32 %sum) {
+entry:
+ %conv = sext i32 %sum to i64
+ %shr = lshr i64 %conv, 2
+ %or = or i64 4611686018360279040, %shr
+ ret i64 %or
+}
+
+; CHECK: foo
+; CHECK: shrl $2
+; CHECK: orl $-67108864
+; CHECK-NOT: movl $-1
+; CHECK: movl $1073741823
+; CHECK: ret
diff --git a/test/CodeGen/X86/pr16807.ll b/test/CodeGen/X86/pr16807.ll
new file mode 100644
index 0000000000000..6d55d99a6ac44
--- /dev/null
+++ b/test/CodeGen/X86/pr16807.ll
@@ -0,0 +1,18 @@
+; RUN: llc < %s -mtriple=x86_64-linux-gnu -mcpu=core-avx-i | FileCheck %s
+
+define <16 x i16> @f_fu(<16 x i16> %bf) {
+allocas:
+ %avg.i.i = sdiv <16 x i16> %bf, <i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4>
+ ret <16 x i16> %avg.i.i
+}
+
+; CHECK: f_fu
+; CHECK: psraw
+; CHECK: psrlw
+; CHECK: paddw
+; CHECK: psraw
+; CHECK: psraw
+; CHECK: psrlw
+; CHECK: paddw
+; CHECK: psraw
+; CHECK: ret
diff --git a/test/CodeGen/X86/pr17546.ll b/test/CodeGen/X86/pr17546.ll
new file mode 100644
index 0000000000000..174fa5ca3fcfb
--- /dev/null
+++ b/test/CodeGen/X86/pr17546.ll
@@ -0,0 +1,10 @@
+; RUN: llc < %s -mtriple=x86_64-linux-gnu -mcpu=core-avx2 | FileCheck %s
+
+define i32 @f_f___un_3C_unf_3E_un_3C_unf_3E_(<8 x i32> %__mask, i64 %BBBB) {
+ %QQQ = trunc i64 %BBBB to i32
+ %1 = extractelement <8 x i32> %__mask, i32 %QQQ
+ ret i32 %1
+}
+
+; CHECK: f_f___un_3C_unf_3E_un_3C_unf_3E_
+; CHECK: ret
diff --git a/test/CodeGen/X86/pr17631.ll b/test/CodeGen/X86/pr17631.ll
new file mode 100644
index 0000000000000..98f951f1b10c5
--- /dev/null
+++ b/test/CodeGen/X86/pr17631.ll
@@ -0,0 +1,34 @@
+; RUN: llc < %s -mcpu=core-avx-i -mtriple=i386-pc-win32 | FileCheck %s
+
+%struct_type = type { [64 x <8 x float>], <8 x float> }
+
+; Function Attrs: nounwind readnone
+declare i32 @llvm.x86.avx.movmsk.ps.256(<8 x float>)
+
+; Function Attrs: nounwind
+define i32 @equal(<8 x i32> %A) {
+allocas:
+ %first_alloc = alloca [64 x <8 x i32>]
+ %second_alloc = alloca %struct_type
+
+ %A1 = bitcast <8 x i32> %A to <8 x float>
+ %A2 = call i32 @llvm.x86.avx.movmsk.ps.256(<8 x float> %A1)
+ ret i32 %A2
+}
+
+; CHECK: equal
+; CHECK-NOT: vzeroupper
+; CHECK: _chkstk
+; CHECK: ret
+
+define <8 x float> @foo(<8 x float> %y, i64* %p, double %x) {
+ %i = fptoui double %x to i64
+ store i64 %i, i64* %p
+ %ret = fadd <8 x float> %y, %y
+ ret <8 x float> %ret
+}
+
+; CHECK: foo
+; CHECK-NOT: vzeroupper
+; CHECK: _ftol2
+; CHECK: ret
diff --git a/test/CodeGen/X86/pr17764.ll b/test/CodeGen/X86/pr17764.ll
new file mode 100644
index 0000000000000..7a3fd6d1810bd
--- /dev/null
+++ b/test/CodeGen/X86/pr17764.ll
@@ -0,0 +1,10 @@
+; RUN: llc < %s -mtriple=x86_64-linux -mcpu=core-avx2 | FileCheck %s
+
+define <16 x i16> @foo(<16 x i1> %mask, <16 x i16> %x, <16 x i16> %y) {
+ %ret = select <16 x i1> %mask, <16 x i16> %x, <16 x i16> %y
+ ret <16 x i16> %ret
+}
+
+; CHECK: foo
+; CHECK: vpblendvb %ymm0, %ymm1, %ymm2, %ymm0
+; CHECK: ret
diff --git a/test/CodeGen/X86/pr18014.ll b/test/CodeGen/X86/pr18014.ll
new file mode 100644
index 0000000000000..e3860b88bf4fd
--- /dev/null
+++ b/test/CodeGen/X86/pr18014.ll
@@ -0,0 +1,16 @@
+; RUN: llc < %s -mtriple=x86_64-linux-pc -mcpu=penryn | FileCheck %s
+
+; Ensure PSRAD is generated as the condition is consumed by both PADD and
+; BLENDVPS. PAND requires all bits setting properly.
+
+define <4 x i32> @foo(<4 x i32>* %p, <4 x i1> %cond, <4 x i32> %v1, <4 x i32> %v2, <4 x i32> %v3) {
+ %sext_cond = sext <4 x i1> %cond to <4 x i32>
+ %t1 = add <4 x i32> %v1, %sext_cond
+ %t2 = select <4 x i1> %cond, <4 x i32> %v1, <4 x i32> %v2
+ store <4 x i32> %t2, <4 x i32>* %p
+ ret <4 x i32> %t1
+; CHECK: foo
+; CHECK: pslld
+; CHECK: psrad
+; CHECK: ret
+}
diff --git a/test/CodeGen/X86/pr18023.ll b/test/CodeGen/X86/pr18023.ll
new file mode 100644
index 0000000000000..4c6f8cfce7328
--- /dev/null
+++ b/test/CodeGen/X86/pr18023.ll
@@ -0,0 +1,31 @@
+; RUN: llc < %s -mtriple x86_64-apple-macosx10.9.0 | FileCheck %s
+; PR18023
+
+; CHECK: movabsq $4294967296, %rcx
+; CHECK: movq %rcx, (%rax)
+; CHECK: movl $1, 4(%rax)
+; CHECK: movl $0, 4(%rax)
+; CHECK: movq $1, 4(%rax)
+
+@c = common global i32 0, align 4
+@a = common global [3 x i32] zeroinitializer, align 4
+@b = common global i32 0, align 4
+@.str = private unnamed_addr constant [4 x i8] c"%d\0A\00", align 1
+
+define void @func() {
+ store i32 1, i32* getelementptr inbounds ([3 x i32]* @a, i64 0, i64 1), align 4
+ store i32 0, i32* getelementptr inbounds ([3 x i32]* @a, i64 0, i64 0), align 4
+ %1 = load volatile i32* @b, align 4
+ store i32 1, i32* getelementptr inbounds ([3 x i32]* @a, i64 0, i64 1), align 4
+ store i32 0, i32* getelementptr inbounds ([3 x i32]* @a, i64 0, i64 1), align 4
+ %2 = load volatile i32* @b, align 4
+ store i32 1, i32* getelementptr inbounds ([3 x i32]* @a, i64 0, i64 1), align 4
+ store i32 0, i32* getelementptr inbounds ([3 x i32]* @a, i64 0, i64 2), align 4
+ %3 = load volatile i32* @b, align 4
+ store i32 3, i32* @c, align 4
+ %4 = load i32* getelementptr inbounds ([3 x i32]* @a, i64 0, i64 1), align 4
+ %call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([4 x i8]* @.str, i64 0, i64 0), i32 %4)
+ ret void
+}
+
+declare i32 @printf(i8*, ...)
diff --git a/test/CodeGen/X86/pr18054.ll b/test/CodeGen/X86/pr18054.ll
new file mode 100644
index 0000000000000..b7af516180479
--- /dev/null
+++ b/test/CodeGen/X86/pr18054.ll
@@ -0,0 +1,10 @@
+; RUN: llc < %s -mtriple=x86_64-pc-linux -mcpu=penryn | FileCheck %s
+
+define void @foo(<16 x i32>* %p, <16 x i1> %x) {
+ %ret = sext <16 x i1> %x to <16 x i32>
+ store <16 x i32> %ret, <16 x i32>* %p
+ ret void
+; CHECK: foo
+; CHECK-NOT: pmovsxbd
+; CHECK: ret
+}
diff --git a/test/CodeGen/X86/pr18162.ll b/test/CodeGen/X86/pr18162.ll
new file mode 100644
index 0000000000000..523e47db5eeeb
--- /dev/null
+++ b/test/CodeGen/X86/pr18162.ll
@@ -0,0 +1,27 @@
+; RUN: llc < %s
+
+; Make sure we are not crashing on this one.
+
+target triple = "x86_64-unknown-linux-gnu"
+
+%"Iterator" = type { i32* }
+
+declare { i64, <2 x float> } @Call()
+declare { i64, <2 x float> }* @CallPtr()
+
+define { i64, <2 x float> } @Foo(%"Iterator"* %this) {
+entry:
+ %retval = alloca i32
+ %this.addr = alloca %"Iterator"*
+ %this1 = load %"Iterator"** %this.addr
+ %bundle_ = getelementptr inbounds %"Iterator"* %this1, i32 0, i32 0
+ %0 = load i32** %bundle_
+ %1 = call { i64, <2 x float> } @Call()
+ %2 = call { i64, <2 x float> }* @CallPtr()
+ %3 = getelementptr { i64, <2 x float> }* %2, i32 0, i32 1
+ %4 = extractvalue { i64, <2 x float> } %1, 1
+ store <2 x float> %4, <2 x float>* %3
+ %5 = load { i64, <2 x float> }* %2
+ ret { i64, <2 x float> } %5
+}
+
diff --git a/test/CodeGen/X86/pr2182.ll b/test/CodeGen/X86/pr2182.ll
index 02a36054d88cd..94429b265d979 100644
--- a/test/CodeGen/X86/pr2182.ll
+++ b/test/CodeGen/X86/pr2182.ll
@@ -7,7 +7,7 @@ target triple = "i386-apple-darwin8"
@x = weak global i32 0 ; <i32*> [#uses=8]
define void @loop_2() nounwind {
-; CHECK: loop_2:
+; CHECK-LABEL: loop_2:
; CHECK-NOT: ret
; CHECK: addl $3, (%{{.*}})
; CHECK-NEXT: addl $3, (%{{.*}})
diff --git a/test/CodeGen/X86/pr3216.ll b/test/CodeGen/X86/pr3216.ll
index 63676d9d2ce1b..a4a48210d358b 100644
--- a/test/CodeGen/X86/pr3216.ll
+++ b/test/CodeGen/X86/pr3216.ll
@@ -3,7 +3,7 @@
@foo = global i8 127
define i32 @main() nounwind {
-; CHECK: main:
+; CHECK-LABEL: main:
; CHECK-NOT: ret
; CHECK: sar{{.}} $5
; CHECK: ret
diff --git a/test/CodeGen/X86/pr3457.ll b/test/CodeGen/X86/pr3457.ll
index f7af927d61364..7264bcd12c42a 100644
--- a/test/CodeGen/X86/pr3457.ll
+++ b/test/CodeGen/X86/pr3457.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -mtriple=i386-apple-darwin | not grep fstpt
+; RUN: llc < %s -mtriple=i386-apple-darwin -mcpu=corei7 | not grep fstpt
; PR3457
; rdar://6548010
diff --git a/test/CodeGen/X86/pre-ra-sched.ll b/test/CodeGen/X86/pre-ra-sched.ll
index b792ffa09fb94..70135d43f49b3 100644
--- a/test/CodeGen/X86/pre-ra-sched.ll
+++ b/test/CodeGen/X86/pre-ra-sched.ll
@@ -1,5 +1,6 @@
-; RUN: llc < %s -mtriple=x86_64-apple-macosx -debug-only=pre-RA-sched \
-; RUN: 2>&1 | FileCheck %s
+; RUN-disabled: llc < %s -mtriple=x86_64-apple-macosx -pre-RA-sched=ilp -debug-only=pre-RA-sched \
+; RUN-disabled: 2>&1 | FileCheck %s
+; RUN: true
; REQUIRES: asserts
;
; rdar:13279013: pre-RA-sched should not check all interferences and
diff --git a/test/CodeGen/X86/prefetch.ll b/test/CodeGen/X86/prefetch.ll
index efb51913c5c1f..d6571acbbb7e0 100644
--- a/test/CodeGen/X86/prefetch.ll
+++ b/test/CodeGen/X86/prefetch.ll
@@ -1,6 +1,9 @@
; RUN: llc < %s -march=x86 -mattr=+sse | FileCheck %s
; RUN: llc < %s -march=x86 -mattr=+avx | FileCheck %s
; RUN: llc < %s -march=x86 -mattr=+sse -mattr=+prfchw | FileCheck %s -check-prefix=PRFCHW
+; RUN: llc < %s -march=x86 -mcpu=slm | FileCheck %s -check-prefix=SLM
+; RUN: llc < %s -march=x86 -mcpu=btver2 | FileCheck %s -check-prefix=PRFCHW
+; RUN: llc < %s -march=x86 -mcpu=btver2 -mattr=-prfchw | FileCheck %s -check-prefix=NOPRFCHW
; rdar://10538297
@@ -11,6 +14,8 @@ entry:
; CHECK: prefetcht0
; CHECK: prefetchnta
; PRFCHW: prefetchw
+; NOPRFCHW-NOT: prefetchw
+; SLM: prefetchw
tail call void @llvm.prefetch( i8* %ptr, i32 0, i32 1, i32 1 )
tail call void @llvm.prefetch( i8* %ptr, i32 0, i32 2, i32 1 )
tail call void @llvm.prefetch( i8* %ptr, i32 0, i32 3, i32 1 )
diff --git a/test/CodeGen/X86/prefixdata.ll b/test/CodeGen/X86/prefixdata.ll
new file mode 100644
index 0000000000000..2ec1892dd183a
--- /dev/null
+++ b/test/CodeGen/X86/prefixdata.ll
@@ -0,0 +1,17 @@
+; RUN: llc < %s -mtriple=x86_64-unknown-unknown | FileCheck %s
+
+@i = linkonce_odr global i32 1
+
+; CHECK: f:
+; CHECK-NEXT: .cfi_startproc
+; CHECK-NEXT: .long 1
+define void @f() prefix i32 1 {
+ ret void
+}
+
+; CHECK: g:
+; CHECK-NEXT: .cfi_startproc
+; CHECK-NEXT: .quad i
+define void @g() prefix i32* @i {
+ ret void
+}
diff --git a/test/CodeGen/X86/private.ll b/test/CodeGen/X86/private.ll
index 484afc9b5af37..c02d19319a498 100644
--- a/test/CodeGen/X86/private.ll
+++ b/test/CodeGen/X86/private.ll
@@ -1,18 +1,22 @@
; Test to make sure that the 'private' is used correctly.
;
-; RUN: llc < %s -mtriple=x86_64-pc-linux | grep .Lfoo:
-; RUN: llc < %s -mtriple=x86_64-pc-linux | grep call.*\.Lfoo
-; RUN: llc < %s -mtriple=x86_64-pc-linux | grep .Lbaz:
-; RUN: llc < %s -mtriple=x86_64-pc-linux | grep movl.*\.Lbaz
+; RUN: llc < %s -mtriple=x86_64-pc-linux | FileCheck %s
define private void @foo() {
ret void
-}
-@baz = private global i32 4
+; CHECK: .Lfoo:
+}
define i32 @bar() {
call void @foo()
%1 = load i32* @baz, align 4
ret i32 %1
+
+; CHECK-LABEL: bar:
+; CHECK: callq .Lfoo
+; CHECK: movl .Lbaz(%rip)
}
+
+@baz = private global i32 4
+; CHECK: .Lbaz:
diff --git a/test/CodeGen/X86/promote-i16.ll b/test/CodeGen/X86/promote-i16.ll
index 3c91d740c86d4..963bc1c2927a2 100644
--- a/test/CodeGen/X86/promote-i16.ll
+++ b/test/CodeGen/X86/promote-i16.ll
@@ -2,7 +2,7 @@
define signext i16 @foo(i16 signext %x) nounwind {
entry:
-; CHECK: foo:
+; CHECK-LABEL: foo:
; CHECK-NOT: movzwl
; CHECK: movswl 4(%esp), %eax
; CHECK: xorl $21998, %eax
@@ -12,7 +12,7 @@ entry:
define signext i16 @bar(i16 signext %x) nounwind {
entry:
-; CHECK: bar:
+; CHECK-LABEL: bar:
; CHECK-NOT: movzwl
; CHECK: movswl 4(%esp), %eax
; CHECK: xorl $-10770, %eax
diff --git a/test/CodeGen/X86/rd-mod-wr-eflags.ll b/test/CodeGen/X86/rd-mod-wr-eflags.ll
index 0bf601bc1c421..5089bd761a80d 100644
--- a/test/CodeGen/X86/rd-mod-wr-eflags.ll
+++ b/test/CodeGen/X86/rd-mod-wr-eflags.ll
@@ -179,7 +179,7 @@ return:
define void @test3() nounwind ssp {
entry:
-; CHECK: test3:
+; CHECK-LABEL: test3:
; CHECK: decq 16(%rax)
%0 = load i64** @foo, align 8
%arrayidx = getelementptr inbounds i64* %0, i64 2
diff --git a/test/CodeGen/X86/rdrand.ll b/test/CodeGen/X86/rdrand.ll
index 98f4077763816..48182d029eb2a 100644
--- a/test/CodeGen/X86/rdrand.ll
+++ b/test/CodeGen/X86/rdrand.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86-64 -mcpu=core-avx-i -mattr=+rdrand | FileCheck %s
+; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mcpu=core-avx-i -mattr=+rdrnd | FileCheck %s
declare {i16, i32} @llvm.x86.rdrand.16()
declare {i32, i32} @llvm.x86.rdrand.32()
declare {i64, i32} @llvm.x86.rdrand.64()
@@ -9,12 +9,12 @@ define i32 @_rdrand16_step(i16* %random_val) {
store i16 %randval, i16* %random_val
%isvalid = extractvalue {i16, i32} %call, 1
ret i32 %isvalid
-; CHECK: _rdrand16_step:
+; CHECK-LABEL: _rdrand16_step:
; CHECK: rdrandw %ax
-; CHECK: movw %ax, (%r[[A0:di|cx]])
; CHECK: movzwl %ax, %ecx
; CHECK: movl $1, %eax
; CHECK: cmovael %ecx, %eax
+; CHECK: movw %cx, (%r[[A0:di|cx]])
; CHECK: ret
}
@@ -24,11 +24,11 @@ define i32 @_rdrand32_step(i32* %random_val) {
store i32 %randval, i32* %random_val
%isvalid = extractvalue {i32, i32} %call, 1
ret i32 %isvalid
-; CHECK: _rdrand32_step:
+; CHECK-LABEL: _rdrand32_step:
; CHECK: rdrandl %e[[T0:[a-z]+]]
-; CHECK: movl %e[[T0]], (%r[[A0]])
; CHECK: movl $1, %eax
; CHECK: cmovael %e[[T0]], %eax
+; CHECK: movl %e[[T0]], (%r[[A0]])
; CHECK: ret
}
@@ -38,11 +38,11 @@ define i32 @_rdrand64_step(i64* %random_val) {
store i64 %randval, i64* %random_val
%isvalid = extractvalue {i64, i32} %call, 1
ret i32 %isvalid
-; CHECK: _rdrand64_step:
+; CHECK-LABEL: _rdrand64_step:
; CHECK: rdrandq %r[[T1:[a-z]+]]
-; CHECK: movq %r[[T1]], (%r[[A0]])
; CHECK: movl $1, %eax
; CHECK: cmovael %e[[T1]], %eax
+; CHECK: movq %r[[T1]], (%r[[A0]])
; CHECK: ret
}
@@ -54,7 +54,7 @@ define i32 @CSE() nounwind {
%v2 = extractvalue { i32, i32 } %rand2, 0
%add = add i32 %v2, %v1
ret i32 %add
-; CHECK: CSE:
+; CHECK-LABEL: CSE:
; CHECK: rdrandl
; CHECK: rdrandl
}
@@ -78,7 +78,7 @@ while.body: ; preds = %entry, %while.body
while.end: ; preds = %while.body, %entry
ret void
-; CHECK: loop:
+; CHECK-LABEL: loop:
; CHECK-NOT: rdrandl
; CHECK: This Inner Loop Header: Depth=1
; CHECK: rdrandl
diff --git a/test/CodeGen/X86/rdseed.ll b/test/CodeGen/X86/rdseed.ll
index 35de7ebf74308..c219b4ad27ece 100644
--- a/test/CodeGen/X86/rdseed.ll
+++ b/test/CodeGen/X86/rdseed.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86-64 -mcpu=core-avx-i -mattr=+rdseed | FileCheck %s
+; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mcpu=core-avx-i -mattr=+rdseed | FileCheck %s
declare {i16, i32} @llvm.x86.rdseed.16()
declare {i32, i32} @llvm.x86.rdseed.32()
@@ -10,12 +10,12 @@ define i32 @_rdseed16_step(i16* %random_val) {
store i16 %randval, i16* %random_val
%isvalid = extractvalue {i16, i32} %call, 1
ret i32 %isvalid
-; CHECK: _rdseed16_step:
+; CHECK-LABEL: _rdseed16_step:
; CHECK: rdseedw %ax
-; CHECK: movw %ax, (%r[[A0:di|cx]])
; CHECK: movzwl %ax, %ecx
; CHECK: movl $1, %eax
; CHECK: cmovael %ecx, %eax
+; CHECK: movw %cx, (%r[[A0:di|cx]])
; CHECK: ret
}
@@ -25,11 +25,11 @@ define i32 @_rdseed32_step(i32* %random_val) {
store i32 %randval, i32* %random_val
%isvalid = extractvalue {i32, i32} %call, 1
ret i32 %isvalid
-; CHECK: _rdseed32_step:
+; CHECK-LABEL: _rdseed32_step:
; CHECK: rdseedl %e[[T0:[a-z]+]]
-; CHECK: movl %e[[T0]], (%r[[A0]])
; CHECK: movl $1, %eax
; CHECK: cmovael %e[[T0]], %eax
+; CHECK: movl %e[[T0]], (%r[[A0]])
; CHECK: ret
}
@@ -39,10 +39,10 @@ define i32 @_rdseed64_step(i64* %random_val) {
store i64 %randval, i64* %random_val
%isvalid = extractvalue {i64, i32} %call, 1
ret i32 %isvalid
-; CHECK: _rdseed64_step:
+; CHECK-LABEL: _rdseed64_step:
; CHECK: rdseedq %r[[T1:[a-z]+]]
-; CHECK: movq %r[[T1]], (%r[[A0]])
; CHECK: movl $1, %eax
; CHECK: cmovael %e[[T1]], %eax
+; CHECK: movq %r[[T1]], (%r[[A0]])
; CHECK: ret
}
diff --git a/test/CodeGen/X86/red-zone.ll b/test/CodeGen/X86/red-zone.ll
index d99a7a4bc4adf..cce71f5d4cfd3 100644
--- a/test/CodeGen/X86/red-zone.ll
+++ b/test/CodeGen/X86/red-zone.ll
@@ -1,7 +1,7 @@
; RUN: llc < %s -mcpu=generic -mtriple=x86_64-linux | FileCheck %s
; First without noredzone.
-; CHECK: f0:
+; CHECK-LABEL: f0:
; CHECK: -4(%rsp)
; CHECK: -4(%rsp)
; CHECK: ret
@@ -12,7 +12,7 @@ entry:
}
; Then with noredzone.
-; CHECK: f1:
+; CHECK-LABEL: f1:
; CHECK: subq $4, %rsp
; CHECK: (%rsp)
; CHECK: (%rsp)
diff --git a/test/CodeGen/X86/red-zone2.ll b/test/CodeGen/X86/red-zone2.ll
index 3e9c7909a366e..c7e855b011b39 100644
--- a/test/CodeGen/X86/red-zone2.ll
+++ b/test/CodeGen/X86/red-zone2.ll
@@ -1,5 +1,5 @@
; RUN: llc < %s -mcpu=generic -mtriple=x86_64-linux | FileCheck %s
-; CHECK: f0:
+; CHECK-LABEL: f0:
; CHECK: subq
; CHECK: addq
diff --git a/test/CodeGen/X86/rem-2.ll b/test/CodeGen/X86/rem-2.ll
deleted file mode 100644
index 1b2af4b87a32e..0000000000000
--- a/test/CodeGen/X86/rem-2.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; RUN: llc < %s -march=x86 | not grep cltd
-
-define i32 @test(i32 %X) nounwind readnone {
-entry:
- %0 = srem i32 41, %X
- ret i32 %0
-}
diff --git a/test/CodeGen/X86/rem.ll b/test/CodeGen/X86/rem.ll
index 394070ecdf235..733b7942a6d52 100644
--- a/test/CodeGen/X86/rem.ll
+++ b/test/CodeGen/X86/rem.ll
@@ -1,22 +1,37 @@
-; RUN: llc < %s -march=x86 | not grep div
+; RUN: llc < %s -march=x86 | FileCheck %s
+; CHECK-LABEL: test1:
+; CHECK-NOT: div
define i32 @test1(i32 %X) {
%tmp1 = srem i32 %X, 255 ; <i32> [#uses=1]
ret i32 %tmp1
}
+; CHECK-LABEL: test2:
+; CHECK-NOT: div
define i32 @test2(i32 %X) {
%tmp1 = srem i32 %X, 256 ; <i32> [#uses=1]
ret i32 %tmp1
}
+; CHECK-LABEL: test3:
+; CHECK-NOT: div
define i32 @test3(i32 %X) {
%tmp1 = urem i32 %X, 255 ; <i32> [#uses=1]
ret i32 %tmp1
}
+; CHECK-LABEL: test4:
+; CHECK-NOT: div
define i32 @test4(i32 %X) {
%tmp1 = urem i32 %X, 256 ; <i32> [#uses=1]
ret i32 %tmp1
}
+; CHECK-LABEL: test5:
+; CHECK-NOT: cltd
+define i32 @test5(i32 %X) nounwind readnone {
+entry:
+ %0 = srem i32 41, %X
+ ret i32 %0
+}
diff --git a/test/CodeGen/X86/remat-mov-0.ll b/test/CodeGen/X86/remat-mov-0.ll
index f89cd330803d8..9e8d8f6650315 100644
--- a/test/CodeGen/X86/remat-mov-0.ll
+++ b/test/CodeGen/X86/remat-mov-0.ll
@@ -5,7 +5,7 @@
declare void @foo(i64 %p)
-; CHECK: bar:
+; CHECK-LABEL: bar:
; CHECK: xorl %e[[A0:di|cx]], %e
; CHECK: xorl %e[[A0]], %e[[A0]]
define void @bar() nounwind {
@@ -14,7 +14,7 @@ define void @bar() nounwind {
ret void
}
-; CHECK: bat:
+; CHECK-LABEL: bat:
; CHECK: movq $-1, %r[[A0]]
; CHECK: movq $-1, %r[[A0]]
define void @bat() nounwind {
@@ -23,7 +23,7 @@ define void @bat() nounwind {
ret void
}
-; CHECK: bau:
+; CHECK-LABEL: bau:
; CHECK: movl $1, %e[[A0]]
; CHECK: movl $1, %e[[A0]]
define void @bau() nounwind {
diff --git a/test/CodeGen/X86/remat-phys-dead.ll b/test/CodeGen/X86/remat-phys-dead.ll
new file mode 100644
index 0000000000000..4d7ee622a37e0
--- /dev/null
+++ b/test/CodeGen/X86/remat-phys-dead.ll
@@ -0,0 +1,23 @@
+; REQUIRES: asserts
+; RUN: llc -mtriple=x86_64-apple-darwin -debug -o /dev/null < %s 2>&1 | FileCheck %s
+
+; We need to make sure that rematerialization into a physical register marks the
+; super- or sub-register as dead after this rematerialization since only the
+; original register is actually used later. Largely irrelevant for a trivial
+; example like this, since EAX is never used again, but easy to test.
+
+define i8 @test_remat() {
+ ret i8 0
+; CHECK: REGISTER COALESCING
+; CHECK: Remat: %EAX<def,dead> = MOV32r0 %EFLAGS<imp-def,dead>, %AL<imp-def>
+}
+
+; On the other hand, if it's already the correct width, we really shouldn't be
+; marking the definition register as dead.
+
+define i32 @test_remat32() {
+ ret i32 0
+; CHECK: REGISTER COALESCING
+; CHECK: Remat: %EAX<def> = MOV32r0 %EFLAGS<imp-def,dead>
+}
+
diff --git a/test/CodeGen/X86/ret-mmx.ll b/test/CodeGen/X86/ret-mmx.ll
index 778e4722cd953..091fd5398496c 100644
--- a/test/CodeGen/X86/ret-mmx.ll
+++ b/test/CodeGen/X86/ret-mmx.ll
@@ -8,7 +8,7 @@ entry:
%call = call <1 x i64> @return_v1di() ; <<1 x i64>> [#uses=0]
store <1 x i64> %call, <1 x i64>* @g_v1di
ret void
-; CHECK: t1:
+; CHECK-LABEL: t1:
; CHECK: callq
; CHECK-NEXT: movq _g_v1di
; CHECK-NEXT: movq %rax,
@@ -18,21 +18,21 @@ declare <1 x i64> @return_v1di()
define <1 x i64> @t2() nounwind {
ret <1 x i64> <i64 1>
-; CHECK: t2:
+; CHECK-LABEL: t2:
; CHECK: movl $1
; CHECK-NEXT: ret
}
define <2 x i32> @t3() nounwind {
ret <2 x i32> <i32 1, i32 0>
-; CHECK: t3:
+; CHECK-LABEL: t3:
; CHECK: movl $1
; CHECK: movd {{.*}}, %xmm0
}
define double @t4() nounwind {
ret double bitcast (<2 x i32> <i32 1, i32 0> to double)
-; CHECK: t4:
+; CHECK-LABEL: t4:
; CHECK: movl $1
; CHECK: movd {{.*}}, %xmm0
}
diff --git a/test/CodeGen/X86/returned-trunc-tail-calls.ll b/test/CodeGen/X86/returned-trunc-tail-calls.ll
new file mode 100644
index 0000000000000..10bd3b673be72
--- /dev/null
+++ b/test/CodeGen/X86/returned-trunc-tail-calls.ll
@@ -0,0 +1,97 @@
+; RUN: llc < %s -mtriple=x86_64-pc-win32 | FileCheck %s
+
+declare i32 @ret32(i32 returned)
+declare i64 @ret64(i64 returned)
+
+define i64 @test1(i64 %val) {
+; CHECK-LABEL: test1:
+; CHECK-NOT: jmp
+; CHECK: callq
+ %in = trunc i64 %val to i32
+ tail call i32 @ret32(i32 returned %in)
+ ret i64 %val
+}
+
+define i32 @test2(i64 %val) {
+; CHECK-LABEL: test2:
+; CHECK: jmp
+; CHECK-NOT: callq
+ %in = trunc i64 %val to i32
+ tail call i64 @ret64(i64 returned %val)
+ ret i32 %in
+}
+
+define i32 @test3(i64 %in) {
+; CHECK-LABEL: test3:
+; CHECK: jmp
+; CHECK-NOT: callq
+ %small = trunc i64 %in to i32
+ tail call i32 @ret32(i32 returned %small)
+ ret i32 %small
+}
+
+declare {i32, i8} @take_i32_i8({i32, i8} returned)
+define { i8, i8 } @test_nocommon_value({i32, i32} %in) {
+; CHECK-LABEL: test_nocommon_value
+; CHECK: jmp
+
+ %first = extractvalue {i32, i32} %in, 0
+ %first.trunc = trunc i32 %first to i8
+
+ %second = extractvalue {i32, i32} %in, 1
+ %second.trunc = trunc i32 %second to i8
+
+ %tmp = insertvalue {i32, i8} undef, i32 %first, 0
+ %callval = insertvalue {i32, i8} %tmp, i8 %second.trunc, 1
+ tail call {i32, i8} @take_i32_i8({i32, i8} returned %callval)
+
+ %restmp = insertvalue {i8, i8} undef, i8 %first.trunc, 0
+ %res = insertvalue {i8, i8} %restmp, i8 %second.trunc, 1
+ ret {i8, i8} %res
+}
+
+declare {i32, {i32, i32}} @give_i32_i32_i32()
+define {{i32, i32}, i32} @test_structs_different_shape() {
+; CHECK-LABEL: test_structs_different_shape
+; CHECK: jmp
+ %val = tail call {i32, {i32, i32}} @give_i32_i32_i32()
+
+ %first = extractvalue {i32, {i32, i32}} %val, 0
+ %second = extractvalue {i32, {i32, i32}} %val, 1, 0
+ %third = extractvalue {i32, {i32, i32}} %val, 1, 1
+
+ %restmp = insertvalue {{i32, i32}, i32} undef, i32 %first, 0, 0
+ %reseventmper = insertvalue {{i32, i32}, i32} %restmp, i32 %second, 0, 1
+ %res = insertvalue {{i32, i32}, i32} %reseventmper, i32 %third, 1
+
+ ret {{i32, i32}, i32} %res
+}
+
+define i64 @test_undef_asymmetry() {
+; CHECK: test_undef_asymmetry
+; CHECK-NOT: jmp
+ tail call i64 @ret64(i64 returned undef)
+ ret i64 2
+}
+
+define {{}, {{}, i32, {}}, [1 x i32]} @evil_empty_aggregates() {
+; CHECK-LABEL: evil_empty_aggregates
+; CHECK: jmp
+ %agg = tail call {i32, {i32, i32}} @give_i32_i32_i32()
+
+ %first = extractvalue {i32, {i32, i32}} %agg, 0
+ %second = extractvalue {i32, {i32, i32}} %agg, 1, 0
+
+ %restmp = insertvalue {{}, {{}, i32, {}}, [1 x i32]} undef, i32 %first, 1, 1
+ %res = insertvalue {{}, {{}, i32, {}}, [1 x i32]} %restmp, i32 %second, 2, 0
+ ret {{}, {{}, i32, {}}, [1 x i32]} %res
+}
+
+define i32 @structure_is_unimportant() {
+; CHECK-LABEL: structure_is_unimportant
+; CHECK: jmp
+ %val = tail call {i32, {i32, i32}} @give_i32_i32_i32()
+
+ %res = extractvalue {i32, {i32, i32}} %val, 0
+ ret i32 %res
+}
diff --git a/test/CodeGen/X86/reverse_branches.ll b/test/CodeGen/X86/reverse_branches.ll
index 97721250377e2..ee6333e61e887 100644
--- a/test/CodeGen/X86/reverse_branches.ll
+++ b/test/CodeGen/X86/reverse_branches.ll
@@ -7,7 +7,7 @@
; Make sure at end of do.cond.i, we jump to do.body.i first to have a tighter
; inner loop.
define i32 @test_branches_order() uwtable ssp {
-; CHECK: test_branches_order:
+; CHECK-LABEL: test_branches_order:
; CHECK: [[L0:LBB0_[0-9]+]]: ## %do.body.i
; CHECK: je
; CHECK: %do.cond.i
diff --git a/test/CodeGen/X86/rodata-relocs.ll b/test/CodeGen/X86/rodata-relocs.ll
index 9291200f0110f..9228ea1f621f1 100644
--- a/test/CodeGen/X86/rodata-relocs.ll
+++ b/test/CodeGen/X86/rodata-relocs.ll
@@ -1,13 +1,9 @@
-; RUN: llc < %s -relocation-model=static | grep rodata | count 3
-; RUN: llc < %s -relocation-model=static | grep -F "rodata.cst" | count 2
-; RUN: llc < %s -relocation-model=pic | grep rodata | count 2
-; RUN: llc < %s -relocation-model=pic | grep -F ".data.rel.ro" | count 2
-; RUN: llc < %s -relocation-model=pic | grep -F ".data.rel.ro.local" | count 1
-; RUN: llc < %s -relocation-model=pic | grep -F ".data.rel" | count 4
-; RUN: llc < %s -relocation-model=pic | grep -F ".data.rel.local" | count 1
+; RUN: llc < %s -relocation-model=static | FileCheck %s -check-prefix=STATIC
+; RUN: llc < %s -relocation-model=pic | FileCheck %s -check-prefix=PIC
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
target triple = "x86_64-unknown-linux-gnu"
+
@a = internal unnamed_addr constant [2 x i32] [i32 1, i32 2]
@a1 = unnamed_addr constant [2 x i32] [i32 1, i32 2]
@e = internal unnamed_addr constant [2 x [2 x i32]] [[2 x i32] [i32 1, i32 2], [2 x i32] [i32 3, i32 4]], align 16
@@ -21,3 +17,30 @@ target triple = "x86_64-unknown-linux-gnu"
@p3 = internal global i8* bitcast([2 x i32]* @a to i8*)
@t3 = internal global i8* bitcast([2 x [2 x i32]]* @e to i8*)
+; STATIC: .section .rodata.cst8,"aM",@progbits,8
+; STATIC: a:
+; STATIC: a1:
+; STATIC: .section .rodata.cst16,"aM",@progbits,16
+; STATIC: e:
+; STATIC: e1:
+; STATIC: .section .rodata,"a",@progbits
+; STATIC: p:
+
+; PIC: .section .rodata.cst8,"aM",@progbits,8
+; PIC: a:
+; PIC: a1:
+; PIC: .section .rodata.cst16,"aM",@progbits,16
+; PIC: e:
+; PIC: e1:
+; PIC: .section .data.rel.ro.local,"aw",@progbits
+; PIC: p:
+; PIC: t:
+; PIC: .section .data.rel.ro,"aw",@progbits
+; PIC: p1:
+; PIC: t1:
+; PIC: .section .data.rel,"aw",@progbits
+; PIC: p2:
+; PIC: t2:
+; PIC: .section .data.rel.local,"aw",@progbits
+; PIC: p3:
+; PIC: t3:
diff --git a/test/CodeGen/X86/rot16.ll b/test/CodeGen/X86/rot16.ll
index de23dcb78f10b..0293f4e21123a 100644
--- a/test/CodeGen/X86/rot16.ll
+++ b/test/CodeGen/X86/rot16.ll
@@ -2,7 +2,7 @@
define i16 @foo(i16 %x, i16 %y, i16 %z) nounwind readnone {
entry:
-; CHECK: foo:
+; CHECK-LABEL: foo:
; CHECK: rolw %cl
%0 = shl i16 %x, %z
%1 = sub i16 16, %z
@@ -13,7 +13,7 @@ entry:
define i16 @bar(i16 %x, i16 %y, i16 %z) nounwind readnone {
entry:
-; CHECK: bar:
+; CHECK-LABEL: bar:
; CHECK: shldw %cl
%0 = shl i16 %y, %z
%1 = sub i16 16, %z
@@ -24,7 +24,7 @@ entry:
define i16 @un(i16 %x, i16 %y, i16 %z) nounwind readnone {
entry:
-; CHECK: un:
+; CHECK-LABEL: un:
; CHECK: rorw %cl
%0 = lshr i16 %x, %z
%1 = sub i16 16, %z
@@ -35,7 +35,7 @@ entry:
define i16 @bu(i16 %x, i16 %y, i16 %z) nounwind readnone {
entry:
-; CHECK: bu:
+; CHECK-LABEL: bu:
; CHECK: shrdw
%0 = lshr i16 %y, %z
%1 = sub i16 16, %z
@@ -46,7 +46,7 @@ entry:
define i16 @xfoo(i16 %x, i16 %y, i16 %z) nounwind readnone {
entry:
-; CHECK: xfoo:
+; CHECK-LABEL: xfoo:
; CHECK: rolw $5
%0 = lshr i16 %x, 11
%1 = shl i16 %x, 5
@@ -56,7 +56,7 @@ entry:
define i16 @xbar(i16 %x, i16 %y, i16 %z) nounwind readnone {
entry:
-; CHECK: xbar:
+; CHECK-LABEL: xbar:
; CHECK: shldw $5
%0 = shl i16 %y, 5
%1 = lshr i16 %x, 11
@@ -66,7 +66,7 @@ entry:
define i16 @xun(i16 %x, i16 %y, i16 %z) nounwind readnone {
entry:
-; CHECK: xun:
+; CHECK-LABEL: xun:
; CHECK: rolw $11
%0 = lshr i16 %x, 5
%1 = shl i16 %x, 11
@@ -76,7 +76,7 @@ entry:
define i16 @xbu(i16 %x, i16 %y, i16 %z) nounwind readnone {
entry:
-; CHECK: xbu:
+; CHECK-LABEL: xbu:
; CHECK: shldw $11
%0 = lshr i16 %y, 5
%1 = shl i16 %x, 11
diff --git a/test/CodeGen/X86/rot32.ll b/test/CodeGen/X86/rot32.ll
index e95a734e048d8..7bdd606e9cbb2 100644
--- a/test/CodeGen/X86/rot32.ll
+++ b/test/CodeGen/X86/rot32.ll
@@ -3,7 +3,7 @@
define i32 @foo(i32 %x, i32 %y, i32 %z) nounwind readnone {
entry:
-; CHECK: foo:
+; CHECK-LABEL: foo:
; CHECK: roll %cl
%0 = shl i32 %x, %z
%1 = sub i32 32, %z
@@ -14,7 +14,7 @@ entry:
define i32 @bar(i32 %x, i32 %y, i32 %z) nounwind readnone {
entry:
-; CHECK: bar:
+; CHECK-LABEL: bar:
; CHECK: shldl %cl
%0 = shl i32 %y, %z
%1 = sub i32 32, %z
@@ -25,7 +25,7 @@ entry:
define i32 @un(i32 %x, i32 %y, i32 %z) nounwind readnone {
entry:
-; CHECK: un:
+; CHECK-LABEL: un:
; CHECK: rorl %cl
%0 = lshr i32 %x, %z
%1 = sub i32 32, %z
@@ -36,7 +36,7 @@ entry:
define i32 @bu(i32 %x, i32 %y, i32 %z) nounwind readnone {
entry:
-; CHECK: bu:
+; CHECK-LABEL: bu:
; CHECK: shrdl %cl
%0 = lshr i32 %y, %z
%1 = sub i32 32, %z
@@ -47,9 +47,9 @@ entry:
define i32 @xfoo(i32 %x, i32 %y, i32 %z) nounwind readnone {
entry:
-; CHECK: xfoo:
+; CHECK-LABEL: xfoo:
; CHECK: roll $7
-; BMI2: xfoo:
+; BMI2-LABEL: xfoo:
; BMI2: rorxl $25
%0 = lshr i32 %x, 25
%1 = shl i32 %x, 7
@@ -59,7 +59,7 @@ entry:
define i32 @xfoop(i32* %p) nounwind readnone {
entry:
-; BMI2: xfoop:
+; BMI2-LABEL: xfoop:
; BMI2: rorxl $25, ({{.+}}), %{{.+}}
%x = load i32* %p
%a = lshr i32 %x, 25
@@ -70,7 +70,7 @@ entry:
define i32 @xbar(i32 %x, i32 %y, i32 %z) nounwind readnone {
entry:
-; CHECK: xbar:
+; CHECK-LABEL: xbar:
; CHECK: shldl $7
%0 = shl i32 %y, 7
%1 = lshr i32 %x, 25
@@ -80,9 +80,9 @@ entry:
define i32 @xun(i32 %x, i32 %y, i32 %z) nounwind readnone {
entry:
-; CHECK: xun:
+; CHECK-LABEL: xun:
; CHECK: roll $25
-; BMI2: xun:
+; BMI2-LABEL: xun:
; BMI2: rorxl $7
%0 = lshr i32 %x, 7
%1 = shl i32 %x, 25
@@ -92,7 +92,7 @@ entry:
define i32 @xunp(i32* %p) nounwind readnone {
entry:
-; BMI2: xunp:
+; BMI2-LABEL: xunp:
; BMI2: rorxl $7, ({{.+}}), %{{.+}}
%x = load i32* %p
%a = lshr i32 %x, 7
@@ -103,7 +103,7 @@ entry:
define i32 @xbu(i32 %x, i32 %y, i32 %z) nounwind readnone {
entry:
-; CHECK: xbu:
+; CHECK-LABEL: xbu:
; CHECK: shldl
%0 = lshr i32 %y, 7
%1 = shl i32 %x, 25
diff --git a/test/CodeGen/X86/rot64.ll b/test/CodeGen/X86/rot64.ll
index 7fa982d83b619..e19a35da1cd6e 100644
--- a/test/CodeGen/X86/rot64.ll
+++ b/test/CodeGen/X86/rot64.ll
@@ -43,7 +43,7 @@ entry:
define i64 @xfoo(i64 %x, i64 %y, i64 %z) nounwind readnone {
entry:
-; BMI2: xfoo:
+; BMI2-LABEL: xfoo:
; BMI2: rorxq $57
%0 = lshr i64 %x, 57
%1 = shl i64 %x, 7
@@ -53,7 +53,7 @@ entry:
define i64 @xfoop(i64* %p) nounwind readnone {
entry:
-; BMI2: xfoop:
+; BMI2-LABEL: xfoop:
; BMI2: rorxq $57, ({{.+}}), %{{.+}}
%x = load i64* %p
%a = lshr i64 %x, 57
@@ -72,7 +72,7 @@ entry:
define i64 @xun(i64 %x, i64 %y, i64 %z) nounwind readnone {
entry:
-; BMI2: xun:
+; BMI2-LABEL: xun:
; BMI2: rorxq $7
%0 = lshr i64 %x, 7
%1 = shl i64 %x, 57
@@ -82,7 +82,7 @@ entry:
define i64 @xunp(i64* %p) nounwind readnone {
entry:
-; BMI2: xunp:
+; BMI2-LABEL: xunp:
; BMI2: rorxq $7, ({{.+}}), %{{.+}}
%x = load i64* %p
%a = lshr i64 %x, 7
diff --git a/test/CodeGen/X86/rounding-ops.ll b/test/CodeGen/X86/rounding-ops.ll
index 51fcf6418429d..69f4bfb9f47de 100644
--- a/test/CodeGen/X86/rounding-ops.ll
+++ b/test/CodeGen/X86/rounding-ops.ll
@@ -1,14 +1,14 @@
-; RUN: llc < %s -mtriple=x86_64-apple-macosx -mattr=+sse41 | FileCheck -check-prefix=CHECK-SSE %s
+; RUN: llc < %s -mtriple=x86_64-apple-macosx -mattr=+sse4.1 | FileCheck -check-prefix=CHECK-SSE %s
; RUN: llc < %s -mtriple=x86_64-apple-macosx -mattr=+avx | FileCheck -check-prefix=CHECK-AVX %s
define float @test1(float %x) nounwind {
%call = tail call float @floorf(float %x) nounwind readnone
ret float %call
-; CHECK-SSE: test1:
+; CHECK-SSE-LABEL: test1:
; CHECK-SSE: roundss $1
-; CHECK-AVX: test1:
+; CHECK-AVX-LABEL: test1:
; CHECK-AVX: vroundss $1
}
@@ -18,10 +18,10 @@ define double @test2(double %x) nounwind {
%call = tail call double @floor(double %x) nounwind readnone
ret double %call
-; CHECK-SSE: test2:
+; CHECK-SSE-LABEL: test2:
; CHECK-SSE: roundsd $1
-; CHECK-AVX: test2:
+; CHECK-AVX-LABEL: test2:
; CHECK-AVX: vroundsd $1
}
@@ -31,10 +31,10 @@ define float @test3(float %x) nounwind {
%call = tail call float @nearbyintf(float %x) nounwind readnone
ret float %call
-; CHECK-SSE: test3:
+; CHECK-SSE-LABEL: test3:
; CHECK-SSE: roundss $12
-; CHECK-AVX: test3:
+; CHECK-AVX-LABEL: test3:
; CHECK-AVX: vroundss $12
}
@@ -44,10 +44,10 @@ define double @test4(double %x) nounwind {
%call = tail call double @nearbyint(double %x) nounwind readnone
ret double %call
-; CHECK-SSE: test4:
+; CHECK-SSE-LABEL: test4:
; CHECK-SSE: roundsd $12
-; CHECK-AVX: test4:
+; CHECK-AVX-LABEL: test4:
; CHECK-AVX: vroundsd $12
}
@@ -57,10 +57,10 @@ define float @test5(float %x) nounwind {
%call = tail call float @ceilf(float %x) nounwind readnone
ret float %call
-; CHECK-SSE: test5:
+; CHECK-SSE-LABEL: test5:
; CHECK-SSE: roundss $2
-; CHECK-AVX: test5:
+; CHECK-AVX-LABEL: test5:
; CHECK-AVX: vroundss $2
}
@@ -70,10 +70,10 @@ define double @test6(double %x) nounwind {
%call = tail call double @ceil(double %x) nounwind readnone
ret double %call
-; CHECK-SSE: test6:
+; CHECK-SSE-LABEL: test6:
; CHECK-SSE: roundsd $2
-; CHECK-AVX: test6:
+; CHECK-AVX-LABEL: test6:
; CHECK-AVX: vroundsd $2
}
@@ -83,10 +83,10 @@ define float @test7(float %x) nounwind {
%call = tail call float @rintf(float %x) nounwind readnone
ret float %call
-; CHECK-SSE: test7:
+; CHECK-SSE-LABEL: test7:
; CHECK-SSE: roundss $4
-; CHECK-AVX: test7:
+; CHECK-AVX-LABEL: test7:
; CHECK-AVX: vroundss $4
}
@@ -96,10 +96,10 @@ define double @test8(double %x) nounwind {
%call = tail call double @rint(double %x) nounwind readnone
ret double %call
-; CHECK-SSE: test8:
+; CHECK-SSE-LABEL: test8:
; CHECK-SSE: roundsd $4
-; CHECK-AVX: test8:
+; CHECK-AVX-LABEL: test8:
; CHECK-AVX: vroundsd $4
}
@@ -109,10 +109,10 @@ define float @test9(float %x) nounwind {
%call = tail call float @truncf(float %x) nounwind readnone
ret float %call
-; CHECK-SSE: test9:
+; CHECK-SSE-LABEL: test9:
; CHECK-SSE: roundss $3
-; CHECK-AVX: test9:
+; CHECK-AVX-LABEL: test9:
; CHECK-AVX: vroundss $3
}
@@ -122,10 +122,10 @@ define double @test10(double %x) nounwind {
%call = tail call double @trunc(double %x) nounwind readnone
ret double %call
-; CHECK-SSE: test10:
+; CHECK-SSE-LABEL: test10:
; CHECK-SSE: roundsd $3
-; CHECK-AVX: test10:
+; CHECK-AVX-LABEL: test10:
; CHECK-AVX: vroundsd $3
}
diff --git a/test/CodeGen/X86/sandybridge-loads.ll b/test/CodeGen/X86/sandybridge-loads.ll
index 5a23cf136d852..b8c364e2961c7 100644
--- a/test/CodeGen/X86/sandybridge-loads.ll
+++ b/test/CodeGen/X86/sandybridge-loads.ll
@@ -1,6 +1,6 @@
; RUN: llc -march=x86-64 -mtriple=x86_64-apple-darwin -mcpu=corei7-avx -o - < %s | FileCheck %s
-;CHECK: wideloads
+;CHECK-LABEL: wideloads:
;CHECK: vmovaps
;CHECK: vinsertf128
;CHECK: vmovaps
diff --git a/test/CodeGen/X86/scalar_widen_div.ll b/test/CodeGen/X86/scalar_widen_div.ll
index e99ea9356a64e..5807d5babfff4 100644
--- a/test/CodeGen/X86/scalar_widen_div.ll
+++ b/test/CodeGen/X86/scalar_widen_div.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86-64 -mattr=+sse42 | FileCheck %s
+; RUN: llc < %s -march=x86-64 -mattr=+sse4.2 | FileCheck %s
; Verify when widening a divide/remainder operation, we only generate a
; divide/rem per element since divide/remainder can trap.
diff --git a/test/CodeGen/X86/sdiv-exact.ll b/test/CodeGen/X86/sdiv-exact.ll
index 48bb8836e8967..4f8d3f05351b2 100644
--- a/test/CodeGen/X86/sdiv-exact.ll
+++ b/test/CodeGen/X86/sdiv-exact.ll
@@ -3,7 +3,7 @@
define i32 @test1(i32 %x) {
%div = sdiv exact i32 %x, 25
ret i32 %div
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: imull $-1030792151, 4(%esp)
; CHECK-NEXT: ret
}
@@ -11,7 +11,7 @@ define i32 @test1(i32 %x) {
define i32 @test2(i32 %x) {
%div = sdiv exact i32 %x, 24
ret i32 %div
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK: sarl $3
; CHECK-NEXT: imull $-1431655765
; CHECK-NEXT: ret
diff --git a/test/CodeGen/X86/segmented-stacks-dynamic.ll b/test/CodeGen/X86/segmented-stacks-dynamic.ll
index d68b00b69a2bb..e17076215d5e8 100644
--- a/test/CodeGen/X86/segmented-stacks-dynamic.ll
+++ b/test/CodeGen/X86/segmented-stacks-dynamic.ll
@@ -20,7 +20,7 @@ false:
%retvalue = call i32 @test_basic(i32 %newlen)
ret i32 %retvalue
-; X32: test_basic:
+; X32-LABEL: test_basic:
; X32: cmpl %gs:48, %esp
; X32-NEXT: ja .LBB0_2
@@ -31,7 +31,7 @@ false:
; X32-NEXT: ret
; X32: movl %esp, %eax
-; X32-NEXT: subl %ecx, %eax
+; X32: subl %ecx, %eax
; X32-NEXT: cmpl %eax, %gs:48
; X32: movl %eax, %esp
@@ -41,7 +41,7 @@ false:
; X32-NEXT: calll __morestack_allocate_stack_space
; X32-NEXT: addl $16, %esp
-; X64: test_basic:
+; X64-LABEL: test_basic:
; X64: cmpq %fs:112, %rsp
; X64-NEXT: ja .LBB0_2
@@ -52,7 +52,7 @@ false:
; X64-NEXT: ret
; X64: movq %rsp, %[[RDI:rdi|rax]]
-; X64-NEXT: subq %{{.*}}, %[[RDI]]
+; X64: subq %{{.*}}, %[[RDI]]
; X64-NEXT: cmpq %[[RDI]], %fs:112
; X64: movq %[[RDI]], %rsp
diff --git a/test/CodeGen/X86/segmented-stacks.ll b/test/CodeGen/X86/segmented-stacks.ll
index 5407b87418f3b..08a98ef51ec4f 100644
--- a/test/CodeGen/X86/segmented-stacks.ll
+++ b/test/CodeGen/X86/segmented-stacks.ll
@@ -32,7 +32,7 @@ define void @test_basic() {
call void @dummy_use (i32* %mem, i32 10)
ret void
-; X32-Linux: test_basic:
+; X32-Linux-LABEL: test_basic:
; X32-Linux: cmpl %gs:48, %esp
; X32-Linux-NEXT: ja .LBB0_2
@@ -42,7 +42,7 @@ define void @test_basic() {
; X32-Linux-NEXT: calll __morestack
; X32-Linux-NEXT: ret
-; X64-Linux: test_basic:
+; X64-Linux-LABEL: test_basic:
; X64-Linux: cmpq %fs:112, %rsp
; X64-Linux-NEXT: ja .LBB0_2
@@ -52,7 +52,7 @@ define void @test_basic() {
; X64-Linux-NEXT: callq __morestack
; X64-Linux-NEXT: ret
-; X32-Darwin: test_basic:
+; X32-Darwin-LABEL: test_basic:
; X32-Darwin: movl $432, %ecx
; X32-Darwin-NEXT: cmpl %gs:(%ecx), %esp
@@ -63,7 +63,7 @@ define void @test_basic() {
; X32-Darwin-NEXT: calll ___morestack
; X32-Darwin-NEXT: ret
-; X64-Darwin: test_basic:
+; X64-Darwin-LABEL: test_basic:
; X64-Darwin: cmpq %gs:816, %rsp
; X64-Darwin-NEXT: ja LBB0_2
@@ -73,7 +73,7 @@ define void @test_basic() {
; X64-Darwin-NEXT: callq ___morestack
; X64-Darwin-NEXT: ret
-; X32-MinGW: test_basic:
+; X32-MinGW-LABEL: test_basic:
; X32-MinGW: cmpl %fs:20, %esp
; X32-MinGW-NEXT: ja LBB0_2
@@ -83,7 +83,7 @@ define void @test_basic() {
; X32-MinGW-NEXT: calll ___morestack
; X32-MinGW-NEXT: ret
-; X64-FreeBSD: test_basic:
+; X64-FreeBSD-LABEL: test_basic:
; X64-FreeBSD: cmpq %fs:24, %rsp
; X64-FreeBSD-NEXT: ja .LBB0_2
@@ -224,7 +224,7 @@ define fastcc void @test_fastcc() {
call void @dummy_use (i32* %mem, i32 10)
ret void
-; X32-Linux: test_fastcc:
+; X32-Linux-LABEL: test_fastcc:
; X32-Linux: cmpl %gs:48, %esp
; X32-Linux-NEXT: ja .LBB3_2
@@ -234,7 +234,7 @@ define fastcc void @test_fastcc() {
; X32-Linux-NEXT: calll __morestack
; X32-Linux-NEXT: ret
-; X64-Linux: test_fastcc:
+; X64-Linux-LABEL: test_fastcc:
; X64-Linux: cmpq %fs:112, %rsp
; X64-Linux-NEXT: ja .LBB3_2
@@ -244,7 +244,7 @@ define fastcc void @test_fastcc() {
; X64-Linux-NEXT: callq __morestack
; X64-Linux-NEXT: ret
-; X32-Darwin: test_fastcc:
+; X32-Darwin-LABEL: test_fastcc:
; X32-Darwin: movl $432, %eax
; X32-Darwin-NEXT: cmpl %gs:(%eax), %esp
@@ -255,7 +255,7 @@ define fastcc void @test_fastcc() {
; X32-Darwin-NEXT: calll ___morestack
; X32-Darwin-NEXT: ret
-; X64-Darwin: test_fastcc:
+; X64-Darwin-LABEL: test_fastcc:
; X64-Darwin: cmpq %gs:816, %rsp
; X64-Darwin-NEXT: ja LBB3_2
@@ -265,7 +265,7 @@ define fastcc void @test_fastcc() {
; X64-Darwin-NEXT: callq ___morestack
; X64-Darwin-NEXT: ret
-; X32-MinGW: test_fastcc:
+; X32-MinGW-LABEL: test_fastcc:
; X32-MinGW: cmpl %fs:20, %esp
; X32-MinGW-NEXT: ja LBB3_2
@@ -275,7 +275,7 @@ define fastcc void @test_fastcc() {
; X32-MinGW-NEXT: calll ___morestack
; X32-MinGW-NEXT: ret
-; X64-FreeBSD: test_fastcc:
+; X64-FreeBSD-LABEL: test_fastcc:
; X64-FreeBSD: cmpq %fs:24, %rsp
; X64-FreeBSD-NEXT: ja .LBB3_2
@@ -292,7 +292,7 @@ define fastcc void @test_fastcc_large() {
call void @dummy_use (i32* %mem, i32 0)
ret void
-; X32-Linux: test_fastcc_large:
+; X32-Linux-LABEL: test_fastcc_large:
; X32-Linux: leal -40012(%esp), %eax
; X32-Linux-NEXT: cmpl %gs:48, %eax
@@ -303,7 +303,7 @@ define fastcc void @test_fastcc_large() {
; X32-Linux-NEXT: calll __morestack
; X32-Linux-NEXT: ret
-; X64-Linux: test_fastcc_large:
+; X64-Linux-LABEL: test_fastcc_large:
; X64-Linux: leaq -40008(%rsp), %r11
; X64-Linux-NEXT: cmpq %fs:112, %r11
@@ -314,7 +314,7 @@ define fastcc void @test_fastcc_large() {
; X64-Linux-NEXT: callq __morestack
; X64-Linux-NEXT: ret
-; X32-Darwin: test_fastcc_large:
+; X32-Darwin-LABEL: test_fastcc_large:
; X32-Darwin: leal -40012(%esp), %eax
; X32-Darwin-NEXT: movl $432, %ecx
@@ -326,7 +326,7 @@ define fastcc void @test_fastcc_large() {
; X32-Darwin-NEXT: calll ___morestack
; X32-Darwin-NEXT: ret
-; X64-Darwin: test_fastcc_large:
+; X64-Darwin-LABEL: test_fastcc_large:
; X64-Darwin: leaq -40008(%rsp), %r11
; X64-Darwin-NEXT: cmpq %gs:816, %r11
@@ -337,7 +337,7 @@ define fastcc void @test_fastcc_large() {
; X64-Darwin-NEXT: callq ___morestack
; X64-Darwin-NEXT: ret
-; X32-MinGW: test_fastcc_large:
+; X32-MinGW-LABEL: test_fastcc_large:
; X32-MinGW: leal -40008(%esp), %eax
; X32-MinGW-NEXT: cmpl %fs:20, %eax
@@ -348,7 +348,7 @@ define fastcc void @test_fastcc_large() {
; X32-MinGW-NEXT: calll ___morestack
; X32-MinGW-NEXT: ret
-; X64-FreeBSD: test_fastcc_large:
+; X64-FreeBSD-LABEL: test_fastcc_large:
; X64-FreeBSD: leaq -40008(%rsp), %r11
; X64-FreeBSD-NEXT: cmpq %fs:24, %r11
@@ -368,7 +368,7 @@ define fastcc void @test_fastcc_large_with_ecx_arg(i32 %a) {
; This is testing that the Mac implementation preserves ecx
-; X32-Darwin: test_fastcc_large_with_ecx_arg:
+; X32-Darwin-LABEL: test_fastcc_large_with_ecx_arg:
; X32-Darwin: leal -40012(%esp), %eax
; X32-Darwin-NEXT: pushl %ecx
diff --git a/test/CodeGen/X86/select.ll b/test/CodeGen/X86/select.ll
index 09ca07b31a108..cdd258d92031a 100644
--- a/test/CodeGen/X86/select.ll
+++ b/test/CodeGen/X86/select.ll
@@ -10,11 +10,11 @@ define i32 @test1(%0* %p, %0* %q, i1 %r) nounwind {
%t4 = select i1 %r, %0 %t0, %0 %t1
%t5 = extractvalue %0 %t4, 1
ret i32 %t5
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: cmovneq %rdi, %rsi
; CHECK: movl (%rsi), %eax
-; ATOM: test1:
+; ATOM-LABEL: test1:
; ATOM: cmovneq %rdi, %rsi
; ATOM: movl (%rsi), %eax
}
@@ -33,13 +33,13 @@ bb90: ; preds = %bb84, %bb72
unreachable
bb91: ; preds = %bb84
ret i32 0
-; CHECK: test2:
-; CHECK: movnew
-; CHECK: movswl
+; CHECK-LABEL: test2:
+; CHECK: cmovnew
+; CHECK: cwtl
-; ATOM: test2:
-; ATOM: movnew
-; ATOM: movswl
+; ATOM-LABEL: test2:
+; ATOM: cmovnew
+; ATOM: cwtl
}
declare i1 @return_false()
@@ -51,10 +51,10 @@ entry:
%0 = icmp eq i32 %x, 0 ; <i1> [#uses=1]
%iftmp.0.0 = select i1 %0, float 4.200000e+01, float 2.300000e+01 ; <float> [#uses=1]
ret float %iftmp.0.0
-; CHECK: test3:
+; CHECK-LABEL: test3:
; CHECK: movss {{.*}},4), %xmm0
-; ATOM: test3:
+; ATOM-LABEL: test3:
; ATOM: movss {{.*}},4), %xmm0
}
@@ -65,10 +65,10 @@ entry:
%1 = getelementptr i8* %P, i32 %iftmp.0.0 ; <i8*> [#uses=1]
%2 = load i8* %1, align 1 ; <i8> [#uses=1]
ret i8 %2
-; CHECK: test4:
+; CHECK-LABEL: test4:
; CHECK: movsbl ({{.*}},4), %eax
-; ATOM: test4:
+; ATOM-LABEL: test4:
; ATOM: movsbl ({{.*}},4), %eax
}
@@ -76,9 +76,9 @@ define void @test5(i1 %c, <2 x i16> %a, <2 x i16> %b, <2 x i16>* %p) nounwind {
%x = select i1 %c, <2 x i16> %a, <2 x i16> %b
store <2 x i16> %x, <2 x i16>* %p
ret void
-; CHECK: test5:
+; CHECK-LABEL: test5:
-; ATOM: test5:
+; ATOM-LABEL: test5:
}
define void @test6(i32 %C, <4 x float>* %A, <4 x float>* %B) nounwind {
@@ -91,13 +91,13 @@ define void @test6(i32 %C, <4 x float>* %A, <4 x float>* %B) nounwind {
ret void
; Verify that the fmul gets sunk into the one part of the diamond where it is
; needed.
-; CHECK: test6:
+; CHECK-LABEL: test6:
; CHECK: je
; CHECK: ret
; CHECK: mulps
; CHECK: ret
-; ATOM: test6:
+; ATOM-LABEL: test6:
; ATOM: je
; ATOM: ret
; ATOM: mulps
@@ -109,11 +109,11 @@ define x86_fp80 @test7(i32 %tmp8) nounwind {
%tmp9 = icmp sgt i32 %tmp8, -1 ; <i1> [#uses=1]
%retval = select i1 %tmp9, x86_fp80 0xK4005B400000000000000, x86_fp80 0xK40078700000000000000
ret x86_fp80 %retval
-; CHECK: test7:
+; CHECK-LABEL: test7:
; CHECK: leaq
; CHECK: fldt (%r{{.}}x,%r{{.}}x)
-; ATOM: test7:
+; ATOM-LABEL: test7:
; ATOM: leaq
; ATOM: fldt (%r{{.}}x,%r{{.}}x)
}
@@ -125,9 +125,9 @@ define void @test8(i1 %c, <6 x i32>* %dst.addr, <6 x i32> %src1,<6 x i32> %src2)
store <6 x i32> %val, <6 x i32>* %dst.addr
ret void
-; CHECK: test8:
+; CHECK-LABEL: test8:
-; ATOM: test8:
+; ATOM-LABEL: test8:
}
@@ -137,13 +137,13 @@ define i64 @test9(i64 %x, i64 %y) nounwind readnone ssp noredzone {
%cmp = icmp ne i64 %x, 0
%cond = select i1 %cmp, i64 %y, i64 -1
ret i64 %cond
-; CHECK: test9:
+; CHECK-LABEL: test9:
; CHECK: cmpq $1, %rdi
; CHECK: sbbq %rax, %rax
; CHECK: orq %rsi, %rax
; CHECK: ret
-; ATOM: test9:
+; ATOM-LABEL: test9:
; ATOM: cmpq $1, %rdi
; ATOM: sbbq %rax, %rax
; ATOM: orq %rsi, %rax
@@ -155,13 +155,13 @@ define i64 @test9a(i64 %x, i64 %y) nounwind readnone ssp noredzone {
%cmp = icmp eq i64 %x, 0
%cond = select i1 %cmp, i64 -1, i64 %y
ret i64 %cond
-; CHECK: test9a:
+; CHECK-LABEL: test9a:
; CHECK: cmpq $1, %rdi
; CHECK: sbbq %rax, %rax
; CHECK: orq %rsi, %rax
; CHECK: ret
-; ATOM: test9a:
+; ATOM-LABEL: test9a:
; ATOM: cmpq $1, %rdi
; ATOM: sbbq %rax, %rax
; ATOM: orq %rsi, %rax
@@ -173,13 +173,13 @@ define i64 @test9b(i64 %x, i64 %y) nounwind readnone ssp noredzone {
%A = sext i1 %cmp to i64
%cond = or i64 %y, %A
ret i64 %cond
-; CHECK: test9b:
+; CHECK-LABEL: test9b:
; CHECK: cmpq $1, %rdi
; CHECK: sbbq %rax, %rax
; CHECK: orq %rsi, %rax
; CHECK: ret
-; ATOM: test9b:
+; ATOM-LABEL: test9b:
; ATOM: cmpq $1, %rdi
; ATOM: sbbq %rax, %rax
; ATOM: orq %rsi, %rax
@@ -191,13 +191,13 @@ define i64 @test10(i64 %x, i64 %y) nounwind readnone ssp noredzone {
%cmp = icmp eq i64 %x, 0
%cond = select i1 %cmp, i64 -1, i64 1
ret i64 %cond
-; CHECK: test10:
+; CHECK-LABEL: test10:
; CHECK: cmpq $1, %rdi
; CHECK: sbbq %rax, %rax
; CHECK: orq $1, %rax
; CHECK: ret
-; ATOM: test10:
+; ATOM-LABEL: test10:
; ATOM: cmpq $1, %rdi
; ATOM: sbbq %rax, %rax
; ATOM: orq $1, %rax
@@ -210,14 +210,14 @@ define i64 @test11(i64 %x, i64 %y) nounwind readnone ssp noredzone {
%cmp = icmp eq i64 %x, 0
%cond = select i1 %cmp, i64 %y, i64 -1
ret i64 %cond
-; CHECK: test11:
+; CHECK-LABEL: test11:
; CHECK: cmpq $1, %rdi
; CHECK: sbbq %rax, %rax
; CHECK: notq %rax
; CHECK: orq %rsi, %rax
; CHECK: ret
-; ATOM: test11:
+; ATOM-LABEL: test11:
; ATOM: cmpq $1, %rdi
; ATOM: sbbq %rax, %rax
; ATOM: notq %rax
@@ -229,14 +229,14 @@ define i64 @test11a(i64 %x, i64 %y) nounwind readnone ssp noredzone {
%cmp = icmp ne i64 %x, 0
%cond = select i1 %cmp, i64 -1, i64 %y
ret i64 %cond
-; CHECK: test11a:
+; CHECK-LABEL: test11a:
; CHECK: cmpq $1, %rdi
; CHECK: sbbq %rax, %rax
; CHECK: notq %rax
; CHECK: orq %rsi, %rax
; CHECK: ret
-; ATOM: test11a:
+; ATOM-LABEL: test11a:
; ATOM: cmpq $1, %rdi
; ATOM: sbbq %rax, %rax
; ATOM: notq %rax
@@ -255,13 +255,13 @@ entry:
%D = select i1 %B, i64 -1, i64 %C
%call = tail call noalias i8* @_Znam(i64 %D) nounwind noredzone
ret i8* %call
-; CHECK: test12:
-; CHECK: movq $-1, %rdi
+; CHECK-LABEL: test12:
; CHECK: mulq
-; CHECK: cmovnoq %rax, %rdi
+; CHECK: movq $-1, %[[R:r..]]
+; CHECK: cmovnoq %rax, %[[R]]
; CHECK: jmp __Znam
-; ATOM: test12:
+; ATOM-LABEL: test12:
; ATOM: mulq
; ATOM: movq $-1, %rdi
; ATOM: cmovnoq %rax, %rdi
@@ -274,12 +274,12 @@ define i32 @test13(i32 %a, i32 %b) nounwind {
%c = icmp ult i32 %a, %b
%d = sext i1 %c to i32
ret i32 %d
-; CHECK: test13:
+; CHECK-LABEL: test13:
; CHECK: cmpl
; CHECK-NEXT: sbbl
; CHECK-NEXT: ret
-; ATOM: test13:
+; ATOM-LABEL: test13:
; ATOM: cmpl
; ATOM-NEXT: sbbl
; ATOM: ret
@@ -289,13 +289,13 @@ define i32 @test14(i32 %a, i32 %b) nounwind {
%c = icmp uge i32 %a, %b
%d = sext i1 %c to i32
ret i32 %d
-; CHECK: test14:
+; CHECK-LABEL: test14:
; CHECK: cmpl
; CHECK-NEXT: sbbl
; CHECK-NEXT: notl
; CHECK-NEXT: ret
-; ATOM: test14:
+; ATOM-LABEL: test14:
; ATOM: cmpl
; ATOM-NEXT: sbbl
; ATOM-NEXT: notl
@@ -308,11 +308,11 @@ entry:
%cmp = icmp ne i32 %x, 0
%sub = sext i1 %cmp to i32
ret i32 %sub
-; CHECK: test15:
+; CHECK-LABEL: test15:
; CHECK: negl
; CHECK: sbbl
-; ATOM: test15:
+; ATOM-LABEL: test15:
; ATOM: negl
; ATOM: sbbl
}
@@ -322,11 +322,11 @@ entry:
%cmp = icmp ne i64 %x, 0
%conv1 = sext i1 %cmp to i64
ret i64 %conv1
-; CHECK: test16:
+; CHECK-LABEL: test16:
; CHECK: negq
; CHECK: sbbq
-; ATOM: test16:
+; ATOM-LABEL: test16:
; ATOM: negq
; ATOM: sbbq
}
@@ -336,11 +336,11 @@ entry:
%cmp = icmp ne i16 %x, 0
%sub = sext i1 %cmp to i16
ret i16 %sub
-; CHECK: test17:
+; CHECK-LABEL: test17:
; CHECK: negw
; CHECK: sbbw
-; ATOM: test17:
+; ATOM-LABEL: test17:
; ATOM: negw
; ATOM: sbbw
}
@@ -349,11 +349,11 @@ define i8 @test18(i32 %x, i8 zeroext %a, i8 zeroext %b) nounwind {
%cmp = icmp slt i32 %x, 15
%sel = select i1 %cmp, i8 %a, i8 %b
ret i8 %sel
-; CHECK: test18:
+; CHECK-LABEL: test18:
; CHECK: cmpl $15, %edi
; CHECK: cmovgel %edx
-; ATOM: test18:
+; ATOM-LABEL: test18:
; ATOM: cmpl $15, %edi
; ATOM: cmovgel %edx
}
diff --git a/test/CodeGen/X86/select_const.ll b/test/CodeGen/X86/select_const.ll
index 5b2409d2396f1..a6c2377e03662 100644
--- a/test/CodeGen/X86/select_const.ll
+++ b/test/CodeGen/X86/select_const.ll
@@ -7,7 +7,7 @@ entry:
%retval.0 = select i1 %cmp, i64 2, i64 %add
ret i64 %retval.0
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: leaq 1(%rdi), %rax
; CHECK: cmpq $2, %rdi
; CHECK: cmoveq %rdi, %rax
diff --git a/test/CodeGen/X86/setcc-narrowing.ll b/test/CodeGen/X86/setcc-narrowing.ll
new file mode 100644
index 0000000000000..25cb2c822c5bf
--- /dev/null
+++ b/test/CodeGen/X86/setcc-narrowing.ll
@@ -0,0 +1,18 @@
+; RUN: llc < %s -mtriple=i686-apple-darwin | FileCheck %s
+; PR17338
+
+@t1.global = internal global i64 -1, align 8
+
+define i32 @t1() nounwind ssp {
+entry:
+; CHECK-LABEL: t1:
+; CHECK: cmpl $0, _t1.global
+; CHECK-NEXT: setne %al
+; CHECK-NEXT: movzbl %al, %eax
+; CHECK-NEXT: ret
+ %0 = load i64* @t1.global, align 8
+ %and = and i64 4294967295, %0
+ %cmp = icmp sgt i64 %and, 0
+ %conv = zext i1 %cmp to i32
+ ret i32 %conv
+}
diff --git a/test/CodeGen/X86/setcc-sentinals.ll b/test/CodeGen/X86/setcc-sentinals.ll
new file mode 100644
index 0000000000000..d36e678c60488
--- /dev/null
+++ b/test/CodeGen/X86/setcc-sentinals.ll
@@ -0,0 +1,13 @@
+; RUN: llc < %s -mcpu=generic -march=x86-64 -asm-verbose=false | FileCheck %s
+
+define zeroext i1 @test0(i64 %x) nounwind {
+; CHECK-LABEL: test0:
+; CHECK-NEXT: incq %[[X:rdi|rcx]]
+; CHECK-NEXT: cmpq $1, %[[X]]
+; CHECK-NEXT: seta %al
+; CHECK-NEXT: ret
+ %cmp1 = icmp ne i64 %x, -1
+ %not.cmp = icmp ne i64 %x, 0
+ %.cmp1 = and i1 %cmp1, %not.cmp
+ ret i1 %.cmp1
+}
diff --git a/test/CodeGen/X86/setcc.ll b/test/CodeGen/X86/setcc.ll
index c37e15d24f346..2454af926aaef 100644
--- a/test/CodeGen/X86/setcc.ll
+++ b/test/CodeGen/X86/setcc.ll
@@ -6,7 +6,7 @@
define zeroext i16 @t1(i16 zeroext %x) nounwind readnone ssp {
entry:
-; CHECK: t1:
+; CHECK-LABEL: t1:
; CHECK: seta %al
; CHECK: movzbl %al, %eax
; CHECK: shll $5, %eax
@@ -17,7 +17,7 @@ entry:
define zeroext i16 @t2(i16 zeroext %x) nounwind readnone ssp {
entry:
-; CHECK: t2:
+; CHECK-LABEL: t2:
; CHECK: sbbl %eax, %eax
; CHECK: andl $32, %eax
%0 = icmp ult i16 %x, 26 ; <i1> [#uses=1]
@@ -27,7 +27,7 @@ entry:
define i64 @t3(i64 %x) nounwind readnone ssp {
entry:
-; CHECK: t3:
+; CHECK-LABEL: t3:
; CHECK: sbbq %rax, %rax
; CHECK: andq $64, %rax
%0 = icmp ult i64 %x, 18 ; <i1> [#uses=1]
diff --git a/test/CodeGen/X86/sext-i1.ll b/test/CodeGen/X86/sext-i1.ll
index 574769b430845..64de0aee70d3a 100644
--- a/test/CodeGen/X86/sext-i1.ll
+++ b/test/CodeGen/X86/sext-i1.ll
@@ -5,11 +5,11 @@
define i32 @t1(i32 %x) nounwind readnone ssp {
entry:
-; 32: t1:
+; 32-LABEL: t1:
; 32: cmpl $1
; 32: sbbl
-; 64: t1:
+; 64-LABEL: t1:
; 64: cmpl $1
; 64: sbbl
%0 = icmp eq i32 %x, 0
@@ -19,11 +19,11 @@ entry:
define i32 @t2(i32 %x) nounwind readnone ssp {
entry:
-; 32: t2:
+; 32-LABEL: t2:
; 32: cmpl $1
; 32: sbbl
-; 64: t2:
+; 64-LABEL: t2:
; 64: cmpl $1
; 64: sbbl
%0 = icmp eq i32 %x, 0
@@ -36,13 +36,13 @@ entry:
define i32 @t3() nounwind readonly {
entry:
-; 32: t3:
+; 32-LABEL: t3:
; 32: cmpl $1
; 32: sbbl
; 32: cmpl
; 32: xorl
-; 64: t3:
+; 64-LABEL: t3:
; 64: cmpl $1
; 64: sbbq
; 64: cmpq
diff --git a/test/CodeGen/X86/sext-load.ll b/test/CodeGen/X86/sext-load.ll
index 58c93229a2c0a..2753e87662946 100644
--- a/test/CodeGen/X86/sext-load.ll
+++ b/test/CodeGen/X86/sext-load.ll
@@ -3,7 +3,7 @@
; When doing sign extension, use the sext-load lowering to take advantage of
; x86's sign extension during loads.
;
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: movsbl {{.*}}, %eax
; CHECK-NEXT: ret
define i32 @test1(i32 %X) nounwind {
@@ -16,7 +16,7 @@ entry:
; When using a sextload representation, ensure that the sign extension is
; preserved even when removing shifted-out low bits.
;
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK: movswl {{.*}}, %eax
; CHECK-NEXT: ret
define i32 @test2({i16, [6 x i8]}* %this) {
diff --git a/test/CodeGen/X86/sext-subreg.ll b/test/CodeGen/X86/sext-subreg.ll
index a128af9950f0a..e0c8ff9b5e084 100644
--- a/test/CodeGen/X86/sext-subreg.ll
+++ b/test/CodeGen/X86/sext-subreg.ll
@@ -2,7 +2,7 @@
; rdar://7529457
define i64 @t(i64 %A, i64 %B, i32* %P, i64 *%P2) nounwind {
-; CHECK: t:
+; CHECK-LABEL: t:
; CHECK: movslq %e{{.*}}, %rax
; CHECK: movq %rax
; CHECK: movl %eax
diff --git a/test/CodeGen/X86/sha.ll b/test/CodeGen/X86/sha.ll
new file mode 100644
index 0000000000000..bf81e9938ec83
--- /dev/null
+++ b/test/CodeGen/X86/sha.ll
@@ -0,0 +1,139 @@
+; RUN: llc < %s -mattr=+sha -mtriple=x86_64-unknown-unknown | FileCheck %s
+; RUN: not llc < %s -mtriple=x86_64-unknown-unknown
+
+declare <4 x i32> @llvm.x86.sha1rnds4(<4 x i32>, <4 x i32>, i8) nounwind readnone
+
+define <4 x i32> @test_sha1rnds4rr(<4 x i32> %a, <4 x i32> %b) nounwind uwtable {
+entry:
+ %0 = tail call <4 x i32> @llvm.x86.sha1rnds4(<4 x i32> %a, <4 x i32> %b, i8 3)
+ ret <4 x i32> %0
+ ; CHECK: test_sha1rnds4rr
+ ; CHECK: sha1rnds4 $3, %xmm1, %xmm0
+}
+
+define <4 x i32> @test_sha1rnds4rm(<4 x i32> %a, <4 x i32>* %b) nounwind uwtable {
+entry:
+ %0 = load <4 x i32>* %b
+ %1 = tail call <4 x i32> @llvm.x86.sha1rnds4(<4 x i32> %a, <4 x i32> %0, i8 3)
+ ret <4 x i32> %1
+ ; CHECK: test_sha1rnds4rm
+ ; CHECK: sha1rnds4 $3, (%rdi), %xmm0
+}
+
+declare <4 x i32> @llvm.x86.sha1nexte(<4 x i32>, <4 x i32>) nounwind readnone
+
+define <4 x i32> @test_sha1nexterr(<4 x i32> %a, <4 x i32> %b) nounwind uwtable {
+entry:
+ %0 = tail call <4 x i32> @llvm.x86.sha1nexte(<4 x i32> %a, <4 x i32> %b)
+ ret <4 x i32> %0
+ ; CHECK: test_sha1nexterr
+ ; CHECK: sha1nexte %xmm1, %xmm0
+}
+
+define <4 x i32> @test_sha1nexterm(<4 x i32> %a, <4 x i32>* %b) nounwind uwtable {
+entry:
+ %0 = load <4 x i32>* %b
+ %1 = tail call <4 x i32> @llvm.x86.sha1nexte(<4 x i32> %a, <4 x i32> %0)
+ ret <4 x i32> %1
+ ; CHECK: test_sha1nexterm
+ ; CHECK: sha1nexte (%rdi), %xmm0
+}
+
+declare <4 x i32> @llvm.x86.sha1msg1(<4 x i32>, <4 x i32>) nounwind readnone
+
+define <4 x i32> @test_sha1msg1rr(<4 x i32> %a, <4 x i32> %b) nounwind uwtable {
+entry:
+ %0 = tail call <4 x i32> @llvm.x86.sha1msg1(<4 x i32> %a, <4 x i32> %b)
+ ret <4 x i32> %0
+ ; CHECK: test_sha1msg1rr
+ ; CHECK: sha1msg1 %xmm1, %xmm0
+}
+
+define <4 x i32> @test_sha1msg1rm(<4 x i32> %a, <4 x i32>* %b) nounwind uwtable {
+entry:
+ %0 = load <4 x i32>* %b
+ %1 = tail call <4 x i32> @llvm.x86.sha1msg1(<4 x i32> %a, <4 x i32> %0)
+ ret <4 x i32> %1
+ ; CHECK: test_sha1msg1rm
+ ; CHECK: sha1msg1 (%rdi), %xmm0
+}
+
+declare <4 x i32> @llvm.x86.sha1msg2(<4 x i32>, <4 x i32>) nounwind readnone
+
+define <4 x i32> @test_sha1msg2rr(<4 x i32> %a, <4 x i32> %b) nounwind uwtable {
+entry:
+ %0 = tail call <4 x i32> @llvm.x86.sha1msg2(<4 x i32> %a, <4 x i32> %b)
+ ret <4 x i32> %0
+ ; CHECK: test_sha1msg2rr
+ ; CHECK: sha1msg2 %xmm1, %xmm0
+}
+
+define <4 x i32> @test_sha1msg2rm(<4 x i32> %a, <4 x i32>* %b) nounwind uwtable {
+entry:
+ %0 = load <4 x i32>* %b
+ %1 = tail call <4 x i32> @llvm.x86.sha1msg2(<4 x i32> %a, <4 x i32> %0)
+ ret <4 x i32> %1
+ ; CHECK: test_sha1msg2rm
+ ; CHECK: sha1msg2 (%rdi), %xmm0
+}
+
+declare <4 x i32> @llvm.x86.sha256rnds2(<4 x i32>, <4 x i32>, <4 x i32>) nounwind readnone
+
+define <4 x i32> @test_sha256rnds2rr(<4 x i32> %a, <4 x i32> %b, <4 x i32> %c) nounwind uwtable {
+entry:
+ %0 = tail call <4 x i32> @llvm.x86.sha256rnds2(<4 x i32> %a, <4 x i32> %b, <4 x i32> %c)
+ ret <4 x i32> %0
+ ; CHECK: test_sha256rnds2rr
+ ; CHECK: movaps %xmm0, [[XMM_TMP1:%xmm[1-9][0-9]?]]
+ ; CHECK: movaps %xmm2, %xmm0
+ ; CHECK: sha256rnds2 %xmm1, [[XMM_TMP1]]
+}
+
+define <4 x i32> @test_sha256rnds2rm(<4 x i32> %a, <4 x i32>* %b, <4 x i32> %c) nounwind uwtable {
+entry:
+ %0 = load <4 x i32>* %b
+ %1 = tail call <4 x i32> @llvm.x86.sha256rnds2(<4 x i32> %a, <4 x i32> %0, <4 x i32> %c)
+ ret <4 x i32> %1
+ ; CHECK: test_sha256rnds2rm
+ ; CHECK: movaps %xmm0, [[XMM_TMP2:%xmm[1-9][0-9]?]]
+ ; CHECK: movaps %xmm1, %xmm0
+ ; CHECK: sha256rnds2 (%rdi), [[XMM_TMP2]]
+}
+
+declare <4 x i32> @llvm.x86.sha256msg1(<4 x i32>, <4 x i32>) nounwind readnone
+
+define <4 x i32> @test_sha256msg1rr(<4 x i32> %a, <4 x i32> %b) nounwind uwtable {
+entry:
+ %0 = tail call <4 x i32> @llvm.x86.sha256msg1(<4 x i32> %a, <4 x i32> %b)
+ ret <4 x i32> %0
+ ; CHECK: test_sha256msg1rr
+ ; CHECK: sha256msg1 %xmm1, %xmm0
+}
+
+define <4 x i32> @test_sha256msg1rm(<4 x i32> %a, <4 x i32>* %b) nounwind uwtable {
+entry:
+ %0 = load <4 x i32>* %b
+ %1 = tail call <4 x i32> @llvm.x86.sha256msg1(<4 x i32> %a, <4 x i32> %0)
+ ret <4 x i32> %1
+ ; CHECK: test_sha256msg1rm
+ ; CHECK: sha256msg1 (%rdi), %xmm0
+}
+
+declare <4 x i32> @llvm.x86.sha256msg2(<4 x i32>, <4 x i32>) nounwind readnone
+
+define <4 x i32> @test_sha256msg2rr(<4 x i32> %a, <4 x i32> %b) nounwind uwtable {
+entry:
+ %0 = tail call <4 x i32> @llvm.x86.sha256msg2(<4 x i32> %a, <4 x i32> %b)
+ ret <4 x i32> %0
+ ; CHECK: test_sha256msg2rr
+ ; CHECK: sha256msg2 %xmm1, %xmm0
+}
+
+define <4 x i32> @test_sha256msg2rm(<4 x i32> %a, <4 x i32>* %b) nounwind uwtable {
+entry:
+ %0 = load <4 x i32>* %b
+ %1 = tail call <4 x i32> @llvm.x86.sha256msg2(<4 x i32> %a, <4 x i32> %0)
+ ret <4 x i32> %1
+ ; CHECK: test_sha256msg2rm
+ ; CHECK: sha256msg2 (%rdi), %xmm0
+} \ No newline at end of file
diff --git a/test/CodeGen/X86/shift-and.ll b/test/CodeGen/X86/shift-and.ll
index 1de915164f0cd..d487368431b0c 100644
--- a/test/CodeGen/X86/shift-and.ll
+++ b/test/CodeGen/X86/shift-and.ll
@@ -2,11 +2,11 @@
; RUN: llc < %s -mtriple=x86_64-apple-macosx | FileCheck %s --check-prefix=X64
define i32 @t1(i32 %t, i32 %val) nounwind {
-; X32: t1:
+; X32-LABEL: t1:
; X32-NOT: andl
; X32: shll
-; X64: t1:
+; X64-LABEL: t1:
; X64-NOT: andl
; X64: shll
%shamt = and i32 %t, 31
@@ -15,11 +15,11 @@ define i32 @t1(i32 %t, i32 %val) nounwind {
}
define i32 @t2(i32 %t, i32 %val) nounwind {
-; X32: t2:
+; X32-LABEL: t2:
; X32-NOT: andl
; X32: shll
-; X64: t2:
+; X64-LABEL: t2:
; X64-NOT: andl
; X64: shll
%shamt = and i32 %t, 63
@@ -30,11 +30,11 @@ define i32 @t2(i32 %t, i32 %val) nounwind {
@X = internal global i16 0
define void @t3(i16 %t) nounwind {
-; X32: t3:
+; X32-LABEL: t3:
; X32-NOT: andl
; X32: sarw
-; X64: t3:
+; X64-LABEL: t3:
; X64-NOT: andl
; X64: sarw
%shamt = and i16 %t, 31
@@ -45,7 +45,7 @@ define void @t3(i16 %t) nounwind {
}
define i64 @t4(i64 %t, i64 %val) nounwind {
-; X64: t4:
+; X64-LABEL: t4:
; X64-NOT: and
; X64: shrq
%shamt = and i64 %t, 63
@@ -54,7 +54,7 @@ define i64 @t4(i64 %t, i64 %val) nounwind {
}
define i64 @t5(i64 %t, i64 %val) nounwind {
-; X64: t5:
+; X64-LABEL: t5:
; X64-NOT: and
; X64: shrq
%shamt = and i64 %t, 191
@@ -66,7 +66,7 @@ define i64 @t5(i64 %t, i64 %val) nounwind {
; rdar://11866926
define i64 @t6(i64 %key, i64* nocapture %val) nounwind {
entry:
-; X64: t6:
+; X64-LABEL: t6:
; X64-NOT: movabsq
; X64: decq
; X64: andq
diff --git a/test/CodeGen/X86/shift-bmi2.ll b/test/CodeGen/X86/shift-bmi2.ll
index d1f321f17738e..7615754a042ac 100644
--- a/test/CodeGen/X86/shift-bmi2.ll
+++ b/test/CodeGen/X86/shift-bmi2.ll
@@ -30,10 +30,11 @@ entry:
%x = load i32* %p
%shl = shl i32 %x, %shamt
; BMI2: shl32p
-; BMI2: shlxl %{{.+}}, ({{.+}}), %{{.+}}
+; Source order scheduling prevents folding, rdar:14208996.
+; BMI2: shlxl %{{.+}}, %{{.+}}, %{{.+}}
; BMI2: ret
; BMI264: shl32p
-; BMI264: shlxl %{{.+}}, ({{.+}}), %{{.+}}
+; BMI264: shlxl %{{.+}}, %{{.+}}, %{{.+}}
; BMI264: ret
ret i32 %shl
}
@@ -74,7 +75,7 @@ entry:
%x = load i64* %p
%shl = shl i64 %x, %shamt
; BMI264: shl64p
-; BMI264: shlxq %{{.+}}, ({{.+}}), %{{.+}}
+; BMI264: shlxq %{{.+}}, %{{.+}}, %{{.+}}
; BMI264: ret
ret i64 %shl
}
@@ -83,7 +84,7 @@ define i64 @shl64pi(i64* %p) nounwind uwtable readnone {
entry:
%x = load i64* %p
%shl = shl i64 %x, 7
-; BMI264: shl64p
+; BMI264: shl64pi
; BMI264-NOT: shlxq
; BMI264: ret
ret i64 %shl
@@ -106,10 +107,11 @@ entry:
%x = load i32* %p
%shl = lshr i32 %x, %shamt
; BMI2: lshr32p
-; BMI2: shrxl %{{.+}}, ({{.+}}), %{{.+}}
+; Source order scheduling prevents folding, rdar:14208996.
+; BMI2: shrxl %{{.+}}, %{{.+}}, %{{.+}}
; BMI2: ret
-; BMI264: lshr32
-; BMI264: shrxl %{{.+}}, ({{.+}}), %{{.+}}
+; BMI264: lshr32p
+; BMI264: shrxl %{{.+}}, %{{.+}}, %{{.+}}
; BMI264: ret
ret i32 %shl
}
@@ -128,7 +130,7 @@ entry:
%x = load i64* %p
%shl = lshr i64 %x, %shamt
; BMI264: lshr64p
-; BMI264: shrxq %{{.+}}, ({{.+}}), %{{.+}}
+; BMI264: shrxq %{{.+}}, %{{.+}}, %{{.+}}
; BMI264: ret
ret i64 %shl
}
@@ -150,10 +152,11 @@ entry:
%x = load i32* %p
%shl = ashr i32 %x, %shamt
; BMI2: ashr32p
-; BMI2: sarxl %{{.+}}, ({{.+}}), %{{.+}}
+; Source order scheduling prevents folding, rdar:14208996.
+; BMI2: sarxl %{{.+}}, %{{.+}}, %{{.+}}
; BMI2: ret
-; BMI264: ashr32
-; BMI264: sarxl %{{.+}}, ({{.+}}), %{{.+}}
+; BMI264: ashr32p
+; BMI264: sarxl %{{.+}}, %{{.+}}, %{{.+}}
; BMI264: ret
ret i32 %shl
}
@@ -172,7 +175,7 @@ entry:
%x = load i64* %p
%shl = ashr i64 %x, %shamt
; BMI264: ashr64p
-; BMI264: sarxq %{{.+}}, ({{.+}}), %{{.+}}
+; BMI264: sarxq %{{.+}}, %{{.+}}, %{{.+}}
; BMI264: ret
ret i64 %shl
}
diff --git a/test/CodeGen/X86/shift-coalesce.ll b/test/CodeGen/X86/shift-coalesce.ll
index 4f27e97fb390b..5241042d0c550 100644
--- a/test/CodeGen/X86/shift-coalesce.ll
+++ b/test/CodeGen/X86/shift-coalesce.ll
@@ -1,7 +1,7 @@
; RUN: llc < %s -march=x86 -x86-asm-syntax=intel | \
-; RUN: grep "shld.*CL"
+; RUN: grep "shld.*cl"
; RUN: llc < %s -march=x86 -x86-asm-syntax=intel | \
-; RUN: not grep "mov CL, BL"
+; RUN: not grep "mov cl, bl"
; PR687
diff --git a/test/CodeGen/X86/shift-codegen.ll b/test/CodeGen/X86/shift-codegen.ll
index 7d961e8a9c04d..88b86100794ac 100644
--- a/test/CodeGen/X86/shift-codegen.ll
+++ b/test/CodeGen/X86/shift-codegen.ll
@@ -8,7 +8,7 @@ target triple = "i686-apple-darwin8"
define void @fn1() {
-; CHECK: fn1:
+; CHECK-LABEL: fn1:
; CHECK-NOT: ret
; CHECK-NOT: lea
; CHECK: shll $3
@@ -24,7 +24,7 @@ define void @fn1() {
}
define i32 @fn2(i32 %X, i32 %Y) {
-; CHECK: fn2:
+; CHECK-LABEL: fn2:
; CHECK-NOT: ret
; CHECK-NOT: lea
; CHECK: shll $3
diff --git a/test/CodeGen/X86/shift-combine.ll b/test/CodeGen/X86/shift-combine.ll
index 51f83036c23d0..113dedb4a00c6 100644
--- a/test/CodeGen/X86/shift-combine.ll
+++ b/test/CodeGen/X86/shift-combine.ll
@@ -3,7 +3,7 @@
@array = weak global [4 x i32] zeroinitializer
define i32 @test_lshr_and(i32 %x) {
-; CHECK: test_lshr_and:
+; CHECK-LABEL: test_lshr_and:
; CHECK-NOT: shrl
; CHECK: andl $12,
; CHECK: movl {{.*}}array{{.*}},
diff --git a/test/CodeGen/X86/shift-folding.ll b/test/CodeGen/X86/shift-folding.ll
index c518cdd3aa4ea..ea9002c397b8b 100644
--- a/test/CodeGen/X86/shift-folding.ll
+++ b/test/CodeGen/X86/shift-folding.ll
@@ -1,7 +1,7 @@
; RUN: llc < %s -march=x86 -verify-coalescing | FileCheck %s
define i32* @test1(i32* %P, i32 %X) {
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK-NOT: shrl
; CHECK-NOT: shll
; CHECK: ret
@@ -14,7 +14,7 @@ entry:
}
define i32* @test2(i32* %P, i32 %X) {
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK: shll $4
; CHECK-NOT: shll
; CHECK: ret
@@ -27,7 +27,7 @@ entry:
}
define i32* @test3(i32* %P, i32 %X) {
-; CHECK: test3:
+; CHECK-LABEL: test3:
; CHECK-NOT: shrl
; CHECK-NOT: shll
; CHECK: ret
@@ -39,7 +39,7 @@ entry:
}
define fastcc i32 @test4(i32* %d) {
-; CHECK: test4:
+; CHECK-LABEL: test4:
; CHECK-NOT: shrl
; CHECK: ret
@@ -52,7 +52,7 @@ entry:
define i64 @test5(i16 %i, i32* %arr) {
; Ensure that we don't fold away shifts which have multiple uses, as they are
; just re-introduced for the second use.
-; CHECK: test5:
+; CHECK-LABEL: test5:
; CHECK-NOT: shrl
; CHECK: shrl $11
; CHECK-NOT: shrl
diff --git a/test/CodeGen/X86/shl-anyext.ll b/test/CodeGen/X86/shl-anyext.ll
index 10d489b9a8a63..0a5d047d23d36 100644
--- a/test/CodeGen/X86/shl-anyext.ll
+++ b/test/CodeGen/X86/shl-anyext.ll
@@ -17,7 +17,7 @@ if.end523: ; preds = %if.end453
ret void
}
-; CHECK: foo:
+; CHECK-LABEL: foo:
declare void @bar(i64)
diff --git a/test/CodeGen/X86/shl_elim.ll b/test/CodeGen/X86/shl_elim.ll
index 83e1eb5c39e77..4762b13b516f7 100644
--- a/test/CodeGen/X86/shl_elim.ll
+++ b/test/CodeGen/X86/shl_elim.ll
@@ -1,6 +1,4 @@
-; RUN: llc < %s -march=x86 | grep "movl 8(.esp), %eax"
-; RUN: llc < %s -march=x86 | grep "shrl .eax"
-; RUN: llc < %s -march=x86 | grep "movswl .ax, .eax"
+; RUN: llc < %s -march=x86 | FileCheck %s
define i32 @test1(i64 %a) nounwind {
%tmp29 = lshr i64 %a, 24 ; <i64> [#uses=1]
@@ -9,5 +7,10 @@ define i32 @test1(i64 %a) nounwind {
%tmp45 = trunc i32 %tmp410 to i16 ; <i16> [#uses=1]
%tmp456 = sext i16 %tmp45 to i32 ; <i32> [#uses=1]
ret i32 %tmp456
+
+; CHECK-LABEL: test1:
+; CHECK: movl 8(%esp), %eax
+; CHECK: shrl %eax
+; CHECK: cwtl
}
diff --git a/test/CodeGen/X86/shrink-compare.ll b/test/CodeGen/X86/shrink-compare.ll
index 8d4b07f9d9b0e..bb892011e2d67 100644
--- a/test/CodeGen/X86/shrink-compare.ll
+++ b/test/CodeGen/X86/shrink-compare.ll
@@ -15,7 +15,7 @@ if.then:
if.end:
ret void
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: cmpb $47, (%{{rdi|rcx}})
}
@@ -31,6 +31,61 @@ if.then:
if.end:
ret void
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK: cmpb $47, %{{dil|cl}}
}
+
+define void @test3(i32 %X) nounwind {
+entry:
+ %and = and i32 %X, 255
+ %cmp = icmp eq i32 %and, 255
+ br i1 %cmp, label %if.then, label %if.end
+
+if.then:
+ tail call void @bar() nounwind
+ br label %if.end
+
+if.end:
+ ret void
+; CHECK-LABEL: test3:
+; CHECK: cmpb $-1, %{{dil|cl}}
+}
+
+; PR16083
+define i1 @test4(i64 %a, i32 %b) {
+entry:
+ %tobool = icmp ne i32 %b, 0
+ br i1 %tobool, label %lor.end, label %lor.rhs
+
+lor.rhs: ; preds = %entry
+ %and = and i64 0, %a
+ %tobool1 = icmp ne i64 %and, 0
+ br label %lor.end
+
+lor.end: ; preds = %lor.rhs, %entry
+ %p = phi i1 [ true, %entry ], [ %tobool1, %lor.rhs ]
+ ret i1 %p
+}
+
+@x = global { i8, i8, i8, i8, i8, i8, i8, i8 } { i8 1, i8 0, i8 0, i8 0, i8 1, i8 0, i8 0, i8 1 }, align 4
+
+; PR16551
+define void @test5(i32 %X) nounwind {
+entry:
+ %bf.load = load i56* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8 }* @x to i56*), align 4
+ %bf.lshr = lshr i56 %bf.load, 32
+ %bf.cast = trunc i56 %bf.lshr to i32
+ %cmp = icmp ne i32 %bf.cast, 1
+ br i1 %cmp, label %if.then, label %if.end
+
+if.then:
+ tail call void @bar() nounwind
+ br label %if.end
+
+if.end:
+ ret void
+
+; CHECK-LABEL: test5:
+; CHECK-NOT: cmpl $1,{{.*}}x+4
+; CHECK: ret
+}
diff --git a/test/CodeGen/X86/sibcall-2.ll b/test/CodeGen/X86/sibcall-2.ll
index f8a746563b51a..1b9d2db47c371 100644
--- a/test/CodeGen/X86/sibcall-2.ll
+++ b/test/CodeGen/X86/sibcall-2.ll
@@ -5,10 +5,10 @@
define void @t1(i8* nocapture %value) nounwind {
entry:
-; 32: t1:
+; 32-LABEL: t1:
; 32: jmpl *4(%esp)
-; 64: t1:
+; 64-LABEL: t1:
; 64: jmpq *%rdi
%0 = bitcast i8* %value to void ()*
tail call void %0() nounwind
@@ -17,10 +17,10 @@ entry:
define void @t2(i32 %a, i8* nocapture %value) nounwind {
entry:
-; 32: t2:
+; 32-LABEL: t2:
; 32: jmpl *8(%esp)
-; 64: t2:
+; 64-LABEL: t2:
; 64: jmpq *%rsi
%0 = bitcast i8* %value to void ()*
tail call void %0() nounwind
@@ -29,10 +29,10 @@ entry:
define void @t3(i32 %a, i32 %b, i32 %c, i32 %d, i32 %e, i32 %f, i8* nocapture %value) nounwind {
entry:
-; 32: t3:
+; 32-LABEL: t3:
; 32: jmpl *28(%esp)
-; 64: t3:
+; 64-LABEL: t3:
; 64: jmpq *8(%rsp)
%0 = bitcast i8* %value to void ()*
tail call void %0() nounwind
@@ -41,10 +41,10 @@ entry:
define void @t4(i32 %a, i32 %b, i32 %c, i32 %d, i32 %e, i32 %f, i32 %g, i8* nocapture %value) nounwind {
entry:
-; 32: t4:
+; 32-LABEL: t4:
; 32: jmpl *32(%esp)
-; 64: t4:
+; 64-LABEL: t4:
; 64: jmpq *16(%rsp)
%0 = bitcast i8* %value to void ()*
tail call void %0() nounwind
diff --git a/test/CodeGen/X86/sibcall-3.ll b/test/CodeGen/X86/sibcall-3.ll
index f97abe0029577..9fcb4603a9d19 100644
--- a/test/CodeGen/X86/sibcall-3.ll
+++ b/test/CodeGen/X86/sibcall-3.ll
@@ -2,14 +2,14 @@
; PR7193
define void @t1(i8* inreg %dst, i8* inreg %src, i8* inreg %len) nounwind {
-; CHECK: t1:
+; CHECK-LABEL: t1:
; CHECK: calll 0
tail call void null(i8* inreg %dst, i8* inreg %src, i8* inreg %len) nounwind
ret void
}
define void @t2(i8* inreg %dst, i8* inreg %src, i8* inreg %len) nounwind {
-; CHECK: t2:
+; CHECK-LABEL: t2:
; CHECK: jmpl
tail call void null(i8* inreg %dst, i8* inreg %src) nounwind
ret void
diff --git a/test/CodeGen/X86/sibcall-4.ll b/test/CodeGen/X86/sibcall-4.ll
index 1499e6688024a..980b0f797ee15 100644
--- a/test/CodeGen/X86/sibcall-4.ll
+++ b/test/CodeGen/X86/sibcall-4.ll
@@ -3,7 +3,7 @@
define cc10 void @t(i32* %Base_Arg, i32* %Sp_Arg, i32* %Hp_Arg, i32 %R1_Arg) nounwind {
cm1:
-; CHECK: t:
+; CHECK-LABEL: t:
; CHECK: jmpl *%eax
%nm3 = getelementptr i32* %Sp_Arg, i32 1
%nm9 = load i32* %Sp_Arg
diff --git a/test/CodeGen/X86/sibcall-5.ll b/test/CodeGen/X86/sibcall-5.ll
index 937817e45647b..c479030508a9c 100644
--- a/test/CodeGen/X86/sibcall-5.ll
+++ b/test/CodeGen/X86/sibcall-5.ll
@@ -7,20 +7,20 @@
define double @foo(double %a) nounwind readonly ssp {
entry:
-; X32: foo:
+; X32-LABEL: foo:
; X32: jmp _sin$stub
-; X64: foo:
+; X64-LABEL: foo:
; X64: jmp _sin
%0 = tail call double @sin(double %a) nounwind readonly
ret double %0
}
define float @bar(float %a) nounwind readonly ssp {
-; X32: bar:
+; X32-LABEL: bar:
; X32: jmp _sinf$stub
-; X64: bar:
+; X64-LABEL: bar:
; X64: jmp _sinf
entry:
%0 = tail call float @sinf(float %a) nounwind readonly
diff --git a/test/CodeGen/X86/sibcall-6.ll b/test/CodeGen/X86/sibcall-6.ll
new file mode 100644
index 0000000000000..c9dff6b73d2a2
--- /dev/null
+++ b/test/CodeGen/X86/sibcall-6.ll
@@ -0,0 +1,13 @@
+; RUN: llc < %s -relocation-model=pic | FileCheck %s
+; PR15250
+
+target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32-S128"
+target triple = "i386-unknown-linux-gnu"
+
+declare void @callee1(i32 inreg, i32 inreg, i32 inreg)
+define void @test1(i32 %a, i32 %b) nounwind {
+; CHECK-LABEL: test1:
+; CHECK: calll callee1@PLT
+ tail call void @callee1(i32 inreg 0, i32 inreg 0, i32 inreg 0) nounwind
+ ret void
+}
diff --git a/test/CodeGen/X86/sibcall.ll b/test/CodeGen/X86/sibcall.ll
index ceb79ea927a1f..589e9ec10524c 100644
--- a/test/CodeGen/X86/sibcall.ll
+++ b/test/CodeGen/X86/sibcall.ll
@@ -3,10 +3,10 @@
define void @t1(i32 %x) nounwind ssp {
entry:
-; 32: t1:
+; 32-LABEL: t1:
; 32: jmp {{_?}}foo
-; 64: t1:
+; 64-LABEL: t1:
; 64: jmp {{_?}}foo
tail call void @foo() nounwind
ret void
@@ -16,10 +16,10 @@ declare void @foo()
define void @t2() nounwind ssp {
entry:
-; 32: t2:
+; 32-LABEL: t2:
; 32: jmp {{_?}}foo2
-; 64: t2:
+; 64-LABEL: t2:
; 64: jmp {{_?}}foo2
%0 = tail call i32 @foo2() nounwind
ret void
@@ -29,10 +29,10 @@ declare i32 @foo2()
define void @t3() nounwind ssp {
entry:
-; 32: t3:
+; 32-LABEL: t3:
; 32: jmp {{_?}}foo3
-; 64: t3:
+; 64-LABEL: t3:
; 64: jmp {{_?}}foo3
%0 = tail call i32 @foo3() nounwind
ret void
@@ -42,11 +42,11 @@ declare i32 @foo3()
define void @t4(void (i32)* nocapture %x) nounwind ssp {
entry:
-; 32: t4:
+; 32-LABEL: t4:
; 32: calll *
; FIXME: gcc can generate a tailcall for this. But it's tricky.
-; 64: t4:
+; 64-LABEL: t4:
; 64-NOT: call
; 64: jmpq *
tail call void %x(i32 0) nounwind
@@ -55,11 +55,11 @@ entry:
define void @t5(void ()* nocapture %x) nounwind ssp {
entry:
-; 32: t5:
+; 32-LABEL: t5:
; 32-NOT: call
; 32: jmpl *4(%esp)
-; 64: t5:
+; 64-LABEL: t5:
; 64-NOT: call
; 64: jmpq *%rdi
tail call void %x() nounwind
@@ -68,11 +68,11 @@ entry:
define i32 @t6(i32 %x) nounwind ssp {
entry:
-; 32: t6:
+; 32-LABEL: t6:
; 32: calll {{_?}}t6
; 32: jmp {{_?}}bar
-; 64: t6:
+; 64-LABEL: t6:
; 64: jmp {{_?}}t6
; 64: jmp {{_?}}bar
%0 = icmp slt i32 %x, 10
@@ -92,10 +92,10 @@ declare i32 @bar(i32)
define i32 @t7(i32 %a, i32 %b, i32 %c) nounwind ssp {
entry:
-; 32: t7:
+; 32-LABEL: t7:
; 32: jmp {{_?}}bar2
-; 64: t7:
+; 64-LABEL: t7:
; 64: jmp {{_?}}bar2
%0 = tail call i32 @bar2(i32 %a, i32 %b, i32 %c) nounwind
ret i32 %0
@@ -105,11 +105,11 @@ declare i32 @bar2(i32, i32, i32)
define signext i16 @t8() nounwind ssp {
entry:
-; 32: t8:
-; 32: calll {{_?}}bar3
+; 32-LABEL: t8:
+; 32: jmp {{_?}}bar3
-; 64: t8:
-; 64: callq {{_?}}bar3
+; 64-LABEL: t8:
+; 64: jmp {{_?}}bar3
%0 = tail call signext i16 @bar3() nounwind ; <i16> [#uses=1]
ret i16 %0
}
@@ -118,11 +118,11 @@ declare signext i16 @bar3()
define signext i16 @t9(i32 (i32)* nocapture %x) nounwind ssp {
entry:
-; 32: t9:
+; 32-LABEL: t9:
; 32: calll *
-; 64: t9:
-; 64: callq *
+; 64-LABEL: t9:
+; 64: jmpq *
%0 = bitcast i32 (i32)* %x to i16 (i32)*
%1 = tail call signext i16 %0(i32 0) nounwind
ret i16 %1
@@ -130,10 +130,10 @@ entry:
define void @t10() nounwind ssp {
entry:
-; 32: t10:
+; 32-LABEL: t10:
; 32: calll
-; 64: t10:
+; 64-LABEL: t10:
; 64: callq
%0 = tail call i32 @foo4() noreturn nounwind
unreachable
@@ -145,14 +145,14 @@ define i32 @t11(i32 %x, i32 %y, i32 %z.0, i32 %z.1, i32 %z.2) nounwind ssp {
; In 32-bit mode, it's emitting a bunch of dead loads that are not being
; eliminated currently.
-; 32: t11:
+; 32-LABEL: t11:
; 32-NOT: subl ${{[0-9]+}}, %esp
; 32: je
; 32-NOT: movl
; 32-NOT: addl ${{[0-9]+}}, %esp
; 32: jmp {{_?}}foo5
-; 64: t11:
+; 64-LABEL: t11:
; 64-NOT: subq ${{[0-9]+}}, %esp
; 64-NOT: addq ${{[0-9]+}}, %esp
; 64: jmp {{_?}}foo5
@@ -173,12 +173,12 @@ declare i32 @foo5(i32, i32, i32, i32, i32)
%struct.t = type { i32, i32, i32, i32, i32 }
define i32 @t12(i32 %x, i32 %y, %struct.t* byval align 4 %z) nounwind ssp {
-; 32: t12:
+; 32-LABEL: t12:
; 32-NOT: subl ${{[0-9]+}}, %esp
; 32-NOT: addl ${{[0-9]+}}, %esp
; 32: jmp {{_?}}foo6
-; 64: t12:
+; 64-LABEL: t12:
; 64-NOT: subq ${{[0-9]+}}, %esp
; 64-NOT: addq ${{[0-9]+}}, %esp
; 64: jmp {{_?}}foo6
@@ -201,12 +201,12 @@ declare i32 @foo6(i32, i32, %struct.t* byval align 4)
%struct.cp = type { float, float, float, float, float }
define %struct.ns* @t13(%struct.cp* %yy) nounwind ssp {
-; 32: t13:
+; 32-LABEL: t13:
; 32-NOT: jmp
; 32: calll
; 32: ret
-; 64: t13:
+; 64-LABEL: t13:
; 64-NOT: jmp
; 64: callq
; 64: ret
@@ -226,7 +226,7 @@ declare fastcc %struct.ns* @foo7(%struct.cp* byval align 4, i8 signext) nounwind
define void @t14(%struct.__block_literal_2* nocapture %.block_descriptor) nounwind ssp {
entry:
-; 64: t14:
+; 64-LABEL: t14:
; 64: movq 32(%rdi)
; 64-NOT: movq 16(%rdi)
; 64: jmpq *16({{%rdi|%rax}})
@@ -245,11 +245,11 @@ entry:
%struct.foo = type { [4 x i32] }
define void @t15(%struct.foo* noalias sret %agg.result) nounwind {
-; 32: t15:
+; 32-LABEL: t15:
; 32: calll {{_?}}f
; 32: ret $4
-; 64: t15:
+; 64-LABEL: t15:
; 64: callq {{_?}}f
; 64: ret
tail call fastcc void @f(%struct.foo* noalias sret %agg.result) nounwind
@@ -260,11 +260,11 @@ declare void @f(%struct.foo* noalias sret) nounwind
define void @t16() nounwind ssp {
entry:
-; 32: t16:
+; 32-LABEL: t16:
; 32: calll {{_?}}bar4
; 32: fstp
-; 64: t16:
+; 64-LABEL: t16:
; 64: jmp {{_?}}bar4
%0 = tail call double @bar4() nounwind
ret void
@@ -275,11 +275,11 @@ declare double @bar4()
; rdar://6283267
define void @t17() nounwind ssp {
entry:
-; 32: t17:
+; 32-LABEL: t17:
; 32: jmp {{_?}}bar5
-; 64: t17:
-; 64: xorb %al, %al
+; 64-LABEL: t17:
+; 64: xorl %eax, %eax
; 64: jmp {{_?}}bar5
tail call void (...)* @bar5() nounwind
ret void
@@ -290,12 +290,12 @@ declare void @bar5(...)
; rdar://7774847
define void @t18() nounwind ssp {
entry:
-; 32: t18:
+; 32-LABEL: t18:
; 32: calll {{_?}}bar6
; 32: fstp %st(0)
-; 64: t18:
-; 64: xorb %al, %al
+; 64-LABEL: t18:
+; 64: xorl %eax, %eax
; 64: jmp {{_?}}bar6
%0 = tail call double (...)* @bar6() nounwind
ret void
@@ -305,7 +305,7 @@ declare double @bar6(...)
define void @t19() alignstack(32) nounwind {
entry:
-; CHECK: t19:
+; CHECK-LABEL: t19:
; CHECK: andl $-32
; CHECK: calll {{_?}}foo
tail call void @foo() nounwind
@@ -318,11 +318,11 @@ entry:
define double @t20(double %x) nounwind {
entry:
-; 32: t20:
+; 32-LABEL: t20:
; 32: calll {{_?}}foo20
; 32: fldl (%esp)
-; 64: t20:
+; 64-LABEL: t20:
; 64: jmp {{_?}}foo20
%0 = tail call fastcc double @foo20(double %x) nounwind
ret double %0
diff --git a/test/CodeGen/X86/simple-zext.ll b/test/CodeGen/X86/simple-zext.ll
new file mode 100644
index 0000000000000..ccd8292bcdb32
--- /dev/null
+++ b/test/CodeGen/X86/simple-zext.ll
@@ -0,0 +1,16 @@
+; RUN: llc -mtriple=x86_64-apple-darwin < %s| FileCheck %s
+
+; A bug in DAGCombiner prevented it forming a zextload in this simple case
+; because it counted both the chain user and the real user against the
+; profitability total.
+
+define void @load_zext(i32* nocapture %p){
+entry:
+ %0 = load i32* %p, align 4
+ %and = and i32 %0, 255
+ tail call void @use(i32 %and)
+ ret void
+; CHECK: movzbl ({{%r[a-z]+}}), {{%e[a-z]+}}
+}
+
+declare void @use(i32)
diff --git a/test/CodeGen/X86/sincos-opt.ll b/test/CodeGen/X86/sincos-opt.ll
index 333c4663eb0b4..2dc8816f840f9 100644
--- a/test/CodeGen/X86/sincos-opt.ll
+++ b/test/CodeGen/X86/sincos-opt.ll
@@ -8,19 +8,19 @@
define float @test1(float %x) nounwind {
entry:
-; GNU_SINCOS: test1:
+; GNU_SINCOS-LABEL: test1:
; GNU_SINCOS: callq sincosf
; GNU_SINCOS: movss 4(%rsp), %xmm0
; GNU_SINCOS: addss (%rsp), %xmm0
-; OSX_SINCOS: test1:
+; OSX_SINCOS-LABEL: test1:
; OSX_SINCOS: callq ___sincosf_stret
; OSX_SINCOS: pshufd $1, %xmm0, %xmm1
; OSX_SINCOS: addss %xmm0, %xmm1
; OSX_NOOPT: test1
-; OSX_NOOPT: callq _cosf
; OSX_NOOPT: callq _sinf
+; OSX_NOOPT: callq _cosf
%call = tail call float @sinf(float %x) nounwind readnone
%call1 = tail call float @cosf(float %x) nounwind readnone
%add = fadd float %call, %call1
@@ -29,18 +29,18 @@ entry:
define double @test2(double %x) nounwind {
entry:
-; GNU_SINCOS: test2:
+; GNU_SINCOS-LABEL: test2:
; GNU_SINCOS: callq sincos
; GNU_SINCOS: movsd 16(%rsp), %xmm0
; GNU_SINCOS: addsd 8(%rsp), %xmm0
-; OSX_SINCOS: test2:
+; OSX_SINCOS-LABEL: test2:
; OSX_SINCOS: callq ___sincos_stret
; OSX_SINCOS: addsd %xmm1, %xmm0
; OSX_NOOPT: test2
-; OSX_NOOPT: callq _cos
; OSX_NOOPT: callq _sin
+; OSX_NOOPT: callq _cos
%call = tail call double @sin(double %x) nounwind readnone
%call1 = tail call double @cos(double %x) nounwind readnone
%add = fadd double %call, %call1
@@ -49,7 +49,7 @@ entry:
define x86_fp80 @test3(x86_fp80 %x) nounwind {
entry:
-; GNU_SINCOS: test3:
+; GNU_SINCOS-LABEL: test3:
; GNU_SINCOS: callq sinl
; GNU_SINCOS: callq cosl
; GNU_SINCOS: ret
diff --git a/test/CodeGen/X86/sincos.ll b/test/CodeGen/X86/sincos.ll
index 734f48ae329f5..8f0e6f1edf668 100644
--- a/test/CodeGen/X86/sincos.ll
+++ b/test/CodeGen/X86/sincos.ll
@@ -9,7 +9,7 @@ declare double @sin(double) readonly
declare x86_fp80 @sinl(x86_fp80) readonly
-; SIN: test1:
+; SIN-LABEL: test1:
define float @test1(float %X) {
%Y = call float @sinf(float %X) readonly
ret float %Y
@@ -21,7 +21,7 @@ define float @test1(float %X) {
; SAFE: test1
; SAFE-NOT: fsin
-; SIN: test2:
+; SIN-LABEL: test2:
define double @test2(double %X) {
%Y = call double @sin(double %X) readonly
ret double %Y
@@ -33,7 +33,7 @@ define double @test2(double %X) {
; SAFE: test2
; SAFE-NOT: fsin
-; SIN: test3:
+; SIN-LABEL: test3:
define x86_fp80 @test3(x86_fp80 %X) {
%Y = call x86_fp80 @sinl(x86_fp80 %X) readonly
ret x86_fp80 %Y
@@ -49,8 +49,8 @@ declare double @cos(double) readonly
declare x86_fp80 @cosl(x86_fp80) readonly
-; SIN: test4:
-; COS: test3:
+; SIN-LABEL: test4:
+; COS-LABEL: test3:
define float @test4(float %X) {
%Y = call float @cosf(float %X) readonly
ret float %Y
diff --git a/test/CodeGen/X86/sink-hoist.ll b/test/CodeGen/X86/sink-hoist.ll
index 2aca5b897d357..64f5311792db1 100644
--- a/test/CodeGen/X86/sink-hoist.ll
+++ b/test/CodeGen/X86/sink-hoist.ll
@@ -5,7 +5,7 @@
; evaluated, however with MachineSink we can sink the other side so
; that it's conditionally evaluated.
-; CHECK: foo:
+; CHECK-LABEL: foo:
; CHECK-NEXT: testb $1, %dil
; CHECK-NEXT: jne
; CHECK-NEXT: divsd
@@ -24,13 +24,12 @@ define double @foo(double %x, double %y, i1 %c) nounwind {
; the conditional branch.
; rdar://8454886
-; CHECK: split:
+; CHECK-LABEL: split:
; CHECK-NEXT: testb $1, %dil
-; CHECK-NEXT: jne
-; CHECK-NEXT: movaps
-; CHECK-NEXT: ret
+; CHECK-NEXT: je
; CHECK: divsd
-; CHECK-NEXT: ret
+; CHECK: movaps
+; CHECK: ret
define double @split(double %x, double %y, i1 %c) nounwind {
%a = fdiv double %x, 3.2
%z = select i1 %c, double %a, double %y
@@ -40,7 +39,7 @@ define double @split(double %x, double %y, i1 %c) nounwind {
; Hoist floating-point constant-pool loads out of loops.
-; CHECK: bar:
+; CHECK-LABEL: bar:
; CHECK: movsd
; CHECK: align
define void @bar(double* nocapture %p, i64 %n) nounwind {
@@ -65,7 +64,7 @@ return:
; Sink instructions with dead EFLAGS defs.
; FIXME: Unfail the zzz test if we can correctly mark pregs with the kill flag.
-;
+;
; See <rdar://problem/8030636>. This test isn't valid after we made machine
; sinking more conservative about sinking instructions that define a preg into a
; block when we don't know if the preg is killed within the current block.
@@ -87,7 +86,7 @@ return:
; Codegen should hoist and CSE these constants.
-; CHECK: vv:
+; CHECK-LABEL: vv:
; CHECK: LCPI3_0(%rip), %xmm0
; CHECK: LCPI3_1(%rip), %xmm1
; CHECK: LCPI3_2(%rip), %xmm2
@@ -151,7 +150,7 @@ declare <4 x float> @llvm.x86.sse2.cvtdq2ps(<4 x i32>) nounwind readnone
; CodeGen should use the correct register class when extracting
; a load from a zero-extending load for hoisting.
-; CHECK: default_get_pch_validity:
+; CHECK-LABEL: default_get_pch_validity:
; CHECK: movl cl_options_count(%rip), %ecx
@cl_options_count = external constant i32 ; <i32*> [#uses=2]
diff --git a/test/CodeGen/X86/smul-with-overflow.ll b/test/CodeGen/X86/smul-with-overflow.ll
index 2d0b2f7aa91d0..cefbda64751b6 100644
--- a/test/CodeGen/X86/smul-with-overflow.ll
+++ b/test/CodeGen/X86/smul-with-overflow.ll
@@ -17,7 +17,7 @@ normal:
overflow:
%t2 = tail call i32 (i8*, ...)* @printf( i8* getelementptr ([4 x i8]* @no, i32 0, i32 0) ) nounwind
ret i1 false
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: imull
; CHECK-NEXT: jno
}
@@ -36,7 +36,7 @@ overflow:
normal:
%t1 = tail call i32 (i8*, ...)* @printf( i8* getelementptr ([4 x i8]* @ok, i32 0, i32 0), i32 %sum ) nounwind
ret i1 true
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK: imull
; CHECK-NEXT: jno
}
@@ -50,7 +50,7 @@ entry:
%tmp1 = call { i32, i1 } @llvm.smul.with.overflow.i32(i32 %tmp0, i32 2)
%tmp2 = extractvalue { i32, i1 } %tmp1, 0
ret i32 %tmp2
-; CHECK: test3:
+; CHECK-LABEL: test3:
; CHECK: addl
; CHECK-NEXT: addl
; CHECK-NEXT: ret
@@ -62,7 +62,7 @@ entry:
%tmp1 = call { i32, i1 } @llvm.smul.with.overflow.i32(i32 %tmp0, i32 4)
%tmp2 = extractvalue { i32, i1 } %tmp1, 0
ret i32 %tmp2
-; CHECK: test4:
+; CHECK-LABEL: test4:
; CHECK: addl
; CHECK: mull
; CHECK-NEXT: ret
@@ -78,6 +78,6 @@ entry:
ret i1 %overflow
; Was returning false, should return true (not constant folded yet though).
; PR13991
-; CHECK: test5:
+; CHECK-LABEL: test5:
; CHECK-NOT: xorb
}
diff --git a/test/CodeGen/X86/splat-scalar-load.ll b/test/CodeGen/X86/splat-scalar-load.ll
index 980f18c8b9115..4d59b9cc2f632 100644
--- a/test/CodeGen/X86/splat-scalar-load.ll
+++ b/test/CodeGen/X86/splat-scalar-load.ll
@@ -3,7 +3,7 @@
define <2 x i64> @t2() nounwind {
entry:
-; CHECK: t2:
+; CHECK-LABEL: t2:
; CHECK: pshufd $85, (%esp), %xmm0
%array = alloca [8 x float], align 4
%arrayidx = getelementptr inbounds [8 x float]* %array, i32 0, i32 1
diff --git a/test/CodeGen/X86/sqrt-fastmath.ll b/test/CodeGen/X86/sqrt-fastmath.ll
new file mode 100644
index 0000000000000..fc79e31e72eea
--- /dev/null
+++ b/test/CodeGen/X86/sqrt-fastmath.ll
@@ -0,0 +1,60 @@
+; RUN: llc < %s -mcpu=core2 | FileCheck %s
+
+; generated using "clang -S -O2 -ffast-math -emit-llvm sqrt.c" from
+; #include <math.h>
+;
+; double fd(double d){
+; return sqrt(d);
+; }
+;
+; float ff(float f){
+; return sqrtf(f);
+; }
+;
+; long double fld(long double ld){
+; return sqrtl(ld);
+; }
+;
+; Tests conversion of sqrt function calls into sqrt instructions when
+; -ffast-math is in effect.
+
+; ModuleID = 'sqrt.c'
+target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
+target triple = "x86_64-unknown-linux-gnu"
+
+; Function Attrs: nounwind readnone uwtable
+define double @fd(double %d) #0 {
+entry:
+; CHECK: sqrtsd
+ %call = tail call double @__sqrt_finite(double %d) #2
+ ret double %call
+}
+
+; Function Attrs: nounwind readnone
+declare double @__sqrt_finite(double) #1
+
+; Function Attrs: nounwind readnone uwtable
+define float @ff(float %f) #0 {
+entry:
+; CHECK: sqrtss
+ %call = tail call float @__sqrtf_finite(float %f) #2
+ ret float %call
+}
+
+; Function Attrs: nounwind readnone
+declare float @__sqrtf_finite(float) #1
+
+; Function Attrs: nounwind readnone uwtable
+define x86_fp80 @fld(x86_fp80 %ld) #0 {
+entry:
+; CHECK: fsqrt
+ %call = tail call x86_fp80 @__sqrtl_finite(x86_fp80 %ld) #2
+ ret x86_fp80 %call
+}
+
+; Function Attrs: nounwind readnone
+declare x86_fp80 @__sqrtl_finite(x86_fp80) #1
+
+attributes #0 = { nounwind readnone uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "unsafe-fp-math"="true" "use-soft-float"="false" }
+attributes #1 = { nounwind readnone "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "unsafe-fp-math"="true" "use-soft-float"="false" }
+attributes #2 = { nounwind readnone }
diff --git a/test/CodeGen/X86/sse-align-12.ll b/test/CodeGen/X86/sse-align-12.ll
index 71a42f4db34ab..2351fd6fa77bd 100644
--- a/test/CodeGen/X86/sse-align-12.ll
+++ b/test/CodeGen/X86/sse-align-12.ll
@@ -1,6 +1,6 @@
; RUN: llc < %s -march=x86-64 -mcpu=nehalem | FileCheck %s
-; CHECK: a:
+; CHECK-LABEL: a:
; CHECK: movdqu
; CHECK: pshufd
define <4 x float> @a(<4 x float>* %y) nounwind {
@@ -16,7 +16,7 @@ define <4 x float> @a(<4 x float>* %y) nounwind {
ret <4 x float> %s
}
-; CHECK: b:
+; CHECK-LABEL: b:
; CHECK: movups
; CHECK: unpckhps
define <4 x float> @b(<4 x float>* %y, <4 x float> %z) nounwind {
@@ -32,7 +32,7 @@ define <4 x float> @b(<4 x float>* %y, <4 x float> %z) nounwind {
ret <4 x float> %s
}
-; CHECK: c:
+; CHECK-LABEL: c:
; CHECK: movupd
; CHECK: shufpd
define <2 x double> @c(<2 x double>* %y) nounwind {
@@ -44,7 +44,7 @@ define <2 x double> @c(<2 x double>* %y) nounwind {
ret <2 x double> %r
}
-; CHECK: d:
+; CHECK-LABEL: d:
; CHECK: movupd
; CHECK: unpckhpd
define <2 x double> @d(<2 x double>* %y, <2 x double> %z) nounwind {
diff --git a/test/CodeGen/X86/sse-align-2.ll b/test/CodeGen/X86/sse-align-2.ll
index 22cd7723068cb..98e75b56e8914 100644
--- a/test/CodeGen/X86/sse-align-2.ll
+++ b/test/CodeGen/X86/sse-align-2.ll
@@ -6,7 +6,7 @@ define <4 x float> @foo(<4 x float>* %p, <4 x float> %x) nounwind {
ret <4 x float> %z
}
-; CHECK: foo:
+; CHECK-LABEL: foo:
; CHECK: movups
; CHECK: ret
@@ -16,6 +16,6 @@ define <2 x double> @bar(<2 x double>* %p, <2 x double> %x) nounwind {
ret <2 x double> %z
}
-; CHECK: bar:
+; CHECK-LABEL: bar:
; CHECK: movupd
; CHECK: ret
diff --git a/test/CodeGen/X86/sse-commute.ll b/test/CodeGen/X86/sse-commute.ll
index 336bf06e557d7..1800a6eea61b2 100644
--- a/test/CodeGen/X86/sse-commute.ll
+++ b/test/CodeGen/X86/sse-commute.ll
@@ -3,7 +3,7 @@
; Commute the comparison to avoid a move.
; PR7500.
-; CHECK: a:
+; CHECK-LABEL: a:
; CHECK-NOT: mov
; CHECK: pcmpeqd
define <2 x double> @a(<2 x double>, <2 x double>) nounwind readnone {
diff --git a/test/CodeGen/X86/sse-intrinsics-x86.ll b/test/CodeGen/X86/sse-intrinsics-x86.ll
new file mode 100644
index 0000000000000..65d44bfb5ba8a
--- /dev/null
+++ b/test/CodeGen/X86/sse-intrinsics-x86.ll
@@ -0,0 +1,308 @@
+; RUN: llc < %s -mtriple=i386-apple-darwin -mattr=-avx,+sse | FileCheck %s
+
+define <4 x float> @test_x86_sse_add_ss(<4 x float> %a0, <4 x float> %a1) {
+ ; CHECK: addss
+ %res = call <4 x float> @llvm.x86.sse.add.ss(<4 x float> %a0, <4 x float> %a1) ; <<4 x float>> [#uses=1]
+ ret <4 x float> %res
+}
+declare <4 x float> @llvm.x86.sse.add.ss(<4 x float>, <4 x float>) nounwind readnone
+
+
+define <4 x float> @test_x86_sse_cmp_ps(<4 x float> %a0, <4 x float> %a1) {
+ ; CHECK: cmpordps
+ %res = call <4 x float> @llvm.x86.sse.cmp.ps(<4 x float> %a0, <4 x float> %a1, i8 7) ; <<4 x float>> [#uses=1]
+ ret <4 x float> %res
+}
+declare <4 x float> @llvm.x86.sse.cmp.ps(<4 x float>, <4 x float>, i8) nounwind readnone
+
+
+define <4 x float> @test_x86_sse_cmp_ss(<4 x float> %a0, <4 x float> %a1) {
+ ; CHECK: cmpordss
+ %res = call <4 x float> @llvm.x86.sse.cmp.ss(<4 x float> %a0, <4 x float> %a1, i8 7) ; <<4 x float>> [#uses=1]
+ ret <4 x float> %res
+}
+declare <4 x float> @llvm.x86.sse.cmp.ss(<4 x float>, <4 x float>, i8) nounwind readnone
+
+
+define i32 @test_x86_sse_comieq_ss(<4 x float> %a0, <4 x float> %a1) {
+ ; CHECK: comiss
+ ; CHECK: sete
+ ; CHECK: movzbl
+ %res = call i32 @llvm.x86.sse.comieq.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse.comieq.ss(<4 x float>, <4 x float>) nounwind readnone
+
+
+define i32 @test_x86_sse_comige_ss(<4 x float> %a0, <4 x float> %a1) {
+ ; CHECK: comiss
+ ; CHECK: setae
+ ; CHECK: movzbl
+ %res = call i32 @llvm.x86.sse.comige.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse.comige.ss(<4 x float>, <4 x float>) nounwind readnone
+
+
+define i32 @test_x86_sse_comigt_ss(<4 x float> %a0, <4 x float> %a1) {
+ ; CHECK: comiss
+ ; CHECK: seta
+ ; CHECK: movzbl
+ %res = call i32 @llvm.x86.sse.comigt.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse.comigt.ss(<4 x float>, <4 x float>) nounwind readnone
+
+
+define i32 @test_x86_sse_comile_ss(<4 x float> %a0, <4 x float> %a1) {
+ ; CHECK: comiss
+ ; CHECK: setbe
+ ; CHECK: movzbl
+ %res = call i32 @llvm.x86.sse.comile.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse.comile.ss(<4 x float>, <4 x float>) nounwind readnone
+
+
+define i32 @test_x86_sse_comilt_ss(<4 x float> %a0, <4 x float> %a1) {
+ ; CHECK: comiss
+ ; CHECK: sbb
+ %res = call i32 @llvm.x86.sse.comilt.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse.comilt.ss(<4 x float>, <4 x float>) nounwind readnone
+
+
+define i32 @test_x86_sse_comineq_ss(<4 x float> %a0, <4 x float> %a1) {
+ ; CHECK: comiss
+ ; CHECK: setne
+ ; CHECK: movzbl
+ %res = call i32 @llvm.x86.sse.comineq.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse.comineq.ss(<4 x float>, <4 x float>) nounwind readnone
+
+
+define <4 x float> @test_x86_sse_cvtsi2ss(<4 x float> %a0) {
+ ; CHECK: movl
+ ; CHECK: cvtsi2ss
+ %res = call <4 x float> @llvm.x86.sse.cvtsi2ss(<4 x float> %a0, i32 7) ; <<4 x float>> [#uses=1]
+ ret <4 x float> %res
+}
+declare <4 x float> @llvm.x86.sse.cvtsi2ss(<4 x float>, i32) nounwind readnone
+
+
+define i32 @test_x86_sse_cvtss2si(<4 x float> %a0) {
+ ; CHECK: cvtss2si
+ %res = call i32 @llvm.x86.sse.cvtss2si(<4 x float> %a0) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse.cvtss2si(<4 x float>) nounwind readnone
+
+
+define i32 @test_x86_sse_cvttss2si(<4 x float> %a0) {
+ ; CHECK: cvttss2si
+ %res = call i32 @llvm.x86.sse.cvttss2si(<4 x float> %a0) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse.cvttss2si(<4 x float>) nounwind readnone
+
+
+define <4 x float> @test_x86_sse_div_ss(<4 x float> %a0, <4 x float> %a1) {
+ ; CHECK: divss
+ %res = call <4 x float> @llvm.x86.sse.div.ss(<4 x float> %a0, <4 x float> %a1) ; <<4 x float>> [#uses=1]
+ ret <4 x float> %res
+}
+declare <4 x float> @llvm.x86.sse.div.ss(<4 x float>, <4 x float>) nounwind readnone
+
+
+define void @test_x86_sse_ldmxcsr(i8* %a0) {
+ ; CHECK: movl
+ ; CHECK: ldmxcsr
+ call void @llvm.x86.sse.ldmxcsr(i8* %a0)
+ ret void
+}
+declare void @llvm.x86.sse.ldmxcsr(i8*) nounwind
+
+
+
+define <4 x float> @test_x86_sse_max_ps(<4 x float> %a0, <4 x float> %a1) {
+ ; CHECK: maxps
+ %res = call <4 x float> @llvm.x86.sse.max.ps(<4 x float> %a0, <4 x float> %a1) ; <<4 x float>> [#uses=1]
+ ret <4 x float> %res
+}
+declare <4 x float> @llvm.x86.sse.max.ps(<4 x float>, <4 x float>) nounwind readnone
+
+
+define <4 x float> @test_x86_sse_max_ss(<4 x float> %a0, <4 x float> %a1) {
+ ; CHECK: maxss
+ %res = call <4 x float> @llvm.x86.sse.max.ss(<4 x float> %a0, <4 x float> %a1) ; <<4 x float>> [#uses=1]
+ ret <4 x float> %res
+}
+declare <4 x float> @llvm.x86.sse.max.ss(<4 x float>, <4 x float>) nounwind readnone
+
+
+define <4 x float> @test_x86_sse_min_ps(<4 x float> %a0, <4 x float> %a1) {
+ ; CHECK: minps
+ %res = call <4 x float> @llvm.x86.sse.min.ps(<4 x float> %a0, <4 x float> %a1) ; <<4 x float>> [#uses=1]
+ ret <4 x float> %res
+}
+declare <4 x float> @llvm.x86.sse.min.ps(<4 x float>, <4 x float>) nounwind readnone
+
+
+define <4 x float> @test_x86_sse_min_ss(<4 x float> %a0, <4 x float> %a1) {
+ ; CHECK: minss
+ %res = call <4 x float> @llvm.x86.sse.min.ss(<4 x float> %a0, <4 x float> %a1) ; <<4 x float>> [#uses=1]
+ ret <4 x float> %res
+}
+declare <4 x float> @llvm.x86.sse.min.ss(<4 x float>, <4 x float>) nounwind readnone
+
+
+define i32 @test_x86_sse_movmsk_ps(<4 x float> %a0) {
+ ; CHECK: movmskps
+ %res = call i32 @llvm.x86.sse.movmsk.ps(<4 x float> %a0) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse.movmsk.ps(<4 x float>) nounwind readnone
+
+
+
+define <4 x float> @test_x86_sse_mul_ss(<4 x float> %a0, <4 x float> %a1) {
+ ; CHECK: mulss
+ %res = call <4 x float> @llvm.x86.sse.mul.ss(<4 x float> %a0, <4 x float> %a1) ; <<4 x float>> [#uses=1]
+ ret <4 x float> %res
+}
+declare <4 x float> @llvm.x86.sse.mul.ss(<4 x float>, <4 x float>) nounwind readnone
+
+
+define <4 x float> @test_x86_sse_rcp_ps(<4 x float> %a0) {
+ ; CHECK: rcpps
+ %res = call <4 x float> @llvm.x86.sse.rcp.ps(<4 x float> %a0) ; <<4 x float>> [#uses=1]
+ ret <4 x float> %res
+}
+declare <4 x float> @llvm.x86.sse.rcp.ps(<4 x float>) nounwind readnone
+
+
+define <4 x float> @test_x86_sse_rcp_ss(<4 x float> %a0) {
+ ; CHECK: rcpss
+ %res = call <4 x float> @llvm.x86.sse.rcp.ss(<4 x float> %a0) ; <<4 x float>> [#uses=1]
+ ret <4 x float> %res
+}
+declare <4 x float> @llvm.x86.sse.rcp.ss(<4 x float>) nounwind readnone
+
+
+define <4 x float> @test_x86_sse_rsqrt_ps(<4 x float> %a0) {
+ ; CHECK: rsqrtps
+ %res = call <4 x float> @llvm.x86.sse.rsqrt.ps(<4 x float> %a0) ; <<4 x float>> [#uses=1]
+ ret <4 x float> %res
+}
+declare <4 x float> @llvm.x86.sse.rsqrt.ps(<4 x float>) nounwind readnone
+
+
+define <4 x float> @test_x86_sse_rsqrt_ss(<4 x float> %a0) {
+ ; CHECK: rsqrtss
+ %res = call <4 x float> @llvm.x86.sse.rsqrt.ss(<4 x float> %a0) ; <<4 x float>> [#uses=1]
+ ret <4 x float> %res
+}
+declare <4 x float> @llvm.x86.sse.rsqrt.ss(<4 x float>) nounwind readnone
+
+
+define <4 x float> @test_x86_sse_sqrt_ps(<4 x float> %a0) {
+ ; CHECK: sqrtps
+ %res = call <4 x float> @llvm.x86.sse.sqrt.ps(<4 x float> %a0) ; <<4 x float>> [#uses=1]
+ ret <4 x float> %res
+}
+declare <4 x float> @llvm.x86.sse.sqrt.ps(<4 x float>) nounwind readnone
+
+
+define <4 x float> @test_x86_sse_sqrt_ss(<4 x float> %a0) {
+ ; CHECK: sqrtss
+ %res = call <4 x float> @llvm.x86.sse.sqrt.ss(<4 x float> %a0) ; <<4 x float>> [#uses=1]
+ ret <4 x float> %res
+}
+declare <4 x float> @llvm.x86.sse.sqrt.ss(<4 x float>) nounwind readnone
+
+
+define void @test_x86_sse_stmxcsr(i8* %a0) {
+ ; CHECK: movl
+ ; CHECK: stmxcsr
+ call void @llvm.x86.sse.stmxcsr(i8* %a0)
+ ret void
+}
+declare void @llvm.x86.sse.stmxcsr(i8*) nounwind
+
+
+define void @test_x86_sse_storeu_ps(i8* %a0, <4 x float> %a1) {
+ ; CHECK: movl
+ ; CHECK: movups
+ call void @llvm.x86.sse.storeu.ps(i8* %a0, <4 x float> %a1)
+ ret void
+}
+declare void @llvm.x86.sse.storeu.ps(i8*, <4 x float>) nounwind
+
+
+define <4 x float> @test_x86_sse_sub_ss(<4 x float> %a0, <4 x float> %a1) {
+ ; CHECK: subss
+ %res = call <4 x float> @llvm.x86.sse.sub.ss(<4 x float> %a0, <4 x float> %a1) ; <<4 x float>> [#uses=1]
+ ret <4 x float> %res
+}
+declare <4 x float> @llvm.x86.sse.sub.ss(<4 x float>, <4 x float>) nounwind readnone
+
+
+define i32 @test_x86_sse_ucomieq_ss(<4 x float> %a0, <4 x float> %a1) {
+ ; CHECK: ucomiss
+ ; CHECK: sete
+ ; CHECK: movzbl
+ %res = call i32 @llvm.x86.sse.ucomieq.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse.ucomieq.ss(<4 x float>, <4 x float>) nounwind readnone
+
+
+define i32 @test_x86_sse_ucomige_ss(<4 x float> %a0, <4 x float> %a1) {
+ ; CHECK: ucomiss
+ ; CHECK: setae
+ ; CHECK: movzbl
+ %res = call i32 @llvm.x86.sse.ucomige.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse.ucomige.ss(<4 x float>, <4 x float>) nounwind readnone
+
+
+define i32 @test_x86_sse_ucomigt_ss(<4 x float> %a0, <4 x float> %a1) {
+ ; CHECK: ucomiss
+ ; CHECK: seta
+ ; CHECK: movzbl
+ %res = call i32 @llvm.x86.sse.ucomigt.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse.ucomigt.ss(<4 x float>, <4 x float>) nounwind readnone
+
+
+define i32 @test_x86_sse_ucomile_ss(<4 x float> %a0, <4 x float> %a1) {
+ ; CHECK: ucomiss
+ ; CHECK: setbe
+ ; CHECK: movzbl
+ %res = call i32 @llvm.x86.sse.ucomile.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse.ucomile.ss(<4 x float>, <4 x float>) nounwind readnone
+
+
+define i32 @test_x86_sse_ucomilt_ss(<4 x float> %a0, <4 x float> %a1) {
+ ; CHECK: ucomiss
+ ; CHECK: sbbl
+ %res = call i32 @llvm.x86.sse.ucomilt.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse.ucomilt.ss(<4 x float>, <4 x float>) nounwind readnone
+
+
+define i32 @test_x86_sse_ucomineq_ss(<4 x float> %a0, <4 x float> %a1) {
+ ; CHECK: ucomiss
+ ; CHECK: setne
+ ; CHECK: movzbl
+ %res = call i32 @llvm.x86.sse.ucomineq.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse.ucomineq.ss(<4 x float>, <4 x float>) nounwind readnone
diff --git a/test/CodeGen/X86/sse-minmax.ll b/test/CodeGen/X86/sse-minmax.ll
index 0ba02155a6570..5122c44131a47 100644
--- a/test/CodeGen/X86/sse-minmax.ll
+++ b/test/CodeGen/X86/sse-minmax.ll
@@ -12,13 +12,13 @@
; _y: use -0.0 instead of %y
; _inverse : swap the arms of the select.
-; CHECK: ogt:
+; CHECK-LABEL: ogt:
; CHECK-NEXT: maxsd %xmm1, %xmm0
; CHECK-NEXT: ret
-; UNSAFE: ogt:
+; UNSAFE-LABEL: ogt:
; UNSAFE-NEXT: maxsd %xmm1, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: ogt:
+; FINITE-LABEL: ogt:
; FINITE-NEXT: maxsd %xmm1, %xmm0
; FINITE-NEXT: ret
define double @ogt(double %x, double %y) nounwind {
@@ -27,13 +27,13 @@ define double @ogt(double %x, double %y) nounwind {
ret double %d
}
-; CHECK: olt:
+; CHECK-LABEL: olt:
; CHECK-NEXT: minsd %xmm1, %xmm0
; CHECK-NEXT: ret
-; UNSAFE: olt:
+; UNSAFE-LABEL: olt:
; UNSAFE-NEXT: minsd %xmm1, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: olt:
+; FINITE-LABEL: olt:
; FINITE-NEXT: minsd %xmm1, %xmm0
; FINITE-NEXT: ret
define double @olt(double %x, double %y) nounwind {
@@ -42,14 +42,14 @@ define double @olt(double %x, double %y) nounwind {
ret double %d
}
-; CHECK: ogt_inverse:
+; CHECK-LABEL: ogt_inverse:
; CHECK-NEXT: minsd %xmm0, %xmm1
; CHECK-NEXT: movap{{[sd]}} %xmm1, %xmm0
; CHECK-NEXT: ret
-; UNSAFE: ogt_inverse:
+; UNSAFE-LABEL: ogt_inverse:
; UNSAFE-NEXT: minsd %xmm1, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: ogt_inverse:
+; FINITE-LABEL: ogt_inverse:
; FINITE-NEXT: minsd %xmm0, %xmm1
; FINITE-NEXT: movap{{[sd]}} %xmm1, %xmm0
; FINITE-NEXT: ret
@@ -59,14 +59,14 @@ define double @ogt_inverse(double %x, double %y) nounwind {
ret double %d
}
-; CHECK: olt_inverse:
+; CHECK-LABEL: olt_inverse:
; CHECK-NEXT: maxsd %xmm0, %xmm1
; CHECK-NEXT: movap{{[sd]}} %xmm1, %xmm0
; CHECK-NEXT: ret
-; UNSAFE: olt_inverse:
+; UNSAFE-LABEL: olt_inverse:
; UNSAFE-NEXT: maxsd %xmm1, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: olt_inverse:
+; FINITE-LABEL: olt_inverse:
; FINITE-NEXT: maxsd %xmm0, %xmm1
; FINITE-NEXT: movap{{[sd]}} %xmm1, %xmm0
; FINITE-NEXT: ret
@@ -76,12 +76,12 @@ define double @olt_inverse(double %x, double %y) nounwind {
ret double %d
}
-; CHECK: oge:
-; CHECK-NEXT: ucomisd %xmm1, %xmm0
-; UNSAFE: oge:
+; CHECK-LABEL: oge:
+; CHECK: cmplesd %xmm0
+; UNSAFE-LABEL: oge:
; UNSAFE-NEXT: maxsd %xmm1, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: oge:
+; FINITE-LABEL: oge:
; FINITE-NEXT: maxsd %xmm1, %xmm0
; FINITE-NEXT: ret
define double @oge(double %x, double %y) nounwind {
@@ -90,11 +90,11 @@ define double @oge(double %x, double %y) nounwind {
ret double %d
}
-; CHECK: ole:
-; CHECK-NEXT: ucomisd %xmm0, %xmm1
-; UNSAFE: ole:
+; CHECK-LABEL: ole:
+; CHECK: cmplesd %xmm1
+; UNSAFE-LABEL: ole:
; UNSAFE-NEXT: minsd %xmm1, %xmm0
-; FINITE: ole:
+; FINITE-LABEL: ole:
; FINITE-NEXT: minsd %xmm1, %xmm0
define double @ole(double %x, double %y) nounwind {
%c = fcmp ole double %x, %y
@@ -102,12 +102,12 @@ define double @ole(double %x, double %y) nounwind {
ret double %d
}
-; CHECK: oge_inverse:
-; CHECK-NEXT: ucomisd %xmm1, %xmm0
-; UNSAFE: oge_inverse:
+; CHECK-LABEL: oge_inverse:
+; CHECK: cmplesd %xmm0
+; UNSAFE-LABEL: oge_inverse:
; UNSAFE-NEXT: minsd %xmm1, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: oge_inverse:
+; FINITE-LABEL: oge_inverse:
; FINITE-NEXT: minsd %xmm0, %xmm1
; FINITE-NEXT: movap{{[sd]}} %xmm1, %xmm0
; FINITE-NEXT: ret
@@ -117,12 +117,12 @@ define double @oge_inverse(double %x, double %y) nounwind {
ret double %d
}
-; CHECK: ole_inverse:
-; CHECK-NEXT: ucomisd %xmm0, %xmm1
-; UNSAFE: ole_inverse:
+; CHECK-LABEL: ole_inverse:
+; CHECK: cmplesd %xmm1
+; UNSAFE-LABEL: ole_inverse:
; UNSAFE-NEXT: maxsd %xmm1, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: ole_inverse:
+; FINITE-LABEL: ole_inverse:
; FINITE-NEXT: maxsd %xmm0, %xmm1
; FINITE-NEXT: movap{{[sd]}} %xmm1, %xmm0
; FINITE-NEXT: ret
@@ -132,16 +132,16 @@ define double @ole_inverse(double %x, double %y) nounwind {
ret double %d
}
-; CHECK: ogt_x:
+; CHECK-LABEL: ogt_x:
; CHECK-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; CHECK-NEXT: maxsd %xmm1, %xmm0
; CHECK-NEXT: ret
-; UNSAFE: ogt_x:
+; UNSAFE-LABEL: ogt_x:
; UNSAFE-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; UNSAFE-NEXT: maxsd %xmm0, %xmm1
; UNSAFE-NEXT: movap{{[sd]}} %xmm1, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: ogt_x:
+; FINITE-LABEL: ogt_x:
; FINITE-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; FINITE-NEXT: maxsd %xmm1, %xmm0
; FINITE-NEXT: ret
@@ -151,16 +151,16 @@ define double @ogt_x(double %x) nounwind {
ret double %d
}
-; CHECK: olt_x:
+; CHECK-LABEL: olt_x:
; CHECK-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; CHECK-NEXT: minsd %xmm1, %xmm0
; CHECK-NEXT: ret
-; UNSAFE: olt_x:
+; UNSAFE-LABEL: olt_x:
; UNSAFE-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; UNSAFE-NEXT: minsd %xmm0, %xmm1
; UNSAFE-NEXT: movap{{[sd]}} %xmm1, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: olt_x:
+; FINITE-LABEL: olt_x:
; FINITE-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; FINITE-NEXT: minsd %xmm1, %xmm0
; FINITE-NEXT: ret
@@ -170,17 +170,17 @@ define double @olt_x(double %x) nounwind {
ret double %d
}
-; CHECK: ogt_inverse_x:
+; CHECK-LABEL: ogt_inverse_x:
; CHECK-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; CHECK-NEXT: minsd %xmm0, %xmm1
; CHECK-NEXT: movap{{[sd]}} %xmm1, %xmm0
; CHECK-NEXT: ret
-; UNSAFE: ogt_inverse_x:
+; UNSAFE-LABEL: ogt_inverse_x:
; UNSAFE-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; UNSAFE-NEXT: minsd %xmm0, %xmm1
; UNSAFE-NEXT: movap{{[sd]}} %xmm1, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: ogt_inverse_x:
+; FINITE-LABEL: ogt_inverse_x:
; FINITE-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; FINITE-NEXT: minsd %xmm0, %xmm1
; FINITE-NEXT: movap{{[sd]}} %xmm1, %xmm0
@@ -191,17 +191,17 @@ define double @ogt_inverse_x(double %x) nounwind {
ret double %d
}
-; CHECK: olt_inverse_x:
+; CHECK-LABEL: olt_inverse_x:
; CHECK-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; CHECK-NEXT: maxsd %xmm0, %xmm1
; CHECK-NEXT: movap{{[sd]}} %xmm1, %xmm0
; CHECK-NEXT: ret
-; UNSAFE: olt_inverse_x:
+; UNSAFE-LABEL: olt_inverse_x:
; UNSAFE-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; UNSAFE-NEXT: maxsd %xmm0, %xmm1
; UNSAFE-NEXT: movap{{[sd]}} %xmm1, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: olt_inverse_x:
+; FINITE-LABEL: olt_inverse_x:
; FINITE-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; FINITE-NEXT: maxsd %xmm0, %xmm1
; FINITE-NEXT: movap{{[sd]}} %xmm1, %xmm0
@@ -212,14 +212,15 @@ define double @olt_inverse_x(double %x) nounwind {
ret double %d
}
-; CHECK: oge_x:
-; CHECK: ucomisd %xmm1, %xmm0
-; UNSAFE: oge_x:
+; CHECK-LABEL: oge_x:
+; CHECK: cmplesd %xmm
+; CHECK-NEXT: andpd
+; UNSAFE-LABEL: oge_x:
; UNSAFE-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; UNSAFE-NEXT: maxsd %xmm0, %xmm1
; UNSAFE-NEXT: movap{{[sd]}} %xmm1, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: oge_x:
+; FINITE-LABEL: oge_x:
; FINITE-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; FINITE-NEXT: maxsd %xmm1, %xmm0
; FINITE-NEXT: ret
@@ -229,14 +230,15 @@ define double @oge_x(double %x) nounwind {
ret double %d
}
-; CHECK: ole_x:
-; CHECK: ucomisd %xmm0, %xmm1
-; UNSAFE: ole_x:
+; CHECK-LABEL: ole_x:
+; CHECK: cmplesd %xmm
+; CHECK-NEXT: andpd
+; UNSAFE-LABEL: ole_x:
; UNSAFE-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; UNSAFE-NEXT: minsd %xmm0, %xmm1
; UNSAFE-NEXT: movap{{[sd]}} %xmm1, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: ole_x:
+; FINITE-LABEL: ole_x:
; FINITE-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; FINITE-NEXT: minsd %xmm1, %xmm0
; FINITE-NEXT: ret
@@ -246,14 +248,15 @@ define double @ole_x(double %x) nounwind {
ret double %d
}
-; CHECK: oge_inverse_x:
-; CHECK: ucomisd %xmm
-; UNSAFE: oge_inverse_x:
+; CHECK-LABEL: oge_inverse_x:
+; CHECK: cmplesd %xmm
+; CHECK-NEXT: andnpd
+; UNSAFE-LABEL: oge_inverse_x:
; UNSAFE-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; UNSAFE-NEXT: minsd %xmm0, %xmm1
; UNSAFE-NEXT: movap{{[sd]}} %xmm1, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: oge_inverse_x:
+; FINITE-LABEL: oge_inverse_x:
; FINITE-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; FINITE-NEXT: minsd %xmm0, %xmm1
; FINITE-NEXT: movap{{[sd]}} %xmm1, %xmm0
@@ -264,14 +267,14 @@ define double @oge_inverse_x(double %x) nounwind {
ret double %d
}
-; CHECK: ole_inverse_x:
-; CHECK: ucomisd %xmm
-; UNSAFE: ole_inverse_x:
+; CHECK-LABEL: ole_inverse_x:
+; CHECK: cmplesd %xmm
+; UNSAFE-LABEL: ole_inverse_x:
; UNSAFE-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; UNSAFE-NEXT: maxsd %xmm0, %xmm1
; UNSAFE-NEXT: movap{{[sd]}} %xmm1, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: ole_inverse_x:
+; FINITE-LABEL: ole_inverse_x:
; FINITE-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; FINITE-NEXT: maxsd %xmm0, %xmm1
; FINITE-NEXT: movap{{[sd]}} %xmm1, %xmm0
@@ -282,12 +285,12 @@ define double @ole_inverse_x(double %x) nounwind {
ret double %d
}
-; CHECK: ugt:
-; CHECK: ucomisd %xmm0, %xmm1
-; UNSAFE: ugt:
+; CHECK-LABEL: ugt:
+; CHECK: cmpnlesd %xmm1
+; UNSAFE-LABEL: ugt:
; UNSAFE-NEXT: maxsd %xmm1, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: ugt:
+; FINITE-LABEL: ugt:
; FINITE-NEXT: maxsd %xmm1, %xmm0
; FINITE-NEXT: ret
define double @ugt(double %x, double %y) nounwind {
@@ -296,12 +299,12 @@ define double @ugt(double %x, double %y) nounwind {
ret double %d
}
-; CHECK: ult:
-; CHECK: ucomisd %xmm1, %xmm0
-; UNSAFE: ult:
+; CHECK-LABEL: ult:
+; CHECK: cmpnlesd %xmm0
+; UNSAFE-LABEL: ult:
; UNSAFE-NEXT: minsd %xmm1, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: ult:
+; FINITE-LABEL: ult:
; FINITE-NEXT: minsd %xmm1, %xmm0
; FINITE-NEXT: ret
define double @ult(double %x, double %y) nounwind {
@@ -310,12 +313,12 @@ define double @ult(double %x, double %y) nounwind {
ret double %d
}
-; CHECK: ugt_inverse:
-; CHECK: ucomisd %xmm0, %xmm1
-; UNSAFE: ugt_inverse:
+; CHECK-LABEL: ugt_inverse:
+; CHECK: cmpnlesd %xmm1
+; UNSAFE-LABEL: ugt_inverse:
; UNSAFE-NEXT: minsd %xmm1, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: ugt_inverse:
+; FINITE-LABEL: ugt_inverse:
; FINITE-NEXT: minsd %xmm0, %xmm1
; FINITE-NEXT: movap{{[sd]}} %xmm1, %xmm0
; FINITE-NEXT: ret
@@ -325,12 +328,12 @@ define double @ugt_inverse(double %x, double %y) nounwind {
ret double %d
}
-; CHECK: ult_inverse:
-; CHECK: ucomisd %xmm1, %xmm0
-; UNSAFE: ult_inverse:
+; CHECK-LABEL: ult_inverse:
+; CHECK: cmpnlesd %xmm0
+; UNSAFE-LABEL: ult_inverse:
; UNSAFE-NEXT: maxsd %xmm1, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: ult_inverse:
+; FINITE-LABEL: ult_inverse:
; FINITE-NEXT: maxsd %xmm0, %xmm1
; FINITE-NEXT: movap{{[sd]}} %xmm1, %xmm0
; FINITE-NEXT: ret
@@ -340,14 +343,14 @@ define double @ult_inverse(double %x, double %y) nounwind {
ret double %d
}
-; CHECK: uge:
+; CHECK-LABEL: uge:
; CHECK-NEXT: maxsd %xmm0, %xmm1
; CHECK-NEXT: movap{{[sd]}} %xmm1, %xmm0
; CHECK-NEXT: ret
-; UNSAFE: uge:
+; UNSAFE-LABEL: uge:
; UNSAFE-NEXT: maxsd %xmm1, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: uge:
+; FINITE-LABEL: uge:
; FINITE-NEXT: maxsd %xmm1, %xmm0
; FINITE-NEXT: ret
define double @uge(double %x, double %y) nounwind {
@@ -356,14 +359,14 @@ define double @uge(double %x, double %y) nounwind {
ret double %d
}
-; CHECK: ule:
+; CHECK-LABEL: ule:
; CHECK-NEXT: minsd %xmm0, %xmm1
; CHECK-NEXT: movap{{[sd]}} %xmm1, %xmm0
; CHECK-NEXT: ret
-; UNSAFE: ule:
+; UNSAFE-LABEL: ule:
; UNSAFE-NEXT: minsd %xmm1, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: ule:
+; FINITE-LABEL: ule:
; FINITE-NEXT: minsd %xmm1, %xmm0
; FINITE-NEXT: ret
define double @ule(double %x, double %y) nounwind {
@@ -372,13 +375,13 @@ define double @ule(double %x, double %y) nounwind {
ret double %d
}
-; CHECK: uge_inverse:
+; CHECK-LABEL: uge_inverse:
; CHECK-NEXT: minsd %xmm1, %xmm0
; CHECK-NEXT: ret
-; UNSAFE: uge_inverse:
+; UNSAFE-LABEL: uge_inverse:
; UNSAFE-NEXT: minsd %xmm1, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: uge_inverse:
+; FINITE-LABEL: uge_inverse:
; FINITE-NEXT: minsd %xmm0, %xmm1
; FINITE-NEXT: movap{{[sd]}} %xmm1, %xmm0
; FINITE-NEXT: ret
@@ -388,13 +391,13 @@ define double @uge_inverse(double %x, double %y) nounwind {
ret double %d
}
-; CHECK: ule_inverse:
+; CHECK-LABEL: ule_inverse:
; CHECK-NEXT: maxsd %xmm1, %xmm0
; CHECK-NEXT: ret
-; UNSAFE: ule_inverse:
+; UNSAFE-LABEL: ule_inverse:
; UNSAFE-NEXT: maxsd %xmm1, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: ule_inverse:
+; FINITE-LABEL: ule_inverse:
; FINITE-NEXT: maxsd %xmm0, %xmm1
; FINITE-NEXT: movap{{[sd]}} %xmm1, %xmm0
; FINITE-NEXT: ret
@@ -404,14 +407,15 @@ define double @ule_inverse(double %x, double %y) nounwind {
ret double %d
}
-; CHECK: ugt_x:
-; CHECK: ucomisd %xmm0, %xmm1
-; UNSAFE: ugt_x:
+; CHECK-LABEL: ugt_x:
+; CHECK: cmpnlesd %xmm
+; CHECK-NEXT: andpd
+; UNSAFE-LABEL: ugt_x:
; UNSAFE-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; UNSAFE-NEXT: maxsd %xmm0, %xmm1
; UNSAFE-NEXT: movap{{[sd]}} %xmm1, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: ugt_x:
+; FINITE-LABEL: ugt_x:
; FINITE-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; FINITE-NEXT: maxsd %xmm1, %xmm0
; FINITE-NEXT: ret
@@ -421,14 +425,15 @@ define double @ugt_x(double %x) nounwind {
ret double %d
}
-; CHECK: ult_x:
-; CHECK: ucomisd %xmm1, %xmm0
-; UNSAFE: ult_x:
+; CHECK-LABEL: ult_x:
+; CHECK: cmpnlesd %xmm
+; CHECK-NEXT: andpd
+; UNSAFE-LABEL: ult_x:
; UNSAFE-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; UNSAFE-NEXT: minsd %xmm0, %xmm1
; UNSAFE-NEXT: movap{{[sd]}} %xmm1, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: ult_x:
+; FINITE-LABEL: ult_x:
; FINITE-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; FINITE-NEXT: minsd %xmm1, %xmm0
; FINITE-NEXT: ret
@@ -438,14 +443,15 @@ define double @ult_x(double %x) nounwind {
ret double %d
}
-; CHECK: ugt_inverse_x:
-; CHECK: ucomisd %xmm
-; UNSAFE: ugt_inverse_x:
+; CHECK-LABEL: ugt_inverse_x:
+; CHECK: cmpnlesd %xmm
+; CHECK-NEXT: andnpd
+; UNSAFE-LABEL: ugt_inverse_x:
; UNSAFE-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; UNSAFE-NEXT: minsd %xmm0, %xmm1
; UNSAFE-NEXT: movap{{[sd]}} %xmm1, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: ugt_inverse_x:
+; FINITE-LABEL: ugt_inverse_x:
; FINITE-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; FINITE-NEXT: minsd %xmm0, %xmm1
; FINITE-NEXT: movap{{[sd]}} %xmm1, %xmm0
@@ -456,14 +462,15 @@ define double @ugt_inverse_x(double %x) nounwind {
ret double %d
}
-; CHECK: ult_inverse_x:
-; CHECK: ucomisd %xmm
-; UNSAFE: ult_inverse_x:
+; CHECK-LABEL: ult_inverse_x:
+; CHECK: cmpnlesd %xmm
+; CHECK-NEXT: andnpd
+; UNSAFE-LABEL: ult_inverse_x:
; UNSAFE-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; UNSAFE-NEXT: maxsd %xmm0, %xmm1
; UNSAFE-NEXT: movap{{[sd]}} %xmm1, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: ult_inverse_x:
+; FINITE-LABEL: ult_inverse_x:
; FINITE-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; FINITE-NEXT: maxsd %xmm0, %xmm1
; FINITE-NEXT: movap{{[sd]}} %xmm1, %xmm0
@@ -474,17 +481,17 @@ define double @ult_inverse_x(double %x) nounwind {
ret double %d
}
-; CHECK: uge_x:
+; CHECK-LABEL: uge_x:
; CHECK-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; CHECK-NEXT: maxsd %xmm0, %xmm1
; CHECK-NEXT: movap{{[sd]}} %xmm1, %xmm0
; CHECK-NEXT: ret
-; UNSAFE: uge_x:
+; UNSAFE-LABEL: uge_x:
; UNSAFE-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; UNSAFE-NEXT: maxsd %xmm0, %xmm1
; UNSAFE-NEXT: movap{{[sd]}} %xmm1, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: uge_x:
+; FINITE-LABEL: uge_x:
; FINITE-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; FINITE-NEXT: maxsd %xmm1, %xmm0
; FINITE-NEXT: ret
@@ -494,17 +501,17 @@ define double @uge_x(double %x) nounwind {
ret double %d
}
-; CHECK: ule_x:
+; CHECK-LABEL: ule_x:
; CHECK-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; CHECK-NEXT: minsd %xmm0, %xmm1
; CHECK-NEXT: movap{{[sd]}} %xmm1, %xmm0
; CHECK-NEXT: ret
-; UNSAFE: ule_x:
+; UNSAFE-LABEL: ule_x:
; UNSAFE-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; UNSAFE-NEXT: minsd %xmm0, %xmm1
; UNSAFE-NEXT: movap{{[sd]}} %xmm1, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: ule_x:
+; FINITE-LABEL: ule_x:
; FINITE-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; FINITE-NEXT: minsd %xmm1, %xmm0
; FINITE-NEXT: ret
@@ -514,16 +521,16 @@ define double @ule_x(double %x) nounwind {
ret double %d
}
-; CHECK: uge_inverse_x:
+; CHECK-LABEL: uge_inverse_x:
; CHECK-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; CHECK-NEXT: minsd %xmm1, %xmm0
; CHECK-NEXT: ret
-; UNSAFE: uge_inverse_x:
+; UNSAFE-LABEL: uge_inverse_x:
; UNSAFE-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; UNSAFE-NEXT: minsd %xmm0, %xmm1
; UNSAFE-NEXT: movap{{[sd]}} %xmm1, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: uge_inverse_x:
+; FINITE-LABEL: uge_inverse_x:
; FINITE-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; FINITE-NEXT: minsd %xmm0, %xmm1
; FINITE-NEXT: movap{{[sd]}} %xmm1, %xmm0
@@ -534,16 +541,16 @@ define double @uge_inverse_x(double %x) nounwind {
ret double %d
}
-; CHECK: ule_inverse_x:
+; CHECK-LABEL: ule_inverse_x:
; CHECK-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; CHECK-NEXT: maxsd %xmm1, %xmm0
; CHECK-NEXT: ret
-; UNSAFE: ule_inverse_x:
+; UNSAFE-LABEL: ule_inverse_x:
; UNSAFE-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; UNSAFE-NEXT: maxsd %xmm0, %xmm1
; UNSAFE-NEXT: movap{{[sd]}} %xmm1, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: ule_inverse_x:
+; FINITE-LABEL: ule_inverse_x:
; FINITE-NEXT: xorp{{[sd]}} %xmm1, %xmm1
; FINITE-NEXT: maxsd %xmm0, %xmm1
; FINITE-NEXT: movap{{[sd]}} %xmm1, %xmm0
@@ -554,13 +561,13 @@ define double @ule_inverse_x(double %x) nounwind {
ret double %d
}
-; CHECK: ogt_y:
+; CHECK-LABEL: ogt_y:
; CHECK-NEXT: maxsd {{[^,]*}}, %xmm0
; CHECK-NEXT: ret
-; UNSAFE: ogt_y:
+; UNSAFE-LABEL: ogt_y:
; UNSAFE-NEXT: maxsd {{[^,]*}}, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: ogt_y:
+; FINITE-LABEL: ogt_y:
; FINITE-NEXT: maxsd {{[^,]*}}, %xmm0
; FINITE-NEXT: ret
define double @ogt_y(double %x) nounwind {
@@ -569,13 +576,13 @@ define double @ogt_y(double %x) nounwind {
ret double %d
}
-; CHECK: olt_y:
+; CHECK-LABEL: olt_y:
; CHECK-NEXT: minsd {{[^,]*}}, %xmm0
; CHECK-NEXT: ret
-; UNSAFE: olt_y:
+; UNSAFE-LABEL: olt_y:
; UNSAFE-NEXT: minsd {{[^,]*}}, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: olt_y:
+; FINITE-LABEL: olt_y:
; FINITE-NEXT: minsd {{[^,]*}}, %xmm0
; FINITE-NEXT: ret
define double @olt_y(double %x) nounwind {
@@ -584,15 +591,15 @@ define double @olt_y(double %x) nounwind {
ret double %d
}
-; CHECK: ogt_inverse_y:
+; CHECK-LABEL: ogt_inverse_y:
; CHECK-NEXT: movsd {{[^,]*}}, %xmm1
; CHECK-NEXT: minsd %xmm0, %xmm1
; CHECK-NEXT: movap{{[sd]}} %xmm1, %xmm0
; CHECK-NEXT: ret
-; UNSAFE: ogt_inverse_y:
+; UNSAFE-LABEL: ogt_inverse_y:
; UNSAFE-NEXT: minsd {{[^,]*}}, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: ogt_inverse_y:
+; FINITE-LABEL: ogt_inverse_y:
; FINITE-NEXT: movsd {{[^,]*}}, %xmm1
; FINITE-NEXT: minsd %xmm0, %xmm1
; FINITE-NEXT: movap{{[sd]}} %xmm1, %xmm0
@@ -603,15 +610,15 @@ define double @ogt_inverse_y(double %x) nounwind {
ret double %d
}
-; CHECK: olt_inverse_y:
+; CHECK-LABEL: olt_inverse_y:
; CHECK-NEXT: movsd {{[^,]*}}, %xmm1
; CHECK-NEXT: maxsd %xmm0, %xmm1
; CHECK-NEXT: movap{{[sd]}} %xmm1, %xmm0
; CHECK-NEXT: ret
-; UNSAFE: olt_inverse_y:
+; UNSAFE-LABEL: olt_inverse_y:
; UNSAFE-NEXT: maxsd {{[^,]*}}, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: olt_inverse_y:
+; FINITE-LABEL: olt_inverse_y:
; FINITE-NEXT: movsd {{[^,]*}}, %xmm1
; FINITE-NEXT: maxsd %xmm0, %xmm1
; FINITE-NEXT: movap{{[sd]}} %xmm1, %xmm0
@@ -622,12 +629,12 @@ define double @olt_inverse_y(double %x) nounwind {
ret double %d
}
-; CHECK: oge_y:
-; CHECK: ucomisd %xmm1, %xmm0
-; UNSAFE: oge_y:
+; CHECK-LABEL: oge_y:
+; CHECK: cmplesd %xmm0
+; UNSAFE-LABEL: oge_y:
; UNSAFE-NEXT: maxsd {{[^,]*}}, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: oge_y:
+; FINITE-LABEL: oge_y:
; FINITE-NEXT: maxsd {{[^,]*}}, %xmm0
; FINITE-NEXT: ret
define double @oge_y(double %x) nounwind {
@@ -636,12 +643,12 @@ define double @oge_y(double %x) nounwind {
ret double %d
}
-; CHECK: ole_y:
-; CHECK: ucomisd %xmm0, %xmm1
-; UNSAFE: ole_y:
+; CHECK-LABEL: ole_y:
+; CHECK: cmplesd %xmm
+; UNSAFE-LABEL: ole_y:
; UNSAFE-NEXT: minsd {{[^,]*}}, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: ole_y:
+; FINITE-LABEL: ole_y:
; FINITE-NEXT: minsd {{[^,]*}}, %xmm0
; FINITE-NEXT: ret
define double @ole_y(double %x) nounwind {
@@ -650,12 +657,12 @@ define double @ole_y(double %x) nounwind {
ret double %d
}
-; CHECK: oge_inverse_y:
-; CHECK: ucomisd %xmm
-; UNSAFE: oge_inverse_y:
+; CHECK-LABEL: oge_inverse_y:
+; CHECK: cmplesd %xmm0
+; UNSAFE-LABEL: oge_inverse_y:
; UNSAFE-NEXT: minsd {{[^,]*}}, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: oge_inverse_y:
+; FINITE-LABEL: oge_inverse_y:
; FINITE-NEXT: movsd {{[^,]*}}, %xmm1
; FINITE-NEXT: minsd %xmm0, %xmm1
; FINITE-NEXT: movap{{[sd]}} %xmm1, %xmm0
@@ -666,12 +673,12 @@ define double @oge_inverse_y(double %x) nounwind {
ret double %d
}
-; CHECK: ole_inverse_y:
-; CHECK: ucomisd %xmm
-; UNSAFE: ole_inverse_y:
+; CHECK-LABEL: ole_inverse_y:
+; CHECK: cmplesd %xmm
+; UNSAFE-LABEL: ole_inverse_y:
; UNSAFE-NEXT: maxsd {{[^,]*}}, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: ole_inverse_y:
+; FINITE-LABEL: ole_inverse_y:
; FINITE-NEXT: movsd {{[^,]*}}, %xmm1
; FINITE-NEXT: maxsd %xmm0, %xmm1
; FINITE-NEXT: movap{{[sd]}} %xmm1, %xmm0
@@ -682,12 +689,12 @@ define double @ole_inverse_y(double %x) nounwind {
ret double %d
}
-; CHECK: ugt_y:
-; CHECK: ucomisd %xmm0, %xmm1
-; UNSAFE: ugt_y:
+; CHECK-LABEL: ugt_y:
+; CHECK: cmpnlesd %xmm
+; UNSAFE-LABEL: ugt_y:
; UNSAFE-NEXT: maxsd {{[^,]*}}, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: ugt_y:
+; FINITE-LABEL: ugt_y:
; FINITE-NEXT: maxsd {{[^,]*}}, %xmm0
; FINITE-NEXT: ret
define double @ugt_y(double %x) nounwind {
@@ -696,12 +703,12 @@ define double @ugt_y(double %x) nounwind {
ret double %d
}
-; CHECK: ult_y:
-; CHECK: ucomisd %xmm1, %xmm0
-; UNSAFE: ult_y:
+; CHECK-LABEL: ult_y:
+; CHECK: cmpnlesd %xmm0
+; UNSAFE-LABEL: ult_y:
; UNSAFE-NEXT: minsd {{[^,]*}}, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: ult_y:
+; FINITE-LABEL: ult_y:
; FINITE-NEXT: minsd {{[^,]*}}, %xmm0
; FINITE-NEXT: ret
define double @ult_y(double %x) nounwind {
@@ -710,12 +717,12 @@ define double @ult_y(double %x) nounwind {
ret double %d
}
-; CHECK: ugt_inverse_y:
-; CHECK: ucomisd %xmm
-; UNSAFE: ugt_inverse_y:
+; CHECK-LABEL: ugt_inverse_y:
+; CHECK: cmpnlesd %xmm
+; UNSAFE-LABEL: ugt_inverse_y:
; UNSAFE-NEXT: minsd {{[^,]*}}, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: ugt_inverse_y:
+; FINITE-LABEL: ugt_inverse_y:
; FINITE-NEXT: movsd {{[^,]*}}, %xmm1
; FINITE-NEXT: minsd %xmm0, %xmm1
; FINITE-NEXT: movap{{[sd]}} %xmm1, %xmm0
@@ -726,12 +733,12 @@ define double @ugt_inverse_y(double %x) nounwind {
ret double %d
}
-; CHECK: ult_inverse_y:
-; CHECK: ucomisd %xmm
-; UNSAFE: ult_inverse_y:
+; CHECK-LABEL: ult_inverse_y:
+; CHECK: cmpnlesd %xmm
+; UNSAFE-LABEL: ult_inverse_y:
; UNSAFE-NEXT: maxsd {{[^,]*}}, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: ult_inverse_y:
+; FINITE-LABEL: ult_inverse_y:
; FINITE-NEXT: movsd {{[^,]*}}, %xmm1
; FINITE-NEXT: maxsd %xmm0, %xmm1
; FINITE-NEXT: movap{{[sd]}} %xmm1, %xmm0
@@ -742,15 +749,15 @@ define double @ult_inverse_y(double %x) nounwind {
ret double %d
}
-; CHECK: uge_y:
+; CHECK-LABEL: uge_y:
; CHECK-NEXT: movsd {{[^,]*}}, %xmm1
; CHECK-NEXT: maxsd %xmm0, %xmm1
; CHECK-NEXT: movap{{[sd]}} %xmm1, %xmm0
; CHECK-NEXT: ret
-; UNSAFE: uge_y:
+; UNSAFE-LABEL: uge_y:
; UNSAFE-NEXT: maxsd {{[^,]*}}, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: uge_y:
+; FINITE-LABEL: uge_y:
; FINITE-NEXT: maxsd {{[^,]*}}, %xmm0
; FINITE-NEXT: ret
define double @uge_y(double %x) nounwind {
@@ -759,15 +766,15 @@ define double @uge_y(double %x) nounwind {
ret double %d
}
-; CHECK: ule_y:
+; CHECK-LABEL: ule_y:
; CHECK-NEXT: movsd {{[^,]*}}, %xmm1
; CHECK-NEXT: minsd %xmm0, %xmm1
; CHECK-NEXT: movap{{[sd]}} %xmm1, %xmm0
; CHECK-NEXT: ret
-; UNSAFE: ule_y:
+; UNSAFE-LABEL: ule_y:
; UNSAFE-NEXT: minsd {{[^,]*}}, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: ule_y:
+; FINITE-LABEL: ule_y:
; FINITE-NEXT: minsd {{[^,]*}}, %xmm0
; FINITE-NEXT: ret
define double @ule_y(double %x) nounwind {
@@ -776,13 +783,13 @@ define double @ule_y(double %x) nounwind {
ret double %d
}
-; CHECK: uge_inverse_y:
+; CHECK-LABEL: uge_inverse_y:
; CHECK-NEXT: minsd {{[^,]*}}, %xmm0
; CHECK-NEXT: ret
-; UNSAFE: uge_inverse_y:
+; UNSAFE-LABEL: uge_inverse_y:
; UNSAFE-NEXT: minsd {{[^,]*}}, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: uge_inverse_y:
+; FINITE-LABEL: uge_inverse_y:
; FINITE-NEXT: movsd {{[^,]*}}, %xmm1
; FINITE-NEXT: minsd %xmm0, %xmm1
; FINITE-NEXT: movap{{[sd]}} %xmm1, %xmm0
@@ -793,13 +800,13 @@ define double @uge_inverse_y(double %x) nounwind {
ret double %d
}
-; CHECK: ule_inverse_y:
+; CHECK-LABEL: ule_inverse_y:
; CHECK-NEXT: maxsd {{[^,]*}}, %xmm0
; CHECK-NEXT: ret
-; UNSAFE: ule_inverse_y:
+; UNSAFE-LABEL: ule_inverse_y:
; UNSAFE-NEXT: maxsd {{[^,]*}}, %xmm0
; UNSAFE-NEXT: ret
-; FINITE: ule_inverse_y:
+; FINITE-LABEL: ule_inverse_y:
; FINITE-NEXT: movsd {{[^,]*}}, %xmm1
; FINITE-NEXT: maxsd %xmm0, %xmm1
; FINITE-NEXT: movap{{[sd]}} %xmm1, %xmm0
@@ -811,11 +818,11 @@ define double @ule_inverse_y(double %x) nounwind {
}
; Test a few more misc. cases.
-; CHECK: clampTo3k_a:
+; CHECK-LABEL: clampTo3k_a:
; CHECK: minsd
-; UNSAFE: clampTo3k_a:
+; UNSAFE-LABEL: clampTo3k_a:
; UNSAFE: minsd
-; FINITE: clampTo3k_a:
+; FINITE-LABEL: clampTo3k_a:
; FINITE: minsd
define double @clampTo3k_a(double %x) nounwind readnone {
entry:
@@ -824,11 +831,11 @@ entry:
ret double %x_addr.0
}
-; CHECK: clampTo3k_b:
+; CHECK-LABEL: clampTo3k_b:
; CHECK: minsd
-; UNSAFE: clampTo3k_b:
+; UNSAFE-LABEL: clampTo3k_b:
; UNSAFE: minsd
-; FINITE: clampTo3k_b:
+; FINITE-LABEL: clampTo3k_b:
; FINITE: minsd
define double @clampTo3k_b(double %x) nounwind readnone {
entry:
@@ -837,11 +844,11 @@ entry:
ret double %x_addr.0
}
-; CHECK: clampTo3k_c:
+; CHECK-LABEL: clampTo3k_c:
; CHECK: maxsd
-; UNSAFE: clampTo3k_c:
+; UNSAFE-LABEL: clampTo3k_c:
; UNSAFE: maxsd
-; FINITE: clampTo3k_c:
+; FINITE-LABEL: clampTo3k_c:
; FINITE: maxsd
define double @clampTo3k_c(double %x) nounwind readnone {
entry:
@@ -850,11 +857,11 @@ entry:
ret double %x_addr.0
}
-; CHECK: clampTo3k_d:
+; CHECK-LABEL: clampTo3k_d:
; CHECK: maxsd
-; UNSAFE: clampTo3k_d:
+; UNSAFE-LABEL: clampTo3k_d:
; UNSAFE: maxsd
-; FINITE: clampTo3k_d:
+; FINITE-LABEL: clampTo3k_d:
; FINITE: maxsd
define double @clampTo3k_d(double %x) nounwind readnone {
entry:
@@ -863,11 +870,11 @@ entry:
ret double %x_addr.0
}
-; CHECK: clampTo3k_e:
+; CHECK-LABEL: clampTo3k_e:
; CHECK: maxsd
-; UNSAFE: clampTo3k_e:
+; UNSAFE-LABEL: clampTo3k_e:
; UNSAFE: maxsd
-; FINITE: clampTo3k_e:
+; FINITE-LABEL: clampTo3k_e:
; FINITE: maxsd
define double @clampTo3k_e(double %x) nounwind readnone {
entry:
@@ -876,11 +883,11 @@ entry:
ret double %x_addr.0
}
-; CHECK: clampTo3k_f:
+; CHECK-LABEL: clampTo3k_f:
; CHECK: maxsd
-; UNSAFE: clampTo3k_f:
+; UNSAFE-LABEL: clampTo3k_f:
; UNSAFE: maxsd
-; FINITE: clampTo3k_f:
+; FINITE-LABEL: clampTo3k_f:
; FINITE: maxsd
define double @clampTo3k_f(double %x) nounwind readnone {
entry:
@@ -889,11 +896,11 @@ entry:
ret double %x_addr.0
}
-; CHECK: clampTo3k_g:
+; CHECK-LABEL: clampTo3k_g:
; CHECK: minsd
-; UNSAFE: clampTo3k_g:
+; UNSAFE-LABEL: clampTo3k_g:
; UNSAFE: minsd
-; FINITE: clampTo3k_g:
+; FINITE-LABEL: clampTo3k_g:
; FINITE: minsd
define double @clampTo3k_g(double %x) nounwind readnone {
entry:
@@ -902,11 +909,11 @@ entry:
ret double %x_addr.0
}
-; CHECK: clampTo3k_h:
+; CHECK-LABEL: clampTo3k_h:
; CHECK: minsd
-; UNSAFE: clampTo3k_h:
+; UNSAFE-LABEL: clampTo3k_h:
; UNSAFE: minsd
-; FINITE: clampTo3k_h:
+; FINITE-LABEL: clampTo3k_h:
; FINITE: minsd
define double @clampTo3k_h(double %x) nounwind readnone {
entry:
@@ -915,33 +922,33 @@ entry:
ret double %x_addr.0
}
-; UNSAFE: maxpd:
+; UNSAFE-LABEL: test_maxpd:
; UNSAFE: maxpd
-define <2 x double> @maxpd(<2 x double> %x, <2 x double> %y) {
+define <2 x double> @test_maxpd(<2 x double> %x, <2 x double> %y) {
%max_is_x = fcmp oge <2 x double> %x, %y
%max = select <2 x i1> %max_is_x, <2 x double> %x, <2 x double> %y
ret <2 x double> %max
}
-; UNSAFE: minpd:
+; UNSAFE-LABEL: test_minpd:
; UNSAFE: minpd
-define <2 x double> @minpd(<2 x double> %x, <2 x double> %y) {
+define <2 x double> @test_minpd(<2 x double> %x, <2 x double> %y) {
%min_is_x = fcmp ole <2 x double> %x, %y
%min = select <2 x i1> %min_is_x, <2 x double> %x, <2 x double> %y
ret <2 x double> %min
}
-; UNSAFE: maxps:
+; UNSAFE-LABEL: test_maxps:
; UNSAFE: maxps
-define <4 x float> @maxps(<4 x float> %x, <4 x float> %y) {
+define <4 x float> @test_maxps(<4 x float> %x, <4 x float> %y) {
%max_is_x = fcmp oge <4 x float> %x, %y
%max = select <4 x i1> %max_is_x, <4 x float> %x, <4 x float> %y
ret <4 x float> %max
}
-; UNSAFE: minps:
+; UNSAFE-LABEL: test_minps:
; UNSAFE: minps
-define <4 x float> @minps(<4 x float> %x, <4 x float> %y) {
+define <4 x float> @test_minps(<4 x float> %x, <4 x float> %y) {
%min_is_x = fcmp ole <4 x float> %x, %y
%min = select <4 x i1> %min_is_x, <4 x float> %x, <4 x float> %y
ret <4 x float> %min
diff --git a/test/CodeGen/X86/sse1.ll b/test/CodeGen/X86/sse1.ll
index 9b2e05b5bedde..47c6429b18144 100644
--- a/test/CodeGen/X86/sse1.ll
+++ b/test/CodeGen/X86/sse1.ll
@@ -33,7 +33,7 @@ entry:
%tmp11 = insertelement <2 x float> undef, float %add.r, i32 0
%tmp9 = insertelement <2 x float> %tmp11, float %add.i, i32 1
ret <2 x float> %tmp9
-; CHECK: test4:
+; CHECK-LABEL: test4:
; CHECK-NOT: shufps $16
; CHECK: shufps $1,
; CHECK-NOT: shufps $16
diff --git a/test/CodeGen/X86/sse2-blend.ll b/test/CodeGen/X86/sse2-blend.ll
index 30a0fbe7d6deb..1ac983254eaf6 100644
--- a/test/CodeGen/X86/sse2-blend.ll
+++ b/test/CodeGen/X86/sse2-blend.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86 -mcpu=yonah -mattr=+sse2,-sse41 | FileCheck %s
+; RUN: llc < %s -march=x86 -mcpu=yonah -mattr=+sse2,-sse4.1 | FileCheck %s
; CHECK: vsel_float
; CHECK: pandn
diff --git a/test/CodeGen/X86/sse2-intrinsics-x86.ll b/test/CodeGen/X86/sse2-intrinsics-x86.ll
new file mode 100644
index 0000000000000..ff6c10bfe5a88
--- /dev/null
+++ b/test/CodeGen/X86/sse2-intrinsics-x86.ll
@@ -0,0 +1,712 @@
+; RUN: llc < %s -mtriple=i386-apple-darwin -mattr=-avx,+sse2 | FileCheck %s
+
+define <2 x double> @test_x86_sse2_add_sd(<2 x double> %a0, <2 x double> %a1) {
+ ; CHECK: addsd
+ %res = call <2 x double> @llvm.x86.sse2.add.sd(<2 x double> %a0, <2 x double> %a1) ; <<2 x double>> [#uses=1]
+ ret <2 x double> %res
+}
+declare <2 x double> @llvm.x86.sse2.add.sd(<2 x double>, <2 x double>) nounwind readnone
+
+
+define <2 x double> @test_x86_sse2_cmp_pd(<2 x double> %a0, <2 x double> %a1) {
+ ; CHECK: cmpordpd
+ %res = call <2 x double> @llvm.x86.sse2.cmp.pd(<2 x double> %a0, <2 x double> %a1, i8 7) ; <<2 x double>> [#uses=1]
+ ret <2 x double> %res
+}
+declare <2 x double> @llvm.x86.sse2.cmp.pd(<2 x double>, <2 x double>, i8) nounwind readnone
+
+
+define <2 x double> @test_x86_sse2_cmp_sd(<2 x double> %a0, <2 x double> %a1) {
+ ; CHECK: cmpordsd
+ %res = call <2 x double> @llvm.x86.sse2.cmp.sd(<2 x double> %a0, <2 x double> %a1, i8 7) ; <<2 x double>> [#uses=1]
+ ret <2 x double> %res
+}
+declare <2 x double> @llvm.x86.sse2.cmp.sd(<2 x double>, <2 x double>, i8) nounwind readnone
+
+
+define i32 @test_x86_sse2_comieq_sd(<2 x double> %a0, <2 x double> %a1) {
+ ; CHECK: comisd
+ ; CHECK: sete
+ ; CHECK: movzbl
+ %res = call i32 @llvm.x86.sse2.comieq.sd(<2 x double> %a0, <2 x double> %a1) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse2.comieq.sd(<2 x double>, <2 x double>) nounwind readnone
+
+
+define i32 @test_x86_sse2_comige_sd(<2 x double> %a0, <2 x double> %a1) {
+ ; CHECK: comisd
+ ; CHECK: setae
+ ; CHECK: movzbl
+ %res = call i32 @llvm.x86.sse2.comige.sd(<2 x double> %a0, <2 x double> %a1) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse2.comige.sd(<2 x double>, <2 x double>) nounwind readnone
+
+
+define i32 @test_x86_sse2_comigt_sd(<2 x double> %a0, <2 x double> %a1) {
+ ; CHECK: comisd
+ ; CHECK: seta
+ ; CHECK: movzbl
+ %res = call i32 @llvm.x86.sse2.comigt.sd(<2 x double> %a0, <2 x double> %a1) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse2.comigt.sd(<2 x double>, <2 x double>) nounwind readnone
+
+
+define i32 @test_x86_sse2_comile_sd(<2 x double> %a0, <2 x double> %a1) {
+ ; CHECK: comisd
+ ; CHECK: setbe
+ ; CHECK: movzbl
+ %res = call i32 @llvm.x86.sse2.comile.sd(<2 x double> %a0, <2 x double> %a1) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse2.comile.sd(<2 x double>, <2 x double>) nounwind readnone
+
+
+define i32 @test_x86_sse2_comilt_sd(<2 x double> %a0, <2 x double> %a1) {
+ ; CHECK: comisd
+ ; CHECK: sbbl %eax, %eax
+ ; CHECK: andl $1, %eax
+ %res = call i32 @llvm.x86.sse2.comilt.sd(<2 x double> %a0, <2 x double> %a1) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse2.comilt.sd(<2 x double>, <2 x double>) nounwind readnone
+
+
+define i32 @test_x86_sse2_comineq_sd(<2 x double> %a0, <2 x double> %a1) {
+ ; CHECK: comisd
+ ; CHECK: setne
+ ; CHECK: movzbl
+ %res = call i32 @llvm.x86.sse2.comineq.sd(<2 x double> %a0, <2 x double> %a1) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse2.comineq.sd(<2 x double>, <2 x double>) nounwind readnone
+
+
+define <2 x double> @test_x86_sse2_cvtdq2pd(<4 x i32> %a0) {
+ ; CHECK: cvtdq2pd
+ %res = call <2 x double> @llvm.x86.sse2.cvtdq2pd(<4 x i32> %a0) ; <<2 x double>> [#uses=1]
+ ret <2 x double> %res
+}
+declare <2 x double> @llvm.x86.sse2.cvtdq2pd(<4 x i32>) nounwind readnone
+
+
+define <4 x float> @test_x86_sse2_cvtdq2ps(<4 x i32> %a0) {
+ ; CHECK: cvtdq2ps
+ %res = call <4 x float> @llvm.x86.sse2.cvtdq2ps(<4 x i32> %a0) ; <<4 x float>> [#uses=1]
+ ret <4 x float> %res
+}
+declare <4 x float> @llvm.x86.sse2.cvtdq2ps(<4 x i32>) nounwind readnone
+
+
+define <4 x i32> @test_x86_sse2_cvtpd2dq(<2 x double> %a0) {
+ ; CHECK: cvtpd2dq
+ %res = call <4 x i32> @llvm.x86.sse2.cvtpd2dq(<2 x double> %a0) ; <<4 x i32>> [#uses=1]
+ ret <4 x i32> %res
+}
+declare <4 x i32> @llvm.x86.sse2.cvtpd2dq(<2 x double>) nounwind readnone
+
+
+define <4 x float> @test_x86_sse2_cvtpd2ps(<2 x double> %a0) {
+ ; CHECK: cvtpd2ps
+ %res = call <4 x float> @llvm.x86.sse2.cvtpd2ps(<2 x double> %a0) ; <<4 x float>> [#uses=1]
+ ret <4 x float> %res
+}
+declare <4 x float> @llvm.x86.sse2.cvtpd2ps(<2 x double>) nounwind readnone
+
+
+define <4 x i32> @test_x86_sse2_cvtps2dq(<4 x float> %a0) {
+ ; CHECK: cvtps2dq
+ %res = call <4 x i32> @llvm.x86.sse2.cvtps2dq(<4 x float> %a0) ; <<4 x i32>> [#uses=1]
+ ret <4 x i32> %res
+}
+declare <4 x i32> @llvm.x86.sse2.cvtps2dq(<4 x float>) nounwind readnone
+
+
+define <2 x double> @test_x86_sse2_cvtps2pd(<4 x float> %a0) {
+ ; CHECK: cvtps2pd
+ %res = call <2 x double> @llvm.x86.sse2.cvtps2pd(<4 x float> %a0) ; <<2 x double>> [#uses=1]
+ ret <2 x double> %res
+}
+declare <2 x double> @llvm.x86.sse2.cvtps2pd(<4 x float>) nounwind readnone
+
+
+define i32 @test_x86_sse2_cvtsd2si(<2 x double> %a0) {
+ ; CHECK: cvtsd2si
+ %res = call i32 @llvm.x86.sse2.cvtsd2si(<2 x double> %a0) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse2.cvtsd2si(<2 x double>) nounwind readnone
+
+
+define <4 x float> @test_x86_sse2_cvtsd2ss(<4 x float> %a0, <2 x double> %a1) {
+ ; CHECK: cvtsd2ss
+ ; CHECK-NOT: cvtsd2ss %xmm{{[0-9]+}}, %xmm{{[0-9]+}}, %xmm{{[0-9]+}}
+ %res = call <4 x float> @llvm.x86.sse2.cvtsd2ss(<4 x float> %a0, <2 x double> %a1) ; <<4 x float>> [#uses=1]
+ ret <4 x float> %res
+}
+declare <4 x float> @llvm.x86.sse2.cvtsd2ss(<4 x float>, <2 x double>) nounwind readnone
+
+
+define <2 x double> @test_x86_sse2_cvtsi2sd(<2 x double> %a0) {
+ ; CHECK: movl
+ ; CHECK: cvtsi2sd
+ %res = call <2 x double> @llvm.x86.sse2.cvtsi2sd(<2 x double> %a0, i32 7) ; <<2 x double>> [#uses=1]
+ ret <2 x double> %res
+}
+declare <2 x double> @llvm.x86.sse2.cvtsi2sd(<2 x double>, i32) nounwind readnone
+
+
+define <2 x double> @test_x86_sse2_cvtss2sd(<2 x double> %a0, <4 x float> %a1) {
+ ; CHECK: cvtss2sd
+ %res = call <2 x double> @llvm.x86.sse2.cvtss2sd(<2 x double> %a0, <4 x float> %a1) ; <<2 x double>> [#uses=1]
+ ret <2 x double> %res
+}
+declare <2 x double> @llvm.x86.sse2.cvtss2sd(<2 x double>, <4 x float>) nounwind readnone
+
+
+define <4 x i32> @test_x86_sse2_cvttpd2dq(<2 x double> %a0) {
+ ; CHECK: cvttpd2dq
+ %res = call <4 x i32> @llvm.x86.sse2.cvttpd2dq(<2 x double> %a0) ; <<4 x i32>> [#uses=1]
+ ret <4 x i32> %res
+}
+declare <4 x i32> @llvm.x86.sse2.cvttpd2dq(<2 x double>) nounwind readnone
+
+
+define <4 x i32> @test_x86_sse2_cvttps2dq(<4 x float> %a0) {
+ ; CHECK: cvttps2dq
+ %res = call <4 x i32> @llvm.x86.sse2.cvttps2dq(<4 x float> %a0) ; <<4 x i32>> [#uses=1]
+ ret <4 x i32> %res
+}
+declare <4 x i32> @llvm.x86.sse2.cvttps2dq(<4 x float>) nounwind readnone
+
+
+define i32 @test_x86_sse2_cvttsd2si(<2 x double> %a0) {
+ ; CHECK: cvttsd2si
+ %res = call i32 @llvm.x86.sse2.cvttsd2si(<2 x double> %a0) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse2.cvttsd2si(<2 x double>) nounwind readnone
+
+
+define <2 x double> @test_x86_sse2_div_sd(<2 x double> %a0, <2 x double> %a1) {
+ ; CHECK: divsd
+ %res = call <2 x double> @llvm.x86.sse2.div.sd(<2 x double> %a0, <2 x double> %a1) ; <<2 x double>> [#uses=1]
+ ret <2 x double> %res
+}
+declare <2 x double> @llvm.x86.sse2.div.sd(<2 x double>, <2 x double>) nounwind readnone
+
+
+
+define <2 x double> @test_x86_sse2_max_pd(<2 x double> %a0, <2 x double> %a1) {
+ ; CHECK: maxpd
+ %res = call <2 x double> @llvm.x86.sse2.max.pd(<2 x double> %a0, <2 x double> %a1) ; <<2 x double>> [#uses=1]
+ ret <2 x double> %res
+}
+declare <2 x double> @llvm.x86.sse2.max.pd(<2 x double>, <2 x double>) nounwind readnone
+
+
+define <2 x double> @test_x86_sse2_max_sd(<2 x double> %a0, <2 x double> %a1) {
+ ; CHECK: maxsd
+ %res = call <2 x double> @llvm.x86.sse2.max.sd(<2 x double> %a0, <2 x double> %a1) ; <<2 x double>> [#uses=1]
+ ret <2 x double> %res
+}
+declare <2 x double> @llvm.x86.sse2.max.sd(<2 x double>, <2 x double>) nounwind readnone
+
+
+define <2 x double> @test_x86_sse2_min_pd(<2 x double> %a0, <2 x double> %a1) {
+ ; CHECK: minpd
+ %res = call <2 x double> @llvm.x86.sse2.min.pd(<2 x double> %a0, <2 x double> %a1) ; <<2 x double>> [#uses=1]
+ ret <2 x double> %res
+}
+declare <2 x double> @llvm.x86.sse2.min.pd(<2 x double>, <2 x double>) nounwind readnone
+
+
+define <2 x double> @test_x86_sse2_min_sd(<2 x double> %a0, <2 x double> %a1) {
+ ; CHECK: minsd
+ %res = call <2 x double> @llvm.x86.sse2.min.sd(<2 x double> %a0, <2 x double> %a1) ; <<2 x double>> [#uses=1]
+ ret <2 x double> %res
+}
+declare <2 x double> @llvm.x86.sse2.min.sd(<2 x double>, <2 x double>) nounwind readnone
+
+
+define i32 @test_x86_sse2_movmsk_pd(<2 x double> %a0) {
+ ; CHECK: movmskpd
+ %res = call i32 @llvm.x86.sse2.movmsk.pd(<2 x double> %a0) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse2.movmsk.pd(<2 x double>) nounwind readnone
+
+
+
+
+define <2 x double> @test_x86_sse2_mul_sd(<2 x double> %a0, <2 x double> %a1) {
+ ; CHECK: test_x86_sse2_mul_sd
+ ; CHECK: mulsd
+ %res = call <2 x double> @llvm.x86.sse2.mul.sd(<2 x double> %a0, <2 x double> %a1) ; <<2 x double>> [#uses=1]
+ ret <2 x double> %res
+}
+declare <2 x double> @llvm.x86.sse2.mul.sd(<2 x double>, <2 x double>) nounwind readnone
+
+
+define <8 x i16> @test_x86_sse2_packssdw_128(<4 x i32> %a0, <4 x i32> %a1) {
+ ; CHECK: packssdw
+ %res = call <8 x i16> @llvm.x86.sse2.packssdw.128(<4 x i32> %a0, <4 x i32> %a1) ; <<8 x i16>> [#uses=1]
+ ret <8 x i16> %res
+}
+declare <8 x i16> @llvm.x86.sse2.packssdw.128(<4 x i32>, <4 x i32>) nounwind readnone
+
+
+define <16 x i8> @test_x86_sse2_packsswb_128(<8 x i16> %a0, <8 x i16> %a1) {
+ ; CHECK: packsswb
+ %res = call <16 x i8> @llvm.x86.sse2.packsswb.128(<8 x i16> %a0, <8 x i16> %a1) ; <<16 x i8>> [#uses=1]
+ ret <16 x i8> %res
+}
+declare <16 x i8> @llvm.x86.sse2.packsswb.128(<8 x i16>, <8 x i16>) nounwind readnone
+
+
+define <16 x i8> @test_x86_sse2_packuswb_128(<8 x i16> %a0, <8 x i16> %a1) {
+ ; CHECK: packuswb
+ %res = call <16 x i8> @llvm.x86.sse2.packuswb.128(<8 x i16> %a0, <8 x i16> %a1) ; <<16 x i8>> [#uses=1]
+ ret <16 x i8> %res
+}
+declare <16 x i8> @llvm.x86.sse2.packuswb.128(<8 x i16>, <8 x i16>) nounwind readnone
+
+
+define <16 x i8> @test_x86_sse2_padds_b(<16 x i8> %a0, <16 x i8> %a1) {
+ ; CHECK: paddsb
+ %res = call <16 x i8> @llvm.x86.sse2.padds.b(<16 x i8> %a0, <16 x i8> %a1) ; <<16 x i8>> [#uses=1]
+ ret <16 x i8> %res
+}
+declare <16 x i8> @llvm.x86.sse2.padds.b(<16 x i8>, <16 x i8>) nounwind readnone
+
+
+define <8 x i16> @test_x86_sse2_padds_w(<8 x i16> %a0, <8 x i16> %a1) {
+ ; CHECK: paddsw
+ %res = call <8 x i16> @llvm.x86.sse2.padds.w(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
+ ret <8 x i16> %res
+}
+declare <8 x i16> @llvm.x86.sse2.padds.w(<8 x i16>, <8 x i16>) nounwind readnone
+
+
+define <16 x i8> @test_x86_sse2_paddus_b(<16 x i8> %a0, <16 x i8> %a1) {
+ ; CHECK: paddusb
+ %res = call <16 x i8> @llvm.x86.sse2.paddus.b(<16 x i8> %a0, <16 x i8> %a1) ; <<16 x i8>> [#uses=1]
+ ret <16 x i8> %res
+}
+declare <16 x i8> @llvm.x86.sse2.paddus.b(<16 x i8>, <16 x i8>) nounwind readnone
+
+
+define <8 x i16> @test_x86_sse2_paddus_w(<8 x i16> %a0, <8 x i16> %a1) {
+ ; CHECK: paddusw
+ %res = call <8 x i16> @llvm.x86.sse2.paddus.w(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
+ ret <8 x i16> %res
+}
+declare <8 x i16> @llvm.x86.sse2.paddus.w(<8 x i16>, <8 x i16>) nounwind readnone
+
+
+define <16 x i8> @test_x86_sse2_pavg_b(<16 x i8> %a0, <16 x i8> %a1) {
+ ; CHECK: pavgb
+ %res = call <16 x i8> @llvm.x86.sse2.pavg.b(<16 x i8> %a0, <16 x i8> %a1) ; <<16 x i8>> [#uses=1]
+ ret <16 x i8> %res
+}
+declare <16 x i8> @llvm.x86.sse2.pavg.b(<16 x i8>, <16 x i8>) nounwind readnone
+
+
+define <8 x i16> @test_x86_sse2_pavg_w(<8 x i16> %a0, <8 x i16> %a1) {
+ ; CHECK: pavgw
+ %res = call <8 x i16> @llvm.x86.sse2.pavg.w(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
+ ret <8 x i16> %res
+}
+declare <8 x i16> @llvm.x86.sse2.pavg.w(<8 x i16>, <8 x i16>) nounwind readnone
+
+
+define <4 x i32> @test_x86_sse2_pmadd_wd(<8 x i16> %a0, <8 x i16> %a1) {
+ ; CHECK: pmaddwd
+ %res = call <4 x i32> @llvm.x86.sse2.pmadd.wd(<8 x i16> %a0, <8 x i16> %a1) ; <<4 x i32>> [#uses=1]
+ ret <4 x i32> %res
+}
+declare <4 x i32> @llvm.x86.sse2.pmadd.wd(<8 x i16>, <8 x i16>) nounwind readnone
+
+
+define <8 x i16> @test_x86_sse2_pmaxs_w(<8 x i16> %a0, <8 x i16> %a1) {
+ ; CHECK: pmaxsw
+ %res = call <8 x i16> @llvm.x86.sse2.pmaxs.w(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
+ ret <8 x i16> %res
+}
+declare <8 x i16> @llvm.x86.sse2.pmaxs.w(<8 x i16>, <8 x i16>) nounwind readnone
+
+
+define <16 x i8> @test_x86_sse2_pmaxu_b(<16 x i8> %a0, <16 x i8> %a1) {
+ ; CHECK: pmaxub
+ %res = call <16 x i8> @llvm.x86.sse2.pmaxu.b(<16 x i8> %a0, <16 x i8> %a1) ; <<16 x i8>> [#uses=1]
+ ret <16 x i8> %res
+}
+declare <16 x i8> @llvm.x86.sse2.pmaxu.b(<16 x i8>, <16 x i8>) nounwind readnone
+
+
+define <8 x i16> @test_x86_sse2_pmins_w(<8 x i16> %a0, <8 x i16> %a1) {
+ ; CHECK: pminsw
+ %res = call <8 x i16> @llvm.x86.sse2.pmins.w(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
+ ret <8 x i16> %res
+}
+declare <8 x i16> @llvm.x86.sse2.pmins.w(<8 x i16>, <8 x i16>) nounwind readnone
+
+
+define <16 x i8> @test_x86_sse2_pminu_b(<16 x i8> %a0, <16 x i8> %a1) {
+ ; CHECK: pminub
+ %res = call <16 x i8> @llvm.x86.sse2.pminu.b(<16 x i8> %a0, <16 x i8> %a1) ; <<16 x i8>> [#uses=1]
+ ret <16 x i8> %res
+}
+declare <16 x i8> @llvm.x86.sse2.pminu.b(<16 x i8>, <16 x i8>) nounwind readnone
+
+
+define i32 @test_x86_sse2_pmovmskb_128(<16 x i8> %a0) {
+ ; CHECK: pmovmskb
+ %res = call i32 @llvm.x86.sse2.pmovmskb.128(<16 x i8> %a0) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse2.pmovmskb.128(<16 x i8>) nounwind readnone
+
+
+define <8 x i16> @test_x86_sse2_pmulh_w(<8 x i16> %a0, <8 x i16> %a1) {
+ ; CHECK: pmulhw
+ %res = call <8 x i16> @llvm.x86.sse2.pmulh.w(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
+ ret <8 x i16> %res
+}
+declare <8 x i16> @llvm.x86.sse2.pmulh.w(<8 x i16>, <8 x i16>) nounwind readnone
+
+
+define <8 x i16> @test_x86_sse2_pmulhu_w(<8 x i16> %a0, <8 x i16> %a1) {
+ ; CHECK: pmulhuw
+ %res = call <8 x i16> @llvm.x86.sse2.pmulhu.w(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
+ ret <8 x i16> %res
+}
+declare <8 x i16> @llvm.x86.sse2.pmulhu.w(<8 x i16>, <8 x i16>) nounwind readnone
+
+
+define <2 x i64> @test_x86_sse2_pmulu_dq(<4 x i32> %a0, <4 x i32> %a1) {
+ ; CHECK: pmuludq
+ %res = call <2 x i64> @llvm.x86.sse2.pmulu.dq(<4 x i32> %a0, <4 x i32> %a1) ; <<2 x i64>> [#uses=1]
+ ret <2 x i64> %res
+}
+declare <2 x i64> @llvm.x86.sse2.pmulu.dq(<4 x i32>, <4 x i32>) nounwind readnone
+
+
+define <2 x i64> @test_x86_sse2_psad_bw(<16 x i8> %a0, <16 x i8> %a1) {
+ ; CHECK: psadbw
+ %res = call <2 x i64> @llvm.x86.sse2.psad.bw(<16 x i8> %a0, <16 x i8> %a1) ; <<2 x i64>> [#uses=1]
+ ret <2 x i64> %res
+}
+declare <2 x i64> @llvm.x86.sse2.psad.bw(<16 x i8>, <16 x i8>) nounwind readnone
+
+
+define <4 x i32> @test_x86_sse2_psll_d(<4 x i32> %a0, <4 x i32> %a1) {
+ ; CHECK: pslld
+ %res = call <4 x i32> @llvm.x86.sse2.psll.d(<4 x i32> %a0, <4 x i32> %a1) ; <<4 x i32>> [#uses=1]
+ ret <4 x i32> %res
+}
+declare <4 x i32> @llvm.x86.sse2.psll.d(<4 x i32>, <4 x i32>) nounwind readnone
+
+
+define <2 x i64> @test_x86_sse2_psll_dq(<2 x i64> %a0) {
+ ; CHECK: pslldq
+ %res = call <2 x i64> @llvm.x86.sse2.psll.dq(<2 x i64> %a0, i32 7) ; <<2 x i64>> [#uses=1]
+ ret <2 x i64> %res
+}
+declare <2 x i64> @llvm.x86.sse2.psll.dq(<2 x i64>, i32) nounwind readnone
+
+
+define <2 x i64> @test_x86_sse2_psll_dq_bs(<2 x i64> %a0) {
+ ; CHECK: pslldq
+ %res = call <2 x i64> @llvm.x86.sse2.psll.dq.bs(<2 x i64> %a0, i32 7) ; <<2 x i64>> [#uses=1]
+ ret <2 x i64> %res
+}
+declare <2 x i64> @llvm.x86.sse2.psll.dq.bs(<2 x i64>, i32) nounwind readnone
+
+
+define <2 x i64> @test_x86_sse2_psll_q(<2 x i64> %a0, <2 x i64> %a1) {
+ ; CHECK: psllq
+ %res = call <2 x i64> @llvm.x86.sse2.psll.q(<2 x i64> %a0, <2 x i64> %a1) ; <<2 x i64>> [#uses=1]
+ ret <2 x i64> %res
+}
+declare <2 x i64> @llvm.x86.sse2.psll.q(<2 x i64>, <2 x i64>) nounwind readnone
+
+
+define <8 x i16> @test_x86_sse2_psll_w(<8 x i16> %a0, <8 x i16> %a1) {
+ ; CHECK: psllw
+ %res = call <8 x i16> @llvm.x86.sse2.psll.w(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
+ ret <8 x i16> %res
+}
+declare <8 x i16> @llvm.x86.sse2.psll.w(<8 x i16>, <8 x i16>) nounwind readnone
+
+
+define <4 x i32> @test_x86_sse2_pslli_d(<4 x i32> %a0) {
+ ; CHECK: pslld
+ %res = call <4 x i32> @llvm.x86.sse2.pslli.d(<4 x i32> %a0, i32 7) ; <<4 x i32>> [#uses=1]
+ ret <4 x i32> %res
+}
+declare <4 x i32> @llvm.x86.sse2.pslli.d(<4 x i32>, i32) nounwind readnone
+
+
+define <2 x i64> @test_x86_sse2_pslli_q(<2 x i64> %a0) {
+ ; CHECK: psllq
+ %res = call <2 x i64> @llvm.x86.sse2.pslli.q(<2 x i64> %a0, i32 7) ; <<2 x i64>> [#uses=1]
+ ret <2 x i64> %res
+}
+declare <2 x i64> @llvm.x86.sse2.pslli.q(<2 x i64>, i32) nounwind readnone
+
+
+define <8 x i16> @test_x86_sse2_pslli_w(<8 x i16> %a0) {
+ ; CHECK: psllw
+ %res = call <8 x i16> @llvm.x86.sse2.pslli.w(<8 x i16> %a0, i32 7) ; <<8 x i16>> [#uses=1]
+ ret <8 x i16> %res
+}
+declare <8 x i16> @llvm.x86.sse2.pslli.w(<8 x i16>, i32) nounwind readnone
+
+
+define <4 x i32> @test_x86_sse2_psra_d(<4 x i32> %a0, <4 x i32> %a1) {
+ ; CHECK: psrad
+ %res = call <4 x i32> @llvm.x86.sse2.psra.d(<4 x i32> %a0, <4 x i32> %a1) ; <<4 x i32>> [#uses=1]
+ ret <4 x i32> %res
+}
+declare <4 x i32> @llvm.x86.sse2.psra.d(<4 x i32>, <4 x i32>) nounwind readnone
+
+
+define <8 x i16> @test_x86_sse2_psra_w(<8 x i16> %a0, <8 x i16> %a1) {
+ ; CHECK: psraw
+ %res = call <8 x i16> @llvm.x86.sse2.psra.w(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
+ ret <8 x i16> %res
+}
+declare <8 x i16> @llvm.x86.sse2.psra.w(<8 x i16>, <8 x i16>) nounwind readnone
+
+
+define <4 x i32> @test_x86_sse2_psrai_d(<4 x i32> %a0) {
+ ; CHECK: psrad
+ %res = call <4 x i32> @llvm.x86.sse2.psrai.d(<4 x i32> %a0, i32 7) ; <<4 x i32>> [#uses=1]
+ ret <4 x i32> %res
+}
+declare <4 x i32> @llvm.x86.sse2.psrai.d(<4 x i32>, i32) nounwind readnone
+
+
+define <8 x i16> @test_x86_sse2_psrai_w(<8 x i16> %a0) {
+ ; CHECK: psraw
+ %res = call <8 x i16> @llvm.x86.sse2.psrai.w(<8 x i16> %a0, i32 7) ; <<8 x i16>> [#uses=1]
+ ret <8 x i16> %res
+}
+declare <8 x i16> @llvm.x86.sse2.psrai.w(<8 x i16>, i32) nounwind readnone
+
+
+define <4 x i32> @test_x86_sse2_psrl_d(<4 x i32> %a0, <4 x i32> %a1) {
+ ; CHECK: psrld
+ %res = call <4 x i32> @llvm.x86.sse2.psrl.d(<4 x i32> %a0, <4 x i32> %a1) ; <<4 x i32>> [#uses=1]
+ ret <4 x i32> %res
+}
+declare <4 x i32> @llvm.x86.sse2.psrl.d(<4 x i32>, <4 x i32>) nounwind readnone
+
+
+define <2 x i64> @test_x86_sse2_psrl_dq(<2 x i64> %a0) {
+ ; CHECK: psrldq
+ %res = call <2 x i64> @llvm.x86.sse2.psrl.dq(<2 x i64> %a0, i32 7) ; <<2 x i64>> [#uses=1]
+ ret <2 x i64> %res
+}
+declare <2 x i64> @llvm.x86.sse2.psrl.dq(<2 x i64>, i32) nounwind readnone
+
+
+define <2 x i64> @test_x86_sse2_psrl_dq_bs(<2 x i64> %a0) {
+ ; CHECK: psrldq
+ %res = call <2 x i64> @llvm.x86.sse2.psrl.dq.bs(<2 x i64> %a0, i32 7) ; <<2 x i64>> [#uses=1]
+ ret <2 x i64> %res
+}
+declare <2 x i64> @llvm.x86.sse2.psrl.dq.bs(<2 x i64>, i32) nounwind readnone
+
+
+define <2 x i64> @test_x86_sse2_psrl_q(<2 x i64> %a0, <2 x i64> %a1) {
+ ; CHECK: psrlq
+ %res = call <2 x i64> @llvm.x86.sse2.psrl.q(<2 x i64> %a0, <2 x i64> %a1) ; <<2 x i64>> [#uses=1]
+ ret <2 x i64> %res
+}
+declare <2 x i64> @llvm.x86.sse2.psrl.q(<2 x i64>, <2 x i64>) nounwind readnone
+
+
+define <8 x i16> @test_x86_sse2_psrl_w(<8 x i16> %a0, <8 x i16> %a1) {
+ ; CHECK: psrlw
+ %res = call <8 x i16> @llvm.x86.sse2.psrl.w(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
+ ret <8 x i16> %res
+}
+declare <8 x i16> @llvm.x86.sse2.psrl.w(<8 x i16>, <8 x i16>) nounwind readnone
+
+
+define <4 x i32> @test_x86_sse2_psrli_d(<4 x i32> %a0) {
+ ; CHECK: psrld
+ %res = call <4 x i32> @llvm.x86.sse2.psrli.d(<4 x i32> %a0, i32 7) ; <<4 x i32>> [#uses=1]
+ ret <4 x i32> %res
+}
+declare <4 x i32> @llvm.x86.sse2.psrli.d(<4 x i32>, i32) nounwind readnone
+
+
+define <2 x i64> @test_x86_sse2_psrli_q(<2 x i64> %a0) {
+ ; CHECK: psrlq
+ %res = call <2 x i64> @llvm.x86.sse2.psrli.q(<2 x i64> %a0, i32 7) ; <<2 x i64>> [#uses=1]
+ ret <2 x i64> %res
+}
+declare <2 x i64> @llvm.x86.sse2.psrli.q(<2 x i64>, i32) nounwind readnone
+
+
+define <8 x i16> @test_x86_sse2_psrli_w(<8 x i16> %a0) {
+ ; CHECK: psrlw
+ %res = call <8 x i16> @llvm.x86.sse2.psrli.w(<8 x i16> %a0, i32 7) ; <<8 x i16>> [#uses=1]
+ ret <8 x i16> %res
+}
+declare <8 x i16> @llvm.x86.sse2.psrli.w(<8 x i16>, i32) nounwind readnone
+
+
+define <16 x i8> @test_x86_sse2_psubs_b(<16 x i8> %a0, <16 x i8> %a1) {
+ ; CHECK: psubsb
+ %res = call <16 x i8> @llvm.x86.sse2.psubs.b(<16 x i8> %a0, <16 x i8> %a1) ; <<16 x i8>> [#uses=1]
+ ret <16 x i8> %res
+}
+declare <16 x i8> @llvm.x86.sse2.psubs.b(<16 x i8>, <16 x i8>) nounwind readnone
+
+
+define <8 x i16> @test_x86_sse2_psubs_w(<8 x i16> %a0, <8 x i16> %a1) {
+ ; CHECK: psubsw
+ %res = call <8 x i16> @llvm.x86.sse2.psubs.w(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
+ ret <8 x i16> %res
+}
+declare <8 x i16> @llvm.x86.sse2.psubs.w(<8 x i16>, <8 x i16>) nounwind readnone
+
+
+define <16 x i8> @test_x86_sse2_psubus_b(<16 x i8> %a0, <16 x i8> %a1) {
+ ; CHECK: psubusb
+ %res = call <16 x i8> @llvm.x86.sse2.psubus.b(<16 x i8> %a0, <16 x i8> %a1) ; <<16 x i8>> [#uses=1]
+ ret <16 x i8> %res
+}
+declare <16 x i8> @llvm.x86.sse2.psubus.b(<16 x i8>, <16 x i8>) nounwind readnone
+
+
+define <8 x i16> @test_x86_sse2_psubus_w(<8 x i16> %a0, <8 x i16> %a1) {
+ ; CHECK: psubusw
+ %res = call <8 x i16> @llvm.x86.sse2.psubus.w(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
+ ret <8 x i16> %res
+}
+declare <8 x i16> @llvm.x86.sse2.psubus.w(<8 x i16>, <8 x i16>) nounwind readnone
+
+
+define <2 x double> @test_x86_sse2_sqrt_pd(<2 x double> %a0) {
+ ; CHECK: sqrtpd
+ %res = call <2 x double> @llvm.x86.sse2.sqrt.pd(<2 x double> %a0) ; <<2 x double>> [#uses=1]
+ ret <2 x double> %res
+}
+declare <2 x double> @llvm.x86.sse2.sqrt.pd(<2 x double>) nounwind readnone
+
+
+define <2 x double> @test_x86_sse2_sqrt_sd(<2 x double> %a0) {
+ ; CHECK: sqrtsd
+ %res = call <2 x double> @llvm.x86.sse2.sqrt.sd(<2 x double> %a0) ; <<2 x double>> [#uses=1]
+ ret <2 x double> %res
+}
+declare <2 x double> @llvm.x86.sse2.sqrt.sd(<2 x double>) nounwind readnone
+
+
+define void @test_x86_sse2_storel_dq(i8* %a0, <4 x i32> %a1) {
+ ; CHECK: test_x86_sse2_storel_dq
+ ; CHECK: movl
+ ; CHECK: movq
+ call void @llvm.x86.sse2.storel.dq(i8* %a0, <4 x i32> %a1)
+ ret void
+}
+declare void @llvm.x86.sse2.storel.dq(i8*, <4 x i32>) nounwind
+
+
+define void @test_x86_sse2_storeu_dq(i8* %a0, <16 x i8> %a1) {
+ ; CHECK: test_x86_sse2_storeu_dq
+ ; CHECK: movl
+ ; CHECK: movdqu
+ ; add operation forces the execution domain.
+ %a2 = add <16 x i8> %a1, <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1>
+ call void @llvm.x86.sse2.storeu.dq(i8* %a0, <16 x i8> %a2)
+ ret void
+}
+declare void @llvm.x86.sse2.storeu.dq(i8*, <16 x i8>) nounwind
+
+
+define void @test_x86_sse2_storeu_pd(i8* %a0, <2 x double> %a1) {
+ ; CHECK: test_x86_sse2_storeu_pd
+ ; CHECK: movl
+ ; CHECK: movupd
+ ; fadd operation forces the execution domain.
+ %a2 = fadd <2 x double> %a1, <double 0x0, double 0x4200000000000000>
+ call void @llvm.x86.sse2.storeu.pd(i8* %a0, <2 x double> %a2)
+ ret void
+}
+declare void @llvm.x86.sse2.storeu.pd(i8*, <2 x double>) nounwind
+
+
+define <2 x double> @test_x86_sse2_sub_sd(<2 x double> %a0, <2 x double> %a1) {
+ ; CHECK: test_x86_sse2_sub_sd
+ ; CHECK: subsd
+ %res = call <2 x double> @llvm.x86.sse2.sub.sd(<2 x double> %a0, <2 x double> %a1) ; <<2 x double>> [#uses=1]
+ ret <2 x double> %res
+}
+declare <2 x double> @llvm.x86.sse2.sub.sd(<2 x double>, <2 x double>) nounwind readnone
+
+
+define i32 @test_x86_sse2_ucomieq_sd(<2 x double> %a0, <2 x double> %a1) {
+ ; CHECK: ucomisd
+ ; CHECK: sete
+ ; CHECK: movzbl
+ %res = call i32 @llvm.x86.sse2.ucomieq.sd(<2 x double> %a0, <2 x double> %a1) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse2.ucomieq.sd(<2 x double>, <2 x double>) nounwind readnone
+
+
+define i32 @test_x86_sse2_ucomige_sd(<2 x double> %a0, <2 x double> %a1) {
+ ; CHECK: ucomisd
+ ; CHECK: setae
+ ; CHECK: movzbl
+ %res = call i32 @llvm.x86.sse2.ucomige.sd(<2 x double> %a0, <2 x double> %a1) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse2.ucomige.sd(<2 x double>, <2 x double>) nounwind readnone
+
+
+define i32 @test_x86_sse2_ucomigt_sd(<2 x double> %a0, <2 x double> %a1) {
+ ; CHECK: ucomisd
+ ; CHECK: seta
+ ; CHECK: movzbl
+ %res = call i32 @llvm.x86.sse2.ucomigt.sd(<2 x double> %a0, <2 x double> %a1) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse2.ucomigt.sd(<2 x double>, <2 x double>) nounwind readnone
+
+
+define i32 @test_x86_sse2_ucomile_sd(<2 x double> %a0, <2 x double> %a1) {
+ ; CHECK: ucomisd
+ ; CHECK: setbe
+ ; CHECK: movzbl
+ %res = call i32 @llvm.x86.sse2.ucomile.sd(<2 x double> %a0, <2 x double> %a1) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse2.ucomile.sd(<2 x double>, <2 x double>) nounwind readnone
+
+
+define i32 @test_x86_sse2_ucomilt_sd(<2 x double> %a0, <2 x double> %a1) {
+ ; CHECK: ucomisd
+ ; CHECK: sbbl
+ %res = call i32 @llvm.x86.sse2.ucomilt.sd(<2 x double> %a0, <2 x double> %a1) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse2.ucomilt.sd(<2 x double>, <2 x double>) nounwind readnone
+
+
+define i32 @test_x86_sse2_ucomineq_sd(<2 x double> %a0, <2 x double> %a1) {
+ ; CHECK: ucomisd
+ ; CHECK: setne
+ ; CHECK: movzbl
+ %res = call i32 @llvm.x86.sse2.ucomineq.sd(<2 x double> %a0, <2 x double> %a1) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse2.ucomineq.sd(<2 x double>, <2 x double>) nounwind readnone
diff --git a/test/CodeGen/X86/sse2-mul.ll b/test/CodeGen/X86/sse2-mul.ll
index 0466d60ec3015..e066368dc73ea 100644
--- a/test/CodeGen/X86/sse2-mul.ll
+++ b/test/CodeGen/X86/sse2-mul.ll
@@ -3,7 +3,7 @@
define <4 x i32> @test1(<4 x i32> %x, <4 x i32> %y) {
%m = mul <4 x i32> %x, %y
ret <4 x i32> %m
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: pshufd $49
; CHECK: pmuludq
; CHECK: pshufd $49
diff --git a/test/CodeGen/X86/sse2-vector-shifts.ll b/test/CodeGen/X86/sse2-vector-shifts.ll
new file mode 100644
index 0000000000000..462def980a91e
--- /dev/null
+++ b/test/CodeGen/X86/sse2-vector-shifts.ll
@@ -0,0 +1,247 @@
+; RUN: llc < %s -mtriple=x86_64-pc-linux -mattr=+sse2 -mcpu=corei7 | FileCheck %s
+
+; SSE2 Logical Shift Left
+
+define <8 x i16> @test_sllw_1(<8 x i16> %InVec) {
+entry:
+ %shl = shl <8 x i16> %InVec, <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>
+ ret <8 x i16> %shl
+}
+
+; CHECK-LABEL: test_sllw_1:
+; CHECK: psllw $0, %xmm0
+; CHECK-NEXT: ret
+
+define <8 x i16> @test_sllw_2(<8 x i16> %InVec) {
+entry:
+ %shl = shl <8 x i16> %InVec, <i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1>
+ ret <8 x i16> %shl
+}
+
+; CHECK-LABEL: test_sllw_2:
+; CHECK: paddw %xmm0, %xmm0
+; CHECK-NEXT: ret
+
+define <8 x i16> @test_sllw_3(<8 x i16> %InVec) {
+entry:
+ %shl = shl <8 x i16> %InVec, <i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16>
+ ret <8 x i16> %shl
+}
+
+; CHECK-LABEL: test_sllw_3:
+; CHECK: xorps %xmm0, %xmm0
+; CHECK-NEXT: ret
+
+define <4 x i32> @test_slld_1(<4 x i32> %InVec) {
+entry:
+ %shl = shl <4 x i32> %InVec, <i32 0, i32 0, i32 0, i32 0>
+ ret <4 x i32> %shl
+}
+
+; CHECK-LABEL: test_slld_1:
+; CHECK: pslld $0, %xmm0
+; CHECK-NEXT: ret
+
+define <4 x i32> @test_slld_2(<4 x i32> %InVec) {
+entry:
+ %shl = shl <4 x i32> %InVec, <i32 1, i32 1, i32 1, i32 1>
+ ret <4 x i32> %shl
+}
+
+; CHECK-LABEL: test_slld_2:
+; CHECK: paddd %xmm0, %xmm0
+; CHECK-NEXT: ret
+
+define <4 x i32> @test_slld_3(<4 x i32> %InVec) {
+entry:
+ %shl = shl <4 x i32> %InVec, <i32 32, i32 32, i32 32, i32 32>
+ ret <4 x i32> %shl
+}
+
+; CHECK-LABEL: test_slld_3:
+; CHECK: xorps %xmm0, %xmm0
+; CHECK-NEXT: ret
+
+define <2 x i64> @test_sllq_1(<2 x i64> %InVec) {
+entry:
+ %shl = shl <2 x i64> %InVec, <i64 0, i64 0>
+ ret <2 x i64> %shl
+}
+
+; CHECK-LABEL: test_sllq_1:
+; CHECK: psllq $0, %xmm0
+; CHECK-NEXT: ret
+
+define <2 x i64> @test_sllq_2(<2 x i64> %InVec) {
+entry:
+ %shl = shl <2 x i64> %InVec, <i64 1, i64 1>
+ ret <2 x i64> %shl
+}
+
+; CHECK-LABEL: test_sllq_2:
+; CHECK: paddq %xmm0, %xmm0
+; CHECK-NEXT: ret
+
+define <2 x i64> @test_sllq_3(<2 x i64> %InVec) {
+entry:
+ %shl = shl <2 x i64> %InVec, <i64 64, i64 64>
+ ret <2 x i64> %shl
+}
+
+; CHECK-LABEL: test_sllq_3:
+; CHECK: xorps %xmm0, %xmm0
+; CHECK-NEXT: ret
+
+; SSE2 Arithmetic Shift
+
+define <8 x i16> @test_sraw_1(<8 x i16> %InVec) {
+entry:
+ %shl = ashr <8 x i16> %InVec, <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>
+ ret <8 x i16> %shl
+}
+
+; CHECK-LABEL: test_sraw_1:
+; CHECK: psraw $0, %xmm0
+; CHECK-NEXT: ret
+
+define <8 x i16> @test_sraw_2(<8 x i16> %InVec) {
+entry:
+ %shl = ashr <8 x i16> %InVec, <i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1>
+ ret <8 x i16> %shl
+}
+
+; CHECK-LABEL: test_sraw_2:
+; CHECK: psraw $1, %xmm0
+; CHECK-NEXT: ret
+
+define <8 x i16> @test_sraw_3(<8 x i16> %InVec) {
+entry:
+ %shl = ashr <8 x i16> %InVec, <i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16>
+ ret <8 x i16> %shl
+}
+
+; CHECK-LABEL: test_sraw_3:
+; CHECK: psraw $15, %xmm0
+; CHECK-NEXT: ret
+
+define <4 x i32> @test_srad_1(<4 x i32> %InVec) {
+entry:
+ %shl = ashr <4 x i32> %InVec, <i32 0, i32 0, i32 0, i32 0>
+ ret <4 x i32> %shl
+}
+
+; CHECK-LABEL: test_srad_1:
+; CHECK: psrad $0, %xmm0
+; CHECK-NEXT: ret
+
+define <4 x i32> @test_srad_2(<4 x i32> %InVec) {
+entry:
+ %shl = ashr <4 x i32> %InVec, <i32 1, i32 1, i32 1, i32 1>
+ ret <4 x i32> %shl
+}
+
+; CHECK-LABEL: test_srad_2:
+; CHECK: psrad $1, %xmm0
+; CHECK-NEXT: ret
+
+define <4 x i32> @test_srad_3(<4 x i32> %InVec) {
+entry:
+ %shl = ashr <4 x i32> %InVec, <i32 32, i32 32, i32 32, i32 32>
+ ret <4 x i32> %shl
+}
+
+; CHECK-LABEL: test_srad_3:
+; CHECK: psrad $31, %xmm0
+; CHECK-NEXT: ret
+
+; SSE Logical Shift Right
+
+define <8 x i16> @test_srlw_1(<8 x i16> %InVec) {
+entry:
+ %shl = lshr <8 x i16> %InVec, <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>
+ ret <8 x i16> %shl
+}
+
+; CHECK-LABEL: test_srlw_1:
+; CHECK: psrlw $0, %xmm0
+; CHECK-NEXT: ret
+
+define <8 x i16> @test_srlw_2(<8 x i16> %InVec) {
+entry:
+ %shl = lshr <8 x i16> %InVec, <i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1>
+ ret <8 x i16> %shl
+}
+
+; CHECK-LABEL: test_srlw_2:
+; CHECK: psrlw $1, %xmm0
+; CHECK-NEXT: ret
+
+define <8 x i16> @test_srlw_3(<8 x i16> %InVec) {
+entry:
+ %shl = lshr <8 x i16> %InVec, <i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16>
+ ret <8 x i16> %shl
+}
+
+; CHECK-LABEL: test_srlw_3:
+; CHECK: xorps %xmm0, %xmm0
+; CHECK-NEXT: ret
+
+define <4 x i32> @test_srld_1(<4 x i32> %InVec) {
+entry:
+ %shl = lshr <4 x i32> %InVec, <i32 0, i32 0, i32 0, i32 0>
+ ret <4 x i32> %shl
+}
+
+; CHECK-LABEL: test_srld_1:
+; CHECK: psrld $0, %xmm0
+; CHECK-NEXT: ret
+
+define <4 x i32> @test_srld_2(<4 x i32> %InVec) {
+entry:
+ %shl = lshr <4 x i32> %InVec, <i32 1, i32 1, i32 1, i32 1>
+ ret <4 x i32> %shl
+}
+
+; CHECK-LABEL: test_srld_2:
+; CHECK: psrld $1, %xmm0
+; CHECK-NEXT: ret
+
+define <4 x i32> @test_srld_3(<4 x i32> %InVec) {
+entry:
+ %shl = lshr <4 x i32> %InVec, <i32 32, i32 32, i32 32, i32 32>
+ ret <4 x i32> %shl
+}
+
+; CHECK-LABEL: test_srld_3:
+; CHECK: xorps %xmm0, %xmm0
+; CHECK-NEXT: ret
+
+define <2 x i64> @test_srlq_1(<2 x i64> %InVec) {
+entry:
+ %shl = lshr <2 x i64> %InVec, <i64 0, i64 0>
+ ret <2 x i64> %shl
+}
+
+; CHECK-LABEL: test_srlq_1:
+; CHECK: psrlq $0, %xmm0
+; CHECK-NEXT: ret
+
+define <2 x i64> @test_srlq_2(<2 x i64> %InVec) {
+entry:
+ %shl = lshr <2 x i64> %InVec, <i64 1, i64 1>
+ ret <2 x i64> %shl
+}
+
+; CHECK-LABEL: test_srlq_2:
+; CHECK: psrlq $1, %xmm0
+; CHECK-NEXT: ret
+
+define <2 x i64> @test_srlq_3(<2 x i64> %InVec) {
+entry:
+ %shl = lshr <2 x i64> %InVec, <i64 64, i64 64>
+ ret <2 x i64> %shl
+}
+
+; CHECK-LABEL: test_srlq_3:
+; CHECK: xorps %xmm0, %xmm0
+; CHECK-NEXT: ret
diff --git a/test/CodeGen/X86/sse2.ll b/test/CodeGen/X86/sse2.ll
index 36a0fd91bd874..9147c22dd3753 100644
--- a/test/CodeGen/X86/sse2.ll
+++ b/test/CodeGen/X86/sse2.ll
@@ -7,8 +7,8 @@ define void @test1(<2 x double>* %r, <2 x double>* %A, double %B) nounwind {
%tmp9 = shufflevector <2 x double> %tmp3, <2 x double> %tmp7, <2 x i32> < i32 2, i32 1 >
store <2 x double> %tmp9, <2 x double>* %r, align 16
ret void
-
-; CHECK: test1:
+
+; CHECK-LABEL: test1:
; CHECK: movl 8(%esp), %eax
; CHECK-NEXT: movapd (%eax), %xmm0
; CHECK-NEXT: movlpd 12(%esp), %xmm0
@@ -23,12 +23,12 @@ define void @test2(<2 x double>* %r, <2 x double>* %A, double %B) nounwind {
%tmp9 = shufflevector <2 x double> %tmp3, <2 x double> %tmp7, <2 x i32> < i32 0, i32 2 >
store <2 x double> %tmp9, <2 x double>* %r, align 16
ret void
-
-; CHECK: test2:
-; CHECK: movl 8(%esp), %eax
-; CHECK-NEXT: movapd (%eax), %xmm0
+
+; CHECK-LABEL: test2:
+; CHECK: movl 4(%esp), %eax
+; CHECK: movl 8(%esp), %ecx
+; CHECK-NEXT: movapd (%ecx), %xmm0
; CHECK-NEXT: movhpd 12(%esp), %xmm0
-; CHECK-NEXT: movl 4(%esp), %eax
; CHECK-NEXT: movapd %xmm0, (%eax)
; CHECK-NEXT: ret
}
@@ -48,7 +48,7 @@ define void @test3(<4 x float>* %res, <4 x float>* %A, <4 x float>* %B) nounwind
store <4 x float> %tmp13, <4 x float>* %res
ret void
; CHECK: @test3
-; CHECK: unpcklps
+; CHECK: unpcklps
}
define void @test4(<4 x float> %X, <4 x float>* %res) nounwind {
@@ -60,7 +60,7 @@ define void @test4(<4 x float> %X, <4 x float>* %res) nounwind {
}
define <4 x i32> @test5(i8** %ptr) nounwind {
-; CHECK: test5:
+; CHECK-LABEL: test5:
; CHECK: pxor
; CHECK: punpcklbw
; CHECK: punpcklwd
@@ -85,9 +85,9 @@ define void @test6(<4 x float>* %res, <4 x float>* %A) nounwind {
%tmp2 = shufflevector <4 x float> %tmp1, <4 x float> undef, <4 x i32> < i32 0, i32 5, i32 6, i32 7 > ; <<4 x float>> [#uses=1]
store <4 x float> %tmp2, <4 x float>* %res
ret void
-
-; CHECK: test6:
-; CHECK: movaps (%eax), %xmm0
+
+; CHECK-LABEL: test6:
+; CHECK: movaps (%ecx), %xmm0
; CHECK: movaps %xmm0, (%eax)
}
@@ -96,8 +96,8 @@ define void @test7() nounwind {
shufflevector <4 x float> %1, <4 x float> zeroinitializer, <4 x i32> zeroinitializer ; <<4 x float>>:2 [#uses=1]
store <4 x float> %2, <4 x float>* null
ret void
-
-; CHECK: test7:
+
+; CHECK-LABEL: test7:
; CHECK: xorps %xmm0, %xmm0
; CHECK: movaps %xmm0, 0
}
@@ -115,7 +115,7 @@ define <2 x i64> @test8() nounwind {
%tmp15 = insertelement <4 x i32> %tmp14, i32 %tmp7, i32 3 ; <<4 x i32>> [#uses=1]
%tmp16 = bitcast <4 x i32> %tmp15 to <2 x i64> ; <<2 x i64>> [#uses=1]
ret <2 x i64> %tmp16
-; CHECK: test8:
+; CHECK-LABEL: test8:
; CHECK: movups (%eax), %xmm0
}
@@ -125,7 +125,7 @@ define <4 x float> @test9(i32 %dummy, float %a, float %b, float %c, float %d) no
%tmp12 = insertelement <4 x float> %tmp11, float %c, i32 2 ; <<4 x float>> [#uses=1]
%tmp13 = insertelement <4 x float> %tmp12, float %d, i32 3 ; <<4 x float>> [#uses=1]
ret <4 x float> %tmp13
-; CHECK: test9:
+; CHECK-LABEL: test9:
; CHECK: movups 8(%esp), %xmm0
}
@@ -135,7 +135,7 @@ define <4 x float> @test10(float %a, float %b, float %c, float %d) nounwind {
%tmp12 = insertelement <4 x float> %tmp11, float %c, i32 2 ; <<4 x float>> [#uses=1]
%tmp13 = insertelement <4 x float> %tmp12, float %d, i32 3 ; <<4 x float>> [#uses=1]
ret <4 x float> %tmp13
-; CHECK: test10:
+; CHECK-LABEL: test10:
; CHECK: movaps 4(%esp), %xmm0
}
@@ -143,7 +143,7 @@ define <2 x double> @test11(double %a, double %b) nounwind {
%tmp = insertelement <2 x double> undef, double %a, i32 0 ; <<2 x double>> [#uses=1]
%tmp7 = insertelement <2 x double> %tmp, double %b, i32 1 ; <<2 x double>> [#uses=1]
ret <2 x double> %tmp7
-; CHECK: test11:
+; CHECK-LABEL: test11:
; CHECK: movaps 4(%esp), %xmm0
}
@@ -154,7 +154,7 @@ define void @test12() nounwind {
%tmp4 = fadd <4 x float> %tmp2, %tmp3 ; <<4 x float>> [#uses=1]
store <4 x float> %tmp4, <4 x float>* null
ret void
-; CHECK: test12:
+; CHECK-LABEL: test12:
; CHECK: movhlps
; CHECK: shufps
}
@@ -166,7 +166,7 @@ define void @test13(<4 x float>* %res, <4 x float>* %A, <4 x float>* %B, <4 x fl
store <4 x float> %tmp11, <4 x float>* %res
ret void
; CHECK: test13
-; CHECK: shufps $69, (%eax), %xmm0
+; CHECK: shufps $69, (%ecx), %xmm0
; CHECK: pshufd $-40, %xmm0, %xmm0
}
@@ -177,9 +177,9 @@ define <4 x float> @test14(<4 x float>* %x, <4 x float>* %y) nounwind {
%tmp21 = fsub <4 x float> %tmp5, %tmp ; <<4 x float>> [#uses=1]
%tmp27 = shufflevector <4 x float> %tmp9, <4 x float> %tmp21, <4 x i32> < i32 0, i32 1, i32 4, i32 5 > ; <<4 x float>> [#uses=1]
ret <4 x float> %tmp27
-; CHECK: test14:
-; CHECK: subps [[X1:%xmm[0-9]+]], [[X2:%xmm[0-9]+]]
-; CHECK: addps [[X1]], [[X0:%xmm[0-9]+]]
+; CHECK-LABEL: test14:
+; CHECK: addps [[X1:%xmm[0-9]+]], [[X0:%xmm[0-9]+]]
+; CHECK: subps [[X1]], [[X2:%xmm[0-9]+]]
; CHECK: movlhps [[X2]], [[X0]]
}
@@ -189,12 +189,12 @@ entry:
%tmp3 = load <4 x float>* %x ; <<4 x float>> [#uses=1]
%tmp4 = shufflevector <4 x float> %tmp3, <4 x float> %tmp, <4 x i32> < i32 2, i32 3, i32 6, i32 7 > ; <<4 x float>> [#uses=1]
ret <4 x float> %tmp4
-; CHECK: test15:
+; CHECK-LABEL: test15:
; CHECK: movhlps %xmm1, %xmm0
}
; PR8900
-; CHECK: test16:
+; CHECK-LABEL: test16:
; CHECK: unpcklpd
; CHECK: ret
@@ -221,4 +221,3 @@ entry:
%double2float.i = fptrunc <4 x double> %0 to <4 x float>
ret <4 x float> %double2float.i
}
-
diff --git a/test/CodeGen/X86/sse3-intrinsics-x86.ll b/test/CodeGen/X86/sse3-intrinsics-x86.ll
new file mode 100644
index 0000000000000..dbd14b805fb57
--- /dev/null
+++ b/test/CodeGen/X86/sse3-intrinsics-x86.ll
@@ -0,0 +1,57 @@
+; RUN: llc < %s -mtriple=i386-apple-darwin -mattr=-avx,+sse3 | FileCheck %s
+
+define <2 x double> @test_x86_sse3_addsub_pd(<2 x double> %a0, <2 x double> %a1) {
+ ; CHECK: addsubpd
+ %res = call <2 x double> @llvm.x86.sse3.addsub.pd(<2 x double> %a0, <2 x double> %a1) ; <<2 x double>> [#uses=1]
+ ret <2 x double> %res
+}
+declare <2 x double> @llvm.x86.sse3.addsub.pd(<2 x double>, <2 x double>) nounwind readnone
+
+
+define <4 x float> @test_x86_sse3_addsub_ps(<4 x float> %a0, <4 x float> %a1) {
+ ; CHECK: addsubps
+ %res = call <4 x float> @llvm.x86.sse3.addsub.ps(<4 x float> %a0, <4 x float> %a1) ; <<4 x float>> [#uses=1]
+ ret <4 x float> %res
+}
+declare <4 x float> @llvm.x86.sse3.addsub.ps(<4 x float>, <4 x float>) nounwind readnone
+
+
+define <2 x double> @test_x86_sse3_hadd_pd(<2 x double> %a0, <2 x double> %a1) {
+ ; CHECK: haddpd
+ %res = call <2 x double> @llvm.x86.sse3.hadd.pd(<2 x double> %a0, <2 x double> %a1) ; <<2 x double>> [#uses=1]
+ ret <2 x double> %res
+}
+declare <2 x double> @llvm.x86.sse3.hadd.pd(<2 x double>, <2 x double>) nounwind readnone
+
+
+define <4 x float> @test_x86_sse3_hadd_ps(<4 x float> %a0, <4 x float> %a1) {
+ ; CHECK: haddps
+ %res = call <4 x float> @llvm.x86.sse3.hadd.ps(<4 x float> %a0, <4 x float> %a1) ; <<4 x float>> [#uses=1]
+ ret <4 x float> %res
+}
+declare <4 x float> @llvm.x86.sse3.hadd.ps(<4 x float>, <4 x float>) nounwind readnone
+
+
+define <2 x double> @test_x86_sse3_hsub_pd(<2 x double> %a0, <2 x double> %a1) {
+ ; CHECK: hsubpd
+ %res = call <2 x double> @llvm.x86.sse3.hsub.pd(<2 x double> %a0, <2 x double> %a1) ; <<2 x double>> [#uses=1]
+ ret <2 x double> %res
+}
+declare <2 x double> @llvm.x86.sse3.hsub.pd(<2 x double>, <2 x double>) nounwind readnone
+
+
+define <4 x float> @test_x86_sse3_hsub_ps(<4 x float> %a0, <4 x float> %a1) {
+ ; CHECK: hsubps
+ %res = call <4 x float> @llvm.x86.sse3.hsub.ps(<4 x float> %a0, <4 x float> %a1) ; <<4 x float>> [#uses=1]
+ ret <4 x float> %res
+}
+declare <4 x float> @llvm.x86.sse3.hsub.ps(<4 x float>, <4 x float>) nounwind readnone
+
+
+define <16 x i8> @test_x86_sse3_ldu_dq(i8* %a0) {
+ ; CHECK: movl
+ ; CHECK: lddqu
+ %res = call <16 x i8> @llvm.x86.sse3.ldu.dq(i8* %a0) ; <<16 x i8>> [#uses=1]
+ ret <16 x i8> %res
+}
+declare <16 x i8> @llvm.x86.sse3.ldu.dq(i8*) nounwind readonly
diff --git a/test/CodeGen/X86/sse3.ll b/test/CodeGen/X86/sse3.ll
index 48638b3b696c6..6d5b19243e457 100644
--- a/test/CodeGen/X86/sse3.ll
+++ b/test/CodeGen/X86/sse3.ll
@@ -14,8 +14,8 @@ entry:
<8 x i32> < i32 8, i32 0, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef >
store <8 x i16> %tmp6, <8 x i16>* %dest
ret void
-
-; X64: t0:
+
+; X64-LABEL: t0:
; X64: movdqa (%rsi), %xmm0
; X64: pslldq $2, %xmm0
; X64: movdqa %xmm0, (%rdi)
@@ -27,8 +27,8 @@ define <8 x i16> @t1(<8 x i16>* %A, <8 x i16>* %B) nounwind {
%tmp2 = load <8 x i16>* %B
%tmp3 = shufflevector <8 x i16> %tmp1, <8 x i16> %tmp2, <8 x i32> < i32 8, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7 >
ret <8 x i16> %tmp3
-
-; X64: t1:
+
+; X64-LABEL: t1:
; X64: movdqa (%rdi), %xmm0
; X64: pinsrw $0, (%rsi), %xmm0
; X64: ret
@@ -37,7 +37,7 @@ define <8 x i16> @t1(<8 x i16>* %A, <8 x i16>* %B) nounwind {
define <8 x i16> @t2(<8 x i16> %A, <8 x i16> %B) nounwind {
%tmp = shufflevector <8 x i16> %A, <8 x i16> %B, <8 x i32> < i32 9, i32 1, i32 2, i32 9, i32 4, i32 5, i32 6, i32 7 >
ret <8 x i16> %tmp
-; X64: t2:
+; X64-LABEL: t2:
; X64: pextrw $1, %xmm1, %eax
; X64: pinsrw $0, %eax, %xmm0
; X64: pinsrw $3, %eax, %xmm0
@@ -47,7 +47,7 @@ define <8 x i16> @t2(<8 x i16> %A, <8 x i16> %B) nounwind {
define <8 x i16> @t3(<8 x i16> %A, <8 x i16> %B) nounwind {
%tmp = shufflevector <8 x i16> %A, <8 x i16> %A, <8 x i32> < i32 8, i32 3, i32 2, i32 13, i32 7, i32 6, i32 5, i32 4 >
ret <8 x i16> %tmp
-; X64: t3:
+; X64-LABEL: t3:
; X64: pextrw $5, %xmm0, %eax
; X64: pshuflw $44, %xmm0, %xmm0
; X64: pshufhw $27, %xmm0, %xmm0
@@ -58,12 +58,12 @@ define <8 x i16> @t3(<8 x i16> %A, <8 x i16> %B) nounwind {
define <8 x i16> @t4(<8 x i16> %A, <8 x i16> %B) nounwind {
%tmp = shufflevector <8 x i16> %A, <8 x i16> %B, <8 x i32> < i32 0, i32 7, i32 2, i32 3, i32 1, i32 5, i32 6, i32 5 >
ret <8 x i16> %tmp
-; X64: t4:
+; X64-LABEL: t4:
; X64: pextrw $7, [[XMM0:%xmm[0-9]+]], %eax
; X64: pshufhw $100, [[XMM0]], [[XMM1:%xmm[0-9]+]]
; X64: pinsrw $1, %eax, [[XMM1]]
; X64: pextrw $1, [[XMM0]], %eax
-; X64: pinsrw $4, %eax, %xmm0
+; X64: pinsrw $4, %eax, %xmm{{[0-9]}}
; X64: ret
}
@@ -127,13 +127,13 @@ define void @t9(<4 x float>* %r, <2 x i32>* %A) nounwind {
%tmp.upgrd.3 = bitcast <2 x i32>* %A to double*
%tmp.upgrd.4 = load double* %tmp.upgrd.3
%tmp.upgrd.5 = insertelement <2 x double> undef, double %tmp.upgrd.4, i32 0
- %tmp5 = insertelement <2 x double> %tmp.upgrd.5, double undef, i32 1
- %tmp6 = bitcast <2 x double> %tmp5 to <4 x float>
- %tmp.upgrd.6 = extractelement <4 x float> %tmp, i32 0
- %tmp7 = extractelement <4 x float> %tmp, i32 1
- %tmp8 = extractelement <4 x float> %tmp6, i32 0
- %tmp9 = extractelement <4 x float> %tmp6, i32 1
- %tmp10 = insertelement <4 x float> undef, float %tmp.upgrd.6, i32 0
+ %tmp5 = insertelement <2 x double> %tmp.upgrd.5, double undef, i32 1
+ %tmp6 = bitcast <2 x double> %tmp5 to <4 x float>
+ %tmp.upgrd.6 = extractelement <4 x float> %tmp, i32 0
+ %tmp7 = extractelement <4 x float> %tmp, i32 1
+ %tmp8 = extractelement <4 x float> %tmp6, i32 0
+ %tmp9 = extractelement <4 x float> %tmp6, i32 1
+ %tmp10 = insertelement <4 x float> undef, float %tmp.upgrd.6, i32 0
%tmp11 = insertelement <4 x float> %tmp10, float %tmp7, i32 1
%tmp12 = insertelement <4 x float> %tmp11, float %tmp8, i32 2
%tmp13 = insertelement <4 x float> %tmp12, float %tmp9, i32 3
@@ -155,21 +155,21 @@ define void @t9(<4 x float>* %r, <2 x i32>* %A) nounwind {
@g2 = external constant <4 x i16>
define internal void @t10() nounwind {
- load <4 x i32>* @g1, align 16
+ load <4 x i32>* @g1, align 16
bitcast <4 x i32> %1 to <8 x i16>
shufflevector <8 x i16> %2, <8 x i16> undef, <8 x i32> < i32 0, i32 2, i32 4, i32 6, i32 undef, i32 undef, i32 undef, i32 undef >
- bitcast <8 x i16> %3 to <2 x i64>
- extractelement <2 x i64> %4, i32 0
- bitcast i64 %5 to <4 x i16>
+ bitcast <8 x i16> %3 to <2 x i64>
+ extractelement <2 x i64> %4, i32 0
+ bitcast i64 %5 to <4 x i16>
store <4 x i16> %6, <4 x i16>* @g2, align 8
ret void
; X64: t10:
-; X64: pextrw $4, [[X0:%xmm[0-9]+]], %ecx
-; X64: pextrw $6, [[X0]], %eax
+; X64: pextrw $4, [[X0:%xmm[0-9]+]], %e{{..}}
+; X64: pextrw $6, [[X0]], %e{{..}}
; X64: movlhps [[X0]], [[X0]]
; X64: pshuflw $8, [[X0]], [[X0]]
-; X64: pinsrw $2, %ecx, [[X0]]
-; X64: pinsrw $3, %eax, [[X0]]
+; X64: pinsrw $2, %e{{..}}, [[X0]]
+; X64: pinsrw $3, %e{{..}}, [[X0]]
}
@@ -179,7 +179,7 @@ entry:
%tmp7 = shufflevector <8 x i16> %T0, <8 x i16> %T1, <8 x i32> < i32 1, i32 8, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef , i32 undef >
ret <8 x i16> %tmp7
-; X64: t11:
+; X64-LABEL: t11:
; X64: movd %xmm1, %eax
; X64: movlhps %xmm0, %xmm0
; X64: pshuflw $1, %xmm0, %xmm0
@@ -193,7 +193,7 @@ entry:
%tmp9 = shufflevector <8 x i16> %T0, <8 x i16> %T1, <8 x i32> < i32 0, i32 1, i32 undef, i32 undef, i32 3, i32 11, i32 undef , i32 undef >
ret <8 x i16> %tmp9
-; X64: t12:
+; X64-LABEL: t12:
; X64: pextrw $3, %xmm1, %eax
; X64: movlhps %xmm0, %xmm0
; X64: pshufhw $3, %xmm0, %xmm0
@@ -206,7 +206,7 @@ define <8 x i16> @t13(<8 x i16> %T0, <8 x i16> %T1) nounwind readnone {
entry:
%tmp9 = shufflevector <8 x i16> %T0, <8 x i16> %T1, <8 x i32> < i32 8, i32 9, i32 undef, i32 undef, i32 11, i32 3, i32 undef , i32 undef >
ret <8 x i16> %tmp9
-; X64: t13:
+; X64-LABEL: t13:
; X64: punpcklqdq %xmm0, %xmm1
; X64: pextrw $3, %xmm1, %eax
; X64: pshufd $52, %xmm1, %xmm0
@@ -219,7 +219,7 @@ define <8 x i16> @t14(<8 x i16> %T0, <8 x i16> %T1) nounwind readnone {
entry:
%tmp9 = shufflevector <8 x i16> %T0, <8 x i16> %T1, <8 x i32> < i32 8, i32 9, i32 undef, i32 undef, i32 undef, i32 2, i32 undef , i32 undef >
ret <8 x i16> %tmp9
-; X64: t14:
+; X64-LABEL: t14:
; X64: punpcklqdq %xmm0, %xmm1
; X64: pshufhw $8, %xmm1, %xmm0
; X64: ret
@@ -259,7 +259,7 @@ entry:
; rdar://8520311
define <4 x i32> @t17() nounwind {
entry:
-; X64: t17:
+; X64-LABEL: t17:
; X64: movddup (%rax), %xmm0
%tmp1 = load <4 x float>* undef, align 16
%tmp2 = shufflevector <4 x float> %tmp1, <4 x float> undef, <4 x i32> <i32 4, i32 1, i32 2, i32 3>
diff --git a/test/CodeGen/X86/sse41-blend.ll b/test/CodeGen/X86/sse41-blend.ll
index a2a0debf9e957..a32f5de30a6ce 100644
--- a/test/CodeGen/X86/sse41-blend.ll
+++ b/test/CodeGen/X86/sse41-blend.ll
@@ -1,6 +1,6 @@
-; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=corei7 -mattr=+sse41 | FileCheck %s
+; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=corei7 -mattr=+sse4.1 | FileCheck %s
-;CHECK: vsel_float
+;CHECK-LABEL: vsel_float:
;CHECK: blendvps
;CHECK: ret
define <4 x float> @vsel_float(<4 x float> %v1, <4 x float> %v2) {
@@ -9,7 +9,7 @@ define <4 x float> @vsel_float(<4 x float> %v1, <4 x float> %v2) {
}
-;CHECK: vsel_4xi8
+;CHECK-LABEL: vsel_4xi8:
;CHECK: blendvps
;CHECK: ret
define <4 x i8> @vsel_4xi8(<4 x i8> %v1, <4 x i8> %v2) {
@@ -17,7 +17,7 @@ define <4 x i8> @vsel_4xi8(<4 x i8> %v1, <4 x i8> %v2) {
ret <4 x i8> %vsel
}
-;CHECK: vsel_4xi16
+;CHECK-LABEL: vsel_4xi16:
;CHECK: blendvps
;CHECK: ret
define <4 x i16> @vsel_4xi16(<4 x i16> %v1, <4 x i16> %v2) {
@@ -26,7 +26,7 @@ define <4 x i16> @vsel_4xi16(<4 x i16> %v1, <4 x i16> %v2) {
}
-;CHECK: vsel_i32
+;CHECK-LABEL: vsel_i32:
;CHECK: blendvps
;CHECK: ret
define <4 x i32> @vsel_i32(<4 x i32> %v1, <4 x i32> %v2) {
@@ -35,7 +35,7 @@ define <4 x i32> @vsel_i32(<4 x i32> %v1, <4 x i32> %v2) {
}
-;CHECK: vsel_double
+;CHECK-LABEL: vsel_double:
;CHECK: blendvpd
;CHECK: ret
define <4 x double> @vsel_double(<4 x double> %v1, <4 x double> %v2) {
@@ -44,7 +44,7 @@ define <4 x double> @vsel_double(<4 x double> %v1, <4 x double> %v2) {
}
-;CHECK: vsel_i64
+;CHECK-LABEL: vsel_i64:
;CHECK: blendvpd
;CHECK: ret
define <4 x i64> @vsel_i64(<4 x i64> %v1, <4 x i64> %v2) {
@@ -53,7 +53,7 @@ define <4 x i64> @vsel_i64(<4 x i64> %v1, <4 x i64> %v2) {
}
-;CHECK: vsel_i8
+;CHECK-LABEL: vsel_i8:
;CHECK: pblendvb
;CHECK: ret
define <16 x i8> @vsel_i8(<16 x i8> %v1, <16 x i8> %v2) {
diff --git a/test/CodeGen/X86/sse41-intrinsics-x86.ll b/test/CodeGen/X86/sse41-intrinsics-x86.ll
new file mode 100644
index 0000000000000..37eff43b28c4f
--- /dev/null
+++ b/test/CodeGen/X86/sse41-intrinsics-x86.ll
@@ -0,0 +1,326 @@
+; RUN: llc < %s -mtriple=i386-apple-darwin -mattr=-avx,+sse4.1 | FileCheck %s
+
+define <2 x double> @test_x86_sse41_blendpd(<2 x double> %a0, <2 x double> %a1) {
+ ; CHECK: blendpd
+ %res = call <2 x double> @llvm.x86.sse41.blendpd(<2 x double> %a0, <2 x double> %a1, i32 7) ; <<2 x double>> [#uses=1]
+ ret <2 x double> %res
+}
+declare <2 x double> @llvm.x86.sse41.blendpd(<2 x double>, <2 x double>, i32) nounwind readnone
+
+
+define <4 x float> @test_x86_sse41_blendps(<4 x float> %a0, <4 x float> %a1) {
+ ; CHECK: blendps
+ %res = call <4 x float> @llvm.x86.sse41.blendps(<4 x float> %a0, <4 x float> %a1, i32 7) ; <<4 x float>> [#uses=1]
+ ret <4 x float> %res
+}
+declare <4 x float> @llvm.x86.sse41.blendps(<4 x float>, <4 x float>, i32) nounwind readnone
+
+
+define <2 x double> @test_x86_sse41_blendvpd(<2 x double> %a0, <2 x double> %a1, <2 x double> %a2) {
+ ; CHECK: blendvpd
+ %res = call <2 x double> @llvm.x86.sse41.blendvpd(<2 x double> %a0, <2 x double> %a1, <2 x double> %a2) ; <<2 x double>> [#uses=1]
+ ret <2 x double> %res
+}
+declare <2 x double> @llvm.x86.sse41.blendvpd(<2 x double>, <2 x double>, <2 x double>) nounwind readnone
+
+
+define <4 x float> @test_x86_sse41_blendvps(<4 x float> %a0, <4 x float> %a1, <4 x float> %a2) {
+ ; CHECK: blendvps
+ %res = call <4 x float> @llvm.x86.sse41.blendvps(<4 x float> %a0, <4 x float> %a1, <4 x float> %a2) ; <<4 x float>> [#uses=1]
+ ret <4 x float> %res
+}
+declare <4 x float> @llvm.x86.sse41.blendvps(<4 x float>, <4 x float>, <4 x float>) nounwind readnone
+
+
+define <2 x double> @test_x86_sse41_dppd(<2 x double> %a0, <2 x double> %a1) {
+ ; CHECK: dppd
+ %res = call <2 x double> @llvm.x86.sse41.dppd(<2 x double> %a0, <2 x double> %a1, i32 7) ; <<2 x double>> [#uses=1]
+ ret <2 x double> %res
+}
+declare <2 x double> @llvm.x86.sse41.dppd(<2 x double>, <2 x double>, i32) nounwind readnone
+
+
+define <4 x float> @test_x86_sse41_dpps(<4 x float> %a0, <4 x float> %a1) {
+ ; CHECK: dpps
+ %res = call <4 x float> @llvm.x86.sse41.dpps(<4 x float> %a0, <4 x float> %a1, i32 7) ; <<4 x float>> [#uses=1]
+ ret <4 x float> %res
+}
+declare <4 x float> @llvm.x86.sse41.dpps(<4 x float>, <4 x float>, i32) nounwind readnone
+
+
+define <4 x float> @test_x86_sse41_insertps(<4 x float> %a0, <4 x float> %a1) {
+ ; CHECK: insertps
+ %res = call <4 x float> @llvm.x86.sse41.insertps(<4 x float> %a0, <4 x float> %a1, i32 7) ; <<4 x float>> [#uses=1]
+ ret <4 x float> %res
+}
+declare <4 x float> @llvm.x86.sse41.insertps(<4 x float>, <4 x float>, i32) nounwind readnone
+
+
+
+define <8 x i16> @test_x86_sse41_mpsadbw(<16 x i8> %a0, <16 x i8> %a1) {
+ ; CHECK: mpsadbw
+ %res = call <8 x i16> @llvm.x86.sse41.mpsadbw(<16 x i8> %a0, <16 x i8> %a1, i32 7) ; <<8 x i16>> [#uses=1]
+ ret <8 x i16> %res
+}
+declare <8 x i16> @llvm.x86.sse41.mpsadbw(<16 x i8>, <16 x i8>, i32) nounwind readnone
+
+
+define <8 x i16> @test_x86_sse41_packusdw(<4 x i32> %a0, <4 x i32> %a1) {
+ ; CHECK: packusdw
+ %res = call <8 x i16> @llvm.x86.sse41.packusdw(<4 x i32> %a0, <4 x i32> %a1) ; <<8 x i16>> [#uses=1]
+ ret <8 x i16> %res
+}
+declare <8 x i16> @llvm.x86.sse41.packusdw(<4 x i32>, <4 x i32>) nounwind readnone
+
+
+define <16 x i8> @test_x86_sse41_pblendvb(<16 x i8> %a0, <16 x i8> %a1, <16 x i8> %a2) {
+ ; CHECK: pblendvb
+ %res = call <16 x i8> @llvm.x86.sse41.pblendvb(<16 x i8> %a0, <16 x i8> %a1, <16 x i8> %a2) ; <<16 x i8>> [#uses=1]
+ ret <16 x i8> %res
+}
+declare <16 x i8> @llvm.x86.sse41.pblendvb(<16 x i8>, <16 x i8>, <16 x i8>) nounwind readnone
+
+
+define <8 x i16> @test_x86_sse41_pblendw(<8 x i16> %a0, <8 x i16> %a1) {
+ ; CHECK: pblendw
+ %res = call <8 x i16> @llvm.x86.sse41.pblendw(<8 x i16> %a0, <8 x i16> %a1, i32 7) ; <<8 x i16>> [#uses=1]
+ ret <8 x i16> %res
+}
+declare <8 x i16> @llvm.x86.sse41.pblendw(<8 x i16>, <8 x i16>, i32) nounwind readnone
+
+
+define <8 x i16> @test_x86_sse41_phminposuw(<8 x i16> %a0) {
+ ; CHECK: phminposuw
+ %res = call <8 x i16> @llvm.x86.sse41.phminposuw(<8 x i16> %a0) ; <<8 x i16>> [#uses=1]
+ ret <8 x i16> %res
+}
+declare <8 x i16> @llvm.x86.sse41.phminposuw(<8 x i16>) nounwind readnone
+
+
+define <16 x i8> @test_x86_sse41_pmaxsb(<16 x i8> %a0, <16 x i8> %a1) {
+ ; CHECK: pmaxsb
+ %res = call <16 x i8> @llvm.x86.sse41.pmaxsb(<16 x i8> %a0, <16 x i8> %a1) ; <<16 x i8>> [#uses=1]
+ ret <16 x i8> %res
+}
+declare <16 x i8> @llvm.x86.sse41.pmaxsb(<16 x i8>, <16 x i8>) nounwind readnone
+
+
+define <4 x i32> @test_x86_sse41_pmaxsd(<4 x i32> %a0, <4 x i32> %a1) {
+ ; CHECK: pmaxsd
+ %res = call <4 x i32> @llvm.x86.sse41.pmaxsd(<4 x i32> %a0, <4 x i32> %a1) ; <<4 x i32>> [#uses=1]
+ ret <4 x i32> %res
+}
+declare <4 x i32> @llvm.x86.sse41.pmaxsd(<4 x i32>, <4 x i32>) nounwind readnone
+
+
+define <4 x i32> @test_x86_sse41_pmaxud(<4 x i32> %a0, <4 x i32> %a1) {
+ ; CHECK: pmaxud
+ %res = call <4 x i32> @llvm.x86.sse41.pmaxud(<4 x i32> %a0, <4 x i32> %a1) ; <<4 x i32>> [#uses=1]
+ ret <4 x i32> %res
+}
+declare <4 x i32> @llvm.x86.sse41.pmaxud(<4 x i32>, <4 x i32>) nounwind readnone
+
+
+define <8 x i16> @test_x86_sse41_pmaxuw(<8 x i16> %a0, <8 x i16> %a1) {
+ ; CHECK: pmaxuw
+ %res = call <8 x i16> @llvm.x86.sse41.pmaxuw(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
+ ret <8 x i16> %res
+}
+declare <8 x i16> @llvm.x86.sse41.pmaxuw(<8 x i16>, <8 x i16>) nounwind readnone
+
+
+define <16 x i8> @test_x86_sse41_pminsb(<16 x i8> %a0, <16 x i8> %a1) {
+ ; CHECK: pminsb
+ %res = call <16 x i8> @llvm.x86.sse41.pminsb(<16 x i8> %a0, <16 x i8> %a1) ; <<16 x i8>> [#uses=1]
+ ret <16 x i8> %res
+}
+declare <16 x i8> @llvm.x86.sse41.pminsb(<16 x i8>, <16 x i8>) nounwind readnone
+
+
+define <4 x i32> @test_x86_sse41_pminsd(<4 x i32> %a0, <4 x i32> %a1) {
+ ; CHECK: pminsd
+ %res = call <4 x i32> @llvm.x86.sse41.pminsd(<4 x i32> %a0, <4 x i32> %a1) ; <<4 x i32>> [#uses=1]
+ ret <4 x i32> %res
+}
+declare <4 x i32> @llvm.x86.sse41.pminsd(<4 x i32>, <4 x i32>) nounwind readnone
+
+
+define <4 x i32> @test_x86_sse41_pminud(<4 x i32> %a0, <4 x i32> %a1) {
+ ; CHECK: pminud
+ %res = call <4 x i32> @llvm.x86.sse41.pminud(<4 x i32> %a0, <4 x i32> %a1) ; <<4 x i32>> [#uses=1]
+ ret <4 x i32> %res
+}
+declare <4 x i32> @llvm.x86.sse41.pminud(<4 x i32>, <4 x i32>) nounwind readnone
+
+
+define <8 x i16> @test_x86_sse41_pminuw(<8 x i16> %a0, <8 x i16> %a1) {
+ ; CHECK: pminuw
+ %res = call <8 x i16> @llvm.x86.sse41.pminuw(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
+ ret <8 x i16> %res
+}
+declare <8 x i16> @llvm.x86.sse41.pminuw(<8 x i16>, <8 x i16>) nounwind readnone
+
+
+define <4 x i32> @test_x86_sse41_pmovsxbd(<16 x i8> %a0) {
+ ; CHECK: pmovsxbd
+ %res = call <4 x i32> @llvm.x86.sse41.pmovsxbd(<16 x i8> %a0) ; <<4 x i32>> [#uses=1]
+ ret <4 x i32> %res
+}
+declare <4 x i32> @llvm.x86.sse41.pmovsxbd(<16 x i8>) nounwind readnone
+
+
+define <2 x i64> @test_x86_sse41_pmovsxbq(<16 x i8> %a0) {
+ ; CHECK: pmovsxbq
+ %res = call <2 x i64> @llvm.x86.sse41.pmovsxbq(<16 x i8> %a0) ; <<2 x i64>> [#uses=1]
+ ret <2 x i64> %res
+}
+declare <2 x i64> @llvm.x86.sse41.pmovsxbq(<16 x i8>) nounwind readnone
+
+
+define <8 x i16> @test_x86_sse41_pmovsxbw(<16 x i8> %a0) {
+ ; CHECK: pmovsxbw
+ %res = call <8 x i16> @llvm.x86.sse41.pmovsxbw(<16 x i8> %a0) ; <<8 x i16>> [#uses=1]
+ ret <8 x i16> %res
+}
+declare <8 x i16> @llvm.x86.sse41.pmovsxbw(<16 x i8>) nounwind readnone
+
+
+define <2 x i64> @test_x86_sse41_pmovsxdq(<4 x i32> %a0) {
+ ; CHECK: pmovsxdq
+ %res = call <2 x i64> @llvm.x86.sse41.pmovsxdq(<4 x i32> %a0) ; <<2 x i64>> [#uses=1]
+ ret <2 x i64> %res
+}
+declare <2 x i64> @llvm.x86.sse41.pmovsxdq(<4 x i32>) nounwind readnone
+
+
+define <4 x i32> @test_x86_sse41_pmovsxwd(<8 x i16> %a0) {
+ ; CHECK: pmovsxwd
+ %res = call <4 x i32> @llvm.x86.sse41.pmovsxwd(<8 x i16> %a0) ; <<4 x i32>> [#uses=1]
+ ret <4 x i32> %res
+}
+declare <4 x i32> @llvm.x86.sse41.pmovsxwd(<8 x i16>) nounwind readnone
+
+
+define <2 x i64> @test_x86_sse41_pmovsxwq(<8 x i16> %a0) {
+ ; CHECK: pmovsxwq
+ %res = call <2 x i64> @llvm.x86.sse41.pmovsxwq(<8 x i16> %a0) ; <<2 x i64>> [#uses=1]
+ ret <2 x i64> %res
+}
+declare <2 x i64> @llvm.x86.sse41.pmovsxwq(<8 x i16>) nounwind readnone
+
+
+define <4 x i32> @test_x86_sse41_pmovzxbd(<16 x i8> %a0) {
+ ; CHECK: pmovzxbd
+ %res = call <4 x i32> @llvm.x86.sse41.pmovzxbd(<16 x i8> %a0) ; <<4 x i32>> [#uses=1]
+ ret <4 x i32> %res
+}
+declare <4 x i32> @llvm.x86.sse41.pmovzxbd(<16 x i8>) nounwind readnone
+
+
+define <2 x i64> @test_x86_sse41_pmovzxbq(<16 x i8> %a0) {
+ ; CHECK: pmovzxbq
+ %res = call <2 x i64> @llvm.x86.sse41.pmovzxbq(<16 x i8> %a0) ; <<2 x i64>> [#uses=1]
+ ret <2 x i64> %res
+}
+declare <2 x i64> @llvm.x86.sse41.pmovzxbq(<16 x i8>) nounwind readnone
+
+
+define <8 x i16> @test_x86_sse41_pmovzxbw(<16 x i8> %a0) {
+ ; CHECK: pmovzxbw
+ %res = call <8 x i16> @llvm.x86.sse41.pmovzxbw(<16 x i8> %a0) ; <<8 x i16>> [#uses=1]
+ ret <8 x i16> %res
+}
+declare <8 x i16> @llvm.x86.sse41.pmovzxbw(<16 x i8>) nounwind readnone
+
+
+define <2 x i64> @test_x86_sse41_pmovzxdq(<4 x i32> %a0) {
+ ; CHECK: pmovzxdq
+ %res = call <2 x i64> @llvm.x86.sse41.pmovzxdq(<4 x i32> %a0) ; <<2 x i64>> [#uses=1]
+ ret <2 x i64> %res
+}
+declare <2 x i64> @llvm.x86.sse41.pmovzxdq(<4 x i32>) nounwind readnone
+
+
+define <4 x i32> @test_x86_sse41_pmovzxwd(<8 x i16> %a0) {
+ ; CHECK: pmovzxwd
+ %res = call <4 x i32> @llvm.x86.sse41.pmovzxwd(<8 x i16> %a0) ; <<4 x i32>> [#uses=1]
+ ret <4 x i32> %res
+}
+declare <4 x i32> @llvm.x86.sse41.pmovzxwd(<8 x i16>) nounwind readnone
+
+
+define <2 x i64> @test_x86_sse41_pmovzxwq(<8 x i16> %a0) {
+ ; CHECK: pmovzxwq
+ %res = call <2 x i64> @llvm.x86.sse41.pmovzxwq(<8 x i16> %a0) ; <<2 x i64>> [#uses=1]
+ ret <2 x i64> %res
+}
+declare <2 x i64> @llvm.x86.sse41.pmovzxwq(<8 x i16>) nounwind readnone
+
+
+define <2 x i64> @test_x86_sse41_pmuldq(<4 x i32> %a0, <4 x i32> %a1) {
+ ; CHECK: pmuldq
+ %res = call <2 x i64> @llvm.x86.sse41.pmuldq(<4 x i32> %a0, <4 x i32> %a1) ; <<2 x i64>> [#uses=1]
+ ret <2 x i64> %res
+}
+declare <2 x i64> @llvm.x86.sse41.pmuldq(<4 x i32>, <4 x i32>) nounwind readnone
+
+
+define i32 @test_x86_sse41_ptestc(<2 x i64> %a0, <2 x i64> %a1) {
+ ; CHECK: ptest
+ ; CHECK: sbbl
+ %res = call i32 @llvm.x86.sse41.ptestc(<2 x i64> %a0, <2 x i64> %a1) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse41.ptestc(<2 x i64>, <2 x i64>) nounwind readnone
+
+
+define i32 @test_x86_sse41_ptestnzc(<2 x i64> %a0, <2 x i64> %a1) {
+ ; CHECK: ptest
+ ; CHECK: seta
+ ; CHECK: movzbl
+ %res = call i32 @llvm.x86.sse41.ptestnzc(<2 x i64> %a0, <2 x i64> %a1) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse41.ptestnzc(<2 x i64>, <2 x i64>) nounwind readnone
+
+
+define i32 @test_x86_sse41_ptestz(<2 x i64> %a0, <2 x i64> %a1) {
+ ; CHECK: ptest
+ ; CHECK: sete
+ ; CHECK: movzbl
+ %res = call i32 @llvm.x86.sse41.ptestz(<2 x i64> %a0, <2 x i64> %a1) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse41.ptestz(<2 x i64>, <2 x i64>) nounwind readnone
+
+
+define <2 x double> @test_x86_sse41_round_pd(<2 x double> %a0) {
+ ; CHECK: roundpd
+ %res = call <2 x double> @llvm.x86.sse41.round.pd(<2 x double> %a0, i32 7) ; <<2 x double>> [#uses=1]
+ ret <2 x double> %res
+}
+declare <2 x double> @llvm.x86.sse41.round.pd(<2 x double>, i32) nounwind readnone
+
+
+define <4 x float> @test_x86_sse41_round_ps(<4 x float> %a0) {
+ ; CHECK: roundps
+ %res = call <4 x float> @llvm.x86.sse41.round.ps(<4 x float> %a0, i32 7) ; <<4 x float>> [#uses=1]
+ ret <4 x float> %res
+}
+declare <4 x float> @llvm.x86.sse41.round.ps(<4 x float>, i32) nounwind readnone
+
+
+define <2 x double> @test_x86_sse41_round_sd(<2 x double> %a0, <2 x double> %a1) {
+ ; CHECK: roundsd
+ %res = call <2 x double> @llvm.x86.sse41.round.sd(<2 x double> %a0, <2 x double> %a1, i32 7) ; <<2 x double>> [#uses=1]
+ ret <2 x double> %res
+}
+declare <2 x double> @llvm.x86.sse41.round.sd(<2 x double>, <2 x double>, i32) nounwind readnone
+
+
+define <4 x float> @test_x86_sse41_round_ss(<4 x float> %a0, <4 x float> %a1) {
+ ; CHECK: roundss
+ %res = call <4 x float> @llvm.x86.sse41.round.ss(<4 x float> %a0, <4 x float> %a1, i32 7) ; <<4 x float>> [#uses=1]
+ ret <4 x float> %res
+}
+declare <4 x float> @llvm.x86.sse41.round.ss(<4 x float>, <4 x float>, i32) nounwind readnone
diff --git a/test/CodeGen/X86/sse41.ll b/test/CodeGen/X86/sse41.ll
index c6f9f0c873af4..c15e24ccc96b0 100644
--- a/test/CodeGen/X86/sse41.ll
+++ b/test/CodeGen/X86/sse41.ll
@@ -1,25 +1,25 @@
-; RUN: llc < %s -mtriple=i686-apple-darwin9 -mattr=sse41 -mcpu=penryn | FileCheck %s -check-prefix=X32
-; RUN: llc < %s -mtriple=x86_64-apple-darwin9 -mattr=sse41 -mcpu=penryn | FileCheck %s -check-prefix=X64
+; RUN: llc < %s -mtriple=i686-apple-darwin9 -mattr=sse4.1 -mcpu=penryn | FileCheck %s -check-prefix=X32
+; RUN: llc < %s -mtriple=x86_64-apple-darwin9 -mattr=sse4.1 -mcpu=penryn | FileCheck %s -check-prefix=X64
@g16 = external global i16
define <4 x i32> @pinsrd_1(i32 %s, <4 x i32> %tmp) nounwind {
%tmp1 = insertelement <4 x i32> %tmp, i32 %s, i32 1
ret <4 x i32> %tmp1
-; X32: pinsrd_1:
+; X32-LABEL: pinsrd_1:
; X32: pinsrd $1, 4(%esp), %xmm0
-; X64: pinsrd_1:
+; X64-LABEL: pinsrd_1:
; X64: pinsrd $1, %edi, %xmm0
}
define <16 x i8> @pinsrb_1(i8 %s, <16 x i8> %tmp) nounwind {
%tmp1 = insertelement <16 x i8> %tmp, i8 %s, i32 1
ret <16 x i8> %tmp1
-; X32: pinsrb_1:
+; X32-LABEL: pinsrb_1:
; X32: pinsrb $1, 4(%esp), %xmm0
-; X64: pinsrb_1:
+; X64-LABEL: pinsrb_1:
; X64: pinsrb $1, %edi, %xmm0
}
@@ -237,12 +237,12 @@ entry:
%tmp11 = insertelement <2 x float> undef, float %add.r, i32 0
%tmp9 = insertelement <2 x float> %tmp11, float %add.i, i32 1
ret <2 x float> %tmp9
-; X32: buildvector:
+; X32-LABEL: buildvector:
; X32-NOT: insertps $0
; X32: insertps $16
; X32-NOT: insertps $0
; X32: ret
-; X64: buildvector:
+; X64-LABEL: buildvector:
; X64-NOT: insertps $0
; X64: insertps $16
; X64-NOT: insertps $0
diff --git a/test/CodeGen/X86/sse42-intrinsics-x86.ll b/test/CodeGen/X86/sse42-intrinsics-x86.ll
new file mode 100644
index 0000000000000..5ca8009828276
--- /dev/null
+++ b/test/CodeGen/X86/sse42-intrinsics-x86.ll
@@ -0,0 +1,182 @@
+; RUN: llc < %s -mtriple=i386-apple-darwin -mattr=-avx,+sse4.2 | FileCheck %s
+
+define i32 @test_x86_sse42_pcmpestri128(<16 x i8> %a0, <16 x i8> %a2) {
+ ; CHECK: movl $7
+ ; CHECK: movl $7
+ ; CHECK: pcmpestri $7
+ ; CHECK: movl
+ %res = call i32 @llvm.x86.sse42.pcmpestri128(<16 x i8> %a0, i32 7, <16 x i8> %a2, i32 7, i8 7) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse42.pcmpestri128(<16 x i8>, i32, <16 x i8>, i32, i8) nounwind readnone
+
+
+define i32 @test_x86_sse42_pcmpestri128_load(<16 x i8>* %a0, <16 x i8>* %a2) {
+ ; CHECK: movl $7
+ ; CHECK: movl $7
+ ; CHECK: pcmpestri $7, (
+ ; CHECK: movl
+ %1 = load <16 x i8>* %a0
+ %2 = load <16 x i8>* %a2
+ %res = call i32 @llvm.x86.sse42.pcmpestri128(<16 x i8> %1, i32 7, <16 x i8> %2, i32 7, i8 7) ; <i32> [#uses=1]
+ ret i32 %res
+}
+
+
+define i32 @test_x86_sse42_pcmpestria128(<16 x i8> %a0, <16 x i8> %a2) {
+ ; CHECK: movl
+ ; CHECK: movl
+ ; CHECK: pcmpestri
+ ; CHECK: seta
+ %res = call i32 @llvm.x86.sse42.pcmpestria128(<16 x i8> %a0, i32 7, <16 x i8> %a2, i32 7, i8 7) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse42.pcmpestria128(<16 x i8>, i32, <16 x i8>, i32, i8) nounwind readnone
+
+
+define i32 @test_x86_sse42_pcmpestric128(<16 x i8> %a0, <16 x i8> %a2) {
+ ; CHECK: movl
+ ; CHECK: movl
+ ; CHECK: pcmpestri
+ ; CHECK: sbbl
+ %res = call i32 @llvm.x86.sse42.pcmpestric128(<16 x i8> %a0, i32 7, <16 x i8> %a2, i32 7, i8 7) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse42.pcmpestric128(<16 x i8>, i32, <16 x i8>, i32, i8) nounwind readnone
+
+
+define i32 @test_x86_sse42_pcmpestrio128(<16 x i8> %a0, <16 x i8> %a2) {
+ ; CHECK: movl
+ ; CHECK: movl
+ ; CHECK: pcmpestri
+ ; CHECK: seto
+ %res = call i32 @llvm.x86.sse42.pcmpestrio128(<16 x i8> %a0, i32 7, <16 x i8> %a2, i32 7, i8 7) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse42.pcmpestrio128(<16 x i8>, i32, <16 x i8>, i32, i8) nounwind readnone
+
+
+define i32 @test_x86_sse42_pcmpestris128(<16 x i8> %a0, <16 x i8> %a2) {
+ ; CHECK: movl
+ ; CHECK: movl
+ ; CHECK: pcmpestri
+ ; CHECK: sets
+ %res = call i32 @llvm.x86.sse42.pcmpestris128(<16 x i8> %a0, i32 7, <16 x i8> %a2, i32 7, i8 7) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse42.pcmpestris128(<16 x i8>, i32, <16 x i8>, i32, i8) nounwind readnone
+
+
+define i32 @test_x86_sse42_pcmpestriz128(<16 x i8> %a0, <16 x i8> %a2) {
+ ; CHECK: movl
+ ; CHECK: movl
+ ; CHECK: pcmpestri
+ ; CHECK: sete
+ %res = call i32 @llvm.x86.sse42.pcmpestriz128(<16 x i8> %a0, i32 7, <16 x i8> %a2, i32 7, i8 7) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse42.pcmpestriz128(<16 x i8>, i32, <16 x i8>, i32, i8) nounwind readnone
+
+
+define <16 x i8> @test_x86_sse42_pcmpestrm128(<16 x i8> %a0, <16 x i8> %a2) {
+ ; CHECK: movl
+ ; CHECK: movl
+ ; CHECK: pcmpestrm
+ ; CHECK-NOT: vmov
+ %res = call <16 x i8> @llvm.x86.sse42.pcmpestrm128(<16 x i8> %a0, i32 7, <16 x i8> %a2, i32 7, i8 7) ; <<16 x i8>> [#uses=1]
+ ret <16 x i8> %res
+}
+declare <16 x i8> @llvm.x86.sse42.pcmpestrm128(<16 x i8>, i32, <16 x i8>, i32, i8) nounwind readnone
+
+
+define <16 x i8> @test_x86_sse42_pcmpestrm128_load(<16 x i8> %a0, <16 x i8>* %a2) {
+ ; CHECK: movl $7
+ ; CHECK: movl $7
+ ; CHECK: pcmpestrm $7,
+ ; CHECK-NOT: vmov
+ %1 = load <16 x i8>* %a2
+ %res = call <16 x i8> @llvm.x86.sse42.pcmpestrm128(<16 x i8> %a0, i32 7, <16 x i8> %1, i32 7, i8 7) ; <<16 x i8>> [#uses=1]
+ ret <16 x i8> %res
+}
+
+
+define i32 @test_x86_sse42_pcmpistri128(<16 x i8> %a0, <16 x i8> %a1) {
+ ; CHECK: pcmpistri $7
+ ; CHECK: movl
+ %res = call i32 @llvm.x86.sse42.pcmpistri128(<16 x i8> %a0, <16 x i8> %a1, i8 7) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse42.pcmpistri128(<16 x i8>, <16 x i8>, i8) nounwind readnone
+
+
+define i32 @test_x86_sse42_pcmpistri128_load(<16 x i8>* %a0, <16 x i8>* %a1) {
+ ; CHECK: pcmpistri $7, (
+ ; CHECK: movl
+ %1 = load <16 x i8>* %a0
+ %2 = load <16 x i8>* %a1
+ %res = call i32 @llvm.x86.sse42.pcmpistri128(<16 x i8> %1, <16 x i8> %2, i8 7) ; <i32> [#uses=1]
+ ret i32 %res
+}
+
+
+define i32 @test_x86_sse42_pcmpistria128(<16 x i8> %a0, <16 x i8> %a1) {
+ ; CHECK: pcmpistri
+ ; CHECK: seta
+ %res = call i32 @llvm.x86.sse42.pcmpistria128(<16 x i8> %a0, <16 x i8> %a1, i8 7) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse42.pcmpistria128(<16 x i8>, <16 x i8>, i8) nounwind readnone
+
+
+define i32 @test_x86_sse42_pcmpistric128(<16 x i8> %a0, <16 x i8> %a1) {
+ ; CHECK: pcmpistri
+ ; CHECK: sbbl
+ %res = call i32 @llvm.x86.sse42.pcmpistric128(<16 x i8> %a0, <16 x i8> %a1, i8 7) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse42.pcmpistric128(<16 x i8>, <16 x i8>, i8) nounwind readnone
+
+
+define i32 @test_x86_sse42_pcmpistrio128(<16 x i8> %a0, <16 x i8> %a1) {
+ ; CHECK: pcmpistri
+ ; CHECK: seto
+ %res = call i32 @llvm.x86.sse42.pcmpistrio128(<16 x i8> %a0, <16 x i8> %a1, i8 7) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse42.pcmpistrio128(<16 x i8>, <16 x i8>, i8) nounwind readnone
+
+
+define i32 @test_x86_sse42_pcmpistris128(<16 x i8> %a0, <16 x i8> %a1) {
+ ; CHECK: pcmpistri
+ ; CHECK: sets
+ %res = call i32 @llvm.x86.sse42.pcmpistris128(<16 x i8> %a0, <16 x i8> %a1, i8 7) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse42.pcmpistris128(<16 x i8>, <16 x i8>, i8) nounwind readnone
+
+
+define i32 @test_x86_sse42_pcmpistriz128(<16 x i8> %a0, <16 x i8> %a1) {
+ ; CHECK: pcmpistri
+ ; CHECK: sete
+ %res = call i32 @llvm.x86.sse42.pcmpistriz128(<16 x i8> %a0, <16 x i8> %a1, i8 7) ; <i32> [#uses=1]
+ ret i32 %res
+}
+declare i32 @llvm.x86.sse42.pcmpistriz128(<16 x i8>, <16 x i8>, i8) nounwind readnone
+
+
+define <16 x i8> @test_x86_sse42_pcmpistrm128(<16 x i8> %a0, <16 x i8> %a1) {
+ ; CHECK: pcmpistrm $7
+ ; CHECK-NOT: vmov
+ %res = call <16 x i8> @llvm.x86.sse42.pcmpistrm128(<16 x i8> %a0, <16 x i8> %a1, i8 7) ; <<16 x i8>> [#uses=1]
+ ret <16 x i8> %res
+}
+declare <16 x i8> @llvm.x86.sse42.pcmpistrm128(<16 x i8>, <16 x i8>, i8) nounwind readnone
+
+
+define <16 x i8> @test_x86_sse42_pcmpistrm128_load(<16 x i8> %a0, <16 x i8>* %a1) {
+ ; CHECK: pcmpistrm $7, (
+ ; CHECK-NOT: vmov
+ %1 = load <16 x i8>* %a1
+ %res = call <16 x i8> @llvm.x86.sse42.pcmpistrm128(<16 x i8> %a0, <16 x i8> %1, i8 7) ; <<16 x i8>> [#uses=1]
+ ret <16 x i8> %res
+}
diff --git a/test/CodeGen/X86/sse42.ll b/test/CodeGen/X86/sse42.ll
index c7875238ec868..db51d99736883 100644
--- a/test/CodeGen/X86/sse42.ll
+++ b/test/CodeGen/X86/sse42.ll
@@ -1,5 +1,5 @@
-; RUN: llc < %s -mtriple=i686-apple-darwin9 -mattr=sse42 | FileCheck %s -check-prefix=X32
-; RUN: llc < %s -mtriple=x86_64-apple-darwin9 -mattr=sse42 | FileCheck %s -check-prefix=X64
+; RUN: llc < %s -mtriple=i686-apple-darwin9 -mattr=sse4.2 | FileCheck %s -check-prefix=X32
+; RUN: llc < %s -mtriple=x86_64-apple-darwin9 -mattr=sse4.2 | FileCheck %s -check-prefix=X64
declare i32 @llvm.x86.sse42.crc32.32.8(i32, i8) nounwind
declare i32 @llvm.x86.sse42.crc32.32.16(i32, i16) nounwind
diff --git a/test/CodeGen/X86/sse42_64.ll b/test/CodeGen/X86/sse42_64.ll
index 8b3a69bcaaf89..b39e76c78eb7c 100644
--- a/test/CodeGen/X86/sse42_64.ll
+++ b/test/CodeGen/X86/sse42_64.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -mtriple=x86_64-apple-darwin9 -mattr=sse42 | FileCheck %s -check-prefix=X64
+; RUN: llc < %s -mtriple=x86_64-apple-darwin9 -mattr=sse4.2 | FileCheck %s -check-prefix=X64
declare i64 @llvm.x86.sse42.crc32.64.8(i64, i8) nounwind
declare i64 @llvm.x86.sse42.crc32.64.64(i64, i64) nounwind
diff --git a/test/CodeGen/X86/sse4a.ll b/test/CodeGen/X86/sse4a.ll
index 076e213364929..165d47639d7ac 100644
--- a/test/CodeGen/X86/sse4a.ll
+++ b/test/CodeGen/X86/sse4a.ll
@@ -1,7 +1,7 @@
; RUN: llc < %s -mtriple=i686-apple-darwin9 -mattr=sse4a | FileCheck %s
define void @test1(i8* %p, <4 x float> %a) nounwind optsize ssp {
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: movntss
tail call void @llvm.x86.sse4a.movnt.ss(i8* %p, <4 x float> %a) nounwind
ret void
@@ -10,7 +10,7 @@ define void @test1(i8* %p, <4 x float> %a) nounwind optsize ssp {
declare void @llvm.x86.sse4a.movnt.ss(i8*, <4 x float>)
define void @test2(i8* %p, <2 x double> %a) nounwind optsize ssp {
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK: movntsd
tail call void @llvm.x86.sse4a.movnt.sd(i8* %p, <2 x double> %a) nounwind
ret void
@@ -19,7 +19,7 @@ define void @test2(i8* %p, <2 x double> %a) nounwind optsize ssp {
declare void @llvm.x86.sse4a.movnt.sd(i8*, <2 x double>)
define <2 x i64> @test3(<2 x i64> %x) nounwind uwtable ssp {
-; CHECK: test3:
+; CHECK-LABEL: test3:
; CHECK: extrq
%1 = tail call <2 x i64> @llvm.x86.sse4a.extrqi(<2 x i64> %x, i8 3, i8 2)
ret <2 x i64> %1
@@ -28,7 +28,7 @@ define <2 x i64> @test3(<2 x i64> %x) nounwind uwtable ssp {
declare <2 x i64> @llvm.x86.sse4a.extrqi(<2 x i64>, i8, i8) nounwind
define <2 x i64> @test4(<2 x i64> %x, <2 x i64> %y) nounwind uwtable ssp {
-; CHECK: test4:
+; CHECK-LABEL: test4:
; CHECK: extrq
%1 = bitcast <2 x i64> %y to <16 x i8>
%2 = tail call <2 x i64> @llvm.x86.sse4a.extrq(<2 x i64> %x, <16 x i8> %1) nounwind
@@ -38,7 +38,7 @@ define <2 x i64> @test4(<2 x i64> %x, <2 x i64> %y) nounwind uwtable ssp {
declare <2 x i64> @llvm.x86.sse4a.extrq(<2 x i64>, <16 x i8>) nounwind
define <2 x i64> @test5(<2 x i64> %x, <2 x i64> %y) nounwind uwtable ssp {
-; CHECK: test5:
+; CHECK-LABEL: test5:
; CHECK: insertq
%1 = tail call <2 x i64> @llvm.x86.sse4a.insertqi(<2 x i64> %x, <2 x i64> %y, i8 5, i8 6)
ret <2 x i64> %1
@@ -47,7 +47,7 @@ define <2 x i64> @test5(<2 x i64> %x, <2 x i64> %y) nounwind uwtable ssp {
declare <2 x i64> @llvm.x86.sse4a.insertqi(<2 x i64>, <2 x i64>, i8, i8) nounwind
define <2 x i64> @test6(<2 x i64> %x, <2 x i64> %y) nounwind uwtable ssp {
-; CHECK: test6:
+; CHECK-LABEL: test6:
; CHECK: insertq
%1 = tail call <2 x i64> @llvm.x86.sse4a.insertq(<2 x i64> %x, <2 x i64> %y) nounwind
ret <2 x i64> %1
diff --git a/test/CodeGen/X86/sse_partial_update.ll b/test/CodeGen/X86/sse_partial_update.ll
index 655f75800cffa..2c16a554aebbd 100644
--- a/test/CodeGen/X86/sse_partial_update.ll
+++ b/test/CodeGen/X86/sse_partial_update.ll
@@ -8,7 +8,7 @@
; destination of rsqrtss are the same.
define void @t1(<4 x float> %a) nounwind uwtable ssp {
entry:
-; CHECK: t1:
+; CHECK-LABEL: t1:
; CHECK: rsqrtss %xmm0, %xmm0
%0 = tail call <4 x float> @llvm.x86.sse.rsqrt.ss(<4 x float> %a) nounwind
%a.addr.0.extract = extractelement <4 x float> %0, i32 0
@@ -23,7 +23,7 @@ declare <4 x float> @llvm.x86.sse.rsqrt.ss(<4 x float>) nounwind readnone
define void @t2(<4 x float> %a) nounwind uwtable ssp {
entry:
-; CHECK: t2:
+; CHECK-LABEL: t2:
; CHECK: rcpss %xmm0, %xmm0
%0 = tail call <4 x float> @llvm.x86.sse.rcp.ss(<4 x float> %a) nounwind
%a.addr.0.extract = extractelement <4 x float> %0, i32 0
diff --git a/test/CodeGen/X86/ssse3-intrinsics-x86.ll b/test/CodeGen/X86/ssse3-intrinsics-x86.ll
new file mode 100644
index 0000000000000..728cbc9b60ddc
--- /dev/null
+++ b/test/CodeGen/X86/ssse3-intrinsics-x86.ll
@@ -0,0 +1,120 @@
+; RUN: llc < %s -mtriple=i386-apple-darwin -mattr=-avx,+ssse3 | FileCheck %s
+
+define <16 x i8> @test_x86_ssse3_pabs_b_128(<16 x i8> %a0) {
+ ; CHECK: pabsb
+ %res = call <16 x i8> @llvm.x86.ssse3.pabs.b.128(<16 x i8> %a0) ; <<16 x i8>> [#uses=1]
+ ret <16 x i8> %res
+}
+declare <16 x i8> @llvm.x86.ssse3.pabs.b.128(<16 x i8>) nounwind readnone
+
+
+define <4 x i32> @test_x86_ssse3_pabs_d_128(<4 x i32> %a0) {
+ ; CHECK: pabsd
+ %res = call <4 x i32> @llvm.x86.ssse3.pabs.d.128(<4 x i32> %a0) ; <<4 x i32>> [#uses=1]
+ ret <4 x i32> %res
+}
+declare <4 x i32> @llvm.x86.ssse3.pabs.d.128(<4 x i32>) nounwind readnone
+
+
+define <8 x i16> @test_x86_ssse3_pabs_w_128(<8 x i16> %a0) {
+ ; CHECK: pabsw
+ %res = call <8 x i16> @llvm.x86.ssse3.pabs.w.128(<8 x i16> %a0) ; <<8 x i16>> [#uses=1]
+ ret <8 x i16> %res
+}
+declare <8 x i16> @llvm.x86.ssse3.pabs.w.128(<8 x i16>) nounwind readnone
+
+
+define <4 x i32> @test_x86_ssse3_phadd_d_128(<4 x i32> %a0, <4 x i32> %a1) {
+ ; CHECK: phaddd
+ %res = call <4 x i32> @llvm.x86.ssse3.phadd.d.128(<4 x i32> %a0, <4 x i32> %a1) ; <<4 x i32>> [#uses=1]
+ ret <4 x i32> %res
+}
+declare <4 x i32> @llvm.x86.ssse3.phadd.d.128(<4 x i32>, <4 x i32>) nounwind readnone
+
+
+define <8 x i16> @test_x86_ssse3_phadd_sw_128(<8 x i16> %a0, <8 x i16> %a1) {
+ ; CHECK: phaddsw
+ %res = call <8 x i16> @llvm.x86.ssse3.phadd.sw.128(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
+ ret <8 x i16> %res
+}
+declare <8 x i16> @llvm.x86.ssse3.phadd.sw.128(<8 x i16>, <8 x i16>) nounwind readnone
+
+
+define <8 x i16> @test_x86_ssse3_phadd_w_128(<8 x i16> %a0, <8 x i16> %a1) {
+ ; CHECK: phaddw
+ %res = call <8 x i16> @llvm.x86.ssse3.phadd.w.128(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
+ ret <8 x i16> %res
+}
+declare <8 x i16> @llvm.x86.ssse3.phadd.w.128(<8 x i16>, <8 x i16>) nounwind readnone
+
+
+define <4 x i32> @test_x86_ssse3_phsub_d_128(<4 x i32> %a0, <4 x i32> %a1) {
+ ; CHECK: phsubd
+ %res = call <4 x i32> @llvm.x86.ssse3.phsub.d.128(<4 x i32> %a0, <4 x i32> %a1) ; <<4 x i32>> [#uses=1]
+ ret <4 x i32> %res
+}
+declare <4 x i32> @llvm.x86.ssse3.phsub.d.128(<4 x i32>, <4 x i32>) nounwind readnone
+
+
+define <8 x i16> @test_x86_ssse3_phsub_sw_128(<8 x i16> %a0, <8 x i16> %a1) {
+ ; CHECK: phsubsw
+ %res = call <8 x i16> @llvm.x86.ssse3.phsub.sw.128(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
+ ret <8 x i16> %res
+}
+declare <8 x i16> @llvm.x86.ssse3.phsub.sw.128(<8 x i16>, <8 x i16>) nounwind readnone
+
+
+define <8 x i16> @test_x86_ssse3_phsub_w_128(<8 x i16> %a0, <8 x i16> %a1) {
+ ; CHECK: phsubw
+ %res = call <8 x i16> @llvm.x86.ssse3.phsub.w.128(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
+ ret <8 x i16> %res
+}
+declare <8 x i16> @llvm.x86.ssse3.phsub.w.128(<8 x i16>, <8 x i16>) nounwind readnone
+
+
+define <8 x i16> @test_x86_ssse3_pmadd_ub_sw_128(<16 x i8> %a0, <16 x i8> %a1) {
+ ; CHECK: pmaddubsw
+ %res = call <8 x i16> @llvm.x86.ssse3.pmadd.ub.sw.128(<16 x i8> %a0, <16 x i8> %a1) ; <<8 x i16>> [#uses=1]
+ ret <8 x i16> %res
+}
+declare <8 x i16> @llvm.x86.ssse3.pmadd.ub.sw.128(<16 x i8>, <16 x i8>) nounwind readnone
+
+
+define <8 x i16> @test_x86_ssse3_pmul_hr_sw_128(<8 x i16> %a0, <8 x i16> %a1) {
+ ; CHECK: pmulhrsw
+ %res = call <8 x i16> @llvm.x86.ssse3.pmul.hr.sw.128(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
+ ret <8 x i16> %res
+}
+declare <8 x i16> @llvm.x86.ssse3.pmul.hr.sw.128(<8 x i16>, <8 x i16>) nounwind readnone
+
+
+define <16 x i8> @test_x86_ssse3_pshuf_b_128(<16 x i8> %a0, <16 x i8> %a1) {
+ ; CHECK: pshufb
+ %res = call <16 x i8> @llvm.x86.ssse3.pshuf.b.128(<16 x i8> %a0, <16 x i8> %a1) ; <<16 x i8>> [#uses=1]
+ ret <16 x i8> %res
+}
+declare <16 x i8> @llvm.x86.ssse3.pshuf.b.128(<16 x i8>, <16 x i8>) nounwind readnone
+
+
+define <16 x i8> @test_x86_ssse3_psign_b_128(<16 x i8> %a0, <16 x i8> %a1) {
+ ; CHECK: psignb
+ %res = call <16 x i8> @llvm.x86.ssse3.psign.b.128(<16 x i8> %a0, <16 x i8> %a1) ; <<16 x i8>> [#uses=1]
+ ret <16 x i8> %res
+}
+declare <16 x i8> @llvm.x86.ssse3.psign.b.128(<16 x i8>, <16 x i8>) nounwind readnone
+
+
+define <4 x i32> @test_x86_ssse3_psign_d_128(<4 x i32> %a0, <4 x i32> %a1) {
+ ; CHECK: psignd
+ %res = call <4 x i32> @llvm.x86.ssse3.psign.d.128(<4 x i32> %a0, <4 x i32> %a1) ; <<4 x i32>> [#uses=1]
+ ret <4 x i32> %res
+}
+declare <4 x i32> @llvm.x86.ssse3.psign.d.128(<4 x i32>, <4 x i32>) nounwind readnone
+
+
+define <8 x i16> @test_x86_ssse3_psign_w_128(<8 x i16> %a0, <8 x i16> %a1) {
+ ; CHECK: psignw
+ %res = call <8 x i16> @llvm.x86.ssse3.psign.w.128(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
+ ret <8 x i16> %res
+}
+declare <8 x i16> @llvm.x86.ssse3.psign.w.128(<8 x i16>, <8 x i16>) nounwind readnone
diff --git a/test/CodeGen/X86/stack-align-memcpy.ll b/test/CodeGen/X86/stack-align-memcpy.ll
index 74945e5bb1bdf..87bb85fad83e9 100644
--- a/test/CodeGen/X86/stack-align-memcpy.ll
+++ b/test/CodeGen/X86/stack-align-memcpy.ll
@@ -9,7 +9,7 @@ define void @test1(%struct.foo* nocapture %x, i32 %y) nounwind {
call void @bar(i8* %dynalloc, %struct.foo* align 4 byval %x)
ret void
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: andl $-16, %esp
; CHECK: movl %esp, %esi
; CHECK-NOT: rep;movsl
diff --git a/test/CodeGen/X86/stack-align.ll b/test/CodeGen/X86/stack-align.ll
index 0ddb2378ef2f2..eafb7c29fa0aa 100644
--- a/test/CodeGen/X86/stack-align.ll
+++ b/test/CodeGen/X86/stack-align.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -relocation-model=static -realign-stack=1 -mcpu=yonah | FileCheck %s
+; RUN: llc < %s -relocation-model=static -mcpu=yonah | FileCheck %s
; The double argument is at 4(esp) which is 16-byte aligned, allowing us to
; fold the load into the andpd.
@@ -45,7 +45,7 @@ entry:
%0 = ptrtoint [2048 x i8]* %buffer to i32
%and = and i32 %0, -16
ret i32 %and
-; CHECK: test4:
+; CHECK-LABEL: test4:
; CHECK-NOT: and
; CHECK: ret
}
diff --git a/test/CodeGen/X86/stack-protector-dbginfo.ll b/test/CodeGen/X86/stack-protector-dbginfo.ll
new file mode 100644
index 0000000000000..bd27ac3476907
--- /dev/null
+++ b/test/CodeGen/X86/stack-protector-dbginfo.ll
@@ -0,0 +1,97 @@
+; RUN: llc -mtriple=x86_64-apple-darwin < %s -o -
+
+; PR16954
+;
+; Make sure that when we splice off the end of a machine basic block, we include
+; DBG_VALUE MI in the terminator sequence.
+
+@a = external global { i64, [56 x i8] }, align 32
+
+; Function Attrs: nounwind sspreq
+define i32 @_Z18read_response_sizev() #0 {
+entry:
+ tail call void @llvm.dbg.value(metadata !22, i64 0, metadata !23), !dbg !39
+ %0 = load i64* getelementptr inbounds ({ i64, [56 x i8] }* @a, i32 0, i32 0), align 8, !dbg !40
+ tail call void @llvm.dbg.value(metadata !63, i64 0, metadata !64), !dbg !71
+ %1 = trunc i64 %0 to i32
+ ret i32 %1
+}
+
+; Function Attrs: nounwind readnone
+declare void @llvm.dbg.value(metadata, i64, metadata)
+
+attributes #0 = { sspreq }
+
+!llvm.dbg.cu = !{!0}
+!llvm.module.flags = !{!21, !72}
+
+!0 = metadata !{i32 786449, metadata !1, i32 4, metadata !"clang version 3.4 ", i1 true, metadata !"", i32 0, metadata !2, metadata !5, metadata !8, metadata !20, metadata !5, metadata !""} ; [ DW_TAG_compile_unit ] [/Users/matt/ryan_bug/<unknown>] [DW_LANG_C_plus_plus]
+!1 = metadata !{metadata !"<unknown>", metadata !"/Users/matt/ryan_bug"}
+!2 = metadata !{metadata !3}
+!3 = metadata !{i32 786436, metadata !1, metadata !4, metadata !"", i32 20, i64 32, i64 32, i32 0, i32 0, null, metadata !6, i32 0, null, null, null} ; [ DW_TAG_enumeration_type ] [line 20, size 32, align 32, offset 0] [def] [from ]
+!4 = metadata !{i32 786451, metadata !1, null, metadata !"C", i32 19, i64 8, i64 8, i32 0, i32 0, null, metadata !5, i32 0, null, null, null} ; [ DW_TAG_structure_type ] [C] [line 19, size 8, align 8, offset 0] [def] [from ]
+!5 = metadata !{i32 0}
+!6 = metadata !{metadata !7}
+!7 = metadata !{i32 786472, metadata !"max_frame_size", i64 0} ; [ DW_TAG_enumerator ] [max_frame_size :: 0]
+!8 = metadata !{metadata !9}
+!9 = metadata !{i32 786478, metadata !1, metadata !10, metadata !"read_response_size", metadata !"read_response_size", metadata !"_Z18read_response_sizev", i32 27, metadata !11, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 true, i32 ()* @_Z18read_response_sizev, null, null, metadata !14, i32 27} ; [ DW_TAG_subprogram ] [line 27] [def] [read_response_size]
+!10 = metadata !{i32 786473, metadata !1} ; [ DW_TAG_file_type ] [/Users/matt/ryan_bug/<unknown>]
+!11 = metadata !{i32 786453, i32 0, null, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !12, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
+!12 = metadata !{metadata !13}
+!13 = metadata !{i32 786468, null, null, metadata !"int", i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ] [int] [line 0, size 32, align 32, offset 0, enc DW_ATE_signed]
+!14 = metadata !{metadata !15, metadata !19}
+!15 = metadata !{i32 786688, metadata !9, metadata !"b", metadata !10, i32 28, metadata !16, i32 0, i32 0} ; [ DW_TAG_auto_variable ] [b] [line 28]
+!16 = metadata !{i32 786451, metadata !1, null, metadata !"B", i32 16, i64 32, i64 32, i32 0, i32 0, null, metadata !17, i32 0, null, null} ; [ DW_TAG_structure_type ] [B] [line 16, size 32, align 32, offset 0] [def] [from ]
+!17 = metadata !{metadata !18}
+!18 = metadata !{i32 786445, metadata !1, metadata !16, metadata !"end_of_file", i32 17, i64 32, i64 32, i64 0, i32 0, metadata !13} ; [ DW_TAG_member ] [end_of_file] [line 17, size 32, align 32, offset 0] [from int]
+!19 = metadata !{i32 786688, metadata !9, metadata !"c", metadata !10, i32 29, metadata !13, i32 0, i32 0} ; [ DW_TAG_auto_variable ] [c] [line 29]
+!20 = metadata !{}
+!21 = metadata !{i32 2, metadata !"Dwarf Version", i32 2}
+!22 = metadata !{i64* getelementptr inbounds ({ i64, [56 x i8] }* @a, i32 0, i32 0)}
+!23 = metadata !{i32 786689, metadata !24, metadata !"p2", metadata !10, i32 33554444, metadata !32, i32 0, metadata !38} ; [ DW_TAG_arg_variable ] [p2] [line 12]
+!24 = metadata !{i32 786478, metadata !1, metadata !25, metadata !"min<unsigned long long>", metadata !"min<unsigned long long>", metadata !"_ZN3__13minIyEERKT_S3_RS1_", i32 12, metadata !27, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 true, null, metadata !33, null, metadata !35, i32 12} ; [ DW_TAG_subprogram ] [line 12] [def] [min<unsigned long long>]
+!25 = metadata !{i32 786489, metadata !26, null, metadata !"__1", i32 1} ; [ DW_TAG_namespace ] [__1] [line 1]
+!26 = metadata !{metadata !"main.cpp", metadata !"/Users/matt/ryan_bug"}
+!27 = metadata !{i32 786453, i32 0, null, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !28, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
+!28 = metadata !{metadata !29, metadata !29, metadata !32}
+!29 = metadata !{i32 786448, null, null, null, i32 0, i64 0, i64 0, i64 0, i32 0, metadata !30} ; [ DW_TAG_reference_type ] [line 0, size 0, align 0, offset 0] [from ]
+!30 = metadata !{i32 786470, null, null, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, metadata !31} ; [ DW_TAG_const_type ] [line 0, size 0, align 0, offset 0] [from long long unsigned int]
+!31 = metadata !{i32 786468, null, null, metadata !"long long unsigned int", i32 0, i64 64, i64 64, i64 0, i32 0, i32 7} ; [ DW_TAG_base_type ] [long long unsigned int] [line 0, size 64, align 64, offset 0, enc DW_ATE_unsigned]
+!32 = metadata !{i32 786448, null, null, null, i32 0, i64 0, i64 0, i64 0, i32 0, metadata !31} ; [ DW_TAG_reference_type ] [line 0, size 0, align 0, offset 0] [from long long unsigned int]
+!33 = metadata !{metadata !34}
+!34 = metadata !{i32 786479, null, metadata !"_Tp", metadata !31, null, i32 0, i32 0} ; [ DW_TAG_template_type_parameter ]
+!35 = metadata !{metadata !36, metadata !37}
+!36 = metadata !{i32 786689, metadata !24, metadata !"p1", metadata !10, i32 16777228, metadata !29, i32 0, i32 0} ; [ DW_TAG_arg_variable ] [p1] [line 12]
+!37 = metadata !{i32 786689, metadata !24, metadata !"p2", metadata !10, i32 33554444, metadata !32, i32 0, i32 0} ; [ DW_TAG_arg_variable ] [p2] [line 12]
+!38 = metadata !{i32 33, i32 0, metadata !9, null}
+!39 = metadata !{i32 12, i32 0, metadata !24, metadata !38}
+!40 = metadata !{i32 9, i32 0, metadata !41, metadata !59}
+!41 = metadata !{i32 786478, metadata !1, metadata !25, metadata !"min<unsigned long long, __1::A>", metadata !"min<unsigned long long, __1::A>", metadata !"_ZN3__13minIyNS_1AEEERKT_S4_RS2_T0_", i32 7, metadata !42, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 true, null, metadata !53, null, metadata !55, i32 8} ; [ DW_TAG_subprogram ] [line 7] [def] [scope 8] [min<unsigned long long, __1::A>]
+!42 = metadata !{i32 786453, i32 0, null, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !43, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
+!43 = metadata !{metadata !29, metadata !29, metadata !32, metadata !44}
+!44 = metadata !{i32 786451, metadata !1, metadata !25, metadata !"A", i32 0, i64 8, i64 8, i32 0, i32 0, null, metadata !45, i32 0, null, null, null} ; [ DW_TAG_structure_type ] [A] [line 0, size 8, align 8, offset 0] [def] [from ]
+!45 = metadata !{metadata !46}
+!46 = metadata !{i32 786478, metadata !1, metadata !44, metadata !"operator()", metadata !"operator()", metadata !"_ZN3__11AclERKiS2_", i32 1, metadata !47, i1 false, i1 false, i32 0, i32 0, null, i32 256, i1 true, null, null, i32 0, metadata !52, i32 1} ; [ DW_TAG_subprogram ] [line 1] [operator()]
+!47 = metadata !{i32 786453, i32 0, null, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !48, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
+!48 = metadata !{metadata !13, metadata !49, metadata !50, metadata !50}
+!49 = metadata !{i32 786447, i32 0, null, metadata !"", i32 0, i64 64, i64 64, i64 0, i32 1088, metadata !44} ; [ DW_TAG_pointer_type ] [line 0, size 64, align 64, offset 0] [artificial] [from A]
+!50 = metadata !{i32 786448, null, null, null, i32 0, i64 0, i64 0, i64 0, i32 0, metadata !51} ; [ DW_TAG_reference_type ] [line 0, size 0, align 0, offset 0] [from ]
+!51 = metadata !{i32 786470, null, null, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, metadata !13} ; [ DW_TAG_const_type ] [line 0, size 0, align 0, offset 0] [from int]
+!52 = metadata !{i32 786468}
+!53 = metadata !{metadata !34, metadata !54}
+!54 = metadata !{i32 786479, null, metadata !"_Compare", metadata !44, null, i32 0, i32 0} ; [ DW_TAG_template_type_parameter ]
+!55 = metadata !{metadata !56, metadata !57, metadata !58}
+!56 = metadata !{i32 786689, metadata !41, metadata !"p1", metadata !10, i32 16777223, metadata !29, i32 0, i32 0} ; [ DW_TAG_arg_variable ] [p1] [line 7]
+!57 = metadata !{i32 786689, metadata !41, metadata !"p2", metadata !10, i32 33554439, metadata !32, i32 0, i32 0} ; [ DW_TAG_arg_variable ] [p2] [line 7]
+!58 = metadata !{i32 786689, metadata !41, metadata !"p3", metadata !10, i32 50331656, metadata !44, i32 0, i32 0} ; [ DW_TAG_arg_variable ] [p3] [line 8]
+!59 = metadata !{i32 13, i32 0, metadata !24, metadata !38}
+!63 = metadata !{i32 undef}
+!64 = metadata !{i32 786689, metadata !65, metadata !"p1", metadata !10, i32 33554433, metadata !50, i32 0, metadata !40} ; [ DW_TAG_arg_variable ] [p1] [line 1]
+!65 = metadata !{i32 786478, metadata !1, metadata !25, metadata !"operator()", metadata !"operator()", metadata !"_ZN3__11AclERKiS2_", i32 1, metadata !47, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 true, null, null, metadata !46, metadata !66, i32 2} ; [ DW_TAG_subprogram ] [line 1] [def] [scope 2] [operator()]
+!66 = metadata !{metadata !67, metadata !69, metadata !70}
+!67 = metadata !{i32 786689, metadata !65, metadata !"this", null, i32 16777216, metadata !68, i32 1088, i32 0} ; [ DW_TAG_arg_variable ] [this] [line 0]
+!68 = metadata !{i32 786447, null, null, metadata !"", i32 0, i64 64, i64 64, i64 0, i32 0, metadata !44} ; [ DW_TAG_pointer_type ] [line 0, size 64, align 64, offset 0] [from A]
+!69 = metadata !{i32 786689, metadata !65, metadata !"p1", metadata !10, i32 33554433, metadata !50, i32 0, i32 0} ; [ DW_TAG_arg_variable ] [p1] [line 1]
+!70 = metadata !{i32 786689, metadata !65, metadata !"", metadata !10, i32 50331650, metadata !50, i32 0, i32 0} ; [ DW_TAG_arg_variable ] [line 2]
+!71 = metadata !{i32 1, i32 0, metadata !65, metadata !40}
+!72 = metadata !{i32 1, metadata !"Debug Info Version", i32 1}
diff --git a/test/CodeGen/X86/stack-protector-vreg-to-vreg-copy.ll b/test/CodeGen/X86/stack-protector-vreg-to-vreg-copy.ll
new file mode 100644
index 0000000000000..7d499f9abd743
--- /dev/null
+++ b/test/CodeGen/X86/stack-protector-vreg-to-vreg-copy.ll
@@ -0,0 +1,61 @@
+; RUN: llc -mtriple i386-unknown-freebsd10.0 -march=x86 --relocation-model=pic %s -o -
+
+; PR16979
+
+target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32-S128"
+target triple = "i386-unknown-freebsd10.0"
+
+@state = internal unnamed_addr global i32 0, align 4
+
+; Function Attrs: nounwind sspreq
+define void @set_state(i32 %s) #0 {
+entry:
+ store i32 %s, i32* @state, align 4
+ ret void
+}
+
+; Function Attrs: nounwind sspreq
+define void @zero_char(i8* nocapture %p) #0 {
+entry:
+ store i8 0, i8* %p, align 1
+ tail call void @g(i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) #2
+ ret void
+}
+
+declare void @g(i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) #1
+
+; Function Attrs: nounwind sspreq
+define void @do_something(i32 %i) #0 {
+entry:
+ %data = alloca [8 x i8], align 1
+ %0 = load i32* @state, align 4
+ %cmp = icmp eq i32 %0, 0
+ br i1 %cmp, label %if.then, label %if.else
+
+if.then: ; preds = %entry
+ tail call fastcc void @send_int(i32 0)
+ br label %if.end
+
+if.else: ; preds = %entry
+ tail call fastcc void @send_int(i32 %i)
+ %arrayidx = getelementptr inbounds [8 x i8]* %data, i32 0, i32 0
+ call void @zero_char(i8* %arrayidx)
+ br label %if.end
+
+if.end: ; preds = %if.else, %if.then
+ ret void
+}
+
+; Function Attrs: nounwind sspreq
+define internal fastcc void @send_int(i32 %p) #0 {
+entry:
+ tail call void @f(i32 %p) #2
+ tail call void @g(i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) #2
+ ret void
+}
+
+declare void @f(i32) #1
+
+attributes #0 = { nounwind sspreq "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" }
+attributes #1 = { "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" }
+attributes #2 = { nounwind }
diff --git a/test/CodeGen/X86/stack-protector.ll b/test/CodeGen/X86/stack-protector.ll
index 1e9ca1d2c24d8..265ec80682bf0 100644
--- a/test/CodeGen/X86/stack-protector.ll
+++ b/test/CodeGen/X86/stack-protector.ll
@@ -2,6 +2,7 @@
; RUN: llc -mtriple=x86_64-pc-linux-gnu < %s -o - | FileCheck --check-prefix=LINUX-X64 %s
; RUN: llc -code-model=kernel -mtriple=x86_64-pc-linux-gnu < %s -o - | FileCheck --check-prefix=LINUX-KERNEL-X64 %s
; RUN: llc -mtriple=x86_64-apple-darwin < %s -o - | FileCheck --check-prefix=DARWIN-X64 %s
+; RUN: llc -mtriple=amd64-pc-openbsd < %s -o - | FileCheck --check-prefix=OPENBSD-AMD64 %s
%struct.foo = type { [16 x i8] }
%struct.foo.0 = type { [4 x i8] }
@@ -23,19 +24,19 @@
; Requires no protector.
define void @test1a(i8* %a) nounwind uwtable {
entry:
-; LINUX-I386: test1a:
+; LINUX-I386-LABEL: test1a:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test1a:
+; LINUX-X64-LABEL: test1a:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test1a:
+; LINUX-KERNEL-X64-LABEL: test1a:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test1a:
+; DARWIN-X64-LABEL: test1a:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%a.addr = alloca i8*, align 8
@@ -54,21 +55,25 @@ entry:
; Requires protector.
define void @test1b(i8* %a) nounwind uwtable ssp {
entry:
-; LINUX-I386: test1b:
+; LINUX-I386-LABEL: test1b:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test1b:
+; LINUX-X64-LABEL: test1b:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test1b:
+; LINUX-KERNEL-X64-LABEL: test1b:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test1b:
+; DARWIN-X64-LABEL: test1b:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
+
+; OPENBSD-AMD64-LABEL: test1b:
+; OPENBSD-AMD64: movq __guard_local(%rip)
+; OPENBSD-AMD64: callq __stack_smash_handler
%a.addr = alloca i8*, align 8
%buf = alloca [16 x i8], align 16
store i8* %a, i8** %a.addr, align 8
@@ -85,19 +90,19 @@ entry:
; Requires protector.
define void @test1c(i8* %a) nounwind uwtable sspstrong {
entry:
-; LINUX-I386: test1c:
+; LINUX-I386-LABEL: test1c:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test1c:
+; LINUX-X64-LABEL: test1c:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test1c:
+; LINUX-KERNEL-X64-LABEL: test1c:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test1c:
+; DARWIN-X64-LABEL: test1c:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%a.addr = alloca i8*, align 8
@@ -116,19 +121,19 @@ entry:
; Requires protector.
define void @test1d(i8* %a) nounwind uwtable sspreq {
entry:
-; LINUX-I386: test1d:
+; LINUX-I386-LABEL: test1d:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test1d:
+; LINUX-X64-LABEL: test1d:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test1d:
+; LINUX-KERNEL-X64-LABEL: test1d:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test1d:
+; DARWIN-X64-LABEL: test1d:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%a.addr = alloca i8*, align 8
@@ -147,19 +152,19 @@ entry:
; Requires no protector.
define void @test2a(i8* %a) nounwind uwtable {
entry:
-; LINUX-I386: test2a:
+; LINUX-I386-LABEL: test2a:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test2a:
+; LINUX-X64-LABEL: test2a:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test2a:
+; LINUX-KERNEL-X64-LABEL: test2a:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test2a:
+; DARWIN-X64-LABEL: test2a:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%a.addr = alloca i8*, align 8
@@ -180,19 +185,19 @@ entry:
; Requires protector.
define void @test2b(i8* %a) nounwind uwtable ssp {
entry:
-; LINUX-I386: test2b:
+; LINUX-I386-LABEL: test2b:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test2b:
+; LINUX-X64-LABEL: test2b:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test2b:
+; LINUX-KERNEL-X64-LABEL: test2b:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test2b:
+; DARWIN-X64-LABEL: test2b:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%a.addr = alloca i8*, align 8
@@ -213,19 +218,19 @@ entry:
; Requires protector.
define void @test2c(i8* %a) nounwind uwtable sspstrong {
entry:
-; LINUX-I386: test2c:
+; LINUX-I386-LABEL: test2c:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test2c:
+; LINUX-X64-LABEL: test2c:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test2c:
+; LINUX-KERNEL-X64-LABEL: test2c:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test2c:
+; DARWIN-X64-LABEL: test2c:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%a.addr = alloca i8*, align 8
@@ -246,19 +251,19 @@ entry:
; Requires protector.
define void @test2d(i8* %a) nounwind uwtable sspreq {
entry:
-; LINUX-I386: test2d:
+; LINUX-I386-LABEL: test2d:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test2d:
+; LINUX-X64-LABEL: test2d:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test2d:
+; LINUX-KERNEL-X64-LABEL: test2d:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test2d:
+; DARWIN-X64-LABEL: test2d:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%a.addr = alloca i8*, align 8
@@ -279,19 +284,19 @@ entry:
; Requires no protector.
define void @test3a(i8* %a) nounwind uwtable {
entry:
-; LINUX-I386: test3a:
+; LINUX-I386-LABEL: test3a:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test3a:
+; LINUX-X64-LABEL: test3a:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test3a:
+; LINUX-KERNEL-X64-LABEL: test3a:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test3a:
+; DARWIN-X64-LABEL: test3a:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%a.addr = alloca i8*, align 8
@@ -310,19 +315,19 @@ entry:
; Requires no protector.
define void @test3b(i8* %a) nounwind uwtable ssp {
entry:
-; LINUX-I386: test3b:
+; LINUX-I386-LABEL: test3b:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test3b:
+; LINUX-X64-LABEL: test3b:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test3b:
+; LINUX-KERNEL-X64-LABEL: test3b:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test3b:
+; DARWIN-X64-LABEL: test3b:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%a.addr = alloca i8*, align 8
@@ -341,19 +346,19 @@ entry:
; Requires protector.
define void @test3c(i8* %a) nounwind uwtable sspstrong {
entry:
-; LINUX-I386: test3c:
+; LINUX-I386-LABEL: test3c:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test3c:
+; LINUX-X64-LABEL: test3c:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test3c:
+; LINUX-KERNEL-X64-LABEL: test3c:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test3c:
+; DARWIN-X64-LABEL: test3c:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%a.addr = alloca i8*, align 8
@@ -372,19 +377,19 @@ entry:
; Requires protector.
define void @test3d(i8* %a) nounwind uwtable sspreq {
entry:
-; LINUX-I386: test3d:
+; LINUX-I386-LABEL: test3d:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test3d:
+; LINUX-X64-LABEL: test3d:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test3d:
+; LINUX-KERNEL-X64-LABEL: test3d:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test3d:
+; DARWIN-X64-LABEL: test3d:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%a.addr = alloca i8*, align 8
@@ -403,19 +408,19 @@ entry:
; Requires no protector.
define void @test4a(i8* %a) nounwind uwtable {
entry:
-; LINUX-I386: test4a:
+; LINUX-I386-LABEL: test4a:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test4a:
+; LINUX-X64-LABEL: test4a:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test4a:
+; LINUX-KERNEL-X64-LABEL: test4a:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test4a:
+; DARWIN-X64-LABEL: test4a:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%a.addr = alloca i8*, align 8
@@ -436,19 +441,19 @@ entry:
; Requires no protector.
define void @test4b(i8* %a) nounwind uwtable ssp {
entry:
-; LINUX-I386: test4b:
+; LINUX-I386-LABEL: test4b:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test4b:
+; LINUX-X64-LABEL: test4b:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test4b:
+; LINUX-KERNEL-X64-LABEL: test4b:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test4b:
+; DARWIN-X64-LABEL: test4b:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%a.addr = alloca i8*, align 8
@@ -469,19 +474,19 @@ entry:
; Requires protector.
define void @test4c(i8* %a) nounwind uwtable sspstrong {
entry:
-; LINUX-I386: test4c:
+; LINUX-I386-LABEL: test4c:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test4c:
+; LINUX-X64-LABEL: test4c:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test4c:
+; LINUX-KERNEL-X64-LABEL: test4c:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test4c:
+; DARWIN-X64-LABEL: test4c:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%a.addr = alloca i8*, align 8
@@ -502,19 +507,19 @@ entry:
; Requires protector.
define void @test4d(i8* %a) nounwind uwtable sspreq {
entry:
-; LINUX-I386: test4d:
+; LINUX-I386-LABEL: test4d:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test4d:
+; LINUX-X64-LABEL: test4d:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test4d:
+; LINUX-KERNEL-X64-LABEL: test4d:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test4d:
+; DARWIN-X64-LABEL: test4d:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%a.addr = alloca i8*, align 8
@@ -535,19 +540,19 @@ entry:
; Requires no protector.
define void @test5a(i8* %a) nounwind uwtable {
entry:
-; LINUX-I386: test5a:
+; LINUX-I386-LABEL: test5a:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test5a:
+; LINUX-X64-LABEL: test5a:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test5a:
+; LINUX-KERNEL-X64-LABEL: test5a:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test5a:
+; DARWIN-X64-LABEL: test5a:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%a.addr = alloca i8*, align 8
@@ -562,19 +567,19 @@ entry:
; Requires no protector.
define void @test5b(i8* %a) nounwind uwtable ssp {
entry:
-; LINUX-I386: test5b:
+; LINUX-I386-LABEL: test5b:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test5b:
+; LINUX-X64-LABEL: test5b:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test5b:
+; LINUX-KERNEL-X64-LABEL: test5b:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test5b:
+; DARWIN-X64-LABEL: test5b:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%a.addr = alloca i8*, align 8
@@ -589,19 +594,19 @@ entry:
; Requires no protector.
define void @test5c(i8* %a) nounwind uwtable sspstrong {
entry:
-; LINUX-I386: test5c:
+; LINUX-I386-LABEL: test5c:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test5c:
+; LINUX-X64-LABEL: test5c:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test5c:
+; LINUX-KERNEL-X64-LABEL: test5c:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test5c:
+; DARWIN-X64-LABEL: test5c:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%a.addr = alloca i8*, align 8
@@ -616,19 +621,19 @@ entry:
; Requires protector.
define void @test5d(i8* %a) nounwind uwtable sspreq {
entry:
-; LINUX-I386: test5d:
+; LINUX-I386-LABEL: test5d:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test5d:
+; LINUX-X64-LABEL: test5d:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test5d:
+; LINUX-KERNEL-X64-LABEL: test5d:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test5d:
+; DARWIN-X64-LABEL: test5d:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%a.addr = alloca i8*, align 8
@@ -643,19 +648,19 @@ entry:
; Requires no protector.
define void @test6a() nounwind uwtable {
entry:
-; LINUX-I386: test6a:
+; LINUX-I386-LABEL: test6a:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test6a:
+; LINUX-X64-LABEL: test6a:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test6a:
+; LINUX-KERNEL-X64-LABEL: test6a:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test6a:
+; DARWIN-X64-LABEL: test6a:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%retval = alloca i32, align 4
@@ -674,19 +679,19 @@ entry:
; Requires no protector.
define void @test6b() nounwind uwtable ssp {
entry:
-; LINUX-I386: test6b:
+; LINUX-I386-LABEL: test6b:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test6b:
+; LINUX-X64-LABEL: test6b:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test6b:
+; LINUX-KERNEL-X64-LABEL: test6b:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test6b:
+; DARWIN-X64-LABEL: test6b:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%retval = alloca i32, align 4
@@ -705,19 +710,19 @@ entry:
; Requires protector.
define void @test6c() nounwind uwtable sspstrong {
entry:
-; LINUX-I386: test6c:
+; LINUX-I386-LABEL: test6c:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test6c:
+; LINUX-X64-LABEL: test6c:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test6c:
+; LINUX-KERNEL-X64-LABEL: test6c:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test6c:
+; DARWIN-X64-LABEL: test6c:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%retval = alloca i32, align 4
@@ -736,19 +741,19 @@ entry:
; Requires protector.
define void @test6d() nounwind uwtable sspreq {
entry:
-; LINUX-I386: test6d:
+; LINUX-I386-LABEL: test6d:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test6d:
+; LINUX-X64-LABEL: test6d:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test6d:
+; LINUX-KERNEL-X64-LABEL: test6d:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test6d:
+; DARWIN-X64-LABEL: test6d:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%retval = alloca i32, align 4
@@ -767,19 +772,19 @@ entry:
; Requires no protector.
define void @test7a() nounwind uwtable readnone {
entry:
-; LINUX-I386: test7a:
+; LINUX-I386-LABEL: test7a:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test7a:
+; LINUX-X64-LABEL: test7a:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test7a:
+; LINUX-KERNEL-X64-LABEL: test7a:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test7a:
+; DARWIN-X64-LABEL: test7a:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%a = alloca i32, align 4
@@ -793,19 +798,19 @@ entry:
; Requires no protector.
define void @test7b() nounwind uwtable readnone ssp {
entry:
-; LINUX-I386: test7b:
+; LINUX-I386-LABEL: test7b:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test7b:
+; LINUX-X64-LABEL: test7b:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test7b:
+; LINUX-KERNEL-X64-LABEL: test7b:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test7b:
+; DARWIN-X64-LABEL: test7b:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%a = alloca i32, align 4
@@ -819,19 +824,19 @@ entry:
; Requires protector.
define void @test7c() nounwind uwtable readnone sspstrong {
entry:
-; LINUX-I386: test7c:
+; LINUX-I386-LABEL: test7c:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test7c:
+; LINUX-X64-LABEL: test7c:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test7c:
+; LINUX-KERNEL-X64-LABEL: test7c:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test7c:
+; DARWIN-X64-LABEL: test7c:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%a = alloca i32, align 4
@@ -845,19 +850,19 @@ entry:
; Requires protector.
define void @test7d() nounwind uwtable readnone sspreq {
entry:
-; LINUX-I386: test7d:
+; LINUX-I386-LABEL: test7d:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test7d:
+; LINUX-X64-LABEL: test7d:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test7d:
+; LINUX-KERNEL-X64-LABEL: test7d:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test7d:
+; DARWIN-X64-LABEL: test7d:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%a = alloca i32, align 4
@@ -871,19 +876,19 @@ entry:
; Requires no protector.
define void @test8a() nounwind uwtable {
entry:
-; LINUX-I386: test8a:
+; LINUX-I386-LABEL: test8a:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test8a:
+; LINUX-X64-LABEL: test8a:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test8a:
+; LINUX-KERNEL-X64-LABEL: test8a:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test8a:
+; DARWIN-X64-LABEL: test8a:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%b = alloca i32, align 4
@@ -896,19 +901,19 @@ entry:
; Requires no protector.
define void @test8b() nounwind uwtable ssp {
entry:
-; LINUX-I386: test8b:
+; LINUX-I386-LABEL: test8b:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test8b:
+; LINUX-X64-LABEL: test8b:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test8b:
+; LINUX-KERNEL-X64-LABEL: test8b:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test8b:
+; DARWIN-X64-LABEL: test8b:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%b = alloca i32, align 4
@@ -921,19 +926,19 @@ entry:
; Requires protector.
define void @test8c() nounwind uwtable sspstrong {
entry:
-; LINUX-I386: test8c:
+; LINUX-I386-LABEL: test8c:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test8c:
+; LINUX-X64-LABEL: test8c:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test8c:
+; LINUX-KERNEL-X64-LABEL: test8c:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test8c:
+; DARWIN-X64-LABEL: test8c:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%b = alloca i32, align 4
@@ -946,19 +951,19 @@ entry:
; Requires protector.
define void @test8d() nounwind uwtable sspreq {
entry:
-; LINUX-I386: test8d:
+; LINUX-I386-LABEL: test8d:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test8d:
+; LINUX-X64-LABEL: test8d:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test8d:
+; LINUX-KERNEL-X64-LABEL: test8d:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test8d:
+; DARWIN-X64-LABEL: test8d:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%b = alloca i32, align 4
@@ -971,19 +976,19 @@ entry:
; Requires no protector.
define void @test9a() nounwind uwtable {
entry:
-; LINUX-I386: test9a:
+; LINUX-I386-LABEL: test9a:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test9a:
+; LINUX-X64-LABEL: test9a:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test9a:
+; LINUX-KERNEL-X64-LABEL: test9a:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test9a:
+; DARWIN-X64-LABEL: test9a:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%x = alloca double, align 8
@@ -1000,19 +1005,19 @@ entry:
; Requires no protector.
define void @test9b() nounwind uwtable ssp {
entry:
-; LINUX-I386: test9b:
+; LINUX-I386-LABEL: test9b:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test9b:
+; LINUX-X64-LABEL: test9b:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test9b:
+; LINUX-KERNEL-X64-LABEL: test9b:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test9b:
+; DARWIN-X64-LABEL: test9b:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%x = alloca double, align 8
@@ -1029,19 +1034,19 @@ entry:
; Requires protector.
define void @test9c() nounwind uwtable sspstrong {
entry:
-; LINUX-I386: test9c:
+; LINUX-I386-LABEL: test9c:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test9c:
+; LINUX-X64-LABEL: test9c:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test9c:
+; LINUX-KERNEL-X64-LABEL: test9c:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test9c:
+; DARWIN-X64-LABEL: test9c:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%x = alloca double, align 8
@@ -1058,19 +1063,19 @@ entry:
; Requires protector.
define void @test9d() nounwind uwtable sspreq {
entry:
-; LINUX-I386: test9d:
+; LINUX-I386-LABEL: test9d:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test9d:
+; LINUX-X64-LABEL: test9d:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test9d:
+; LINUX-KERNEL-X64-LABEL: test9d:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test9d:
+; DARWIN-X64-LABEL: test9d:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%x = alloca double, align 8
@@ -1087,19 +1092,19 @@ entry:
; Requires no protector.
define void @test10a() nounwind uwtable {
entry:
-; LINUX-I386: test10a:
+; LINUX-I386-LABEL: test10a:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test10a:
+; LINUX-X64-LABEL: test10a:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test10a:
+; LINUX-KERNEL-X64-LABEL: test10a:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test10a:
+; DARWIN-X64-LABEL: test10a:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%x = alloca double, align 8
@@ -1131,19 +1136,19 @@ if.end4: ; preds = %if.else, %if.then3,
; Requires no protector.
define void @test10b() nounwind uwtable ssp {
entry:
-; LINUX-I386: test10b:
+; LINUX-I386-LABEL: test10b:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test10b:
+; LINUX-X64-LABEL: test10b:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test10b:
+; LINUX-KERNEL-X64-LABEL: test10b:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test10b:
+; DARWIN-X64-LABEL: test10b:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%x = alloca double, align 8
@@ -1175,19 +1180,19 @@ if.end4: ; preds = %if.else, %if.then3,
; Requires protector.
define void @test10c() nounwind uwtable sspstrong {
entry:
-; LINUX-I386: test10c:
+; LINUX-I386-LABEL: test10c:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test10c:
+; LINUX-X64-LABEL: test10c:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test10c:
+; LINUX-KERNEL-X64-LABEL: test10c:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test10c:
+; DARWIN-X64-LABEL: test10c:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%x = alloca double, align 8
@@ -1219,19 +1224,19 @@ if.end4: ; preds = %if.else, %if.then3,
; Requires protector.
define void @test10d() nounwind uwtable sspreq {
entry:
-; LINUX-I386: test10d:
+; LINUX-I386-LABEL: test10d:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test10d:
+; LINUX-X64-LABEL: test10d:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test10d:
+; LINUX-KERNEL-X64-LABEL: test10d:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test10d:
+; DARWIN-X64-LABEL: test10d:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%x = alloca double, align 8
@@ -1263,19 +1268,19 @@ if.end4: ; preds = %if.else, %if.then3,
; Requires no protector.
define void @test11a() nounwind uwtable {
entry:
-; LINUX-I386: test11a:
+; LINUX-I386-LABEL: test11a:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test11a:
+; LINUX-X64-LABEL: test11a:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test11a:
+; LINUX-KERNEL-X64-LABEL: test11a:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test11a:
+; DARWIN-X64-LABEL: test11a:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%c = alloca %struct.pair, align 4
@@ -1292,19 +1297,19 @@ entry:
; Requires no protector.
define void @test11b() nounwind uwtable ssp {
entry:
-; LINUX-I386: test11b:
+; LINUX-I386-LABEL: test11b:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test11b:
+; LINUX-X64-LABEL: test11b:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test11b:
+; LINUX-KERNEL-X64-LABEL: test11b:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test11b:
+; DARWIN-X64-LABEL: test11b:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%c = alloca %struct.pair, align 4
@@ -1321,19 +1326,19 @@ entry:
; Requires protector.
define void @test11c() nounwind uwtable sspstrong {
entry:
-; LINUX-I386: test11c:
+; LINUX-I386-LABEL: test11c:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test11c:
+; LINUX-X64-LABEL: test11c:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test11c:
+; LINUX-KERNEL-X64-LABEL: test11c:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test11c:
+; DARWIN-X64-LABEL: test11c:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%c = alloca %struct.pair, align 4
@@ -1350,19 +1355,19 @@ entry:
; Requires protector.
define void @test11d() nounwind uwtable sspreq {
entry:
-; LINUX-I386: test11d:
+; LINUX-I386-LABEL: test11d:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test11d:
+; LINUX-X64-LABEL: test11d:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test11d:
+; LINUX-KERNEL-X64-LABEL: test11d:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test11d:
+; DARWIN-X64-LABEL: test11d:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%c = alloca %struct.pair, align 4
@@ -1379,19 +1384,19 @@ entry:
; Requires no protector.
define void @test12a() nounwind uwtable {
entry:
-; LINUX-I386: test12a:
+; LINUX-I386-LABEL: test12a:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test12a:
+; LINUX-X64-LABEL: test12a:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test12a:
+; LINUX-KERNEL-X64-LABEL: test12a:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test12a:
+; DARWIN-X64-LABEL: test12a:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%c = alloca %struct.pair, align 4
@@ -1407,19 +1412,19 @@ entry:
; Requires no protector.
define void @test12b() nounwind uwtable ssp {
entry:
-; LINUX-I386: test12b:
+; LINUX-I386-LABEL: test12b:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test12b:
+; LINUX-X64-LABEL: test12b:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test12b:
+; LINUX-KERNEL-X64-LABEL: test12b:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test12b:
+; DARWIN-X64-LABEL: test12b:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%c = alloca %struct.pair, align 4
@@ -1435,19 +1440,19 @@ entry:
; Requires protector.
define void @test12c() nounwind uwtable sspstrong {
entry:
-; LINUX-I386: test12c:
+; LINUX-I386-LABEL: test12c:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test12c:
+; LINUX-X64-LABEL: test12c:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test12c:
+; LINUX-KERNEL-X64-LABEL: test12c:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test12c:
+; DARWIN-X64-LABEL: test12c:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%c = alloca %struct.pair, align 4
@@ -1463,19 +1468,19 @@ entry:
; Requires protector.
define void @test12d() nounwind uwtable sspreq {
entry:
-; LINUX-I386: test12d:
+; LINUX-I386-LABEL: test12d:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test12d:
+; LINUX-X64-LABEL: test12d:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test12d:
+; LINUX-KERNEL-X64-LABEL: test12d:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test12d:
+; DARWIN-X64-LABEL: test12d:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%c = alloca %struct.pair, align 4
@@ -1491,19 +1496,19 @@ entry:
; Requires no protector.
define void @test13a() nounwind uwtable {
entry:
-; LINUX-I386: test13a:
+; LINUX-I386-LABEL: test13a:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test13a:
+; LINUX-X64-LABEL: test13a:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test13a:
+; LINUX-KERNEL-X64-LABEL: test13a:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test13a:
+; DARWIN-X64-LABEL: test13a:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%c = alloca %struct.pair, align 4
@@ -1517,19 +1522,19 @@ entry:
; Requires no protector.
define void @test13b() nounwind uwtable ssp {
entry:
-; LINUX-I386: test13b:
+; LINUX-I386-LABEL: test13b:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test13b:
+; LINUX-X64-LABEL: test13b:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test13b:
+; LINUX-KERNEL-X64-LABEL: test13b:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test13b:
+; DARWIN-X64-LABEL: test13b:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%c = alloca %struct.pair, align 4
@@ -1543,19 +1548,19 @@ entry:
; Requires protector.
define void @test13c() nounwind uwtable sspstrong {
entry:
-; LINUX-I386: test13c:
+; LINUX-I386-LABEL: test13c:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test13c:
+; LINUX-X64-LABEL: test13c:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test13c:
+; LINUX-KERNEL-X64-LABEL: test13c:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test13c:
+; DARWIN-X64-LABEL: test13c:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%c = alloca %struct.pair, align 4
@@ -1569,19 +1574,19 @@ entry:
; Requires protector.
define void @test13d() nounwind uwtable sspreq {
entry:
-; LINUX-I386: test13d:
+; LINUX-I386-LABEL: test13d:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test13d:
+; LINUX-X64-LABEL: test13d:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test13d:
+; LINUX-KERNEL-X64-LABEL: test13d:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test13d:
+; DARWIN-X64-LABEL: test13d:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%c = alloca %struct.pair, align 4
@@ -1595,19 +1600,19 @@ entry:
; Requires no protector.
define void @test14a() nounwind uwtable {
entry:
-; LINUX-I386: test14a:
+; LINUX-I386-LABEL: test14a:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test14a:
+; LINUX-X64-LABEL: test14a:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test14a:
+; LINUX-KERNEL-X64-LABEL: test14a:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test14a:
+; DARWIN-X64-LABEL: test14a:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%a = alloca i32, align 4
@@ -1621,19 +1626,19 @@ entry:
; Requires no protector.
define void @test14b() nounwind uwtable ssp {
entry:
-; LINUX-I386: test14b:
+; LINUX-I386-LABEL: test14b:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test14b:
+; LINUX-X64-LABEL: test14b:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test14b:
+; LINUX-KERNEL-X64-LABEL: test14b:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test14b:
+; DARWIN-X64-LABEL: test14b:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%a = alloca i32, align 4
@@ -1647,19 +1652,19 @@ entry:
; Requires protector.
define void @test14c() nounwind uwtable sspstrong {
entry:
-; LINUX-I386: test14c:
+; LINUX-I386-LABEL: test14c:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test14c:
+; LINUX-X64-LABEL: test14c:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test14c:
+; LINUX-KERNEL-X64-LABEL: test14c:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test14c:
+; DARWIN-X64-LABEL: test14c:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%a = alloca i32, align 4
@@ -1673,19 +1678,19 @@ entry:
; Requires protector.
define void @test14d() nounwind uwtable sspreq {
entry:
-; LINUX-I386: test14d:
+; LINUX-I386-LABEL: test14d:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test14d:
+; LINUX-X64-LABEL: test14d:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test14d:
+; LINUX-KERNEL-X64-LABEL: test14d:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test14d:
+; DARWIN-X64-LABEL: test14d:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%a = alloca i32, align 4
@@ -1700,19 +1705,19 @@ entry:
; Requires no protector.
define void @test15a() nounwind uwtable {
entry:
-; LINUX-I386: test15a:
+; LINUX-I386-LABEL: test15a:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test15a:
+; LINUX-X64-LABEL: test15a:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test15a:
+; LINUX-KERNEL-X64-LABEL: test15a:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test15a:
+; DARWIN-X64-LABEL: test15a:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%a = alloca i32, align 4
@@ -1731,19 +1736,19 @@ entry:
; Requires no protector.
define void @test15b() nounwind uwtable ssp {
entry:
-; LINUX-I386: test15b:
+; LINUX-I386-LABEL: test15b:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test15b:
+; LINUX-X64-LABEL: test15b:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test15b:
+; LINUX-KERNEL-X64-LABEL: test15b:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test15b:
+; DARWIN-X64-LABEL: test15b:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%a = alloca i32, align 4
@@ -1762,19 +1767,19 @@ entry:
; Requires protector.
define void @test15c() nounwind uwtable sspstrong {
entry:
-; LINUX-I386: test15c:
+; LINUX-I386-LABEL: test15c:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test15c:
+; LINUX-X64-LABEL: test15c:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test15c:
+; LINUX-KERNEL-X64-LABEL: test15c:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test15c:
+; DARWIN-X64-LABEL: test15c:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%a = alloca i32, align 4
@@ -1793,19 +1798,19 @@ entry:
; Requires protector.
define void @test15d() nounwind uwtable sspreq {
entry:
-; LINUX-I386: test15d:
+; LINUX-I386-LABEL: test15d:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test15d:
+; LINUX-X64-LABEL: test15d:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test15d:
+; LINUX-KERNEL-X64-LABEL: test15d:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test15d:
+; DARWIN-X64-LABEL: test15d:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%a = alloca i32, align 4
@@ -1824,19 +1829,19 @@ entry:
; Requires no protector.
define void @test16a() nounwind uwtable {
entry:
-; LINUX-I386: test16a:
+; LINUX-I386-LABEL: test16a:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test16a:
+; LINUX-X64-LABEL: test16a:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test16a:
+; LINUX-KERNEL-X64-LABEL: test16a:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test16a:
+; DARWIN-X64-LABEL: test16a:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%a = alloca i32, align 4
@@ -1852,19 +1857,19 @@ entry:
; Requires no protector.
define void @test16b() nounwind uwtable ssp {
entry:
-; LINUX-I386: test16b:
+; LINUX-I386-LABEL: test16b:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test16b:
+; LINUX-X64-LABEL: test16b:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test16b:
+; LINUX-KERNEL-X64-LABEL: test16b:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test16b:
+; DARWIN-X64-LABEL: test16b:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%a = alloca i32, align 4
@@ -1880,19 +1885,19 @@ entry:
; Requires protector.
define void @test16c() nounwind uwtable sspstrong {
entry:
-; LINUX-I386: test16c:
+; LINUX-I386-LABEL: test16c:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test16c:
+; LINUX-X64-LABEL: test16c:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test16c:
+; LINUX-KERNEL-X64-LABEL: test16c:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test16c:
+; DARWIN-X64-LABEL: test16c:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%a = alloca i32, align 4
@@ -1908,19 +1913,19 @@ entry:
; Requires protector.
define void @test16d() nounwind uwtable sspreq {
entry:
-; LINUX-I386: test16d:
+; LINUX-I386-LABEL: test16d:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test16d:
+; LINUX-X64-LABEL: test16d:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test16d:
+; LINUX-KERNEL-X64-LABEL: test16d:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test16d:
+; DARWIN-X64-LABEL: test16d:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%a = alloca i32, align 4
@@ -1935,19 +1940,19 @@ entry:
; Requires no protector.
define void @test17a() nounwind uwtable {
entry:
-; LINUX-I386: test17a:
+; LINUX-I386-LABEL: test17a:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test17a:
+; LINUX-X64-LABEL: test17a:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test17a:
+; LINUX-KERNEL-X64-LABEL: test17a:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test17a:
+; DARWIN-X64-LABEL: test17a:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%c = alloca %struct.vec, align 16
@@ -1962,19 +1967,19 @@ entry:
; Requires no protector.
define void @test17b() nounwind uwtable ssp {
entry:
-; LINUX-I386: test17b:
+; LINUX-I386-LABEL: test17b:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test17b:
+; LINUX-X64-LABEL: test17b:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test17b:
+; LINUX-KERNEL-X64-LABEL: test17b:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test17b:
+; DARWIN-X64-LABEL: test17b:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%c = alloca %struct.vec, align 16
@@ -1989,19 +1994,19 @@ entry:
; Requires protector.
define void @test17c() nounwind uwtable sspstrong {
entry:
-; LINUX-I386: test17c:
+; LINUX-I386-LABEL: test17c:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test17c:
+; LINUX-X64-LABEL: test17c:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test17c:
+; LINUX-KERNEL-X64-LABEL: test17c:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test17c:
+; DARWIN-X64-LABEL: test17c:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%c = alloca %struct.vec, align 16
@@ -2016,19 +2021,19 @@ entry:
; Requires protector.
define void @test17d() nounwind uwtable sspreq {
entry:
-; LINUX-I386: test17d:
+; LINUX-I386-LABEL: test17d:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test17d:
+; LINUX-X64-LABEL: test17d:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test17d:
+; LINUX-KERNEL-X64-LABEL: test17d:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test17d:
+; DARWIN-X64-LABEL: test17d:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%c = alloca %struct.vec, align 16
@@ -2043,19 +2048,19 @@ entry:
; Requires no protector.
define i32 @test18a() uwtable {
entry:
-; LINUX-I386: test18a:
+; LINUX-I386-LABEL: test18a:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test18a:
+; LINUX-X64-LABEL: test18a:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test18a:
+; LINUX-KERNEL-X64-LABEL: test18a:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test18a:
+; DARWIN-X64-LABEL: test18a:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%a = alloca i32, align 4
@@ -2079,19 +2084,19 @@ lpad:
; Requires no protector.
define i32 @test18b() uwtable ssp {
entry:
-; LINUX-I386: test18b:
+; LINUX-I386-LABEL: test18b:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test18b:
+; LINUX-X64-LABEL: test18b:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test18b:
+; LINUX-KERNEL-X64-LABEL: test18b:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test18b:
+; DARWIN-X64-LABEL: test18b:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%a = alloca i32, align 4
@@ -2115,19 +2120,19 @@ lpad:
; Requires protector.
define i32 @test18c() uwtable sspstrong {
entry:
-; LINUX-I386: test18c:
+; LINUX-I386-LABEL: test18c:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test18c:
+; LINUX-X64-LABEL: test18c:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test18c:
+; LINUX-KERNEL-X64-LABEL: test18c:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test18c:
+; DARWIN-X64-LABEL: test18c:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%a = alloca i32, align 4
@@ -2151,19 +2156,19 @@ lpad:
; Requires protector.
define i32 @test18d() uwtable sspreq {
entry:
-; LINUX-I386: test18d:
+; LINUX-I386-LABEL: test18d:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test18d:
+; LINUX-X64-LABEL: test18d:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test18d:
+; LINUX-KERNEL-X64-LABEL: test18d:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test18d:
+; DARWIN-X64-LABEL: test18d:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%a = alloca i32, align 4
@@ -2188,19 +2193,19 @@ lpad:
; Requires no protector.
define i32 @test19a() uwtable {
entry:
-; LINUX-I386: test19a:
+; LINUX-I386-LABEL: test19a:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test19a:
+; LINUX-X64-LABEL: test19a:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test19a:
+; LINUX-KERNEL-X64-LABEL: test19a:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test19a:
+; DARWIN-X64-LABEL: test19a:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%c = alloca %struct.pair, align 4
@@ -2227,19 +2232,19 @@ lpad:
; Requires no protector.
define i32 @test19b() uwtable ssp {
entry:
-; LINUX-I386: test19b:
+; LINUX-I386-LABEL: test19b:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test19b:
+; LINUX-X64-LABEL: test19b:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test19b:
+; LINUX-KERNEL-X64-LABEL: test19b:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test19b:
+; DARWIN-X64-LABEL: test19b:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%c = alloca %struct.pair, align 4
@@ -2266,19 +2271,19 @@ lpad:
; Requires protector.
define i32 @test19c() uwtable sspstrong {
entry:
-; LINUX-I386: test19c:
+; LINUX-I386-LABEL: test19c:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test19c:
+; LINUX-X64-LABEL: test19c:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test19c:
+; LINUX-KERNEL-X64-LABEL: test19c:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test19c:
+; DARWIN-X64-LABEL: test19c:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%c = alloca %struct.pair, align 4
@@ -2305,21 +2310,25 @@ lpad:
; Requires protector.
define i32 @test19d() uwtable sspreq {
entry:
-; LINUX-I386: test19d:
+; LINUX-I386-LABEL: test19d:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
+; LINUX-I386-NOT: calll __stack_chk_fail
-; LINUX-X64: test19d:
+; LINUX-X64-LABEL: test19d:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
+; LINUX-X64-NOT: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test19d:
+; LINUX-KERNEL-X64-LABEL: test19d:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
+; LINUX-KERNEL-X64-NOT: callq ___stack_chk_fail
-; DARWIN-X64: test19d:
+; DARWIN-X64-LABEL: test19d:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
+; DARWIN-X64-NOT: callq ___stack_chk_fail
%c = alloca %struct.pair, align 4
%exn.slot = alloca i8*
%ehselector.slot = alloca i32
@@ -2343,19 +2352,19 @@ lpad:
; Requires no protector.
define void @test20a() nounwind uwtable {
entry:
-; LINUX-I386: test20a:
+; LINUX-I386-LABEL: test20a:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test20a:
+; LINUX-X64-LABEL: test20a:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test20a:
+; LINUX-KERNEL-X64-LABEL: test20a:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test20a:
+; DARWIN-X64-LABEL: test20a:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%a = alloca i32*, align 8
@@ -2373,19 +2382,19 @@ entry:
; Requires no protector.
define void @test20b() nounwind uwtable ssp {
entry:
-; LINUX-I386: test20b:
+; LINUX-I386-LABEL: test20b:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test20b:
+; LINUX-X64-LABEL: test20b:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test20b:
+; LINUX-KERNEL-X64-LABEL: test20b:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test20b:
+; DARWIN-X64-LABEL: test20b:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%a = alloca i32*, align 8
@@ -2403,19 +2412,19 @@ entry:
; Requires protector.
define void @test20c() nounwind uwtable sspstrong {
entry:
-; LINUX-I386: test20c:
+; LINUX-I386-LABEL: test20c:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test20c:
+; LINUX-X64-LABEL: test20c:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test20c:
+; LINUX-KERNEL-X64-LABEL: test20c:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test20c:
+; DARWIN-X64-LABEL: test20c:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%a = alloca i32*, align 8
@@ -2433,19 +2442,19 @@ entry:
; Requires protector.
define void @test20d() nounwind uwtable sspreq {
entry:
-; LINUX-I386: test20d:
+; LINUX-I386-LABEL: test20d:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test20d:
+; LINUX-X64-LABEL: test20d:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test20d:
+; LINUX-KERNEL-X64-LABEL: test20d:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test20d:
+; DARWIN-X64-LABEL: test20d:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%a = alloca i32*, align 8
@@ -2463,19 +2472,19 @@ entry:
; Requires no protector.
define void @test21a() nounwind uwtable {
entry:
-; LINUX-I386: test21a:
+; LINUX-I386-LABEL: test21a:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test21a:
+; LINUX-X64-LABEL: test21a:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test21a:
+; LINUX-KERNEL-X64-LABEL: test21a:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test21a:
+; DARWIN-X64-LABEL: test21a:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%a = alloca i32*, align 8
@@ -2494,19 +2503,19 @@ entry:
; Requires no protector.
define void @test21b() nounwind uwtable ssp {
entry:
-; LINUX-I386: test21b:
+; LINUX-I386-LABEL: test21b:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test21b:
+; LINUX-X64-LABEL: test21b:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test21b:
+; LINUX-KERNEL-X64-LABEL: test21b:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test21b:
+; DARWIN-X64-LABEL: test21b:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%a = alloca i32*, align 8
@@ -2525,19 +2534,19 @@ entry:
; Requires protector.
define void @test21c() nounwind uwtable sspstrong {
entry:
-; LINUX-I386: test21c:
+; LINUX-I386-LABEL: test21c:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test21c:
+; LINUX-X64-LABEL: test21c:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test21c:
+; LINUX-KERNEL-X64-LABEL: test21c:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test21c:
+; DARWIN-X64-LABEL: test21c:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%a = alloca i32*, align 8
@@ -2556,19 +2565,19 @@ entry:
; Requires protector.
define void @test21d() nounwind uwtable sspreq {
entry:
-; LINUX-I386: test21d:
+; LINUX-I386-LABEL: test21d:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test21d:
+; LINUX-X64-LABEL: test21d:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test21d:
+; LINUX-KERNEL-X64-LABEL: test21d:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test21d:
+; DARWIN-X64-LABEL: test21d:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%a = alloca i32*, align 8
@@ -2587,19 +2596,19 @@ entry:
; Requires no protector.
define signext i8 @test22a() nounwind uwtable {
entry:
-; LINUX-I386: test22a:
+; LINUX-I386-LABEL: test22a:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test22a:
+; LINUX-X64-LABEL: test22a:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test22a:
+; LINUX-KERNEL-X64-LABEL: test22a:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test22a:
+; DARWIN-X64-LABEL: test22a:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%a = alloca %class.A, align 1
@@ -2614,19 +2623,19 @@ entry:
; Requires no protector.
define signext i8 @test22b() nounwind uwtable ssp {
entry:
-; LINUX-I386: test22b:
+; LINUX-I386-LABEL: test22b:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test22b:
+; LINUX-X64-LABEL: test22b:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test22b:
+; LINUX-KERNEL-X64-LABEL: test22b:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test22b:
+; DARWIN-X64-LABEL: test22b:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%a = alloca %class.A, align 1
@@ -2641,19 +2650,19 @@ entry:
; Requires protector.
define signext i8 @test22c() nounwind uwtable sspstrong {
entry:
-; LINUX-I386: test22c:
+; LINUX-I386-LABEL: test22c:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test22c:
+; LINUX-X64-LABEL: test22c:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test22c:
+; LINUX-KERNEL-X64-LABEL: test22c:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test22c:
+; DARWIN-X64-LABEL: test22c:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%a = alloca %class.A, align 1
@@ -2668,19 +2677,19 @@ entry:
; Requires protector.
define signext i8 @test22d() nounwind uwtable sspreq {
entry:
-; LINUX-I386: test22d:
+; LINUX-I386-LABEL: test22d:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test22d:
+; LINUX-X64-LABEL: test22d:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test22d:
+; LINUX-KERNEL-X64-LABEL: test22d:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test22d:
+; DARWIN-X64-LABEL: test22d:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%a = alloca %class.A, align 1
@@ -2695,19 +2704,19 @@ entry:
; Requires no protector.
define signext i8 @test23a() nounwind uwtable {
entry:
-; LINUX-I386: test23a:
+; LINUX-I386-LABEL: test23a:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test23a:
+; LINUX-X64-LABEL: test23a:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test23a:
+; LINUX-KERNEL-X64-LABEL: test23a:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test23a:
+; DARWIN-X64-LABEL: test23a:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%x = alloca %struct.deep, align 1
@@ -2726,19 +2735,19 @@ entry:
; Requires no protector.
define signext i8 @test23b() nounwind uwtable ssp {
entry:
-; LINUX-I386: test23b:
+; LINUX-I386-LABEL: test23b:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test23b:
+; LINUX-X64-LABEL: test23b:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test23b:
+; LINUX-KERNEL-X64-LABEL: test23b:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test23b:
+; DARWIN-X64-LABEL: test23b:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%x = alloca %struct.deep, align 1
@@ -2757,19 +2766,19 @@ entry:
; Requires protector.
define signext i8 @test23c() nounwind uwtable sspstrong {
entry:
-; LINUX-I386: test23c:
+; LINUX-I386-LABEL: test23c:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test23c:
+; LINUX-X64-LABEL: test23c:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test23c:
+; LINUX-KERNEL-X64-LABEL: test23c:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test23c:
+; DARWIN-X64-LABEL: test23c:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%x = alloca %struct.deep, align 1
@@ -2788,19 +2797,19 @@ entry:
; Requires protector.
define signext i8 @test23d() nounwind uwtable sspreq {
entry:
-; LINUX-I386: test23d:
+; LINUX-I386-LABEL: test23d:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test23d:
+; LINUX-X64-LABEL: test23d:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test23d:
+; LINUX-KERNEL-X64-LABEL: test23d:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test23d:
+; DARWIN-X64-LABEL: test23d:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%x = alloca %struct.deep, align 1
@@ -2819,19 +2828,19 @@ entry:
; Requires no protector.
define void @test24a(i32 %n) nounwind uwtable {
entry:
-; LINUX-I386: test24a:
+; LINUX-I386-LABEL: test24a:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test24a:
+; LINUX-X64-LABEL: test24a:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test24a:
+; LINUX-KERNEL-X64-LABEL: test24a:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test24a:
+; DARWIN-X64-LABEL: test24a:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%n.addr = alloca i32, align 4
@@ -2850,19 +2859,19 @@ entry:
; Requires protector.
define void @test24b(i32 %n) nounwind uwtable ssp {
entry:
-; LINUX-I386: test24b:
+; LINUX-I386-LABEL: test24b:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test24b:
+; LINUX-X64-LABEL: test24b:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test24b:
+; LINUX-KERNEL-X64-LABEL: test24b:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test24b:
+; DARWIN-X64-LABEL: test24b:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%n.addr = alloca i32, align 4
@@ -2881,19 +2890,19 @@ entry:
; Requires protector.
define void @test24c(i32 %n) nounwind uwtable sspstrong {
entry:
-; LINUX-I386: test24c:
+; LINUX-I386-LABEL: test24c:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test24c:
+; LINUX-X64-LABEL: test24c:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test24c:
+; LINUX-KERNEL-X64-LABEL: test24c:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test24c:
+; DARWIN-X64-LABEL: test24c:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%n.addr = alloca i32, align 4
@@ -2912,19 +2921,19 @@ entry:
; Requires protector.
define void @test24d(i32 %n) nounwind uwtable sspreq {
entry:
-; LINUX-I386: test24d:
+; LINUX-I386-LABEL: test24d:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test24d:
+; LINUX-X64-LABEL: test24d:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test24d:
+; LINUX-KERNEL-X64-LABEL: test24d:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test24d:
+; DARWIN-X64-LABEL: test24d:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%n.addr = alloca i32, align 4
@@ -2943,19 +2952,19 @@ entry:
; Requires no protector.
define i32 @test25a() nounwind uwtable {
entry:
-; LINUX-I386: test25a:
+; LINUX-I386-LABEL: test25a:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test25a:
+; LINUX-X64-LABEL: test25a:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test25a:
+; LINUX-KERNEL-X64-LABEL: test25a:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test25a:
+; DARWIN-X64-LABEL: test25a:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%a = alloca [4 x i32], align 16
@@ -2969,19 +2978,19 @@ entry:
; Requires no protector, except for Darwin which _does_ require a protector.
define i32 @test25b() nounwind uwtable ssp {
entry:
-; LINUX-I386: test25b:
+; LINUX-I386-LABEL: test25b:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test25b:
+; LINUX-X64-LABEL: test25b:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test25b:
+; LINUX-KERNEL-X64-LABEL: test25b:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test25b:
+; DARWIN-X64-LABEL: test25b:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%a = alloca [4 x i32], align 16
@@ -2995,19 +3004,19 @@ entry:
; Requires protector.
define i32 @test25c() nounwind uwtable sspstrong {
entry:
-; LINUX-I386: test25c:
+; LINUX-I386-LABEL: test25c:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test25c:
+; LINUX-X64-LABEL: test25c:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test25c:
+; LINUX-KERNEL-X64-LABEL: test25c:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test25c:
+; DARWIN-X64-LABEL: test25c:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%a = alloca [4 x i32], align 16
@@ -3021,19 +3030,19 @@ entry:
; Requires protector.
define i32 @test25d() nounwind uwtable sspreq {
entry:
-; LINUX-I386: test25d:
+; LINUX-I386-LABEL: test25d:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test25d:
+; LINUX-X64-LABEL: test25d:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test25d:
+; LINUX-KERNEL-X64-LABEL: test25d:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test25d:
+; DARWIN-X64-LABEL: test25d:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%a = alloca [4 x i32], align 16
@@ -3049,19 +3058,19 @@ entry:
; Requires no protector.
define void @test26() nounwind uwtable sspstrong {
entry:
-; LINUX-I386: test26:
+; LINUX-I386-LABEL: test26:
; LINUX-I386-NOT: calll __stack_chk_fail
; LINUX-I386: .cfi_endproc
-; LINUX-X64: test26:
+; LINUX-X64-LABEL: test26:
; LINUX-X64-NOT: callq __stack_chk_fail
; LINUX-X64: .cfi_endproc
-; LINUX-KERNEL-X64: test26:
+; LINUX-KERNEL-X64-LABEL: test26:
; LINUX-KERNEL-X64-NOT: callq __stack_chk_fail
; LINUX-KERNEL-X64: .cfi_endproc
-; DARWIN-X64: test26:
+; DARWIN-X64-LABEL: test26:
; DARWIN-X64-NOT: callq ___stack_chk_fail
; DARWIN-X64: .cfi_endproc
%c = alloca %struct.nest, align 4
@@ -3080,19 +3089,19 @@ entry:
; Requires protector.
define i32 @test27(i32 %arg) nounwind uwtable sspstrong {
bb:
-; LINUX-I386: test27:
+; LINUX-I386-LABEL: test27:
; LINUX-I386: mov{{l|q}} %gs:
; LINUX-I386: calll __stack_chk_fail
-; LINUX-X64: test27:
+; LINUX-X64-LABEL: test27:
; LINUX-X64: mov{{l|q}} %fs:
; LINUX-X64: callq __stack_chk_fail
-; LINUX-KERNEL-X64: test27:
+; LINUX-KERNEL-X64-LABEL: test27:
; LINUX-KERNEL-X64: mov{{l|q}} %gs:
; LINUX-KERNEL-X64: callq __stack_chk_fail
-; DARWIN-X64: test27:
+; DARWIN-X64-LABEL: test27:
; DARWIN-X64: mov{{l|q}} ___stack_chk_guard
; DARWIN-X64: callq ___stack_chk_fail
%tmp = alloca %struct.small*, align 8
diff --git a/test/CodeGen/X86/stackmap.ll b/test/CodeGen/X86/stackmap.ll
new file mode 100644
index 0000000000000..ed9558302848f
--- /dev/null
+++ b/test/CodeGen/X86/stackmap.ll
@@ -0,0 +1,292 @@
+; RUN: llc < %s -mtriple=x86_64-apple-darwin -disable-fp-elim | FileCheck %s
+;
+; Note: Print verbose stackmaps using -debug-only=stackmaps.
+
+; CHECK-LABEL: .section __LLVM_STACKMAPS,__llvm_stackmaps
+; CHECK-NEXT: __LLVM_StackMaps:
+; CHECK-NEXT: .long 0
+; Num LargeConstants
+; CHECK-NEXT: .long 1
+; CHECK-NEXT: .quad 4294967296
+; Num Callsites
+; CHECK-NEXT: .long 11
+
+; Constant arguments
+;
+; CHECK-NEXT: .long 1
+; CHECK-NEXT: .long L{{.*}}-_constantargs
+; CHECK-NEXT: .short 0
+; CHECK-NEXT: .short 4
+; SmallConstant
+; CHECK-NEXT: .byte 4
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short 0
+; CHECK-NEXT: .long 65535
+; SmallConstant
+; CHECK-NEXT: .byte 4
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short 0
+; CHECK-NEXT: .long 65536
+; SmallConstant
+; CHECK-NEXT: .byte 4
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short 0
+; CHECK-NEXT: .long -1
+; LargeConstant at index 0
+; CHECK-NEXT: .byte 5
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short 0
+; CHECK-NEXT: .long 0
+
+define void @constantargs() {
+entry:
+ %0 = inttoptr i64 12345 to i8*
+ tail call void (i32, i32, i8*, i32, ...)* @llvm.experimental.patchpoint.void(i32 1, i32 15, i8* %0, i32 0, i64 65535, i64 65536, i64 4294967295, i64 4294967296)
+ ret void
+}
+
+; Inline OSR Exit
+;
+; CHECK-NEXT: .long 3
+; CHECK-NEXT: .long L{{.*}}-_osrinline
+; CHECK-NEXT: .short 0
+; CHECK-NEXT: .short 2
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+define void @osrinline(i64 %a, i64 %b) {
+entry:
+ ; Runtime void->void call.
+ call void inttoptr (i64 -559038737 to void ()*)()
+ ; Followed by inline OSR patchpoint with 12-byte shadow and 2 live vars.
+ call void (i32, i32, ...)* @llvm.experimental.stackmap(i32 3, i32 12, i64 %a, i64 %b)
+ ret void
+}
+
+; Cold OSR Exit
+;
+; 2 live variables in register.
+;
+; CHECK-NEXT: .long 4
+; CHECK-NEXT: .long L{{.*}}-_osrcold
+; CHECK-NEXT: .short 0
+; CHECK-NEXT: .short 2
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+define void @osrcold(i64 %a, i64 %b) {
+entry:
+ %test = icmp slt i64 %a, %b
+ br i1 %test, label %ret, label %cold
+cold:
+ ; OSR patchpoint with 12-byte nop-slide and 2 live vars.
+ %thunk = inttoptr i64 -559038737 to i8*
+ call void (i32, i32, i8*, i32, ...)* @llvm.experimental.patchpoint.void(i32 4, i32 15, i8* %thunk, i32 0, i64 %a, i64 %b)
+ unreachable
+ret:
+ ret void
+}
+
+; Property Read
+; CHECK-NEXT: .long 5
+; CHECK-NEXT: .long L{{.*}}-_propertyRead
+; CHECK-NEXT: .short 0
+; CHECK-NEXT: .short 0
+;
+; FIXME: There are currently no stackmap entries. After moving to
+; AnyRegCC, we will have entries for the object and return value.
+define i64 @propertyRead(i64* %obj) {
+entry:
+ %resolveRead = inttoptr i64 -559038737 to i8*
+ %result = call i64 (i32, i32, i8*, i32, ...)* @llvm.experimental.patchpoint.i64(i32 5, i32 15, i8* %resolveRead, i32 1, i64* %obj)
+ %add = add i64 %result, 3
+ ret i64 %add
+}
+
+; Property Write
+; CHECK-NEXT: .long 6
+; CHECK-NEXT: .long L{{.*}}-_propertyWrite
+; CHECK-NEXT: .short 0
+; CHECK-NEXT: .short 0
+;
+; FIXME: There are currently no stackmap entries. After moving to
+; AnyRegCC, we will have entries for the object and return value.
+define void @propertyWrite(i64 %dummy1, i64* %obj, i64 %dummy2, i64 %a) {
+entry:
+ %resolveWrite = inttoptr i64 -559038737 to i8*
+ call void (i32, i32, i8*, i32, ...)* @llvm.experimental.patchpoint.void(i32 6, i32 15, i8* %resolveWrite, i32 2, i64* %obj, i64 %a)
+ ret void
+}
+
+; Void JS Call
+;
+; 2 live variables in registers.
+;
+; CHECK-NEXT: .long 7
+; CHECK-NEXT: .long L{{.*}}-_jsVoidCall
+; CHECK-NEXT: .short 0
+; CHECK-NEXT: .short 2
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+define void @jsVoidCall(i64 %dummy1, i64* %obj, i64 %arg, i64 %l1, i64 %l2) {
+entry:
+ %resolveCall = inttoptr i64 -559038737 to i8*
+ call void (i32, i32, i8*, i32, ...)* @llvm.experimental.patchpoint.void(i32 7, i32 15, i8* %resolveCall, i32 2, i64* %obj, i64 %arg, i64 %l1, i64 %l2)
+ ret void
+}
+
+; i64 JS Call
+;
+; 2 live variables in registers.
+;
+; CHECK: .long 8
+; CHECK-NEXT: .long L{{.*}}-_jsIntCall
+; CHECK-NEXT: .short 0
+; CHECK-NEXT: .short 2
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short {{[0-9]+}}
+; CHECK-NEXT: .long 0
+define i64 @jsIntCall(i64 %dummy1, i64* %obj, i64 %arg, i64 %l1, i64 %l2) {
+entry:
+ %resolveCall = inttoptr i64 -559038737 to i8*
+ %result = call i64 (i32, i32, i8*, i32, ...)* @llvm.experimental.patchpoint.i64(i32 8, i32 15, i8* %resolveCall, i32 2, i64* %obj, i64 %arg, i64 %l1, i64 %l2)
+ %add = add i64 %result, 3
+ ret i64 %add
+}
+
+; Spilled stack map values.
+;
+; Verify 17 stack map entries.
+;
+; CHECK: .long 11
+; CHECK-NEXT: .long L{{.*}}-_spilledValue
+; CHECK-NEXT: .short 0
+; CHECK-NEXT: .short 17
+;
+; Check that at least one is a spilled entry from RBP.
+; Location: Indirect RBP + ...
+; CHECK: .byte 3
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short 6
+define void @spilledValue(i64 %arg0, i64 %arg1, i64 %arg2, i64 %arg3, i64 %arg4, i64 %l0, i64 %l1, i64 %l2, i64 %l3, i64 %l4, i64 %l5, i64 %l6, i64 %l7, i64 %l8, i64 %l9, i64 %l10, i64 %l11, i64 %l12, i64 %l13, i64 %l14, i64 %l15, i64 %l16) {
+entry:
+ call void (i32, i32, i8*, i32, ...)* @llvm.experimental.patchpoint.void(i32 11, i32 15, i8* null, i32 5, i64 %arg0, i64 %arg1, i64 %arg2, i64 %arg3, i64 %arg4, i64 %l0, i64 %l1, i64 %l2, i64 %l3, i64 %l4, i64 %l5, i64 %l6, i64 %l7, i64 %l8, i64 %l9, i64 %l10, i64 %l11, i64 %l12, i64 %l13, i64 %l14, i64 %l15, i64 %l16)
+ ret void
+}
+
+; Spilled stack map values.
+;
+; Verify 17 stack map entries.
+;
+; CHECK: .long 12
+; CHECK-LABEL: .long L{{.*}}-_spilledStackMapValue
+; CHECK-NEXT: .short 0
+; CHECK-NEXT: .short 17
+;
+; Check that at least one is a spilled entry from RBP.
+; Location: Indirect RBP + ...
+; CHECK: .byte 3
+; CHECK-NEXT: .byte 8
+; CHECK-NEXT: .short 6
+define webkit_jscc void @spilledStackMapValue(i64 %l0, i64 %l1, i64 %l2, i64 %l3, i64 %l4, i64 %l5, i64 %l6, i64 %l7, i64 %l8, i64 %l9, i64 %l10, i64 %l11, i64 %l12, i64 %l13, i64 %l14, i64 %l15, i64 %l16) {
+entry:
+ call void (i32, i32, ...)* @llvm.experimental.stackmap(i32 12, i32 15, i64 %l0, i64 %l1, i64 %l2, i64 %l3, i64 %l4, i64 %l5, i64 %l6, i64 %l7, i64 %l8, i64 %l9, i64 %l10, i64 %l11, i64 %l12, i64 %l13, i64 %l14, i64 %l15, i64 %l16)
+ ret void
+}
+
+; Spill a subregister stackmap operand.
+;
+; CHECK: .long 13
+; CHECK-LABEL: .long L{{.*}}-_spillSubReg
+; CHECK-NEXT: .short 0
+; 4 locations
+; CHECK-NEXT: .short 1
+;
+; Check that the subregister operand is a 4-byte spill.
+; Location: Indirect, 4-byte, RBP + ...
+; CHECK: .byte 3
+; CHECK-NEXT: .byte 4
+; CHECK-NEXT: .short 6
+define void @spillSubReg(i64 %arg) #0 {
+bb:
+ br i1 undef, label %bb1, label %bb2
+
+bb1:
+ unreachable
+
+bb2:
+ %tmp = load i64* inttoptr (i64 140685446136880 to i64*)
+ br i1 undef, label %bb16, label %bb17
+
+bb16:
+ unreachable
+
+bb17:
+ %tmp32 = trunc i64 %tmp to i32
+ br i1 undef, label %bb60, label %bb61
+
+bb60:
+ tail call void asm sideeffect "nop", "~{ax},~{bx},~{cx},~{dx},~{bp},~{si},~{di},~{r8},~{r9},~{r10},~{r11},~{r12},~{r13},~{r14},~{r15}"() nounwind
+ tail call void (i32, i32, ...)* @llvm.experimental.stackmap(i32 13, i32 5, i32 %tmp32)
+ unreachable
+
+bb61:
+ unreachable
+}
+
+; Map a single byte subregister. There is no DWARF register number, so
+; we expect the register to be encoded with the proper size and spill offset. We don't know which
+;
+; CHECK: .long 14
+; CHECK-LABEL: .long L{{.*}}-_subRegOffset
+; CHECK-NEXT: .short 0
+; 2 locations
+; CHECK-NEXT: .short 2
+;
+; Check that the subregister operands are 1-byte spills.
+; Location 0: Register, 4-byte, AL
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .short 0
+; CHECK-NEXT: .long 0
+;
+; Location 1: Register, 4-byte, BL
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .byte 1
+; CHECK-NEXT: .short 3
+; CHECK-NEXT: .long 0
+define void @subRegOffset(i16 %arg) {
+ %v = mul i16 %arg, 5
+ %a0 = trunc i16 %v to i8
+ tail call void asm sideeffect "nop", "~{bx}"() nounwind
+ %arghi = lshr i16 %v, 8
+ %a1 = trunc i16 %arghi to i8
+ tail call void asm sideeffect "nop", "~{cx},~{dx},~{bp},~{si},~{di},~{r8},~{r9},~{r10},~{r11},~{r12},~{r13},~{r14},~{r15}"() nounwind
+ tail call void (i32, i32, ...)* @llvm.experimental.stackmap(i32 14, i32 5, i8 %a0, i8 %a1)
+ ret void
+}
+
+declare void @llvm.experimental.stackmap(i32, i32, ...)
+declare void @llvm.experimental.patchpoint.void(i32, i32, i8*, i32, ...)
+declare i64 @llvm.experimental.patchpoint.i64(i32, i32, i8*, i32, ...)
diff --git a/test/CodeGen/X86/stdcall-notailcall.ll b/test/CodeGen/X86/stdcall-notailcall.ll
index 8e33c30bf2932..8f522cda284a5 100644
--- a/test/CodeGen/X86/stdcall-notailcall.ll
+++ b/test/CodeGen/X86/stdcall-notailcall.ll
@@ -2,7 +2,7 @@
%struct.I = type { i32 (...)** }
define x86_stdcallcc void @bar(%struct.I* nocapture %this) ssp align 2 {
-; CHECK: bar:
+; CHECK-LABEL: bar:
; CHECK-NOT: jmp
; CHECK: ret $4
entry:
diff --git a/test/CodeGen/X86/store-narrow.ll b/test/CodeGen/X86/store-narrow.ll
index 0dd228eb145fe..7557f255658dc 100644
--- a/test/CodeGen/X86/store-narrow.ll
+++ b/test/CodeGen/X86/store-narrow.ll
@@ -12,11 +12,11 @@ entry:
%D = or i32 %C, %B
store i32 %D, i32* %a0, align 4
ret void
-
-; X64: test1:
+
+; X64-LABEL: test1:
; X64: movb %sil, (%rdi)
-; X32: test1:
+; X32-LABEL: test1:
; X32: movb 8(%esp), %al
; X32: movb %al, (%{{.*}})
}
@@ -30,12 +30,12 @@ entry:
%D = or i32 %B, %CS
store i32 %D, i32* %a0, align 4
ret void
-; X64: test2:
+; X64-LABEL: test2:
; X64: movb %sil, 1(%rdi)
-; X32: test2:
-; X32: movb 8(%esp), %al
-; X32: movb %al, 1(%{{.*}})
+; X32-LABEL: test2:
+; X32: movb 8(%esp), %[[REG:[abcd]l]]
+; X32: movb %[[REG]], 1(%{{.*}})
}
define void @test3(i32* nocapture %a0, i16 zeroext %a1) nounwind ssp {
@@ -46,10 +46,10 @@ entry:
%D = or i32 %B, %C
store i32 %D, i32* %a0, align 4
ret void
-; X64: test3:
+; X64-LABEL: test3:
; X64: movw %si, (%rdi)
-; X32: test3:
+; X32-LABEL: test3:
; X32: movw 8(%esp), %ax
; X32: movw %ax, (%{{.*}})
}
@@ -63,12 +63,12 @@ entry:
%D = or i32 %B, %CS
store i32 %D, i32* %a0, align 4
ret void
-; X64: test4:
+; X64-LABEL: test4:
; X64: movw %si, 2(%rdi)
-; X32: test4:
-; X32: movl 8(%esp), %eax
-; X32: movw %ax, 2(%{{.*}})
+; X32-LABEL: test4:
+; X32: movl 8(%esp), %e[[REG:[abcd]x]]
+; X32: movw %[[REG]], 2(%{{.*}})
}
define void @test5(i64* nocapture %a0, i16 zeroext %a1) nounwind ssp {
@@ -80,12 +80,12 @@ entry:
%D = or i64 %B, %CS
store i64 %D, i64* %a0, align 4
ret void
-; X64: test5:
+; X64-LABEL: test5:
; X64: movw %si, 2(%rdi)
-; X32: test5:
-; X32: movzwl 8(%esp), %eax
-; X32: movw %ax, 2(%{{.*}})
+; X32-LABEL: test5:
+; X32: movzwl 8(%esp), %e[[REG:[abcd]x]]
+; X32: movw %[[REG]], 2(%{{.*}})
}
define void @test6(i64* nocapture %a0, i8 zeroext %a1) nounwind ssp {
@@ -97,13 +97,13 @@ entry:
%D = or i64 %B, %CS
store i64 %D, i64* %a0, align 4
ret void
-; X64: test6:
+; X64-LABEL: test6:
; X64: movb %sil, 5(%rdi)
-; X32: test6:
-; X32: movb 8(%esp), %al
-; X32: movb %al, 5(%{{.*}})
+; X32-LABEL: test6:
+; X32: movb 8(%esp), %[[REG:[abcd]l]]
+; X32: movb %[[REG]], 5(%{{.*}})
}
define i32 @test7(i64* nocapture %a0, i8 zeroext %a1, i32* %P2) nounwind {
@@ -116,20 +116,20 @@ entry:
%D = or i64 %B, %CS
store i64 %D, i64* %a0, align 4
ret i32 %OtherLoad
-; X64: test7:
+; X64-LABEL: test7:
; X64: movb %sil, 5(%rdi)
-; X32: test7:
-; X32: movb 8(%esp), %cl
-; X32: movb %cl, 5(%{{.*}})
+; X32-LABEL: test7:
+; X32: movb 8(%esp), %[[REG:[abcd]l]]
+; X32: movb %[[REG]], 5(%{{.*}})
}
; PR7833
@g_16 = internal global i32 -1
-; X64: test8:
+; X64-LABEL: test8:
; X64-NEXT: movl _g_16(%rip), %eax
; X64-NEXT: movl $0, _g_16(%rip)
; X64-NEXT: orl $1, %eax
@@ -143,7 +143,7 @@ define void @test8() nounwind {
ret void
}
-; X64: test9:
+; X64-LABEL: test9:
; X64-NEXT: orb $1, _g_16(%rip)
; X64-NEXT: ret
define void @test9() nounwind {
@@ -154,7 +154,7 @@ define void @test9() nounwind {
}
; rdar://8494845 + PR8244
-; X64: test10:
+; X64-LABEL: test10:
; X64-NEXT: movsbl (%rdi), %eax
; X64-NEXT: shrl $8, %eax
; X64-NEXT: ret
diff --git a/test/CodeGen/X86/store_op_load_fold.ll b/test/CodeGen/X86/store_op_load_fold.ll
index 070cccdb87dda..bbeb7443c07f1 100644
--- a/test/CodeGen/X86/store_op_load_fold.ll
+++ b/test/CodeGen/X86/store_op_load_fold.ll
@@ -5,7 +5,7 @@
@X = internal global i16 0 ; <i16*> [#uses=2]
define void @foo() nounwind {
-; CHECK: foo:
+; CHECK-LABEL: foo:
; CHECK-NOT: mov
; CHECK: add
; CHECK-NEXT: ret
@@ -19,7 +19,7 @@ define void @foo() nounwind {
%struct.S2 = type { i64, i16, [2 x i8], i8, [3 x i8], [7 x i8], i8, [8 x i8] }
@s2 = external global %struct.S2, align 16
define void @test2() nounwind uwtable ssp {
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK: mov
; CHECK-NEXT: and
; CHECK-NEXT: ret
diff --git a/test/CodeGen/X86/store_op_load_fold2.ll b/test/CodeGen/X86/store_op_load_fold2.ll
index 6e4fe90053f10..705fdcdc13af5 100644
--- a/test/CodeGen/X86/store_op_load_fold2.ll
+++ b/test/CodeGen/X86/store_op_load_fold2.ll
@@ -17,10 +17,10 @@ cond_true2732.preheader: ; preds = %entry
store i64 %tmp2676.us.us, i64* %tmp2666
ret i32 0
-; INTEL: and {{E..}}, DWORD PTR [360]
-; INTEL: and DWORD PTR [356], {{E..}}
-; FIXME: mov DWORD PTR [360], {{E..}}
-; The above line comes out as 'mov 360, EAX', but when the register is ECX it works?
+; INTEL: and {{e..}}, dword ptr [360]
+; INTEL: and dword ptr [356], {{e..}}
+; FIXME: mov dword ptr [360], {{e..}}
+; The above line comes out as 'mov 360, eax', but when the register is ecx it works?
; ATT: andl 360, %{{e..}}
; ATT: andl %{{e..}}, 356
diff --git a/test/CodeGen/X86/sub-with-overflow.ll b/test/CodeGen/X86/sub-with-overflow.ll
index db8313cecdce7..baaee35411087 100644
--- a/test/CodeGen/X86/sub-with-overflow.ll
+++ b/test/CodeGen/X86/sub-with-overflow.ll
@@ -18,7 +18,7 @@ overflow:
%t2 = tail call i32 (i8*, ...)* @printf( i8* getelementptr ([4 x i8]* @no, i32 0, i32 0) ) nounwind
ret i1 false
-; CHECK: func1:
+; CHECK-LABEL: func1:
; CHECK: subl 20(%esp)
; CHECK-NEXT: jno
}
@@ -38,7 +38,7 @@ carry:
%t2 = tail call i32 (i8*, ...)* @printf( i8* getelementptr ([4 x i8]* @no, i32 0, i32 0) ) nounwind
ret i1 false
-; CHECK: func2:
+; CHECK-LABEL: func2:
; CHECK: subl 20(%esp)
; CHECK-NEXT: jae
}
@@ -53,7 +53,7 @@ entry:
%obit = extractvalue {i32, i1} %t, 1
ret i1 %obit
-; CHECK: func3:
+; CHECK-LABEL: func3:
; CHECK: decl
; CHECK-NEXT: seto
}
diff --git a/test/CodeGen/X86/sub.ll b/test/CodeGen/X86/sub.ll
index ee5ea1d0fb6e0..3cf79a3deca27 100644
--- a/test/CodeGen/X86/sub.ll
+++ b/test/CodeGen/X86/sub.ll
@@ -4,7 +4,7 @@ define i32 @test1(i32 %x) {
%xor = xor i32 %x, 31
%sub = sub i32 32, %xor
ret i32 %sub
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: xorl $-32
; CHECK-NEXT: addl $33
; CHECK-NEXT: ret
diff --git a/test/CodeGen/X86/subtarget-feature-change.ll b/test/CodeGen/X86/subtarget-feature-change.ll
deleted file mode 100644
index 04d4a71996326..0000000000000
--- a/test/CodeGen/X86/subtarget-feature-change.ll
+++ /dev/null
@@ -1,62 +0,0 @@
-; RUN: llc < %s -march=x86-64 | FileCheck %s
-
-; This should not generate SSE instructions:
-;
-; CHECK: without.sse:
-; CHECK: flds
-; CHECK: fmuls
-; CHECK: fstps
-define void @without.sse(float* nocapture %a, float* nocapture %b, float* nocapture %c, i32 %n) #0 {
-entry:
- %cmp9 = icmp sgt i32 %n, 0
- br i1 %cmp9, label %for.body, label %for.end
-
-for.body:
- %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
- %arrayidx = getelementptr inbounds float* %b, i64 %indvars.iv
- %0 = load float* %arrayidx, align 4
- %arrayidx2 = getelementptr inbounds float* %c, i64 %indvars.iv
- %1 = load float* %arrayidx2, align 4
- %mul = fmul float %0, %1
- %arrayidx4 = getelementptr inbounds float* %a, i64 %indvars.iv
- store float %mul, float* %arrayidx4, align 4
- %indvars.iv.next = add i64 %indvars.iv, 1
- %lftr.wideiv = trunc i64 %indvars.iv.next to i32
- %exitcond = icmp eq i32 %lftr.wideiv, %n
- br i1 %exitcond, label %for.end, label %for.body
-
-for.end:
- ret void
-}
-
-; This should generate SSE instructions:
-;
-; CHECK: with.sse
-; CHECK: movss
-; CHECK: mulss
-; CHECK: movss
-define void @with.sse(float* nocapture %a, float* nocapture %b, float* nocapture %c, i32 %n) #1 {
-entry:
- %cmp9 = icmp sgt i32 %n, 0
- br i1 %cmp9, label %for.body, label %for.end
-
-for.body:
- %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
- %arrayidx = getelementptr inbounds float* %b, i64 %indvars.iv
- %0 = load float* %arrayidx, align 4
- %arrayidx2 = getelementptr inbounds float* %c, i64 %indvars.iv
- %1 = load float* %arrayidx2, align 4
- %mul = fmul float %0, %1
- %arrayidx4 = getelementptr inbounds float* %a, i64 %indvars.iv
- store float %mul, float* %arrayidx4, align 4
- %indvars.iv.next = add i64 %indvars.iv, 1
- %lftr.wideiv = trunc i64 %indvars.iv.next to i32
- %exitcond = icmp eq i32 %lftr.wideiv, %n
- br i1 %exitcond, label %for.end, label %for.body
-
-for.end:
- ret void
-}
-
-attributes #0 = { nounwind optsize ssp uwtable "target-cpu"="core2" "target-features"="-sse4a,-avx2,-xop,-fma4,-bmi2,-3dnow,-3dnowa,-pclmul,-sse,-avx,-sse41,-ssse3,+mmx,-rtm,-sse42,-lzcnt,-f16c,-popcnt,-bmi,-aes,-fma,-rdrand,-sse2,-sse3" }
-attributes #1 = { nounwind optsize ssp uwtable "target-cpu"="core2" "target-features"="-sse4a,-avx2,-xop,-fma4,-bmi2,-3dnow,-3dnowa,-pclmul,+sse,-avx,-sse41,+ssse3,+mmx,-rtm,-sse42,-lzcnt,-f16c,-popcnt,-bmi,-aes,-fma,-rdrand,+sse2,+sse3" }
diff --git a/test/CodeGen/X86/switch-bt.ll b/test/CodeGen/X86/switch-bt.ll
index 58a5c03385474..a80002bc97cc4 100644
--- a/test/CodeGen/X86/switch-bt.ll
+++ b/test/CodeGen/X86/switch-bt.ll
@@ -53,7 +53,7 @@ declare void @foo(i32)
; Don't zero extend the test operands to pointer type if it can be avoided.
; rdar://8781238
define void @test2(i32 %x) nounwind ssp {
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK: cmpl $6
; CHECK: ja
@@ -81,7 +81,7 @@ if.end: ; preds = %entry
declare void @bar()
define void @test3(i32 %x) nounwind {
-; CHECK: test3:
+; CHECK-LABEL: test3:
; CHECK: cmpl $5
; CHECK: ja
; CHECK: cmpl $4
diff --git a/test/CodeGen/X86/switch-order-weight.ll b/test/CodeGen/X86/switch-order-weight.ll
index 0fdd56d4e1d3b..207e0b3f707b9 100644
--- a/test/CodeGen/X86/switch-order-weight.ll
+++ b/test/CodeGen/X86/switch-order-weight.ll
@@ -10,7 +10,7 @@ entry:
i32 20, label %if.then5
]
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK-NOT: unr
; CHECK: cmpl $10
; CHECK: bar
diff --git a/test/CodeGen/X86/tail-call-attrs.ll b/test/CodeGen/X86/tail-call-attrs.ll
new file mode 100644
index 0000000000000..17ebe997c8c1f
--- /dev/null
+++ b/test/CodeGen/X86/tail-call-attrs.ll
@@ -0,0 +1,56 @@
+; RUN: llc -mtriple=x86_64-apple-darwin -o - %s | FileCheck %s
+
+; Simple case: completely identical returns, even with extensions, shouldn't be
+; a barrier to tail calls.
+declare zeroext i1 @give_bool()
+define zeroext i1 @test_bool() {
+; CHECK-LABEL: test_bool:
+; CHECK: jmp
+ %call = tail call zeroext i1 @give_bool()
+ ret i1 %call
+}
+
+; Here, there's more zero extension to be done between the call and the return,
+; so a tail call is impossible (well, according to current Clang practice
+; anyway. The AMD64 ABI isn't crystal clear on the matter).
+declare zeroext i32 @give_i32()
+define zeroext i8 @test_i32() {
+; CHECK-LABEL: test_i32:
+; CHECK: callq _give_i32
+; CHECK: movzbl %al, %eax
+; CHECK: ret
+
+ %call = tail call zeroext i32 @give_i32()
+ %val = trunc i32 %call to i8
+ ret i8 %val
+}
+
+; Here, one function is zeroext and the other is signext. To the extent that
+; these both mean something they are incompatible so no tail call is possible.
+declare zeroext i16 @give_unsigned_i16()
+define signext i16 @test_incompatible_i16() {
+; CHECK-LABEL: test_incompatible_i16:
+; CHECK: callq _give_unsigned_i16
+; CHECK: cwtl
+; CHECK: ret
+
+ %call = tail call zeroext i16 @give_unsigned_i16()
+ ret i16 %call
+}
+
+declare inreg i32 @give_i32_inreg()
+define i32 @test_inreg_to_normal() {
+; CHECK-LABEL: test_inreg_to_normal:
+; CHECK: callq _give_i32_inreg
+; CHECK: ret
+ %val = tail call inreg i32 @give_i32_inreg()
+ ret i32 %val
+}
+
+define inreg i32 @test_normal_to_inreg() {
+; CHECK-LABEL: test_normal_to_inreg:
+; CHECK: callq _give_i32
+; CHECK: ret
+ %val = tail call i32 @give_i32()
+ ret i32 %val
+}
diff --git a/test/CodeGen/X86/tail-call-got.ll b/test/CodeGen/X86/tail-call-got.ll
index 1d7eb2e298761..84d561dcd8c3f 100644
--- a/test/CodeGen/X86/tail-call-got.ll
+++ b/test/CodeGen/X86/tail-call-got.ll
@@ -4,7 +4,7 @@ target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f3
target triple = "i386-unknown-freebsd9.0"
define double @test1(double %x) nounwind readnone {
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: movl foo@GOT
; CHECK-NEXT: jmpl
%1 = tail call double @foo(double %x) nounwind readnone
@@ -14,7 +14,7 @@ define double @test1(double %x) nounwind readnone {
declare double @foo(double) readnone
define double @test2(double %x) nounwind readnone {
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK: movl sin@GOT
; CHECK-NEXT: jmpl
%1 = tail call double @sin(double %x) nounwind readnone
diff --git a/test/CodeGen/X86/tail-call-legality.ll b/test/CodeGen/X86/tail-call-legality.ll
new file mode 100644
index 0000000000000..119610430b18c
--- /dev/null
+++ b/test/CodeGen/X86/tail-call-legality.ll
@@ -0,0 +1,32 @@
+; RUN: llc -march=x86 -o - < %s | FileCheck %s
+
+; This used to be classified as a tail call because of a mismatch in the
+; arguments seen by Analysis.cpp and ISelLowering. As seen by ISelLowering, they
+; both return {i32, i32, i32} (since i64 is illegal) which is fine for a tail
+; call.
+
+; As seen by Analysis.cpp: i64 -> i32 is a valid trunc, second i32 passes
+; straight through and the third is undef, also OK for a tail call.
+
+; Analysis.cpp was wrong.
+
+; FIXME: in principle we *could* support some tail calls involving truncations
+; of illegal types: a single "trunc i64 %whatever to i32" is probably valid
+; because of how the extra registers are laid out.
+
+declare {i64, i32} @test()
+
+define {i32, i32, i32} @test_pair_notail(i64 %in) {
+; CHECK-LABEL: test_pair_notail
+; CHECK-NOT: jmp
+
+ %whole = tail call {i64, i32} @test()
+ %first = extractvalue {i64, i32} %whole, 0
+ %first.trunc = trunc i64 %first to i32
+
+ %second = extractvalue {i64, i32} %whole, 1
+
+ %tmp = insertvalue {i32, i32, i32} undef, i32 %first.trunc, 0
+ %res = insertvalue {i32, i32, i32} %tmp, i32 %second, 1
+ ret {i32, i32, i32} %res
+}
diff --git a/test/CodeGen/X86/tail-opts.ll b/test/CodeGen/X86/tail-opts.ll
index 6e20af5866e4d..73d93ff993c67 100644
--- a/test/CodeGen/X86/tail-opts.ll
+++ b/test/CodeGen/X86/tail-opts.ll
@@ -13,7 +13,7 @@ declare i1 @qux()
; BranchFolding should tail-merge the stores since they all precede
; direct branches to the same place.
-; CHECK: tail_merge_me:
+; CHECK-LABEL: tail_merge_me:
; CHECK-NOT: GHJK
; CHECK: movl $0, GHJK(%rip)
; CHECK-NEXT: movl $1, HABC(%rip)
@@ -60,7 +60,7 @@ declare i8* @choose(i8*, i8*)
; BranchFolding should tail-duplicate the indirect jump to avoid
; redundant branching.
-; CHECK: tail_duplicate_me:
+; CHECK-LABEL: tail_duplicate_me:
; CHECK: movl $0, GHJK(%rip)
; CHECK-NEXT: jmpq *%r
; CHECK: movl $0, GHJK(%rip)
@@ -107,7 +107,7 @@ altret:
; BranchFolding shouldn't try to merge the tails of two blocks
; with only a branch in common, regardless of the fallthrough situation.
-; CHECK: dont_merge_oddly:
+; CHECK-LABEL: dont_merge_oddly:
; CHECK-NOT: ret
; CHECK: ucomiss %xmm{{[0-2]}}, %xmm{{[0-2]}}
; CHECK-NEXT: jbe .LBB2_3
@@ -118,7 +118,7 @@ altret:
; CHECK-NEXT: ucomiss %xmm{{[0-2]}}, %xmm{{[0-2]}}
; CHECK-NEXT: jbe .LBB2_2
; CHECK-NEXT: .LBB2_4:
-; CHECK-NEXT: xorb %al, %al
+; CHECK-NEXT: xorl %eax, %eax
; CHECK-NEXT: ret
; CHECK-NEXT: .LBB2_2:
; CHECK-NEXT: movb $1, %al
@@ -153,7 +153,7 @@ bb30:
; Do any-size tail-merging when two candidate blocks will both require
; an unconditional jump to complete a two-way conditional branch.
-; CHECK: c_expand_expr_stmt:
+; CHECK-LABEL: c_expand_expr_stmt:
;
; This test only works when register allocation happens to use %rax for both
; load addresses.
@@ -161,7 +161,7 @@ bb30:
; CHE: jmp .LBB3_11
; CHE-NEXT: .LBB3_9:
; CHE-NEXT: movq 8(%rax), %rax
-; CHE-NEXT: xorb %dl, %dl
+; CHE-NEXT: xorl %edx, %edx
; CHE-NEXT: movb 16(%rax), %al
; CHE-NEXT: cmpb $16, %al
; CHE-NEXT: je .LBB3_11
@@ -275,7 +275,7 @@ declare fastcc %union.tree_node* @default_conversion(%union.tree_node*) nounwind
; instructions are involved. This function should have only
; one ret instruction.
-; CHECK: foo:
+; CHECK-LABEL: foo:
; CHECK: callq func
; CHECK-NEXT: .LBB4_2:
; CHECK-NEXT: popq
@@ -298,7 +298,7 @@ declare void @func()
; one - One instruction may be tail-duplicated even with optsize.
-; CHECK: one:
+; CHECK-LABEL: one:
; CHECK: movl $0, XYZ(%rip)
; CHECK: movl $0, XYZ(%rip)
@@ -335,7 +335,7 @@ return:
; tail instead of one. This is too much to be merged, given
; the optsize attribute.
-; CHECK: two:
+; CHECK-LABEL: two:
; CHECK-NOT: XYZ
; CHECK: ret
; CHECK: movl $0, XYZ(%rip)
@@ -374,7 +374,7 @@ return:
; two_nosize - Same as two, but without the optsize attribute.
; Now two instructions are enough to be tail-duplicated.
-; CHECK: two_nosize:
+; CHECK-LABEL: two_nosize:
; CHECK: movl $0, XYZ(%rip)
; CHECK: movl $1, XYZ(%rip)
; CHECK: movl $0, XYZ(%rip)
@@ -412,7 +412,7 @@ return:
; Tail-merging should merge the two ret instructions since one side
; can fall-through into the ret and the other side has to branch anyway.
-; CHECK: TESTE:
+; CHECK-LABEL: TESTE:
; CHECK: ret
; CHECK-NOT: ret
; CHECK: size TESTE
diff --git a/test/CodeGen/X86/tailcall-64.ll b/test/CodeGen/X86/tailcall-64.ll
index 60fe776617979..deab1dcc7eb9b 100644
--- a/test/CodeGen/X86/tailcall-64.ll
+++ b/test/CodeGen/X86/tailcall-64.ll
@@ -6,7 +6,7 @@ define i64 @test_trivial() {
%A = tail call i64 @testi()
ret i64 %A
}
-; CHECK: test_trivial:
+; CHECK-LABEL: test_trivial:
; CHECK: jmp _testi ## TAILCALL
@@ -15,7 +15,7 @@ define i64 @test_noop_bitcast() {
%B = bitcast i64 %A to i64
ret i64 %B
}
-; CHECK: test_noop_bitcast:
+; CHECK-LABEL: test_noop_bitcast:
; CHECK: jmp _testi ## TAILCALL
@@ -26,7 +26,7 @@ define i8* @test_inttoptr() {
ret i8* %B
}
-; CHECK: test_inttoptr:
+; CHECK-LABEL: test_inttoptr:
; CHECK: jmp _testi ## TAILCALL
@@ -37,7 +37,7 @@ define <4 x i32> @test_vectorbitcast() {
%B = bitcast <4 x float> %A to <4 x i32>
ret <4 x i32> %B
}
-; CHECK: test_vectorbitcast:
+; CHECK-LABEL: test_vectorbitcast:
; CHECK: jmp _testv ## TAILCALL
@@ -47,7 +47,7 @@ define {i64, i64} @test_pair_trivial() {
%A = tail call { i64, i64} @testp()
ret { i64, i64} %A
}
-; CHECK: test_pair_trivial:
+; CHECK-LABEL: test_pair_trivial:
; CHECK: jmp _testp ## TAILCALL
define {i64, i64} @test_pair_notail() {
@@ -58,7 +58,7 @@ define {i64, i64} @test_pair_notail() {
ret { i64, i64} %c
}
-; CHECK: test_pair_notail:
+; CHECK-LABEL: test_pair_notail:
; CHECK-NOT: jmp _testi
define {i64, i64} @test_pair_extract_trivial() {
@@ -72,7 +72,7 @@ define {i64, i64} @test_pair_extract_trivial() {
ret { i64, i64} %c
}
-; CHECK: test_pair_extract_trivial:
+; CHECK-LABEL: test_pair_extract_trivial:
; CHECK: jmp _testp ## TAILCALL
define {i64, i64} @test_pair_extract_notail() {
@@ -86,7 +86,7 @@ define {i64, i64} @test_pair_extract_notail() {
ret { i64, i64} %c
}
-; CHECK: test_pair_extract_notail:
+; CHECK-LABEL: test_pair_extract_notail:
; CHECK-NOT: jmp _testp
define {i8*, i64} @test_pair_extract_conv() {
@@ -102,7 +102,7 @@ define {i8*, i64} @test_pair_extract_conv() {
ret { i8*, i64} %c
}
-; CHECK: test_pair_extract_conv:
+; CHECK-LABEL: test_pair_extract_conv:
; CHECK: jmp _testp ## TAILCALL
define {i64, i64} @test_pair_extract_multiple() {
@@ -122,7 +122,7 @@ define {i64, i64} @test_pair_extract_multiple() {
ret { i64, i64} %e
}
-; CHECK: test_pair_extract_multiple:
+; CHECK-LABEL: test_pair_extract_multiple:
; CHECK: jmp _testp ## TAILCALL
define {i64, i64} @test_pair_extract_undef() {
@@ -134,7 +134,7 @@ define {i64, i64} @test_pair_extract_undef() {
ret { i64, i64} %b
}
-; CHECK: test_pair_extract_undef:
+; CHECK-LABEL: test_pair_extract_undef:
; CHECK: jmp _testp ## TAILCALL
declare { i64, { i32, i32 } } @testn()
@@ -154,7 +154,7 @@ define {i64, {i32, i32}} @test_nest() {
ret { i64, { i32, i32}} %c
}
-; CHECK: test_nest:
+; CHECK-LABEL: test_nest:
; CHECK: jmp _testn ## TAILCALL
%struct.A = type { i32 }
@@ -169,7 +169,7 @@ entry:
ret %struct.A* %x
}
-; CHECK: test_upcast:
+; CHECK-LABEL: test_upcast:
; CHECK: jmp _testu ## TAILCALL
; PR13006
@@ -206,7 +206,7 @@ entry:
; return funcs[n](0, 0, 0, 0, 0, 0);
; }
;
-; CHECK: rdar12282281
+; CHECK-LABEL: rdar12282281
; CHECK: jmpq *%r11 # TAILCALL
@funcs = external constant [0 x i32 (i8*, ...)*]
@@ -221,7 +221,7 @@ entry:
define x86_fp80 @fp80_call(x86_fp80 %x) nounwind {
entry:
-; CHECK: fp80_call:
+; CHECK-LABEL: fp80_call:
; CHECK: jmp _fp80_callee
%call = tail call x86_fp80 @fp80_callee(x86_fp80 %x) nounwind
ret x86_fp80 %call
@@ -232,7 +232,7 @@ declare x86_fp80 @fp80_callee(x86_fp80)
; rdar://12229511
define x86_fp80 @trunc_fp80(x86_fp80 %x) nounwind {
entry:
-; CHECK: trunc_fp80
+; CHECK-LABEL: trunc_fp80
; CHECK: callq _trunc
; CHECK-NOT: jmp _trunc
; CHECK: ret
diff --git a/test/CodeGen/X86/tailcall-calleesave.ll b/test/CodeGen/X86/tailcall-calleesave.ll
new file mode 100644
index 0000000000000..c748bcef36dc6
--- /dev/null
+++ b/test/CodeGen/X86/tailcall-calleesave.ll
@@ -0,0 +1,19 @@
+; RUN: llc -march=x86 -tailcallopt -mcpu=core < %s | FileCheck %s
+
+target triple = "i686-apple-darwin"
+
+declare fastcc void @foo(i32, i32, i32, i32, i32, i32)
+declare i32* @bar(i32*)
+
+define fastcc void @hoge(i32 %b) nounwind {
+; Do not overwrite pushed callee-save registers
+; CHECK: pushl
+; CHECK: subl $[[SIZE:[0-9]+]], %esp
+; CHECK-NOT: [[SIZE]](%esp)
+ %a = alloca i32
+ store i32 0, i32* %a
+ %d = tail call i32* @bar(i32* %a) nounwind
+ store i32 %b, i32* %d
+ tail call fastcc void @foo(i32 1, i32 2, i32 3, i32 4, i32 5, i32 6) nounwind
+ ret void
+}
diff --git a/test/CodeGen/X86/tailcall-cgp-dup.ll b/test/CodeGen/X86/tailcall-cgp-dup.ll
index a80b90f9eee2c..a51bc889924b4 100644
--- a/test/CodeGen/X86/tailcall-cgp-dup.ll
+++ b/test/CodeGen/X86/tailcall-cgp-dup.ll
@@ -4,7 +4,7 @@
; rdar://9147433
define i32 @foo(i32 %x) nounwind ssp {
-; CHECK: foo:
+; CHECK-LABEL: foo:
entry:
switch i32 %x, label %return [
i32 1, label %sw.bb
@@ -69,7 +69,7 @@ declare i8* @bar(i8*) uwtable optsize noinline ssp
define hidden %0* @thingWithValue(i8* %self) uwtable ssp {
entry:
-; CHECK: thingWithValue:
+; CHECK-LABEL: thingWithValue:
; CHECK: jmp _bar
br i1 undef, label %if.then.i, label %if.else.i
diff --git a/test/CodeGen/X86/tailcall-disable.ll b/test/CodeGen/X86/tailcall-disable.ll
index b628f5e537f07..1fd2d72dc570e 100644
--- a/test/CodeGen/X86/tailcall-disable.ll
+++ b/test/CodeGen/X86/tailcall-disable.ll
@@ -15,12 +15,12 @@ entry:
ret i32 %call
}
-; CALL: test1:
+; CALL-LABEL: test1:
; CALL-NOT: ret
; CALL: callq helper
; CALL: ret
-; JMP: test1:
+; JMP-LABEL: test1:
; JMP-NOT: ret
; JMP: jmp helper # TAILCALL
@@ -30,11 +30,11 @@ entry:
ret i32 %call
}
-; CALL: test2:
+; CALL-LABEL: test2:
; CALL-NOT: ret
; CALL: callq test2
; CALL: ret
-; JMP: test2:
+; JMP-LABEL: test2:
; JMP-NOT: ret
; JMP: jmp test2 # TAILCALL
diff --git a/test/CodeGen/X86/tailcall-largecode.ll b/test/CodeGen/X86/tailcall-largecode.ll
index e9b8721e6608a..f5662d97d13fa 100644
--- a/test/CodeGen/X86/tailcall-largecode.ll
+++ b/test/CodeGen/X86/tailcall-largecode.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -mtriple=x86_64-linux-gnu -tailcallopt -code-model=large | FileCheck %s
+; RUN: llc < %s -mtriple=x86_64-linux-gnu -tailcallopt -code-model=large -enable-misched=false | FileCheck %s
declare fastcc i32 @callee(i32 %arg)
define fastcc i32 @directcall(i32 %arg) {
diff --git a/test/CodeGen/X86/tailcallbyval64.ll b/test/CodeGen/X86/tailcallbyval64.ll
index 762160202c2df..75a6d874da37a 100644
--- a/test/CodeGen/X86/tailcallbyval64.ll
+++ b/test/CodeGen/X86/tailcallbyval64.ll
@@ -3,7 +3,7 @@
; FIXME: Win64 does not support byval.
; Expect the entry point.
-; CHECK: tailcaller:
+; CHECK-LABEL: tailcaller:
; Expect 2 rep;movs because of tail call byval lowering.
; CHECK: rep;
diff --git a/test/CodeGen/X86/tailcallfp2.ll b/test/CodeGen/X86/tailcallfp2.ll
index 04c4e95710c50..9ef0d27f7de6d 100644
--- a/test/CodeGen/X86/tailcallfp2.ll
+++ b/test/CodeGen/X86/tailcallfp2.ll
@@ -3,7 +3,7 @@
declare i32 @putchar(i32)
define fastcc i32 @checktail(i32 %x, i32* %f, i32 %g) nounwind {
-; CHECK: checktail:
+; CHECK-LABEL: checktail:
%tmp1 = icmp sgt i32 %x, 0
br i1 %tmp1, label %if-then, label %if-else
diff --git a/test/CodeGen/X86/tbm-intrinsics-x86_64.ll b/test/CodeGen/X86/tbm-intrinsics-x86_64.ll
new file mode 100644
index 0000000000000..1bc617541edb9
--- /dev/null
+++ b/test/CodeGen/X86/tbm-intrinsics-x86_64.ll
@@ -0,0 +1,43 @@
+; RUN: llc -mtriple=x86_64-unknown-unknown -march=x86-64 -mattr=+tbm < %s | FileCheck %s
+
+define i32 @test_x86_tbm_bextri_u32(i32 %a) nounwind readnone {
+entry:
+ ; CHECK-LABEL: test_x86_tbm_bextri_u32:
+ ; CHECK-NOT: mov
+ ; CHECK: bextr $
+ %0 = tail call i32 @llvm.x86.tbm.bextri.u32(i32 %a, i32 2814)
+ ret i32 %0
+}
+
+declare i32 @llvm.x86.tbm.bextri.u32(i32, i32) nounwind readnone
+
+define i32 @test_x86_tbm_bextri_u32_m(i32* nocapture %a) nounwind readonly {
+entry:
+ ; CHECK-LABEL: test_x86_tbm_bextri_u32_m:
+ ; CHECK-NOT: mov
+ ; CHECK: bextr $
+ %tmp1 = load i32* %a, align 4
+ %0 = tail call i32 @llvm.x86.tbm.bextri.u32(i32 %tmp1, i32 2814)
+ ret i32 %0
+}
+
+define i64 @test_x86_tbm_bextri_u64(i64 %a) nounwind readnone {
+entry:
+ ; CHECK-LABEL: test_x86_tbm_bextri_u64:
+ ; CHECK-NOT: mov
+ ; CHECK: bextr $
+ %0 = tail call i64 @llvm.x86.tbm.bextri.u64(i64 %a, i64 2814)
+ ret i64 %0
+}
+
+declare i64 @llvm.x86.tbm.bextri.u64(i64, i64) nounwind readnone
+
+define i64 @test_x86_tbm_bextri_u64_m(i64* nocapture %a) nounwind readonly {
+entry:
+ ; CHECK-LABEl: test_x86_tbm_bextri_u64_m:
+ ; CHECK-NOT: mov
+ ; CHECK: bextr $
+ %tmp1 = load i64* %a, align 8
+ %0 = tail call i64 @llvm.x86.tbm.bextri.u64(i64 %tmp1, i64 2814)
+ ret i64 %0
+}
diff --git a/test/CodeGen/X86/tbm_patterns.ll b/test/CodeGen/X86/tbm_patterns.ll
new file mode 100644
index 0000000000000..79eea10af3ae0
--- /dev/null
+++ b/test/CodeGen/X86/tbm_patterns.ll
@@ -0,0 +1,253 @@
+; RUN: llc -mtriple=x86_64-unknown-unknown -mattr=+tbm < %s | FileCheck %s
+
+define i32 @test_x86_tbm_bextri_u32(i32 %a) nounwind readnone {
+entry:
+ ; CHECK-LABEL: test_x86_tbm_bextri_u32:
+ ; CHECK-NOT: mov
+ ; CHECK: bextr $
+ %0 = lshr i32 %a, 4
+ %1 = and i32 %0, 4095
+ ret i32 %1
+}
+
+define i32 @test_x86_tbm_bextri_u32_m(i32* nocapture %a) nounwind readonly {
+entry:
+ ; CHECK-LABEL: test_x86_tbm_bextri_u32_m:
+ ; CHECK-NOT: mov
+ ; CHECK: bextr $
+ %0 = load i32* %a
+ %1 = lshr i32 %0, 4
+ %2 = and i32 %1, 4095
+ ret i32 %2
+}
+
+define i64 @test_x86_tbm_bextri_u64(i64 %a) nounwind readnone {
+entry:
+ ; CHECK-LABEL: test_x86_tbm_bextri_u64:
+ ; CHECK-NOT: mov
+ ; CHECK: bextr $
+ %0 = lshr i64 %a, 4
+ %1 = and i64 %0, 4095
+ ret i64 %1
+}
+
+define i64 @test_x86_tbm_bextri_u64_m(i64* nocapture %a) nounwind readonly {
+entry:
+ ; CHECK-LABEL: test_x86_tbm_bextri_u64_m:
+ ; CHECK-NOT: mov
+ ; CHECK: bextr $
+ %0 = load i64* %a
+ %1 = lshr i64 %0, 4
+ %2 = and i64 %1, 4095
+ ret i64 %2
+}
+
+define i32 @test_x86_tbm_blcfill_u32(i32 %a) nounwind readnone {
+entry:
+ ; CHECK-LABEL: test_x86_tbm_blcfill_u32:
+ ; CHECK-NOT: mov
+ ; CHECK: blcfill %
+ %0 = add i32 %a, 1
+ %1 = and i32 %0, %a
+ ret i32 %1
+}
+
+define i64 @test_x86_tbm_blcfill_u64(i64 %a) nounwind readnone {
+entry:
+ ; CHECK-LABEL: test_x86_tbm_blcfill_u64:
+ ; CHECK-NOT: mov
+ ; CHECK: blcfill %
+ %0 = add i64 %a, 1
+ %1 = and i64 %0, %a
+ ret i64 %1
+}
+
+define i32 @test_x86_tbm_blci_u32(i32 %a) nounwind readnone {
+entry:
+ ; CHECK-LABEL: test_x86_tbm_blci_u32:
+ ; CHECK-NOT: mov
+ ; CHECK: blci %
+ %0 = add i32 1, %a
+ %1 = xor i32 %0, -1
+ %2 = or i32 %1, %a
+ ret i32 %2
+}
+
+define i64 @test_x86_tbm_blci_u64(i64 %a) nounwind readnone {
+entry:
+ ; CHECK-LABEL: test_x86_tbm_blci_u64:
+ ; CHECK-NOT: mov
+ ; CHECK: blci %
+ %0 = add i64 1, %a
+ %1 = xor i64 %0, -1
+ %2 = or i64 %1, %a
+ ret i64 %2
+}
+
+define i32 @test_x86_tbm_blci_u32_b(i32 %a) nounwind readnone {
+entry:
+ ; CHECK-LABEL: test_x86_tbm_blci_u32_b:
+ ; CHECK-NOT: mov
+ ; CHECK: blci %
+ %0 = sub i32 -2, %a
+ %1 = or i32 %0, %a
+ ret i32 %1
+}
+
+define i64 @test_x86_tbm_blci_u64_b(i64 %a) nounwind readnone {
+entry:
+ ; CHECK-LABEL: test_x86_tbm_blci_u64_b:
+ ; CHECK-NOT: mov
+ ; CHECK: blci %
+ %0 = sub i64 -2, %a
+ %1 = or i64 %0, %a
+ ret i64 %1
+}
+
+define i32 @test_x86_tbm_blcic_u32(i32 %a) nounwind readnone {
+entry:
+ ; CHECK-LABEL: test_x86_tbm_blcic_u32:
+ ; CHECK-NOT: mov
+ ; CHECK: blcic %
+ %0 = xor i32 %a, -1
+ %1 = add i32 %a, 1
+ %2 = and i32 %1, %0
+ ret i32 %2
+}
+
+define i64 @test_x86_tbm_blcic_u64(i64 %a) nounwind readnone {
+entry:
+ ; CHECK-LABEL: test_x86_tbm_blcic_u64:
+ ; CHECK-NOT: mov
+ ; CHECK: blcic %
+ %0 = xor i64 %a, -1
+ %1 = add i64 %a, 1
+ %2 = and i64 %1, %0
+ ret i64 %2
+}
+
+define i32 @test_x86_tbm_blcmsk_u32(i32 %a) nounwind readnone {
+entry:
+ ; CHECK-LABEL: test_x86_tbm_blcmsk_u32:
+ ; CHECK-NOT: mov
+ ; CHECK: blcmsk %
+ %0 = add i32 %a, 1
+ %1 = xor i32 %0, %a
+ ret i32 %1
+}
+
+define i64 @test_x86_tbm_blcmsk_u64(i64 %a) nounwind readnone {
+entry:
+ ; CHECK-LABEL: test_x86_tbm_blcmsk_u64:
+ ; CHECK-NOT: mov
+ ; CHECK: blcmsk %
+ %0 = add i64 %a, 1
+ %1 = xor i64 %0, %a
+ ret i64 %1
+}
+
+define i32 @test_x86_tbm_blcs_u32(i32 %a) nounwind readnone {
+entry:
+ ; CHECK-LABEL: test_x86_tbm_blcs_u32:
+ ; CHECK-NOT: mov
+ ; CHECK: blcs %
+ %0 = add i32 %a, 1
+ %1 = or i32 %0, %a
+ ret i32 %1
+}
+
+define i64 @test_x86_tbm_blcs_u64(i64 %a) nounwind readnone {
+entry:
+ ; CHECK-LABEL: test_x86_tbm_blcs_u64:
+ ; CHECK-NOT: mov
+ ; CHECK: blcs %
+ %0 = add i64 %a, 1
+ %1 = or i64 %0, %a
+ ret i64 %1
+}
+
+define i32 @test_x86_tbm_blsfill_u32(i32 %a) nounwind readnone {
+entry:
+ ; CHECK-LABEL: test_x86_tbm_blsfill_u32:
+ ; CHECK-NOT: mov
+ ; CHECK: blsfill %
+ %0 = add i32 %a, -1
+ %1 = or i32 %0, %a
+ ret i32 %1
+}
+
+define i64 @test_x86_tbm_blsfill_u64(i64 %a) nounwind readnone {
+entry:
+ ; CHECK-LABEL: test_x86_tbm_blsfill_u64:
+ ; CHECK-NOT: mov
+ ; CHECK: blsfill %
+ %0 = add i64 %a, -1
+ %1 = or i64 %0, %a
+ ret i64 %1
+}
+
+define i32 @test_x86_tbm_blsic_u32(i32 %a) nounwind readnone {
+entry:
+ ; CHECK-LABEL: test_x86_tbm_blsic_u32:
+ ; CHECK-NOT: mov
+ ; CHECK: blsic %
+ %0 = xor i32 %a, -1
+ %1 = add i32 %a, -1
+ %2 = or i32 %0, %1
+ ret i32 %2
+}
+
+define i64 @test_x86_tbm_blsic_u64(i64 %a) nounwind readnone {
+entry:
+ ; CHECK-LABEL: test_x86_tbm_blsic_u64:
+ ; CHECK-NOT: mov
+ ; CHECK: blsic %
+ %0 = xor i64 %a, -1
+ %1 = add i64 %a, -1
+ %2 = or i64 %0, %1
+ ret i64 %2
+}
+
+define i32 @test_x86_tbm_t1mskc_u32(i32 %a) nounwind readnone {
+entry:
+ ; CHECK-LABEL: test_x86_tbm_t1mskc_u32:
+ ; CHECK-NOT: mov
+ ; CHECK: t1mskc %
+ %0 = xor i32 %a, -1
+ %1 = add i32 %a, 1
+ %2 = or i32 %0, %1
+ ret i32 %2
+}
+
+define i64 @Ttest_x86_tbm_t1mskc_u64(i64 %a) nounwind readnone {
+entry:
+ ; CHECK-LABEL: test_x86_tbm_t1mskc_u64:
+ ; CHECK-NOT: mov
+ ; CHECK: t1mskc %
+ %0 = xor i64 %a, -1
+ %1 = add i64 %a, 1
+ %2 = or i64 %0, %1
+ ret i64 %2
+}
+
+define i32 @test_x86_tbm_tzmsk_u32(i32 %a) nounwind readnone {
+entry:
+ ; CHECK-LABEL: test_x86_tbm_tzmsk_u32:
+ ; CHECK-NOT: mov
+ ; CHECK: tzmsk %
+ %0 = xor i32 %a, -1
+ %1 = add i32 %a, -1
+ %2 = and i32 %0, %1
+ ret i32 %2
+}
+
+define i64 @test_x86_tbm_tzmsk_u64(i64 %a) nounwind readnone {
+entry:
+ ; CHECK-LABEL: test_x86_tbm_tzmsk_u64:
+ ; CHECK-NOT: mov
+ ; CHECK: tzmsk %
+ %0 = xor i64 %a, -1
+ %1 = add i64 %a, -1
+ %2 = and i64 %0, %1
+ ret i64 %2
+}
diff --git a/test/CodeGen/X86/test-nofold.ll b/test/CodeGen/X86/test-nofold.ll
index 97db1b340e81c..19fbaafc194f4 100644
--- a/test/CodeGen/X86/test-nofold.ll
+++ b/test/CodeGen/X86/test-nofold.ll
@@ -2,10 +2,10 @@
; rdar://5752025
; We want:
-; CHECK: movl $42, %ecx
-; CHECK-NEXT: movl 4(%esp), %eax
-; CHECK-NEXT: andl $15, %eax
-; CHECK-NEXT: cmovnel %ecx, %eax
+; CHECK: movl 4(%esp), %ecx
+; CHECK-NEXT: andl $15, %ecx
+; CHECK-NEXT: movl $42, %eax
+; CHECK-NEXT: cmovel %ecx, %eax
; CHECK-NEXT: ret
;
; We don't want:
@@ -39,4 +39,3 @@ entry:
%retval = select i1 %tmp4, i32 %tmp2, i32 42 ; <i32> [#uses=1]
ret i32 %retval
}
-
diff --git a/test/CodeGen/X86/test-shrink.ll b/test/CodeGen/X86/test-shrink.ll
index 5bc28ecbc48c8..c9b76c88c1a29 100644
--- a/test/CodeGen/X86/test-shrink.ll
+++ b/test/CodeGen/X86/test-shrink.ll
@@ -2,10 +2,10 @@
; RUN: llc < %s -mtriple=x86_64-win32 | FileCheck %s --check-prefix=CHECK-64
; RUN: llc < %s -march=x86 | FileCheck %s --check-prefix=CHECK-32
-; CHECK-64: g64xh:
+; CHECK-64-LABEL: g64xh:
; CHECK-64: testb $8, {{%ah|%ch}}
; CHECK-64: ret
-; CHECK-32: g64xh:
+; CHECK-32-LABEL: g64xh:
; CHECK-32: testb $8, %ah
; CHECK-32: ret
define void @g64xh(i64 inreg %x) nounwind {
@@ -19,10 +19,10 @@ yes:
no:
ret void
}
-; CHECK-64: g64xl:
+; CHECK-64-LABEL: g64xl:
; CHECK-64: testb $8, [[A0L:%dil|%cl]]
; CHECK-64: ret
-; CHECK-32: g64xl:
+; CHECK-32-LABEL: g64xl:
; CHECK-32: testb $8, %al
; CHECK-32: ret
define void @g64xl(i64 inreg %x) nounwind {
@@ -36,10 +36,10 @@ yes:
no:
ret void
}
-; CHECK-64: g32xh:
+; CHECK-64-LABEL: g32xh:
; CHECK-64: testb $8, {{%ah|%ch}}
; CHECK-64: ret
-; CHECK-32: g32xh:
+; CHECK-32-LABEL: g32xh:
; CHECK-32: testb $8, %ah
; CHECK-32: ret
define void @g32xh(i32 inreg %x) nounwind {
@@ -53,10 +53,10 @@ yes:
no:
ret void
}
-; CHECK-64: g32xl:
+; CHECK-64-LABEL: g32xl:
; CHECK-64: testb $8, [[A0L]]
; CHECK-64: ret
-; CHECK-32: g32xl:
+; CHECK-32-LABEL: g32xl:
; CHECK-32: testb $8, %al
; CHECK-32: ret
define void @g32xl(i32 inreg %x) nounwind {
@@ -70,10 +70,10 @@ yes:
no:
ret void
}
-; CHECK-64: g16xh:
+; CHECK-64-LABEL: g16xh:
; CHECK-64: testb $8, {{%ah|%ch}}
; CHECK-64: ret
-; CHECK-32: g16xh:
+; CHECK-32-LABEL: g16xh:
; CHECK-32: testb $8, %ah
; CHECK-32: ret
define void @g16xh(i16 inreg %x) nounwind {
@@ -87,10 +87,10 @@ yes:
no:
ret void
}
-; CHECK-64: g16xl:
+; CHECK-64-LABEL: g16xl:
; CHECK-64: testb $8, [[A0L]]
; CHECK-64: ret
-; CHECK-32: g16xl:
+; CHECK-32-LABEL: g16xl:
; CHECK-32: testb $8, %al
; CHECK-32: ret
define void @g16xl(i16 inreg %x) nounwind {
@@ -104,10 +104,10 @@ yes:
no:
ret void
}
-; CHECK-64: g64x16:
+; CHECK-64-LABEL: g64x16:
; CHECK-64: testw $-32640, %[[A0W:di|cx]]
; CHECK-64: ret
-; CHECK-32: g64x16:
+; CHECK-32-LABEL: g64x16:
; CHECK-32: testw $-32640, %ax
; CHECK-32: ret
define void @g64x16(i64 inreg %x) nounwind {
@@ -121,10 +121,10 @@ yes:
no:
ret void
}
-; CHECK-64: g32x16:
+; CHECK-64-LABEL: g32x16:
; CHECK-64: testw $-32640, %[[A0W]]
; CHECK-64: ret
-; CHECK-32: g32x16:
+; CHECK-32-LABEL: g32x16:
; CHECK-32: testw $-32640, %ax
; CHECK-32: ret
define void @g32x16(i32 inreg %x) nounwind {
@@ -138,10 +138,10 @@ yes:
no:
ret void
}
-; CHECK-64: g64x32:
+; CHECK-64-LABEL: g64x32:
; CHECK-64: testl $268468352, %e[[A0W]]
; CHECK-64: ret
-; CHECK-32: g64x32:
+; CHECK-32-LABEL: g64x32:
; CHECK-32: testl $268468352, %eax
; CHECK-32: ret
define void @g64x32(i64 inreg %x) nounwind {
diff --git a/test/CodeGen/X86/testl-commute.ll b/test/CodeGen/X86/testl-commute.ll
index 0e6f6363cb89f..bf6debf175427 100644
--- a/test/CodeGen/X86/testl-commute.ll
+++ b/test/CodeGen/X86/testl-commute.ll
@@ -7,7 +7,7 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3
target triple = "x86_64-apple-darwin7"
define i32 @test(i32* %P, i32* %G) nounwind {
-; CHECK: test:
+; CHECK-LABEL: test:
; CHECK-NOT: ret
; CHECK: testl (%{{.*}}), %{{.*}}
; CHECK: ret
@@ -28,7 +28,7 @@ bb1: ; preds = %entry
}
define i32 @test2(i32* %P, i32* %G) nounwind {
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK-NOT: ret
; CHECK: testl (%{{.*}}), %{{.*}}
; CHECK: ret
@@ -49,7 +49,7 @@ bb1: ; preds = %entry
}
define i32 @test3(i32* %P, i32* %G) nounwind {
-; CHECK: test3:
+; CHECK-LABEL: test3:
; CHECK-NOT: ret
; CHECK: testl (%{{.*}}), %{{.*}}
; CHECK: ret
diff --git a/test/CodeGen/X86/this-return-64.ll b/test/CodeGen/X86/this-return-64.ll
index 2b26a89e3c87c..4e6be71238abe 100644
--- a/test/CodeGen/X86/this-return-64.ll
+++ b/test/CodeGen/X86/this-return-64.ll
@@ -14,7 +14,7 @@ declare %struct.B* @B_ctor_nothisret(%struct.B*, i32)
define %struct.C* @C_ctor(%struct.C* %this, i32 %y) {
entry:
-; CHECK: C_ctor:
+; CHECK-LABEL: C_ctor:
; CHECK: jmp B_ctor # TAILCALL
%0 = getelementptr inbounds %struct.C* %this, i64 0, i32 0
%call = tail call %struct.B* @B_ctor(%struct.B* %0, i32 %y)
@@ -23,7 +23,7 @@ entry:
define %struct.C* @C_ctor_nothisret(%struct.C* %this, i32 %y) {
entry:
-; CHECK: C_ctor_nothisret:
+; CHECK-LABEL: C_ctor_nothisret:
; CHECK-NOT: jmp B_ctor_nothisret
%0 = getelementptr inbounds %struct.C* %this, i64 0, i32 0
%call = tail call %struct.B* @B_ctor_nothisret(%struct.B* %0, i32 %y)
@@ -32,7 +32,7 @@ entry:
define %struct.D* @D_ctor(%struct.D* %this, i32 %y) {
entry:
-; CHECK: D_ctor:
+; CHECK-LABEL: D_ctor:
; CHECK: movq %rcx, [[SAVETHIS:%r[0-9a-z]+]]
; CHECK: callq A_ctor
; CHECK: movq [[SAVETHIS]], %rcx
@@ -48,7 +48,7 @@ entry:
define %struct.D* @D_ctor_nothisret(%struct.D* %this, i32 %y) {
entry:
-; CHECK: D_ctor_nothisret:
+; CHECK-LABEL: D_ctor_nothisret:
; CHECK: movq %rcx, [[SAVETHIS:%r[0-9a-z]+]]
; CHECK: callq A_ctor_nothisret
; CHECK: movq [[SAVETHIS]], %rcx
@@ -64,7 +64,7 @@ entry:
define %struct.E* @E_ctor(%struct.E* %this, i32 %x) {
entry:
-; CHECK: E_ctor:
+; CHECK-LABEL: E_ctor:
; CHECK: movq %rcx, [[SAVETHIS:%r[0-9a-z]+]]
; CHECK: callq B_ctor
; CHECK: movq [[SAVETHIS]], %rcx
@@ -77,7 +77,7 @@ entry:
define %struct.E* @E_ctor_nothisret(%struct.E* %this, i32 %x) {
entry:
-; CHECK: E_ctor_nothisret:
+; CHECK-LABEL: E_ctor_nothisret:
; CHECK: movq %rcx, [[SAVETHIS:%r[0-9a-z]+]]
; CHECK: callq B_ctor_nothisret
; CHECK: movq [[SAVETHIS]], %rcx
diff --git a/test/CodeGen/X86/tls-local-dynamic.ll b/test/CodeGen/X86/tls-local-dynamic.ll
index c5fd16bbec22f..4841e52c5b0e6 100644
--- a/test/CodeGen/X86/tls-local-dynamic.ll
+++ b/test/CodeGen/X86/tls-local-dynamic.ll
@@ -10,7 +10,7 @@ entry:
ret i32* @x
; FIXME: This function uses a single thread-local variable,
; so we might want to fall back to general-dynamic here.
-; CHECK: get_x:
+; CHECK-LABEL: get_x:
; CHECK: leaq x@TLSLD(%rip), %rdi
; CHECK-NEXT: callq __tls_get_addr@PLT
; CHECK: x@DTPOFF
@@ -26,7 +26,7 @@ entry:
%cmp = icmp eq i32 %i, 1
br i1 %cmp, label %return, label %if.else
; This bb does not access TLS, so should not call __tls_get_addr.
-; CHECK: f:
+; CHECK-LABEL: f:
; CHECK-NOT: __tls_get_addr
; CHECK: je
diff --git a/test/CodeGen/X86/tls-models.ll b/test/CodeGen/X86/tls-models.ll
index 7c527e210a90a..8e3e95886ad8b 100644
--- a/test/CodeGen/X86/tls-models.ll
+++ b/test/CodeGen/X86/tls-models.ll
@@ -25,15 +25,15 @@ entry:
ret i32* @external_gd
; Non-PIC code can use initial-exec, PIC code has to use general dynamic.
- ; X64: f1:
+ ; X64-LABEL: f1:
; X64: external_gd@GOTTPOFF
- ; X32: f1:
+ ; X32-LABEL: f1:
; X32: external_gd@INDNTPOFF
- ; X64_PIC: f1:
+ ; X64_PIC-LABEL: f1:
; X64_PIC: external_gd@TLSGD
- ; X32_PIC: f1:
+ ; X32_PIC-LABEL: f1:
; X32_PIC: external_gd@TLSGD
- ; DARWIN: f1:
+ ; DARWIN-LABEL: f1:
; DARWIN: _external_gd@TLVP
}
@@ -42,15 +42,15 @@ entry:
ret i32* @internal_gd
; Non-PIC code can use local exec, PIC code can use local dynamic.
- ; X64: f2:
+ ; X64-LABEL: f2:
; X64: internal_gd@TPOFF
- ; X32: f2:
+ ; X32-LABEL: f2:
; X32: internal_gd@NTPOFF
- ; X64_PIC: f2:
+ ; X64_PIC-LABEL: f2:
; X64_PIC: internal_gd@TLSLD
- ; X32_PIC: f2:
+ ; X32_PIC-LABEL: f2:
; X32_PIC: internal_gd@TLSLDM
- ; DARWIN: f2:
+ ; DARWIN-LABEL: f2:
; DARWIN: _internal_gd@TLVP
}
@@ -62,15 +62,15 @@ entry:
ret i32* @external_ld
; Non-PIC code can use initial exec, PIC code use local dynamic as specified.
- ; X64: f3:
+ ; X64-LABEL: f3:
; X64: external_ld@GOTTPOFF
- ; X32: f3:
+ ; X32-LABEL: f3:
; X32: external_ld@INDNTPOFF
- ; X64_PIC: f3:
+ ; X64_PIC-LABEL: f3:
; X64_PIC: external_ld@TLSLD
- ; X32_PIC: f3:
+ ; X32_PIC-LABEL: f3:
; X32_PIC: external_ld@TLSLDM
- ; DARWIN: f3:
+ ; DARWIN-LABEL: f3:
; DARWIN: _external_ld@TLVP
}
@@ -79,15 +79,15 @@ entry:
ret i32* @internal_ld
; Non-PIC code can use local exec, PIC code can use local dynamic.
- ; X64: f4:
+ ; X64-LABEL: f4:
; X64: internal_ld@TPOFF
- ; X32: f4:
+ ; X32-LABEL: f4:
; X32: internal_ld@NTPOFF
- ; X64_PIC: f4:
+ ; X64_PIC-LABEL: f4:
; X64_PIC: internal_ld@TLSLD
- ; X32_PIC: f4:
+ ; X32_PIC-LABEL: f4:
; X32_PIC: internal_ld@TLSLDM
- ; DARWIN: f4:
+ ; DARWIN-LABEL: f4:
; DARWIN: _internal_ld@TLVP
}
@@ -99,15 +99,15 @@ entry:
ret i32* @external_ie
; Non-PIC and PIC code will use initial exec as specified.
- ; X64: f5:
+ ; X64-LABEL: f5:
; X64: external_ie@GOTTPOFF
- ; X32: f5:
+ ; X32-LABEL: f5:
; X32: external_ie@INDNTPOFF
- ; X64_PIC: f5:
+ ; X64_PIC-LABEL: f5:
; X64_PIC: external_ie@GOTTPOFF
- ; X32_PIC: f5:
+ ; X32_PIC-LABEL: f5:
; X32_PIC: external_ie@GOTNTPOFF
- ; DARWIN: f5:
+ ; DARWIN-LABEL: f5:
; DARWIN: _external_ie@TLVP
}
@@ -116,15 +116,15 @@ entry:
ret i32* @internal_ie
; Non-PIC code can use local exec, PIC code use initial exec as specified.
- ; X64: f6:
+ ; X64-LABEL: f6:
; X64: internal_ie@TPOFF
- ; X32: f6:
+ ; X32-LABEL: f6:
; X32: internal_ie@NTPOFF
- ; X64_PIC: f6:
+ ; X64_PIC-LABEL: f6:
; X64_PIC: internal_ie@GOTTPOFF
- ; X32_PIC: f6:
+ ; X32_PIC-LABEL: f6:
; X32_PIC: internal_ie@GOTNTPOFF
- ; DARWIN: f6:
+ ; DARWIN-LABEL: f6:
; DARWIN: _internal_ie@TLVP
}
@@ -136,15 +136,15 @@ entry:
ret i32* @external_le
; Non-PIC and PIC code will use local exec as specified.
- ; X64: f7:
+ ; X64-LABEL: f7:
; X64: external_le@TPOFF
- ; X32: f7:
+ ; X32-LABEL: f7:
; X32: external_le@NTPOFF
- ; X64_PIC: f7:
+ ; X64_PIC-LABEL: f7:
; X64_PIC: external_le@TPOFF
- ; X32_PIC: f7:
+ ; X32_PIC-LABEL: f7:
; X32_PIC: external_le@NTPOFF
- ; DARWIN: f7:
+ ; DARWIN-LABEL: f7:
; DARWIN: _external_le@TLVP
}
@@ -153,14 +153,14 @@ entry:
ret i32* @internal_le
; Non-PIC and PIC code will use local exec as specified.
- ; X64: f8:
+ ; X64-LABEL: f8:
; X64: internal_le@TPOFF
- ; X32: f8:
+ ; X32-LABEL: f8:
; X32: internal_le@NTPOFF
- ; X64_PIC: f8:
+ ; X64_PIC-LABEL: f8:
; X64_PIC: internal_le@TPOFF
- ; X32_PIC: f8:
+ ; X32_PIC-LABEL: f8:
; X32_PIC: internal_le@NTPOFF
- ; DARWIN: f8:
+ ; DARWIN-LABEL: f8:
; DARWIN: _internal_le@TLVP
}
diff --git a/test/CodeGen/X86/tls-pic.ll b/test/CodeGen/X86/tls-pic.ll
index b823f0af2cdf5..0c79da6667a18 100644
--- a/test/CodeGen/X86/tls-pic.ll
+++ b/test/CodeGen/X86/tls-pic.ll
@@ -11,11 +11,11 @@ entry:
ret i32 %tmp1
}
-; X32: f1:
+; X32-LABEL: f1:
; X32: leal i@TLSGD(,%ebx), %eax
; X32: calll ___tls_get_addr@PLT
-; X64: f1:
+; X64-LABEL: f1:
; X64: leaq i@TLSGD(%rip), %rdi
; X64: callq __tls_get_addr@PLT
@@ -27,11 +27,11 @@ entry:
ret i32* @i
}
-; X32: f2:
+; X32-LABEL: f2:
; X32: leal i@TLSGD(,%ebx), %eax
; X32: calll ___tls_get_addr@PLT
-; X64: f2:
+; X64-LABEL: f2:
; X64: leaq i@TLSGD(%rip), %rdi
; X64: callq __tls_get_addr@PLT
@@ -43,11 +43,11 @@ entry:
ret i32 %tmp1
}
-; X32: f3:
+; X32-LABEL: f3:
; X32: leal i@TLSGD(,%ebx), %eax
; X32: calll ___tls_get_addr@PLT
-; X64: f3:
+; X64-LABEL: f3:
; X64: leaq i@TLSGD(%rip), %rdi
; X64: callq __tls_get_addr@PLT
@@ -57,11 +57,11 @@ entry:
ret i32* @i
}
-; X32: f4:
+; X32-LABEL: f4:
; X32: leal i@TLSGD(,%ebx), %eax
; X32: calll ___tls_get_addr@PLT
-; X64: f4:
+; X64-LABEL: f4:
; X64: leaq i@TLSGD(%rip), %rdi
; X64: callq __tls_get_addr@PLT
@@ -74,13 +74,13 @@ entry:
ret i32 %add
}
-; X32: f5:
+; X32-LABEL: f5:
; X32: leal {{[jk]}}@TLSLDM(%ebx)
; X32: calll ___tls_get_addr@PLT
; X32: movl {{[jk]}}@DTPOFF(%e
; X32: addl {{[jk]}}@DTPOFF(%e
-; X64: f5:
+; X64-LABEL: f5:
; X64: leaq {{[jk]}}@TLSLD(%rip), %rdi
; X64: callq __tls_get_addr@PLT
; X64: movl {{[jk]}}@DTPOFF(%r
diff --git a/test/CodeGen/X86/tls-pie.ll b/test/CodeGen/X86/tls-pie.ll
index 3fca9f5a37910..d1e09c2442f78 100644
--- a/test/CodeGen/X86/tls-pie.ll
+++ b/test/CodeGen/X86/tls-pie.ll
@@ -7,10 +7,10 @@
@i2 = external thread_local global i32
define i32 @f1() {
-; X32: f1:
+; X32-LABEL: f1:
; X32: movl %gs:i@NTPOFF, %eax
; X32-NEXT: ret
-; X64: f1:
+; X64-LABEL: f1:
; X64: movl %fs:i@TPOFF, %eax
; X64-NEXT: ret
@@ -20,11 +20,11 @@ entry:
}
define i32* @f2() {
-; X32: f2:
+; X32-LABEL: f2:
; X32: movl %gs:0, %eax
; X32-NEXT: leal i@NTPOFF(%eax), %eax
; X32-NEXT: ret
-; X64: f2:
+; X64-LABEL: f2:
; X64: movq %fs:0, %rax
; X64-NEXT: leaq i@TPOFF(%rax), %rax
; X64-NEXT: ret
@@ -34,7 +34,7 @@ entry:
}
define i32 @f3() {
-; X32: f3:
+; X32-LABEL: f3:
; X32: calll .L{{[0-9]+}}$pb
; X32-NEXT: .L{{[0-9]+}}$pb:
; X32-NEXT: popl %eax
@@ -43,7 +43,7 @@ define i32 @f3() {
; X32-NEXT: movl i2@GOTNTPOFF(%eax), %eax
; X32-NEXT: movl %gs:(%eax), %eax
; X32-NEXT: ret
-; X64: f3:
+; X64-LABEL: f3:
; X64: movq i2@GOTTPOFF(%rip), %rax
; X64-NEXT: movl %fs:(%rax), %eax
; X64-NEXT: ret
@@ -54,7 +54,7 @@ entry:
}
define i32* @f4() {
-; X32: f4:
+; X32-LABEL: f4:
; X32: calll .L{{[0-9]+}}$pb
; X32-NEXT: .L{{[0-9]+}}$pb:
; X32-NEXT: popl %ecx
@@ -63,7 +63,7 @@ define i32* @f4() {
; X32-NEXT: movl %gs:0, %eax
; X32-NEXT: addl i2@GOTNTPOFF(%ecx), %eax
; X32-NEXT: ret
-; X64: f4:
+; X64-LABEL: f4:
; X64: movq %fs:0, %rax
; X64-NEXT: addq i2@GOTTPOFF(%rip), %rax
; X64-NEXT: ret
diff --git a/test/CodeGen/X86/tls.ll b/test/CodeGen/X86/tls.ll
index 8cdecd81bff51..76a840260b9a0 100644
--- a/test/CodeGen/X86/tls.ll
+++ b/test/CodeGen/X86/tls.ll
@@ -12,19 +12,19 @@
@b1 = thread_local global i8 0
define i32 @f1() {
-; X32_LINUX: f1:
+; X32_LINUX-LABEL: f1:
; X32_LINUX: movl %gs:i1@NTPOFF, %eax
; X32_LINUX-NEXT: ret
-; X64_LINUX: f1:
+; X64_LINUX-LABEL: f1:
; X64_LINUX: movl %fs:i1@TPOFF, %eax
; X64_LINUX-NEXT: ret
-; X32_WIN: f1:
+; X32_WIN-LABEL: f1:
; X32_WIN: movl __tls_index, %eax
; X32_WIN-NEXT: movl %fs:__tls_array, %ecx
; X32_WIN-NEXT: movl (%ecx,%eax,4), %eax
; X32_WIN-NEXT: movl _i1@SECREL32(%eax), %eax
; X32_WIN-NEXT: ret
-; X64_WIN: f1:
+; X64_WIN-LABEL: f1:
; X64_WIN: movl _tls_index(%rip), %eax
; X64_WIN-NEXT: movq %gs:88, %rcx
; X64_WIN-NEXT: movq (%rcx,%rax,8), %rax
@@ -37,21 +37,21 @@ entry:
}
define i32* @f2() {
-; X32_LINUX: f2:
+; X32_LINUX-LABEL: f2:
; X32_LINUX: movl %gs:0, %eax
; X32_LINUX-NEXT: leal i1@NTPOFF(%eax), %eax
; X32_LINUX-NEXT: ret
-; X64_LINUX: f2:
+; X64_LINUX-LABEL: f2:
; X64_LINUX: movq %fs:0, %rax
; X64_LINUX-NEXT: leaq i1@TPOFF(%rax), %rax
; X64_LINUX-NEXT: ret
-; X32_WIN: f2:
+; X32_WIN-LABEL: f2:
; X32_WIN: movl __tls_index, %eax
; X32_WIN-NEXT: movl %fs:__tls_array, %ecx
; X32_WIN-NEXT: movl (%ecx,%eax,4), %eax
; X32_WIN-NEXT: leal _i1@SECREL32(%eax), %eax
; X32_WIN-NEXT: ret
-; X64_WIN: f2:
+; X64_WIN-LABEL: f2:
; X64_WIN: movl _tls_index(%rip), %eax
; X64_WIN-NEXT: movq %gs:88, %rcx
; X64_WIN-NEXT: movq (%rcx,%rax,8), %rax
@@ -63,21 +63,21 @@ entry:
}
define i32 @f3() nounwind {
-; X32_LINUX: f3:
+; X32_LINUX-LABEL: f3:
; X32_LINUX: movl i2@INDNTPOFF, %eax
; X32_LINUX-NEXT: movl %gs:(%eax), %eax
; X32_LINUX-NEXT: ret
-; X64_LINUX: f3:
+; X64_LINUX-LABEL: f3:
; X64_LINUX: movq i2@GOTTPOFF(%rip), %rax
; X64_LINUX-NEXT: movl %fs:(%rax), %eax
; X64_LINUX-NEXT: ret
-; X32_WIN: f3:
+; X32_WIN-LABEL: f3:
; X32_WIN: movl __tls_index, %eax
; X32_WIN-NEXT: movl %fs:__tls_array, %ecx
; X32_WIN-NEXT: movl (%ecx,%eax,4), %eax
; X32_WIN-NEXT: movl _i2@SECREL32(%eax), %eax
; X32_WIN-NEXT: ret
-; X64_WIN: f3:
+; X64_WIN-LABEL: f3:
; X64_WIN: movl _tls_index(%rip), %eax
; X64_WIN-NEXT: movq %gs:88, %rcx
; X64_WIN-NEXT: movq (%rcx,%rax,8), %rax
@@ -90,21 +90,21 @@ entry:
}
define i32* @f4() {
-; X32_LINUX: f4:
+; X32_LINUX-LABEL: f4:
; X32_LINUX: movl %gs:0, %eax
; X32_LINUX-NEXT: addl i2@INDNTPOFF, %eax
; X32_LINUX-NEXT: ret
-; X64_LINUX: f4:
+; X64_LINUX-LABEL: f4:
; X64_LINUX: movq %fs:0, %rax
; X64_LINUX-NEXT: addq i2@GOTTPOFF(%rip), %rax
; X64_LINUX-NEXT: ret
-; X32_WIN: f4:
+; X32_WIN-LABEL: f4:
; X32_WIN: movl __tls_index, %eax
; X32_WIN-NEXT: movl %fs:__tls_array, %ecx
; X32_WIN-NEXT: movl (%ecx,%eax,4), %eax
; X32_WIN-NEXT: leal _i2@SECREL32(%eax), %eax
; X32_WIN-NEXT: ret
-; X64_WIN: f4:
+; X64_WIN-LABEL: f4:
; X64_WIN: movl _tls_index(%rip), %eax
; X64_WIN-NEXT: movq %gs:88, %rcx
; X64_WIN-NEXT: movq (%rcx,%rax,8), %rax
@@ -116,19 +116,19 @@ entry:
}
define i32 @f5() nounwind {
-; X32_LINUX: f5:
+; X32_LINUX-LABEL: f5:
; X32_LINUX: movl %gs:i3@NTPOFF, %eax
; X32_LINUX-NEXT: ret
-; X64_LINUX: f5:
+; X64_LINUX-LABEL: f5:
; X64_LINUX: movl %fs:i3@TPOFF, %eax
; X64_LINUX-NEXT: ret
-; X32_WIN: f5:
+; X32_WIN-LABEL: f5:
; X32_WIN: movl __tls_index, %eax
; X32_WIN-NEXT: movl %fs:__tls_array, %ecx
; X32_WIN-NEXT: movl (%ecx,%eax,4), %eax
; X32_WIN-NEXT: movl _i3@SECREL32(%eax), %eax
; X32_WIN-NEXT: ret
-; X64_WIN: f5:
+; X64_WIN-LABEL: f5:
; X64_WIN: movl _tls_index(%rip), %eax
; X64_WIN-NEXT: movq %gs:88, %rcx
; X64_WIN-NEXT: movq (%rcx,%rax,8), %rax
@@ -141,21 +141,21 @@ entry:
}
define i32* @f6() {
-; X32_LINUX: f6:
+; X32_LINUX-LABEL: f6:
; X32_LINUX: movl %gs:0, %eax
; X32_LINUX-NEXT: leal i3@NTPOFF(%eax), %eax
; X32_LINUX-NEXT: ret
-; X64_LINUX: f6:
+; X64_LINUX-LABEL: f6:
; X64_LINUX: movq %fs:0, %rax
; X64_LINUX-NEXT: leaq i3@TPOFF(%rax), %rax
; X64_LINUX-NEXT: ret
-; X32_WIN: f6:
+; X32_WIN-LABEL: f6:
; X32_WIN: movl __tls_index, %eax
; X32_WIN-NEXT: movl %fs:__tls_array, %ecx
; X32_WIN-NEXT: movl (%ecx,%eax,4), %eax
; X32_WIN-NEXT: leal _i3@SECREL32(%eax), %eax
; X32_WIN-NEXT: ret
-; X64_WIN: f6:
+; X64_WIN-LABEL: f6:
; X64_WIN: movl _tls_index(%rip), %eax
; X64_WIN-NEXT: movq %gs:88, %rcx
; X64_WIN-NEXT: movq (%rcx,%rax,8), %rax
@@ -167,10 +167,10 @@ entry:
}
define i32 @f7() {
-; X32_LINUX: f7:
+; X32_LINUX-LABEL: f7:
; X32_LINUX: movl %gs:i4@NTPOFF, %eax
; X32_LINUX-NEXT: ret
-; X64_LINUX: f7:
+; X64_LINUX-LABEL: f7:
; X64_LINUX: movl %fs:i4@TPOFF, %eax
; X64_LINUX-NEXT: ret
@@ -180,11 +180,11 @@ entry:
}
define i32* @f8() {
-; X32_LINUX: f8:
+; X32_LINUX-LABEL: f8:
; X32_LINUX: movl %gs:0, %eax
; X32_LINUX-NEXT: leal i4@NTPOFF(%eax), %eax
; X32_LINUX-NEXT: ret
-; X64_LINUX: f8:
+; X64_LINUX-LABEL: f8:
; X64_LINUX: movq %fs:0, %rax
; X64_LINUX-NEXT: leaq i4@TPOFF(%rax), %rax
; X64_LINUX-NEXT: ret
@@ -194,10 +194,10 @@ entry:
}
define i32 @f9() {
-; X32_LINUX: f9:
+; X32_LINUX-LABEL: f9:
; X32_LINUX: movl %gs:i5@NTPOFF, %eax
; X32_LINUX-NEXT: ret
-; X64_LINUX: f9:
+; X64_LINUX-LABEL: f9:
; X64_LINUX: movl %fs:i5@TPOFF, %eax
; X64_LINUX-NEXT: ret
@@ -207,11 +207,11 @@ entry:
}
define i32* @f10() {
-; X32_LINUX: f10:
+; X32_LINUX-LABEL: f10:
; X32_LINUX: movl %gs:0, %eax
; X32_LINUX-NEXT: leal i5@NTPOFF(%eax), %eax
; X32_LINUX-NEXT: ret
-; X64_LINUX: f10:
+; X64_LINUX-LABEL: f10:
; X64_LINUX: movq %fs:0, %rax
; X64_LINUX-NEXT: leaq i5@TPOFF(%rax), %rax
; X64_LINUX-NEXT: ret
@@ -221,29 +221,24 @@ entry:
}
define i16 @f11() {
-; X32_LINUX: f11:
+; X32_LINUX-LABEL: f11:
; X32_LINUX: movzwl %gs:s1@NTPOFF, %eax
-; Why is this kill line here, but no where else?
-; X32_LINUX-NEXT: # kill
-; X32_LINUX-NEXT: ret
-; X64_LINUX: f11:
+; X32_LINUX: ret
+; X64_LINUX-LABEL: f11:
; X64_LINUX: movzwl %fs:s1@TPOFF, %eax
-; X64_LINUX-NEXT: # kill
-; X64_LINUX-NEXT: ret
-; X32_WIN: f11:
+; X64_LINUX: ret
+; X32_WIN-LABEL: f11:
; X32_WIN: movl __tls_index, %eax
; X32_WIN-NEXT: movl %fs:__tls_array, %ecx
; X32_WIN-NEXT: movl (%ecx,%eax,4), %eax
; X32_WIN-NEXT: movzwl _s1@SECREL32(%eax), %eax
-; X32_WIN-NEXT: # kill
-; X32_WIN-NEXT: ret
-; X64_WIN: f11:
+; X32_WIN: ret
+; X64_WIN-LABEL: f11:
; X64_WIN: movl _tls_index(%rip), %eax
; X64_WIN-NEXT: movq %gs:88, %rcx
; X64_WIN-NEXT: movq (%rcx,%rax,8), %rax
; X64_WIN-NEXT: movzwl s1@SECREL32(%rax), %eax
-; X64_WIN-NEXT: # kill
-; X64_WIN-NEXT: ret
+; X64_WIN: ret
entry:
%tmp1 = load i16* @s1
@@ -251,19 +246,19 @@ entry:
}
define i32 @f12() {
-; X32_LINUX: f12:
+; X32_LINUX-LABEL: f12:
; X32_LINUX: movswl %gs:s1@NTPOFF, %eax
; X32_LINUX-NEXT: ret
-; X64_LINUX: f12:
+; X64_LINUX-LABEL: f12:
; X64_LINUX: movswl %fs:s1@TPOFF, %eax
; X64_LINUX-NEXT: ret
-; X32_WIN: f12:
+; X32_WIN-LABEL: f12:
; X32_WIN: movl __tls_index, %eax
; X32_WIN-NEXT: movl %fs:__tls_array, %ecx
; X32_WIN-NEXT: movl (%ecx,%eax,4), %eax
; X32_WIN-NEXT: movswl _s1@SECREL32(%eax), %eax
; X32_WIN-NEXT: ret
-; X64_WIN: f12:
+; X64_WIN-LABEL: f12:
; X64_WIN: movl _tls_index(%rip), %eax
; X64_WIN-NEXT: movq %gs:88, %rcx
; X64_WIN-NEXT: movq (%rcx,%rax,8), %rax
@@ -277,19 +272,19 @@ entry:
}
define i8 @f13() {
-; X32_LINUX: f13:
+; X32_LINUX-LABEL: f13:
; X32_LINUX: movb %gs:b1@NTPOFF, %al
; X32_LINUX-NEXT: ret
-; X64_LINUX: f13:
+; X64_LINUX-LABEL: f13:
; X64_LINUX: movb %fs:b1@TPOFF, %al
; X64_LINUX-NEXT: ret
-; X32_WIN: f13:
+; X32_WIN-LABEL: f13:
; X32_WIN: movl __tls_index, %eax
; X32_WIN-NEXT: movl %fs:__tls_array, %ecx
; X32_WIN-NEXT: movl (%ecx,%eax,4), %eax
; X32_WIN-NEXT: movb _b1@SECREL32(%eax), %al
; X32_WIN-NEXT: ret
-; X64_WIN: f13:
+; X64_WIN-LABEL: f13:
; X64_WIN: movl _tls_index(%rip), %eax
; X64_WIN-NEXT: movq %gs:88, %rcx
; X64_WIN-NEXT: movq (%rcx,%rax,8), %rax
@@ -302,19 +297,19 @@ entry:
}
define i32 @f14() {
-; X32_LINUX: f14:
+; X32_LINUX-LABEL: f14:
; X32_LINUX: movsbl %gs:b1@NTPOFF, %eax
; X32_LINUX-NEXT: ret
-; X64_LINUX: f14:
+; X64_LINUX-LABEL: f14:
; X64_LINUX: movsbl %fs:b1@TPOFF, %eax
; X64_LINUX-NEXT: ret
-; X32_WIN: f14:
+; X32_WIN-LABEL: f14:
; X32_WIN: movl __tls_index, %eax
; X32_WIN-NEXT: movl %fs:__tls_array, %ecx
; X32_WIN-NEXT: movl (%ecx,%eax,4), %eax
; X32_WIN-NEXT: movsbl _b1@SECREL32(%eax), %eax
; X32_WIN-NEXT: ret
-; X64_WIN: f14:
+; X64_WIN-LABEL: f14:
; X64_WIN: movl _tls_index(%rip), %eax
; X64_WIN-NEXT: movq %gs:88, %rcx
; X64_WIN-NEXT: movq (%rcx,%rax,8), %rax
diff --git a/test/CodeGen/X86/tlv-1.ll b/test/CodeGen/X86/tlv-1.ll
index 92dac3096629c..66e2f819ee243 100644
--- a/test/CodeGen/X86/tlv-1.ll
+++ b/test/CodeGen/X86/tlv-1.ll
@@ -5,7 +5,7 @@
@c = external thread_local global %struct.A, align 4
define void @main() nounwind ssp {
-; CHECK: main:
+; CHECK-LABEL: main:
entry:
call void @llvm.memset.p0i8.i64(i8* getelementptr inbounds (%struct.A* @c, i32 0, i32 0, i32 0), i8 0, i64 60, i32 1, i1 false)
unreachable
@@ -18,7 +18,7 @@ entry:
; rdar://10291355
define i32 @test() nounwind readonly ssp {
entry:
-; CHECK: test:
+; CHECK-LABEL: test:
; CHECK: movq _a@TLVP(%rip),
; CHECK: callq *
; CHECK: movl (%rax), [[REGISTER:%[a-z]+]]
diff --git a/test/CodeGen/X86/tlv-3.ll b/test/CodeGen/X86/tlv-3.ll
new file mode 100644
index 0000000000000..4f793051836f4
--- /dev/null
+++ b/test/CodeGen/X86/tlv-3.ll
@@ -0,0 +1,10 @@
+; RUN: llc < %s -mtriple x86_64-apple-darwin | FileCheck %s
+; PR17964
+
+; CHECK: __DATA,__thread_data,thread_local_regular
+; CHECK: _foo$tlv$init
+@foo = weak_odr thread_local global i8 1, align 4
+
+define i32 @main() {
+ ret i32 0
+}
diff --git a/test/CodeGen/X86/trap.ll b/test/CodeGen/X86/trap.ll
index 3f44be0b500c6..149c667c8cb7c 100644
--- a/test/CodeGen/X86/trap.ll
+++ b/test/CodeGen/X86/trap.ll
@@ -1,6 +1,6 @@
; RUN: llc < %s -march=x86 -mcpu=yonah | FileCheck %s
-; CHECK: test0:
+; CHECK-LABEL: test0:
; CHECK: ud2
define i32 @test0() noreturn nounwind {
entry:
@@ -8,7 +8,7 @@ entry:
unreachable
}
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: int3
define i32 @test1() noreturn nounwind {
entry:
diff --git a/test/CodeGen/X86/trunc-ext-ld-st.ll b/test/CodeGen/X86/trunc-ext-ld-st.ll
index 1d22a185def38..d230f1f7e2c68 100644
--- a/test/CodeGen/X86/trunc-ext-ld-st.ll
+++ b/test/CodeGen/X86/trunc-ext-ld-st.ll
@@ -1,6 +1,6 @@
-; RUN: llc < %s -march=x86-64 -mcpu=corei7 -mattr=+sse41 | FileCheck %s
+; RUN: llc < %s -march=x86-64 -mcpu=corei7 -mattr=+sse4.1 | FileCheck %s
-;CHECK: load_2_i8
+;CHECK-LABEL: load_2_i8:
; A single 16-bit load
;CHECK: pmovzxbq
;CHECK: paddq
@@ -16,7 +16,7 @@ define void @load_2_i8(<2 x i8>* %A) {
ret void
}
-;CHECK: load_2_i16
+;CHECK-LABEL: load_2_i16:
; Read 32-bits
;CHECK: pmovzxwq
;CHECK: paddq
@@ -30,7 +30,7 @@ define void @load_2_i16(<2 x i16>* %A) {
ret void
}
-;CHECK: load_2_i32
+;CHECK-LABEL: load_2_i32:
;CHECK: pmovzxdq
;CHECK: paddq
;CHECK: pshufd
@@ -42,7 +42,7 @@ define void @load_2_i32(<2 x i32>* %A) {
ret void
}
-;CHECK: load_4_i8
+;CHECK-LABEL: load_4_i8:
;CHECK: pmovzxbd
;CHECK: paddd
;CHECK: pshufb
@@ -54,7 +54,7 @@ define void @load_4_i8(<4 x i8>* %A) {
ret void
}
-;CHECK: load_4_i16
+;CHECK-LABEL: load_4_i16:
;CHECK: pmovzxwd
;CHECK: paddd
;CHECK: pshufb
@@ -66,7 +66,7 @@ define void @load_4_i16(<4 x i16>* %A) {
ret void
}
-;CHECK: load_8_i8
+;CHECK-LABEL: load_8_i8:
;CHECK: pmovzxbw
;CHECK: paddw
;CHECK: pshufb
diff --git a/test/CodeGen/X86/trunc-to-bool.ll b/test/CodeGen/X86/trunc-to-bool.ll
index 92b6859d1dc4d..0ed634774ab3a 100644
--- a/test/CodeGen/X86/trunc-to-bool.ll
+++ b/test/CodeGen/X86/trunc-to-bool.ll
@@ -7,7 +7,7 @@ define zeroext i1 @test1(i32 %X) nounwind {
%Y = trunc i32 %X to i1
ret i1 %Y
}
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: andl $1, %eax
define i1 @test2(i32 %val, i32 %mask) nounwind {
@@ -21,8 +21,8 @@ ret_true:
ret_false:
ret i1 false
}
-; CHECK: test2:
-; CHECK: btl %eax
+; CHECK-LABEL: test2:
+; CHECK: btl
define i32 @test3(i8* %ptr) nounwind {
%val = load i8* %ptr
@@ -33,7 +33,7 @@ cond_true:
cond_false:
ret i32 42
}
-; CHECK: test3:
+; CHECK-LABEL: test3:
; CHECK: testb $1, (%eax)
define i32 @test4(i8* %ptr) nounwind {
@@ -44,7 +44,7 @@ cond_true:
cond_false:
ret i32 42
}
-; CHECK: test4:
+; CHECK-LABEL: test4:
; CHECK: testb $1, 4(%esp)
define i32 @test5(double %d) nounwind {
@@ -55,5 +55,5 @@ cond_true:
cond_false:
ret i32 42
}
-; CHECK: test5:
+; CHECK-LABEL: test5:
; CHECK: testb $1
diff --git a/test/CodeGen/X86/twoaddr-lea.ll b/test/CodeGen/X86/twoaddr-lea.ll
index 9d58019b1a998..b5ca0275d8d69 100644
--- a/test/CodeGen/X86/twoaddr-lea.ll
+++ b/test/CodeGen/X86/twoaddr-lea.ll
@@ -10,7 +10,7 @@
@G = external global i32
define i32 @test1(i32 %X) nounwind {
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK-NOT: mov
; CHECK: leal 1(%rdi)
%Z = add i32 %X, 1
@@ -23,7 +23,7 @@ define i32 @test1(i32 %X) nounwind {
; commutted (which would require inserting a copy).
define i32 @test2(i32 inreg %a, i32 inreg %b, i32 %c, i32 %d) nounwind {
entry:
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK: leal
; CHECK-NOT: leal
; CHECK-NOT: mov
@@ -38,7 +38,7 @@ entry:
; rdar://9002648
define i64 @test3(i64 %x) nounwind readnone ssp {
entry:
-; CHECK: test3:
+; CHECK-LABEL: test3:
; CHECK: leaq (%rdi,%rdi), %rax
; CHECK-NOT: addq
; CHECK-NEXT: ret
diff --git a/test/CodeGen/X86/uint_to_fp-2.ll b/test/CodeGen/X86/uint_to_fp-2.ll
index 7536fb8f52c40..c5a61c3779bfc 100644
--- a/test/CodeGen/X86/uint_to_fp-2.ll
+++ b/test/CodeGen/X86/uint_to_fp-2.ll
@@ -4,7 +4,7 @@
define float @test1(i32 %x) nounwind readnone {
; CHECK: test1
; CHECK: movd
-; CHECK: orpd
+; CHECK: orps
; CHECK: subsd
; CHECK: cvtsd2ss
; CHECK: movss
diff --git a/test/CodeGen/X86/umul-with-overflow.ll b/test/CodeGen/X86/umul-with-overflow.ll
index e5858de6ed714..ba5a790f43802 100644
--- a/test/CodeGen/X86/umul-with-overflow.ll
+++ b/test/CodeGen/X86/umul-with-overflow.ll
@@ -6,7 +6,7 @@ define zeroext i1 @a(i32 %x) nounwind {
%obil = extractvalue {i32, i1} %res, 1
ret i1 %obil
-; CHECK: a:
+; CHECK-LABEL: a:
; CHECK: mull
; CHECK: seto %al
; CHECK: movzbl %al, %eax
@@ -19,7 +19,7 @@ entry:
%tmp1 = call { i32, i1 } @llvm.umul.with.overflow.i32(i32 %tmp0, i32 2)
%tmp2 = extractvalue { i32, i1 } %tmp1, 0
ret i32 %tmp2
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK: addl
; CHECK-NEXT: addl
; CHECK-NEXT: ret
@@ -31,7 +31,7 @@ entry:
%tmp1 = call { i32, i1 } @llvm.umul.with.overflow.i32(i32 %tmp0, i32 4)
%tmp2 = extractvalue { i32, i1 } %tmp1, 0
ret i32 %tmp2
-; CHECK: test3:
+; CHECK-LABEL: test3:
; CHECK: addl
; CHECK: mull
; CHECK-NEXT: ret
diff --git a/test/CodeGen/X86/unaligned-spill-folding.ll b/test/CodeGen/X86/unaligned-spill-folding.ll
new file mode 100644
index 0000000000000..154ce9e324d6b
--- /dev/null
+++ b/test/CodeGen/X86/unaligned-spill-folding.ll
@@ -0,0 +1,49 @@
+; RUN: llc -mtriple=i386-unknown-freebsd -mcpu=core2 -stack-alignment=4 -relocation-model=pic < %s | FileCheck %s -check-prefix=UNALIGNED
+; RUN: llc -mtriple=i386-unknown-freebsd -mcpu=core2 -stack-alignment=16 -relocation-model=pic < %s | FileCheck %s -check-prefix=ALIGNED
+; RUN: llc -mtriple=i386-unknown-freebsd -mcpu=core2 -stack-alignment=4 -force-align-stack -relocation-model=pic < %s | FileCheck %s -check-prefix=FORCEALIGNED
+
+@arr = internal unnamed_addr global [32 x i32] zeroinitializer, align 16
+
+; PR12250
+define i32 @test1() {
+vector.ph:
+ br label %vector.body
+
+vector.body:
+ %index = phi i32 [ 0, %vector.ph ], [ %index.next, %vector.body ]
+ %0 = getelementptr inbounds [32 x i32]* @arr, i32 0, i32 %index
+ %1 = bitcast i32* %0 to <4 x i32>*
+ %wide.load = load <4 x i32>* %1, align 16
+ %2 = add nsw <4 x i32> %wide.load, <i32 10, i32 10, i32 10, i32 10>
+ %3 = xor <4 x i32> %2, <i32 123345, i32 123345, i32 123345, i32 123345>
+ %4 = add nsw <4 x i32> %3, <i32 112, i32 112, i32 112, i32 112>
+ %5 = xor <4 x i32> %4, <i32 543345, i32 543345, i32 543345, i32 543345>
+ %6 = add nsw <4 x i32> %5, <i32 73, i32 73, i32 73, i32 73>
+ %7 = xor <4 x i32> %6, <i32 345987, i32 345987, i32 345987, i32 345987>
+ %8 = add nsw <4 x i32> %7, <i32 48, i32 48, i32 48, i32 48>
+ %9 = xor <4 x i32> %8, <i32 123987, i32 123987, i32 123987, i32 123987>
+ store <4 x i32> %9, <4 x i32>* %1, align 16
+ %index.next = add i32 %index, 4
+ %10 = icmp eq i32 %index.next, 32
+ br i1 %10, label %middle.block, label %vector.body
+
+middle.block:
+ ret i32 0
+
+; We can't fold the spill into a padd unless the stack is aligned. Just spilling
+; doesn't force stack realignment though
+; UNALIGNED-LABEL: @test1
+; UNALIGNED-NOT: andl $-{{..}}, %esp
+; UNALIGNED: movdqu {{.*}} # 16-byte Folded Spill
+; UNALIGNED-NOT: paddd {{.*}} # 16-byte Folded Reload
+
+; ALIGNED-LABEL: @test1
+; ALIGNED-NOT: andl $-{{..}}, %esp
+; ALIGNED: movdqa {{.*}} # 16-byte Spill
+; ALIGNED: paddd {{.*}} # 16-byte Folded Reload
+
+; FORCEALIGNED-LABEL: @test1
+; FORCEALIGNED: andl $-{{..}}, %esp
+; FORCEALIGNED: movdqa {{.*}} # 16-byte Spill
+; FORCEALIGNED: paddd {{.*}} # 16-byte Folded Reload
+}
diff --git a/test/CodeGen/X86/unknown-location.ll b/test/CodeGen/X86/unknown-location.ll
index e02e3b54752ba..d7ae46939035a 100644
--- a/test/CodeGen/X86/unknown-location.ll
+++ b/test/CodeGen/X86/unknown-location.ll
@@ -19,15 +19,18 @@ entry:
}
!llvm.dbg.cu = !{!3}
+!llvm.module.flags = !{!12}
!0 = metadata !{i32 786689, metadata !1, metadata !"x", metadata !2, i32 1, metadata !6} ; [ DW_TAG_arg_variable ]
-!1 = metadata !{i32 786478, metadata !2, metadata !"foo", metadata !"foo", metadata !"foo", metadata !2, i32 1, metadata !4, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 false, i32 (i32, i32, i32, i32)* @foo, null, null, null, i32 1} ; [ DW_TAG_subprogram ]
+!1 = metadata !{i32 786478, metadata !10, metadata !2, metadata !"foo", metadata !"foo", metadata !"foo", i32 1, metadata !4, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 false, i32 (i32, i32, i32, i32)* @foo, null, null, null, i32 1} ; [ DW_TAG_subprogram ]
!2 = metadata !{i32 786473, metadata !10} ; [ DW_TAG_file_type ]
-!3 = metadata !{i32 786449, metadata !10, i32 12, metadata !"producer", i1 false, metadata !"", i32 0, null, null, metadata !9, null, metadata !""} ; [ DW_TAG_compile_unit ]
-!4 = metadata !{i32 786453, metadata !2, metadata !"", metadata !2, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !5, i32 0, null} ; [ DW_TAG_subroutine_type ]
+!3 = metadata !{i32 786449, metadata !10, i32 12, metadata !"producer", i1 false, metadata !"", i32 0, metadata !11, metadata !11, metadata !9, null, null, metadata !""} ; [ DW_TAG_compile_unit ]
+!4 = metadata !{i32 786453, metadata !10, metadata !2, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !5, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
!5 = metadata !{metadata !6}
-!6 = metadata !{i32 786468, metadata !2, metadata !"int", metadata !2, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
-!7 = metadata !{i32 786443, metadata !1, i32 1, i32 30} ; [ DW_TAG_lexical_block ]
+!6 = metadata !{i32 786468, metadata !10, metadata !2, metadata !"int", i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
+!7 = metadata !{i32 786443, metadata !2, metadata !1, i32 1, i32 30, i32 0} ; [ DW_TAG_lexical_block ]
!8 = metadata !{i32 4, i32 3, metadata !7, null}
!9 = metadata !{metadata !1}
!10 = metadata !{metadata !"test.c", metadata !"/dir"}
+!11 = metadata !{i32 0}
+!12 = metadata !{i32 1, metadata !"Debug Info Version", i32 1}
diff --git a/test/CodeGen/X86/unwind-init.ll b/test/CodeGen/X86/unwind-init.ll
new file mode 100644
index 0000000000000..d0915e244eeb6
--- /dev/null
+++ b/test/CodeGen/X86/unwind-init.ll
@@ -0,0 +1,36 @@
+; RUN: llc -mtriple=x86_64-unknown-linux < %s | FileCheck -check-prefix X8664 %s
+; RUN: llc -mtriple=i686-unknown-linux < %s | FileCheck -check-prefix X8632 %s
+; Check that all callee-saved registers are saved and restored in functions
+; that call __builtin_unwind_init(). This is its undocumented behavior in gcc,
+; and it is used in compiling libgcc_eh.
+; See also PR8541
+
+declare void @llvm.eh.unwind.init()
+
+define void @calls_unwind_init() {
+ call void @llvm.eh.unwind.init()
+ ret void
+}
+
+; X8664-LABEL: calls_unwind_init:
+; X8664: pushq %rbp
+; X8664: pushq %r15
+; X8664: pushq %r14
+; X8664: pushq %r13
+; X8664: pushq %r12
+; X8664: pushq %rbx
+; X8664: popq %rbx
+; X8664: popq %r12
+; X8664: popq %r13
+; X8664: popq %r14
+; X8664: popq %r15
+
+; X8632-LABEL: calls_unwind_init:
+; X8632: pushl %ebp
+; X8632: pushl %ebx
+; X8632: pushl %edi
+; X8632: pushl %esi
+; X8632: popl %esi
+; X8632: popl %edi
+; X8632: popl %ebx
+; X8632: popl %ebp
diff --git a/test/CodeGen/X86/use-add-flags.ll b/test/CodeGen/X86/use-add-flags.ll
index a0448ecee4fa1..fd57f5ca8d2d0 100644
--- a/test/CodeGen/X86/use-add-flags.ll
+++ b/test/CodeGen/X86/use-add-flags.ll
@@ -6,7 +6,7 @@
; Use the flags on the add.
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: addl
; CHECK-NOT: test
; CHECK: cmovnsl
@@ -25,7 +25,7 @@ declare void @foo(i32)
; Don't use the flags result of the and here, since the and has no
; other use. A simple test is better.
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK: testb $16, {{%dil|%cl}}
define void @test2(i32 %x) nounwind {
@@ -41,7 +41,7 @@ false:
; Do use the flags result of the and here, since the and has another use.
-; CHECK: test3:
+; CHECK-LABEL: test3:
; CHECK: andl $16, %e
; CHECK-NEXT: jne
diff --git a/test/CodeGen/X86/v-binop-widen.ll b/test/CodeGen/X86/v-binop-widen.ll
index 8655c6c8ea54c..fca4da66a85ed 100644
--- a/test/CodeGen/X86/v-binop-widen.ll
+++ b/test/CodeGen/X86/v-binop-widen.ll
@@ -1,7 +1,7 @@
; RUN: llc -mcpu=generic -march=x86 -mattr=+sse < %s | FileCheck %s
-; CHECK: divss
; CHECK: divps
; CHECK: divps
+; CHECK: divss
%vec = type <9 x float>
define %vec @vecdiv( %vec %p1, %vec %p2)
@@ -9,4 +9,3 @@ define %vec @vecdiv( %vec %p1, %vec %p2)
%result = fdiv %vec %p1, %p2
ret %vec %result
}
-
diff --git a/test/CodeGen/X86/v-binop-widen2.ll b/test/CodeGen/X86/v-binop-widen2.ll
index 569586af4983e..334211132f14d 100644
--- a/test/CodeGen/X86/v-binop-widen2.ll
+++ b/test/CodeGen/X86/v-binop-widen2.ll
@@ -2,9 +2,9 @@
; RUN: llc -march=x86 -mcpu=atom -mattr=+sse < %s | FileCheck -check-prefix=ATOM %s
%vec = type <6 x float>
+; CHECK: divps
; CHECK: divss
; CHECK: divss
-; CHECK: divps
; Scheduler causes a different instruction order to be produced on Intel Atom
; ATOM: divps
diff --git a/test/CodeGen/X86/v2f32.ll b/test/CodeGen/X86/v2f32.ll
index ba54833291697..f2bebf57d4dca 100644
--- a/test/CodeGen/X86/v2f32.ll
+++ b/test/CodeGen/X86/v2f32.ll
@@ -10,20 +10,20 @@ define void @test1(<2 x float> %Q, float *%P2) nounwind {
store float %c, float* %P2
ret void
-; X64: test1:
+; X64-LABEL: test1:
; X64-NEXT: pshufd $1, %xmm0, %xmm1
; X64-NEXT: addss %xmm0, %xmm1
; X64-NEXT: movss %xmm1, (%rdi)
; X64-NEXT: ret
-; W64: test1:
+; W64-LABEL: test1:
; W64-NEXT: movdqa (%rcx), %xmm0
; W64-NEXT: pshufd $1, %xmm0, %xmm1
; W64-NEXT: addss %xmm0, %xmm1
; W64-NEXT: movss %xmm1, (%rdx)
; W64-NEXT: ret
-; X32: test1:
+; X32-LABEL: test1:
; X32-NEXT: pshufd $1, %xmm0, %xmm1
; X32-NEXT: addss %xmm0, %xmm1
; X32-NEXT: movl 4(%esp), %eax
@@ -36,16 +36,16 @@ define <2 x float> @test2(<2 x float> %Q, <2 x float> %R, <2 x float> *%P) nounw
%Z = fadd <2 x float> %Q, %R
ret <2 x float> %Z
-; X64: test2:
+; X64-LABEL: test2:
; X64-NEXT: addps %xmm1, %xmm0
; X64-NEXT: ret
-; W64: test2:
+; W64-LABEL: test2:
; W64-NEXT: movaps (%rcx), %xmm0
; W64-NEXT: addps (%rdx), %xmm0
; W64-NEXT: ret
-; X32: test2:
+; X32-LABEL: test2:
; X32: addps %xmm1, %xmm0
}
@@ -54,16 +54,16 @@ define <2 x float> @test3(<4 x float> %A) nounwind {
%B = shufflevector <4 x float> %A, <4 x float> undef, <2 x i32> <i32 0, i32 1>
%C = fadd <2 x float> %B, %B
ret <2 x float> %C
-; X64: test3:
+; X64-LABEL: test3:
; X64-NEXT: addps %xmm0, %xmm0
; X64-NEXT: ret
-; W64: test3:
+; W64-LABEL: test3:
; W64-NEXT: movaps (%rcx), %xmm0
; W64-NEXT: addps %xmm0, %xmm0
; W64-NEXT: ret
-; X32: test3:
+; X32-LABEL: test3:
; X32-NEXT: addps %xmm0, %xmm0
; X32-NEXT: ret
}
@@ -71,16 +71,16 @@ define <2 x float> @test3(<4 x float> %A) nounwind {
define <2 x float> @test4(<2 x float> %A) nounwind {
%C = fadd <2 x float> %A, %A
ret <2 x float> %C
-; X64: test4:
+; X64-LABEL: test4:
; X64-NEXT: addps %xmm0, %xmm0
; X64-NEXT: ret
-; W64: test4:
+; W64-LABEL: test4:
; W64-NEXT: movaps (%rcx), %xmm0
; W64-NEXT: addps %xmm0, %xmm0
; W64-NEXT: ret
-; X32: test4:
+; X32-LABEL: test4:
; X32-NEXT: addps %xmm0, %xmm0
; X32-NEXT: ret
}
@@ -95,18 +95,18 @@ BB:
%E = shufflevector <2 x float> %D, <2 x float> undef, <4 x i32> <i32 0, i32 1, i32 undef, i32 undef>
ret <4 x float> %E
-; X64: test5:
+; X64-LABEL: test5:
; X64-NEXT: addps %xmm0, %xmm0
; X64-NEXT: addps %xmm0, %xmm0
; X64-NEXT: ret
-; W64: test5:
+; W64-LABEL: test5:
; W64-NEXT: movaps (%rcx), %xmm0
; W64-NEXT: addps %xmm0, %xmm0
; W64-NEXT: addps %xmm0, %xmm0
; W64-NEXT: ret
-; X32: test5:
+; X32-LABEL: test5:
; X32-NEXT: addps %xmm0, %xmm0
; X32-NEXT: addps %xmm0, %xmm0
; X32-NEXT: ret
diff --git a/test/CodeGen/X86/v4i32load-crash.ll b/test/CodeGen/X86/v4i32load-crash.ll
new file mode 100644
index 0000000000000..052c4c3c61b8f
--- /dev/null
+++ b/test/CodeGen/X86/v4i32load-crash.ll
@@ -0,0 +1,27 @@
+; RUN: llc --mcpu=x86-64 --mattr=ssse3 < %s
+
+;PR18045:
+;Issue of selection for 'v4i32 load'.
+;This instruction is not legal for X86 CPUs with sse < 'sse4.1'.
+;This node was generated by X86ISelLowering.cpp, EltsFromConsecutiveLoads
+;static function after legilize stage.
+
+@e = external global [4 x i32], align 4
+@f = external global [4 x i32], align 4
+
+; Function Attrs: nounwind
+define void @fn3(i32 %el) {
+entry:
+ %0 = load i32* getelementptr inbounds ([4 x i32]* @e, i32 0, i32 0)
+ %1 = load i32* getelementptr inbounds ([4 x i32]* @e, i32 0, i32 1)
+ %2 = load i32* getelementptr inbounds ([4 x i32]* @e, i32 0, i32 2)
+ %3 = load i32* getelementptr inbounds ([4 x i32]* @e, i32 0, i32 3)
+ %4 = insertelement <4 x i32> undef, i32 %0, i32 0
+ %5 = insertelement <4 x i32> %4, i32 %1, i32 1
+ %6 = insertelement <4 x i32> %5, i32 %2, i32 2
+ %7 = insertelement <4 x i32> %6, i32 %3, i32 3
+ %8 = add <4 x i32> %6, %7
+ store <4 x i32> %8, <4 x i32>* bitcast ([4 x i32]* @f to <4 x i32>*)
+ ret void
+}
+
diff --git a/test/CodeGen/X86/v8i1-masks.ll b/test/CodeGen/X86/v8i1-masks.ll
index 8cbfb5d7243af..5da6e9636ebef 100644
--- a/test/CodeGen/X86/v8i1-masks.ll
+++ b/test/CodeGen/X86/v8i1-masks.ll
@@ -1,6 +1,6 @@
; RUN: llc -march=x86-64 -mtriple=x86_64-apple-darwin -mcpu=corei7-avx -o - < %s | FileCheck %s
-;CHECK: and_masks
+;CHECK-LABEL: and_masks:
;CHECK: vmovaps
;CHECK: vcmpltp
;CHECK: vcmpltp
diff --git a/test/CodeGen/X86/vec-sign.ll b/test/CodeGen/X86/vec-sign.ll
index 31b9c2eb4c777..b3d85fd6ec7be 100644
--- a/test/CodeGen/X86/vec-sign.ll
+++ b/test/CodeGen/X86/vec-sign.ll
@@ -2,7 +2,7 @@
define <4 x i32> @signd(<4 x i32> %a, <4 x i32> %b) nounwind {
entry:
-; CHECK: signd:
+; CHECK-LABEL: signd:
; CHECK: psignd
; CHECK-NOT: sub
; CHECK: ret
@@ -17,7 +17,7 @@ entry:
define <4 x i32> @blendvb(<4 x i32> %b, <4 x i32> %a, <4 x i32> %c) nounwind {
entry:
-; CHECK: blendvb:
+; CHECK-LABEL: blendvb:
; CHECK: pblendvb
; CHECK: ret
%b.lobit = ashr <4 x i32> %b, <i32 31, i32 31, i32 31, i32 31>
diff --git a/test/CodeGen/X86/vec_cast2.ll b/test/CodeGen/X86/vec_cast2.ll
index 08eb16f6313ba..5f6e7a853a332 100644
--- a/test/CodeGen/X86/vec_cast2.ll
+++ b/test/CodeGen/X86/vec_cast2.ll
@@ -1,6 +1,6 @@
; RUN: llc < %s -mtriple=i386-apple-darwin10 -mcpu=corei7-avx -mattr=+avx | FileCheck %s
-;CHECK: foo1_8
+;CHECK-LABEL: foo1_8:
;CHECK: vcvtdq2ps
;CHECK: ret
define <8 x float> @foo1_8(<8 x i8> %src) {
@@ -8,7 +8,7 @@ define <8 x float> @foo1_8(<8 x i8> %src) {
ret <8 x float> %res
}
-;CHECK: foo1_4
+;CHECK-LABEL: foo1_4:
;CHECK: vcvtdq2ps
;CHECK: ret
define <4 x float> @foo1_4(<4 x i8> %src) {
@@ -16,7 +16,7 @@ define <4 x float> @foo1_4(<4 x i8> %src) {
ret <4 x float> %res
}
-;CHECK: foo2_8
+;CHECK-LABEL: foo2_8:
;CHECK: vcvtdq2ps
;CHECK: ret
define <8 x float> @foo2_8(<8 x i8> %src) {
@@ -24,7 +24,7 @@ define <8 x float> @foo2_8(<8 x i8> %src) {
ret <8 x float> %res
}
-;CHECK: foo2_4
+;CHECK-LABEL: foo2_4:
;CHECK: vcvtdq2ps
;CHECK: ret
define <4 x float> @foo2_4(<4 x i8> %src) {
@@ -32,14 +32,14 @@ define <4 x float> @foo2_4(<4 x i8> %src) {
ret <4 x float> %res
}
-;CHECK: foo3_8
+;CHECK-LABEL: foo3_8:
;CHECK: vcvttps2dq
;CHECK: ret
define <8 x i8> @foo3_8(<8 x float> %src) {
%res = fptosi <8 x float> %src to <8 x i8>
ret <8 x i8> %res
}
-;CHECK: foo3_4
+;CHECK-LABEL: foo3_4:
;CHECK: vcvttps2dq
;CHECK: ret
define <4 x i8> @foo3_4(<4 x float> %src) {
diff --git a/test/CodeGen/X86/vec_compare-sse4.ll b/test/CodeGen/X86/vec_compare-sse4.ll
index b4a4a4cfa7afc..084d611342067 100644
--- a/test/CodeGen/X86/vec_compare-sse4.ll
+++ b/test/CodeGen/X86/vec_compare-sse4.ll
@@ -1,15 +1,15 @@
; RUN: llc < %s -march=x86 -mattr=-sse3,+sse2 | FileCheck %s -check-prefix=SSE2
-; RUN: llc < %s -march=x86 -mattr=-sse42,+sse41 | FileCheck %s -check-prefix=SSE41
-; RUN: llc < %s -march=x86 -mattr=+sse42 | FileCheck %s -check-prefix=SSE42
+; RUN: llc < %s -march=x86 -mattr=-sse4.2,+sse4.1 | FileCheck %s -check-prefix=SSE41
+; RUN: llc < %s -march=x86 -mattr=+sse4.2 | FileCheck %s -check-prefix=SSE42
define <2 x i64> @test1(<2 x i64> %A, <2 x i64> %B) nounwind {
-; SSE42: test1:
+; SSE42-LABEL: test1:
; SSE42: pcmpgtq
; SSE42: ret
-; SSE41: test1:
+; SSE41-LABEL: test1:
; SSE41-NOT: pcmpgtq
; SSE41: ret
-; SSE2: test1:
+; SSE2-LABEL: test1:
; SSE2-NOT: pcmpgtq
; SSE2: ret
@@ -19,13 +19,13 @@ define <2 x i64> @test1(<2 x i64> %A, <2 x i64> %B) nounwind {
}
define <2 x i64> @test2(<2 x i64> %A, <2 x i64> %B) nounwind {
-; SSE42: test2:
+; SSE42-LABEL: test2:
; SSE42: pcmpeqq
; SSE42: ret
-; SSE41: test2:
+; SSE41-LABEL: test2:
; SSE41: pcmpeqq
; SSE41: ret
-; SSE2: test2:
+; SSE2-LABEL: test2:
; SSE2-NOT: pcmpeqq
; SSE2: ret
diff --git a/test/CodeGen/X86/vec_compare.ll b/test/CodeGen/X86/vec_compare.ll
index fd5c234bb1609..365fe92220b5e 100644
--- a/test/CodeGen/X86/vec_compare.ll
+++ b/test/CodeGen/X86/vec_compare.ll
@@ -2,7 +2,7 @@
define <4 x i32> @test1(<4 x i32> %A, <4 x i32> %B) nounwind {
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: pcmpgtd
; CHECK: ret
@@ -12,7 +12,7 @@ define <4 x i32> @test1(<4 x i32> %A, <4 x i32> %B) nounwind {
}
define <4 x i32> @test2(<4 x i32> %A, <4 x i32> %B) nounwind {
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK: pcmp
; CHECK: pcmp
; CHECK: pxor
@@ -23,7 +23,7 @@ define <4 x i32> @test2(<4 x i32> %A, <4 x i32> %B) nounwind {
}
define <4 x i32> @test3(<4 x i32> %A, <4 x i32> %B) nounwind {
-; CHECK: test3:
+; CHECK-LABEL: test3:
; CHECK: pcmpgtd
; CHECK: movdqa
; CHECK: ret
@@ -33,7 +33,7 @@ define <4 x i32> @test3(<4 x i32> %A, <4 x i32> %B) nounwind {
}
define <4 x i32> @test4(<4 x i32> %A, <4 x i32> %B) nounwind {
-; CHECK: test4:
+; CHECK-LABEL: test4:
; CHECK: movdqa
; CHECK: pcmpgtd
; CHECK: ret
@@ -43,7 +43,7 @@ define <4 x i32> @test4(<4 x i32> %A, <4 x i32> %B) nounwind {
}
define <2 x i64> @test5(<2 x i64> %A, <2 x i64> %B) nounwind {
-; CHECK: test5:
+; CHECK-LABEL: test5:
; CHECK: pcmpeqd
; CHECK: pshufd $-79
; CHECK: pand
@@ -54,7 +54,7 @@ define <2 x i64> @test5(<2 x i64> %A, <2 x i64> %B) nounwind {
}
define <2 x i64> @test6(<2 x i64> %A, <2 x i64> %B) nounwind {
-; CHECK: test6:
+; CHECK-LABEL: test6:
; CHECK: pcmpeqd
; CHECK: pshufd $-79
; CHECK: pand
@@ -72,7 +72,7 @@ define <2 x i64> @test7(<2 x i64> %A, <2 x i64> %B) nounwind {
; CHECK-NEXT: .long 0
; CHECK-NEXT: .long 2147483648
; CHECK-NEXT: .long 0
-; CHECK: test7:
+; CHECK-LABEL: test7:
; CHECK: movdqa [[CONSTSEG]], [[CONSTREG:%xmm[0-9]*]]
; CHECK: pxor [[CONSTREG]]
; CHECK: pxor [[CONSTREG]]
@@ -90,7 +90,7 @@ define <2 x i64> @test7(<2 x i64> %A, <2 x i64> %B) nounwind {
}
define <2 x i64> @test8(<2 x i64> %A, <2 x i64> %B) nounwind {
-; CHECK: test8:
+; CHECK-LABEL: test8:
; CHECK: pxor
; CHECK: pxor
; CHECK: pcmpgtd %xmm0
@@ -107,7 +107,7 @@ define <2 x i64> @test8(<2 x i64> %A, <2 x i64> %B) nounwind {
}
define <2 x i64> @test9(<2 x i64> %A, <2 x i64> %B) nounwind {
-; CHECK: test9:
+; CHECK-LABEL: test9:
; CHECK: pxor
; CHECK: pxor
; CHECK: pcmpgtd %xmm0
@@ -126,7 +126,7 @@ define <2 x i64> @test9(<2 x i64> %A, <2 x i64> %B) nounwind {
}
define <2 x i64> @test10(<2 x i64> %A, <2 x i64> %B) nounwind {
-; CHECK: test10:
+; CHECK-LABEL: test10:
; CHECK: pxor
; CHECK: pxor
; CHECK: pcmpgtd %xmm1
@@ -150,7 +150,7 @@ define <2 x i64> @test11(<2 x i64> %A, <2 x i64> %B) nounwind {
; CHECK-NEXT: .long 2147483648
; CHECK-NEXT: .long 2147483648
; CHECK-NEXT: .long 2147483648
-; CHECK: test11:
+; CHECK-LABEL: test11:
; CHECK: movdqa [[CONSTSEG]], [[CONSTREG:%xmm[0-9]*]]
; CHECK: pxor [[CONSTREG]]
; CHECK: pxor [[CONSTREG]]
@@ -168,7 +168,7 @@ define <2 x i64> @test11(<2 x i64> %A, <2 x i64> %B) nounwind {
}
define <2 x i64> @test12(<2 x i64> %A, <2 x i64> %B) nounwind {
-; CHECK: test12:
+; CHECK-LABEL: test12:
; CHECK: pxor
; CHECK: pxor
; CHECK: pcmpgtd %xmm0
@@ -185,7 +185,7 @@ define <2 x i64> @test12(<2 x i64> %A, <2 x i64> %B) nounwind {
}
define <2 x i64> @test13(<2 x i64> %A, <2 x i64> %B) nounwind {
-; CHECK: test13:
+; CHECK-LABEL: test13:
; CHECK: pxor
; CHECK: pxor
; CHECK: pcmpgtd %xmm0
@@ -204,7 +204,7 @@ define <2 x i64> @test13(<2 x i64> %A, <2 x i64> %B) nounwind {
}
define <2 x i64> @test14(<2 x i64> %A, <2 x i64> %B) nounwind {
-; CHECK: test14:
+; CHECK-LABEL: test14:
; CHECK: pxor
; CHECK: pxor
; CHECK: pcmpgtd %xmm1
diff --git a/test/CodeGen/X86/vec_extract-sse4.ll b/test/CodeGen/X86/vec_extract-sse4.ll
index 42d7f27f7d606..3cb519adf4f8c 100644
--- a/test/CodeGen/X86/vec_extract-sse4.ll
+++ b/test/CodeGen/X86/vec_extract-sse4.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -mcpu=corei7 -march=x86 -mattr=+sse41 -o %t
+; RUN: llc < %s -mcpu=corei7 -march=x86 -mattr=+sse4.1 -o %t
; RUN: not grep extractps %t
; RUN: not grep pextrd %t
; RUN: not grep pshufd %t
diff --git a/test/CodeGen/X86/vec_extract.ll b/test/CodeGen/X86/vec_extract.ll
index 2c8796bc4ff72..88f5a585b9fd8 100644
--- a/test/CodeGen/X86/vec_extract.ll
+++ b/test/CodeGen/X86/vec_extract.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -mcpu=corei7 -march=x86 -mattr=+sse2,-sse41 -o %t
+; RUN: llc < %s -mcpu=corei7 -march=x86 -mattr=+sse2,-sse4.1 -o %t
; RUN: grep movss %t | count 4
; RUN: grep movhlps %t | count 1
; RUN: not grep pshufd %t
diff --git a/test/CodeGen/X86/vec_fpext.ll b/test/CodeGen/X86/vec_fpext.ll
index 863712ff48b3d..7ec07ae0f959c 100644
--- a/test/CodeGen/X86/vec_fpext.ll
+++ b/test/CodeGen/X86/vec_fpext.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86 -mattr=+sse41,-avx | FileCheck %s
+; RUN: llc < %s -march=x86 -mattr=+sse4.1,-avx | FileCheck %s
; RUN: llc < %s -march=x86 -mcpu=corei7-avx | FileCheck --check-prefix=AVX %s
; PR11674
diff --git a/test/CodeGen/X86/vec_insert-2.ll b/test/CodeGen/X86/vec_insert-2.ll
index dee91fd01468a..fe20a474f59a6 100644
--- a/test/CodeGen/X86/vec_insert-2.ll
+++ b/test/CodeGen/X86/vec_insert-2.ll
@@ -1,8 +1,8 @@
-; RUN: llc < %s -march=x86 -mattr=+sse2,-sse41 | FileCheck --check-prefix=X32 %s
-; RUN: llc < %s -march=x86-64 -mattr=+sse2,-sse41 | FileCheck --check-prefix=X64 %s
+; RUN: llc < %s -march=x86 -mattr=+sse2,-sse4.1 | FileCheck --check-prefix=X32 %s
+; RUN: llc < %s -march=x86-64 -mattr=+sse2,-sse4.1 | FileCheck --check-prefix=X64 %s
define <4 x float> @t1(float %s, <4 x float> %tmp) nounwind {
-; X32: t1:
+; X32-LABEL: t1:
; X32: shufps $36
; X32: ret
@@ -11,7 +11,7 @@ define <4 x float> @t1(float %s, <4 x float> %tmp) nounwind {
}
define <4 x i32> @t2(i32 %s, <4 x i32> %tmp) nounwind {
-; X32: t2:
+; X32-LABEL: t2:
; X32: shufps $36
; X32: ret
@@ -20,11 +20,11 @@ define <4 x i32> @t2(i32 %s, <4 x i32> %tmp) nounwind {
}
define <2 x double> @t3(double %s, <2 x double> %tmp) nounwind {
-; X32: t3:
+; X32-LABEL: t3:
; X32: movhpd
; X32: ret
-; X64: t3:
+; X64-LABEL: t3:
; X64: unpcklpd
; X64: ret
@@ -33,7 +33,7 @@ define <2 x double> @t3(double %s, <2 x double> %tmp) nounwind {
}
define <8 x i16> @t4(i16 %s, <8 x i16> %tmp) nounwind {
-; X32: t4:
+; X32-LABEL: t4:
; X32: pinsrw
; X32: ret
diff --git a/test/CodeGen/X86/vec_insert-3.ll b/test/CodeGen/X86/vec_insert-3.ll
index a18cd86489cc7..a8713398e9553 100644
--- a/test/CodeGen/X86/vec_insert-3.ll
+++ b/test/CodeGen/X86/vec_insert-3.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86-64 -mattr=+sse2,-sse41 | grep punpcklqdq | count 1
+; RUN: llc < %s -march=x86-64 -mattr=+sse2,-sse4.1 | grep punpcklqdq | count 1
define <2 x i64> @t1(i64 %s, <2 x i64> %tmp) nounwind {
%tmp1 = insertelement <2 x i64> %tmp, i64 %s, i32 1
diff --git a/test/CodeGen/X86/vec_insert-5.ll b/test/CodeGen/X86/vec_insert-5.ll
index 471cc1611fcea..5cb9f694bd61d 100644
--- a/test/CodeGen/X86/vec_insert-5.ll
+++ b/test/CodeGen/X86/vec_insert-5.ll
@@ -1,8 +1,4 @@
-; RUN: llc < %s -march=x86 -mattr=+sse2 > %t
-; RUN: grep shll %t | grep 12
-; RUN: grep pslldq %t | grep 12
-; RUN: grep psrldq %t | grep 8
-; RUN: grep psrldq %t | grep 12
+; RUN: llc < %s -march=x86 -mattr=+sse2,+ssse3 | FileCheck %s
; There are no MMX operations in @t1
define void @t1(i32 %a, x86_mmx* %P) nounwind {
@@ -12,22 +8,60 @@ define void @t1(i32 %a, x86_mmx* %P) nounwind {
%tmp23 = bitcast <2 x i32> %tmp22 to x86_mmx
store x86_mmx %tmp23, x86_mmx* %P
ret void
+
+; CHECK-LABEL: t1:
+; CHECK-NOT: %mm
+; CHECK: shll $12
+; CHECK-NOT: %mm
}
define <4 x float> @t2(<4 x float>* %P) nounwind {
%tmp1 = load <4 x float>* %P
%tmp2 = shufflevector <4 x float> %tmp1, <4 x float> zeroinitializer, <4 x i32> < i32 4, i32 4, i32 4, i32 0 >
ret <4 x float> %tmp2
+
+; CHECK-LABEL: t2:
+; CHECK: pslldq $12
}
define <4 x float> @t3(<4 x float>* %P) nounwind {
%tmp1 = load <4 x float>* %P
%tmp2 = shufflevector <4 x float> %tmp1, <4 x float> zeroinitializer, <4 x i32> < i32 2, i32 3, i32 4, i32 4 >
ret <4 x float> %tmp2
+
+; CHECK-LABEL: t3:
+; CHECK: psrldq $8
}
define <4 x float> @t4(<4 x float>* %P) nounwind {
%tmp1 = load <4 x float>* %P
%tmp2 = shufflevector <4 x float> zeroinitializer, <4 x float> %tmp1, <4 x i32> < i32 7, i32 0, i32 0, i32 0 >
ret <4 x float> %tmp2
+
+; CHECK-LABEL: t4:
+; CHECK: psrldq $12
+}
+
+define <16 x i8> @t5(<16 x i8> %x) nounwind {
+ %s = shufflevector <16 x i8> %x, <16 x i8> zeroinitializer, <16 x i32> <i32 1, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 17>
+ ret <16 x i8> %s
+
+; CHECK-LABEL: t5:
+; CHECK: psrldq $1
+}
+
+define <16 x i8> @t6(<16 x i8> %x) nounwind {
+ %s = shufflevector <16 x i8> %x, <16 x i8> undef, <16 x i32> <i32 1, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
+ ret <16 x i8> %s
+
+; CHECK-LABEL: t6:
+; CHECK: palignr $1
+}
+
+define <16 x i8> @t7(<16 x i8> %x) nounwind {
+ %s = shufflevector <16 x i8> %x, <16 x i8> undef, <16 x i32> <i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 1, i32 2>
+ ret <16 x i8> %s
+
+; CHECK-LABEL: t7:
+; CHECK: pslldq $13
}
diff --git a/test/CodeGen/X86/vec_insert-7.ll b/test/CodeGen/X86/vec_insert-7.ll
index 268b5c4bf9721..6d4f8287cab6b 100644
--- a/test/CodeGen/X86/vec_insert-7.ll
+++ b/test/CodeGen/X86/vec_insert-7.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86 -mattr=+mmx,+sse42 -mtriple=i686-apple-darwin9 | FileCheck %s
+; RUN: llc < %s -march=x86 -mattr=+mmx,+sse4.2 -mtriple=i686-apple-darwin9 | FileCheck %s
; MMX insertelement is not available; these are promoted to XMM.
; (Without SSE they are split to two ints, and the code is much better.)
diff --git a/test/CodeGen/X86/vec_insert-8.ll b/test/CodeGen/X86/vec_insert-8.ll
index 650951cc9e5ee..917832c40adb7 100644
--- a/test/CodeGen/X86/vec_insert-8.ll
+++ b/test/CodeGen/X86/vec_insert-8.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86 -mattr=+sse41 -o %t
+; RUN: llc < %s -march=x86 -mattr=+sse4.1 -o %t
; tests variable insert and extract of a 4 x i32
diff --git a/test/CodeGen/X86/vec_insert-9.ll b/test/CodeGen/X86/vec_insert-9.ll
index e5a7ccc5ef94f..5f2e676ef1ae8 100644
--- a/test/CodeGen/X86/vec_insert-9.ll
+++ b/test/CodeGen/X86/vec_insert-9.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86 -mattr=+sse41 > %t
+; RUN: llc < %s -march=x86 -mattr=+sse4.1 > %t
; RUN: grep pinsrd %t | count 1
define <4 x i32> @var_insert2(<4 x i32> %x, i32 %val, i32 %idx) nounwind {
diff --git a/test/CodeGen/X86/vec_insert.ll b/test/CodeGen/X86/vec_insert.ll
index 4e5d445ff6239..0ed8f10523667 100644
--- a/test/CodeGen/X86/vec_insert.ll
+++ b/test/CodeGen/X86/vec_insert.ll
@@ -1,5 +1,5 @@
-; RUN: llc < %s -march=x86 -mattr=+sse2,-sse41 | grep movss | count 1
-; RUN: llc < %s -march=x86 -mattr=+sse2,-sse41 | not grep pinsrw
+; RUN: llc < %s -march=x86 -mattr=+sse2,-sse4.1 | grep movss | count 1
+; RUN: llc < %s -march=x86 -mattr=+sse2,-sse4.1 | not grep pinsrw
define void @test(<4 x float>* %F, i32 %I) nounwind {
%tmp = load <4 x float>* %F ; <<4 x float>> [#uses=1]
diff --git a/test/CodeGen/X86/vec_round.ll b/test/CodeGen/X86/vec_round.ll
new file mode 100644
index 0000000000000..baa2f58631d4b
--- /dev/null
+++ b/test/CodeGen/X86/vec_round.ll
@@ -0,0 +1,22 @@
+; RUN: llc -mcpu=nehalem -mtriple=x86_64-unknown-linux-gnu < %s | FileCheck %s
+target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
+target triple = "x86_64-unknown-linux-gnu"
+
+declare void @use(<2 x double>)
+
+; CHECK-LABEL: @test
+; CHECK callq round
+
+; Function Attrs: nounwind uwtable
+define void @test() {
+entry:
+ %tmp = call <2 x double> @llvm.round.v2f64(<2 x double> undef)
+ call void @use(<2 x double> %tmp)
+ ret void
+}
+
+; Function Attrs: nounwind readonly
+declare <2 x double> @llvm.round.v2f64(<2 x double>) #0
+
+attributes #0 = { nounwind readonly }
+
diff --git a/test/CodeGen/X86/vec_sdiv_to_shift.ll b/test/CodeGen/X86/vec_sdiv_to_shift.ll
index 349868a87f532..56855d3c44ebc 100644
--- a/test/CodeGen/X86/vec_sdiv_to_shift.ll
+++ b/test/CodeGen/X86/vec_sdiv_to_shift.ll
@@ -70,3 +70,11 @@ entry:
%a0 = sdiv <16 x i16> %var, <i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4>
ret <16 x i16> %a0
}
+
+; CHECK: sdiv_non_splat
+; CHECK: idivl
+; CHECK: ret
+define <4 x i32> @sdiv_non_splat(<4 x i32> %x) {
+ %y = sdiv <4 x i32> %x, <i32 2, i32 0, i32 0, i32 0>
+ ret <4 x i32> %y
+}
diff --git a/test/CodeGen/X86/vec_set-8.ll b/test/CodeGen/X86/vec_set-8.ll
index 66056d0add9cc..41061ae7ac23d 100644
--- a/test/CodeGen/X86/vec_set-8.ll
+++ b/test/CodeGen/X86/vec_set-8.ll
@@ -1,5 +1,5 @@
-; RUN: llc < %s -mtriple=x86_64-linux | FileCheck %s
-; RUN: llc < %s -mtriple=x86_64-win32 | FileCheck %s
+; RUN: llc < %s -mtriple=x86_64-linux -mattr=-avx | FileCheck %s
+; RUN: llc < %s -mtriple=x86_64-win32 -mattr=-avx | FileCheck %s
; CHECK-NOT: movsd
; CHECK: movd {{%rdi|%rcx}}, %xmm0
; CHECK-NOT: movsd
diff --git a/test/CodeGen/X86/vec_set-9.ll b/test/CodeGen/X86/vec_set-9.ll
index 6979f6bb1c26c..a73909097c11b 100644
--- a/test/CodeGen/X86/vec_set-9.ll
+++ b/test/CodeGen/X86/vec_set-9.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86-64 | FileCheck %s
+; RUN: llc < %s -march=x86-64 -mattr=-avx,-pad-short-functions | FileCheck %s
; CHECK: test3
; CHECK: movd
diff --git a/test/CodeGen/X86/vec_set-C.ll b/test/CodeGen/X86/vec_set-C.ll
index 133f23b42d90e..052da30a6bb83 100644
--- a/test/CodeGen/X86/vec_set-C.ll
+++ b/test/CodeGen/X86/vec_set-C.ll
@@ -1,6 +1,6 @@
-; RUN: llc < %s -march=x86 -mtriple=i386-linux-gnu -mattr=+sse2 | grep movq
-; RUN: llc < %s -march=x86 -mtriple=i386-linux-gnu -mattr=+sse2 | grep mov | count 1
-; RUN: llc < %s -march=x86-64 -mtriple=x86_64-pc-linux -mattr=+sse2 | grep movd
+; RUN: llc < %s -march=x86 -mtriple=i386-linux-gnu -mattr=+sse2,-avx | grep movq
+; RUN: llc < %s -march=x86 -mtriple=i386-linux-gnu -mattr=+sse2,-avx | grep mov | count 1
+; RUN: llc < %s -march=x86-64 -mtriple=x86_64-pc-linux -mattr=+sse2,-avx | grep movd
define <2 x i64> @t1(i64 %x) nounwind {
%tmp8 = insertelement <2 x i64> zeroinitializer, i64 %x, i32 0
diff --git a/test/CodeGen/X86/vec_set.ll b/test/CodeGen/X86/vec_set.ll
index 7f5f8dd213a5c..53d880b4bbdd9 100644
--- a/test/CodeGen/X86/vec_set.ll
+++ b/test/CodeGen/X86/vec_set.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86 -mattr=+sse2,-sse41 | grep punpckl | count 7
+; RUN: llc < %s -march=x86 -mattr=+sse2,-sse4.1 | grep punpckl | count 7
define void @test(<8 x i16>* %b, i16 %a0, i16 %a1, i16 %a2, i16 %a3, i16 %a4, i16 %a5, i16 %a6, i16 %a7) nounwind {
%tmp = insertelement <8 x i16> zeroinitializer, i16 %a0, i32 0 ; <<8 x i16>> [#uses=1]
diff --git a/test/CodeGen/X86/vec_setcc.ll b/test/CodeGen/X86/vec_setcc.ll
new file mode 100644
index 0000000000000..fc8a56de79174
--- /dev/null
+++ b/test/CodeGen/X86/vec_setcc.ll
@@ -0,0 +1,187 @@
+; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -mattr=sse2 | FileCheck %s -check-prefix=SSE2
+; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -mattr=sse4.1 | FileCheck %s -check-prefix=SSE41
+; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -mattr=avx | FileCheck %s -check-prefix=AVX
+
+define <16 x i8> @v16i8_icmp_uge(<16 x i8> %a, <16 x i8> %b) nounwind readnone ssp uwtable {
+ %1 = icmp uge <16 x i8> %a, %b
+ %2 = sext <16 x i1> %1 to <16 x i8>
+ ret <16 x i8> %2
+; SSE2-LABEL: v16i8_icmp_uge:
+; SSE2: pmaxub %xmm0, %xmm1
+; SSE2: pcmpeqb %xmm1, %xmm0
+
+; SSE41-LABEL: v16i8_icmp_uge:
+; SSE41: pmaxub %xmm0, %xmm1
+; SSE41: pcmpeqb %xmm1, %xmm0
+
+; AVX-LABEL: v16i8_icmp_uge:
+; AVX: vpmaxub %xmm1, %xmm0, %xmm1
+; AVX: vpcmpeqb %xmm1, %xmm0, %xmm0
+}
+
+define <16 x i8> @v16i8_icmp_ule(<16 x i8> %a, <16 x i8> %b) nounwind readnone ssp uwtable {
+ %1 = icmp ule <16 x i8> %a, %b
+ %2 = sext <16 x i1> %1 to <16 x i8>
+ ret <16 x i8> %2
+; SSE2-LABEL: v16i8_icmp_ule:
+; SSE2: pminub %xmm0, %xmm1
+; SSE2: pcmpeqb %xmm1, %xmm0
+
+; SSE41-LABEL: v16i8_icmp_ule:
+; SSE41: pminub %xmm0, %xmm1
+; SSE41: pcmpeqb %xmm1, %xmm0
+
+; AVX-LABEL: v16i8_icmp_ule:
+; AVX: vpminub %xmm1, %xmm0, %xmm1
+; AVX: vpcmpeqb %xmm1, %xmm0, %xmm0
+}
+
+
+define <8 x i16> @v8i16_icmp_uge(<8 x i16> %a, <8 x i16> %b) nounwind readnone ssp uwtable {
+ %1 = icmp uge <8 x i16> %a, %b
+ %2 = sext <8 x i1> %1 to <8 x i16>
+ ret <8 x i16> %2
+; SSE2-LABEL: v8i16_icmp_uge:
+; SSE2: movdqa {{.*}}(%rip), %xmm2
+; SEE2: pxor %xmm2, %xmm0
+; SSE2: pxor %xmm1, %xmm2
+; SSE2: pcmpgtw %xmm0, %xmm2
+; SSE2: pcmpeqd %xmm0, %xmm0
+; SSE2: pxor %xmm2, %xmm0
+
+; SSE41-LABEL: v8i16_icmp_uge:
+; SSE41: pmaxuw %xmm0, %xmm1
+; SSE41: pcmpeqw %xmm1, %xmm0
+
+; AVX-LABEL: v8i16_icmp_uge:
+; AVX: vpmaxuw %xmm1, %xmm0, %xmm1
+; AVX: vpcmpeqw %xmm1, %xmm0, %xmm0
+}
+
+define <8 x i16> @v8i16_icmp_ule(<8 x i16> %a, <8 x i16> %b) nounwind readnone ssp uwtable {
+ %1 = icmp ule <8 x i16> %a, %b
+ %2 = sext <8 x i1> %1 to <8 x i16>
+ ret <8 x i16> %2
+; SSE2-LABEL: v8i16_icmp_ule:
+; SSE2: movdqa {{.*}}(%rip), %xmm2
+; SSE2: pxor %xmm2, %xmm1
+; SSE2: pxor %xmm2, %xmm0
+; SSE2: pcmpgtw %xmm1, %xmm0
+; SSE2: pcmpeqd %xmm1, %xmm1
+; SSE2: pxor %xmm0, %xmm1
+; SSE2: movdqa %xmm1, %xmm0
+
+; SSE41-LABEL: v8i16_icmp_ule:
+; SSE41: pminuw %xmm0, %xmm1
+; SSE41: pcmpeqw %xmm1, %xmm0
+
+; AVX-LABEL: v8i16_icmp_ule:
+; AVX: vpminuw %xmm1, %xmm0, %xmm1
+; AVX: vpcmpeqw %xmm1, %xmm0, %xmm0
+}
+
+
+define <4 x i32> @v4i32_icmp_uge(<4 x i32> %a, <4 x i32> %b) nounwind readnone ssp uwtable {
+ %1 = icmp uge <4 x i32> %a, %b
+ %2 = sext <4 x i1> %1 to <4 x i32>
+ ret <4 x i32> %2
+; SSE2-LABEL: v4i32_icmp_uge:
+; SSE2: movdqa {{.*}}(%rip), %xmm2
+; SSE2: pxor %xmm2, %xmm0
+; SSE2: pxor %xmm1, %xmm2
+; SSE2: pcmpgtd %xmm0, %xmm2
+; SSE2: pcmpeqd %xmm0, %xmm0
+; SSE2: pxor %xmm2, %xmm0
+
+; SSE41-LABEL: v4i32_icmp_uge:
+; SSE41: pmaxud %xmm0, %xmm1
+; SSE41: pcmpeqd %xmm1, %xmm0
+
+; AVX-LABEL: v4i32_icmp_uge:
+; AVX: vpmaxud %xmm1, %xmm0, %xmm1
+; AVX: vpcmpeqd %xmm1, %xmm0, %xmm0
+}
+
+define <4 x i32> @v4i32_icmp_ule(<4 x i32> %a, <4 x i32> %b) nounwind readnone ssp uwtable {
+ %1 = icmp ule <4 x i32> %a, %b
+ %2 = sext <4 x i1> %1 to <4 x i32>
+ ret <4 x i32> %2
+; SSE2-LABEL: v4i32_icmp_ule:
+; SSE2: movdqa {{.*}}(%rip), %xmm2
+; SSE2: pxor %xmm2, %xmm1
+; SSE2: pxor %xmm2, %xmm0
+; SSE2: pcmpgtd %xmm1, %xmm0
+; SSE2: pcmpeqd %xmm1, %xmm1
+; SSE2: pxor %xmm0, %xmm1
+; SSE2: movdqa %xmm1, %xmm0
+
+; SSE41-LABEL: v4i32_icmp_ule:
+; SSE41: pminud %xmm0, %xmm1
+; SSE41: pcmpeqd %xmm1, %xmm0
+
+; AVX-LABEL: v4i32_icmp_ule:
+; AVX: pminud %xmm1, %xmm0, %xmm1
+; AVX: pcmpeqd %xmm1, %xmm0, %xmm0
+}
+
+; At one point we were incorrectly constant-folding a setcc to 0x1 instead of
+; 0xff, leading to a constpool load. The instruction doesn't matter here, but it
+; should set all bits to 1.
+define <16 x i8> @test_setcc_constfold_vi8(<16 x i8> %l, <16 x i8> %r) {
+ %test1 = icmp eq <16 x i8> %l, %r
+ %mask1 = sext <16 x i1> %test1 to <16 x i8>
+
+ %test2 = icmp ne <16 x i8> %l, %r
+ %mask2 = sext <16 x i1> %test2 to <16 x i8>
+
+ %res = or <16 x i8> %mask1, %mask2
+ ret <16 x i8> %res
+; SSE2-LABEL: test_setcc_constfold_vi8:
+; SSE2: pcmpeqd %xmm0, %xmm0
+
+; SSE41-LABEL: test_setcc_constfold_vi8:
+; SSE41: pcmpeqd %xmm0, %xmm0
+
+; AVX-LABEL: test_setcc_constfold_vi8:
+; AVX: vpcmpeqd %xmm0, %xmm0, %xmm0
+}
+
+; Make sure sensible results come from doing extension afterwards
+define <16 x i8> @test_setcc_constfold_vi1(<16 x i8> %l, <16 x i8> %r) {
+ %test1 = icmp eq <16 x i8> %l, %r
+ %test2 = icmp ne <16 x i8> %l, %r
+
+ %res = or <16 x i1> %test1, %test2
+ %mask = sext <16 x i1> %res to <16 x i8>
+ ret <16 x i8> %mask
+; SSE2-LABEL: test_setcc_constfold_vi1:
+; SSE2: pcmpeqd %xmm0, %xmm0
+
+; SSE41-LABEL: test_setcc_constfold_vi1:
+; SSE41: pcmpeqd %xmm0, %xmm0
+
+; AVX-LABEL: test_setcc_constfold_vi1:
+; AVX: vpcmpeqd %xmm0, %xmm0, %xmm0
+}
+
+
+; 64-bit case is also particularly important, as the constant "-1" is probably
+; just 32-bits wide.
+define <2 x i64> @test_setcc_constfold_vi64(<2 x i64> %l, <2 x i64> %r) {
+ %test1 = icmp eq <2 x i64> %l, %r
+ %mask1 = sext <2 x i1> %test1 to <2 x i64>
+
+ %test2 = icmp ne <2 x i64> %l, %r
+ %mask2 = sext <2 x i1> %test2 to <2 x i64>
+
+ %res = or <2 x i64> %mask1, %mask2
+ ret <2 x i64> %res
+; SSE2-LABEL: test_setcc_constfold_vi64:
+; SSE2: pcmpeqd %xmm0, %xmm0
+
+; SSE41-LABEL: test_setcc_constfold_vi64:
+; SSE41: pcmpeqd %xmm0, %xmm0
+
+; AVX-LABEL: test_setcc_constfold_vi64:
+; AVX: vpcmpeqd %xmm0, %xmm0, %xmm0
+}
diff --git a/test/CodeGen/X86/vec_shift4.ll b/test/CodeGen/X86/vec_shift4.ll
index 9ef7fbdb0c504..e2fe45cf97247 100644
--- a/test/CodeGen/X86/vec_shift4.ll
+++ b/test/CodeGen/X86/vec_shift4.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86 -mattr=+sse41 | FileCheck %s
+; RUN: llc < %s -march=x86 -mattr=+sse4.1 | FileCheck %s
define <2 x i64> @shl1(<4 x i32> %r, <4 x i32> %a) nounwind readnone ssp {
entry:
diff --git a/test/CodeGen/X86/vec_shuffle-14.ll b/test/CodeGen/X86/vec_shuffle-14.ll
index f0cfc44ab19a7..8f2519728b77b 100644
--- a/test/CodeGen/X86/vec_shuffle-14.ll
+++ b/test/CodeGen/X86/vec_shuffle-14.ll
@@ -1,14 +1,17 @@
-; RUN: llc < %s -march=x86 -mattr=+sse2
-; RUN: llc < %s -march=x86 -mattr=+sse2 | grep movd | count 1
-; RUN: llc < %s -march=x86-64 -mattr=+sse2 | grep movd | count 2
-; RUN: llc < %s -march=x86-64 -mattr=+sse2 | grep movq | count 3
-; RUN: llc < %s -march=x86 -mattr=+sse2 | not grep xor
+; RUN: llc < %s -march=x86 -mattr=+sse2,-avx | FileCheck %s -check-prefix=X86-32
+; RUN: llc < %s -march=x86-64 -mattr=+sse2,-avx | FileCheck %s -check-prefix=X86-64
define <4 x i32> @t1(i32 %a) nounwind {
entry:
%tmp = insertelement <4 x i32> undef, i32 %a, i32 0
%tmp6 = shufflevector <4 x i32> zeroinitializer, <4 x i32> %tmp, <4 x i32> < i32 4, i32 1, i32 2, i32 3 > ; <<4 x i32>> [#uses=1]
ret <4 x i32> %tmp6
+
+; X86-32-LABEL: t1:
+; X86-32: movd 4(%esp), %xmm0
+
+; X86-64-LABEL: t1:
+; X86-64: movd %e{{..}}, %xmm0
}
define <2 x i64> @t2(i64 %a) nounwind {
@@ -16,6 +19,12 @@ entry:
%tmp = insertelement <2 x i64> undef, i64 %a, i32 0
%tmp6 = shufflevector <2 x i64> zeroinitializer, <2 x i64> %tmp, <2 x i32> < i32 2, i32 1 > ; <<4 x i32>> [#uses=1]
ret <2 x i64> %tmp6
+
+; X86-32-LABEL: t2:
+; X86-32: movq 4(%esp), %xmm0
+
+; X86-64-LABEL: t2:
+; X86-64: movd %r{{..}}, %xmm0
}
define <2 x i64> @t3(<2 x i64>* %a) nounwind {
@@ -25,6 +34,13 @@ entry:
%tmp7 = shufflevector <4 x i32> zeroinitializer, <4 x i32> %tmp6, <4 x i32> < i32 4, i32 5, i32 2, i32 3 > ; <<4 x i32>> [#uses=1]
%tmp8 = bitcast <4 x i32> %tmp7 to <2 x i64> ; <<2 x i64>> [#uses=1]
ret <2 x i64> %tmp8
+
+; X86-32-LABEL: t3:
+; X86-32: movl 4(%esp)
+; X86-32: movq
+
+; X86-64-LABEL: t3:
+; X86-64: movq ({{.*}}), %xmm0
}
define <2 x i64> @t4(<2 x i64> %a) nounwind {
@@ -33,10 +49,22 @@ entry:
%tmp6 = shufflevector <4 x i32> zeroinitializer, <4 x i32> %tmp5, <4 x i32> < i32 4, i32 5, i32 2, i32 3 > ; <<4 x i32>> [#uses=1]
%tmp7 = bitcast <4 x i32> %tmp6 to <2 x i64> ; <<2 x i64>> [#uses=1]
ret <2 x i64> %tmp7
+
+; X86-32-LABEL: t4:
+; X86-32: movq %xmm0, %xmm0
+
+; X86-64-LABEL: t4:
+; X86-64: movq {{.*}}, %xmm0
}
define <2 x i64> @t5(<2 x i64> %a) nounwind {
entry:
%tmp6 = shufflevector <2 x i64> zeroinitializer, <2 x i64> %a, <2 x i32> < i32 2, i32 1 > ; <<4 x i32>> [#uses=1]
ret <2 x i64> %tmp6
+
+; X86-32-LABEL: t5:
+; X86-32: movq %xmm0, %xmm0
+
+; X86-64-LABEL: t5:
+; X86-64: movq {{.*}}, %xmm0
}
diff --git a/test/CodeGen/X86/vec_shuffle-16.ll b/test/CodeGen/X86/vec_shuffle-16.ll
index 09d4c1a64a01c..9aeb94289c873 100644
--- a/test/CodeGen/X86/vec_shuffle-16.ll
+++ b/test/CodeGen/X86/vec_shuffle-16.ll
@@ -1,8 +1,8 @@
; RUN: llc < %s -march=x86 -mcpu=penryn -mattr=+sse,-sse2 -mtriple=i386-apple-darwin | FileCheck %s -check-prefix=sse
; RUN: llc < %s -march=x86 -mcpu=penryn -mattr=+sse2 -mtriple=i386-apple-darwin | FileCheck %s -check-prefix=sse2
-; sse: t1:
-; sse2: t1:
+; sse-LABEL: t1:
+; sse2-LABEL: t1:
define <4 x float> @t1(<4 x float> %a, <4 x float> %b) nounwind {
; sse: shufps
; sse2: pshufd
@@ -11,8 +11,8 @@ define <4 x float> @t1(<4 x float> %a, <4 x float> %b) nounwind {
ret <4 x float> %tmp1
}
-; sse: t2:
-; sse2: t2:
+; sse-LABEL: t2:
+; sse2-LABEL: t2:
define <4 x float> @t2(<4 x float> %A, <4 x float> %B) nounwind {
; sse: shufps
; sse2: pshufd
@@ -21,8 +21,8 @@ define <4 x float> @t2(<4 x float> %A, <4 x float> %B) nounwind {
ret <4 x float> %tmp
}
-; sse: t3:
-; sse2: t3:
+; sse-LABEL: t3:
+; sse2-LABEL: t3:
define <4 x float> @t3(<4 x float> %A, <4 x float> %B) nounwind {
; sse: shufps
; sse2: pshufd
@@ -31,8 +31,8 @@ define <4 x float> @t3(<4 x float> %A, <4 x float> %B) nounwind {
ret <4 x float> %tmp
}
-; sse: t4:
-; sse2: t4:
+; sse-LABEL: t4:
+; sse2-LABEL: t4:
define <4 x float> @t4(<4 x float> %A, <4 x float> %B) nounwind {
; sse: shufps
diff --git a/test/CodeGen/X86/vec_shuffle-17.ll b/test/CodeGen/X86/vec_shuffle-17.ll
index ebc8c5b34a90a..f2f96ba94af1c 100644
--- a/test/CodeGen/X86/vec_shuffle-17.ll
+++ b/test/CodeGen/X86/vec_shuffle-17.ll
@@ -1,5 +1,5 @@
-; RUN: llc < %s -mtriple=x86_64-linux | FileCheck %s
-; RUN: llc < %s -mtriple=x86_64-win32 | FileCheck %s
+; RUN: llc < %s -mtriple=x86_64-linux -mattr=-avx | FileCheck %s
+; RUN: llc < %s -mtriple=x86_64-win32 -mattr=-avx | FileCheck %s
; CHECK-NOT: xor
; CHECK: movd {{%rdi|%rcx}}, %xmm0
; CHECK-NOT: xor
diff --git a/test/CodeGen/X86/vec_shuffle-25.ll b/test/CodeGen/X86/vec_shuffle-25.ll
index d9b2388809aab..3f42a132ef2ba 100644
--- a/test/CodeGen/X86/vec_shuffle-25.ll
+++ b/test/CodeGen/X86/vec_shuffle-25.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86 -mattr=sse41 -o %t
+; RUN: llc < %s -march=x86 -mattr=sse4.1 -o %t
; RUN: grep unpcklps %t | count 3
; RUN: grep unpckhps %t | count 1
diff --git a/test/CodeGen/X86/vec_shuffle-26.ll b/test/CodeGen/X86/vec_shuffle-26.ll
index 4c56f848dedb4..00e8e73e184e8 100644
--- a/test/CodeGen/X86/vec_shuffle-26.ll
+++ b/test/CodeGen/X86/vec_shuffle-26.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86 -mcpu=generic -mattr=sse41 | FileCheck %s
+; RUN: llc < %s -march=x86 -mcpu=generic -mattr=sse4.1 | FileCheck %s
; RUN: llc < %s -march=x86 -mcpu=atom | FileCheck -check-prefix=ATOM %s
; Transpose example using the more generic vector shuffle. Return float8
diff --git a/test/CodeGen/X86/vec_shuffle-27.ll b/test/CodeGen/X86/vec_shuffle-27.ll
index 0aff822850c09..c9b2fb51d78f6 100644
--- a/test/CodeGen/X86/vec_shuffle-27.ll
+++ b/test/CodeGen/X86/vec_shuffle-27.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86 -mcpu=penryn -mattr=sse41 | FileCheck %s
+; RUN: llc < %s -march=x86 -mcpu=penryn -mattr=sse4.1 | FileCheck %s
; ModuleID = 'vec_shuffle-27.bc'
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
@@ -7,10 +7,10 @@ target triple = "i686-apple-cl.1.0"
define <8 x float> @my2filter4_1d(<4 x float> %a, <8 x float> %T0, <8 x float> %T1) nounwind readnone {
entry:
; CHECK: subps
-; CHECK: mulps
-; CHECK: addps
; CHECK: subps
; CHECK: mulps
+; CHECK: mulps
+; CHECK: addps
; CHECK: addps
%tmp7 = shufflevector <4 x float> %a, <4 x float> undef, <8 x i32> < i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3 > ; <<8 x float>> [#uses=1]
%sub = fsub <8 x float> %T1, %T0 ; <<8 x float>> [#uses=1]
diff --git a/test/CodeGen/X86/vec_shuffle-36.ll b/test/CodeGen/X86/vec_shuffle-36.ll
index 9a06015745ed3..f1d0f939e60c8 100644
--- a/test/CodeGen/X86/vec_shuffle-36.ll
+++ b/test/CodeGen/X86/vec_shuffle-36.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86-64 -mcpu=penryn -mattr=sse41 | FileCheck %s
+; RUN: llc < %s -march=x86-64 -mcpu=penryn -mattr=sse4.1 | FileCheck %s
define <8 x i16> @shuf6(<8 x i16> %T0, <8 x i16> %T1) nounwind readnone {
; CHECK: pshufb
diff --git a/test/CodeGen/X86/vec_shuffle-39.ll b/test/CodeGen/X86/vec_shuffle-39.ll
index ee8d2d5e0b3ef..8fd9a5cd023e0 100644
--- a/test/CodeGen/X86/vec_shuffle-39.ll
+++ b/test/CodeGen/X86/vec_shuffle-39.ll
@@ -3,7 +3,7 @@
define <4 x float> @t1(<4 x float> %a, <1 x i64>* nocapture %p) nounwind {
entry:
-; CHECK: t1:
+; CHECK-LABEL: t1:
; CHECK: movlps (%rdi), %xmm0
; CHECK: ret
%p.val = load <1 x i64>* %p, align 1
@@ -15,7 +15,7 @@ entry:
define <4 x float> @t1a(<4 x float> %a, <1 x i64>* nocapture %p) nounwind {
entry:
-; CHECK: t1a:
+; CHECK-LABEL: t1a:
; CHECK: movlps (%rdi), %xmm0
; CHECK: ret
%0 = bitcast <1 x i64>* %p to double*
@@ -28,7 +28,7 @@ entry:
define void @t2(<1 x i64>* nocapture %p, <4 x float> %a) nounwind {
entry:
-; CHECK: t2:
+; CHECK-LABEL: t2:
; CHECK: movlps %xmm0, (%rdi)
; CHECK: ret
%cast.i = bitcast <4 x float> %a to <2 x i64>
@@ -40,7 +40,7 @@ entry:
define void @t2a(<1 x i64>* nocapture %p, <4 x float> %a) nounwind {
entry:
-; CHECK: t2a:
+; CHECK-LABEL: t2a:
; CHECK: movlps %xmm0, (%rdi)
; CHECK: ret
%0 = bitcast <1 x i64>* %p to double*
@@ -53,9 +53,9 @@ entry:
; rdar://10436044
define <2 x double> @t3() nounwind readonly {
bb:
-; CHECK: t3:
-; CHECK: punpcklqdq %xmm1, %xmm0
+; CHECK-LABEL: t3:
; CHECK: movq (%rax), %xmm1
+; CHECK: punpcklqdq %xmm2, %xmm0
; CHECK: movsd %xmm1, %xmm0
%tmp0 = load i128* null, align 1
%tmp1 = load <2 x i32>* undef, align 8
@@ -71,10 +71,10 @@ bb:
; rdar://10450317
define <2 x i64> @t4() nounwind readonly {
bb:
-; CHECK: t4:
-; CHECK: punpcklqdq %xmm0, %xmm1
+; CHECK-LABEL: t4:
; CHECK: movq (%rax), %xmm0
-; CHECK: movsd %xmm1, %xmm0
+; CHECK: punpcklqdq %{{xmm.}}, %[[XMM:xmm[0-9]]]
+; CHECK: movsd %[[XMM]], %xmm0
%tmp0 = load i128* null, align 1
%tmp1 = load <2 x i32>* undef, align 8
%tmp2 = bitcast i128 %tmp0 to <16 x i8>
diff --git a/test/CodeGen/X86/vec_splat-2.ll b/test/CodeGen/X86/vec_splat-2.ll
index 5c668b7e5a5b7..9d82f97dca1c7 100644
--- a/test/CodeGen/X86/vec_splat-2.ll
+++ b/test/CodeGen/X86/vec_splat-2.ll
@@ -24,7 +24,7 @@ define void @test(<2 x i64>* %P, i8 %x) nounwind {
store <2 x i64> %tmp73.upgrd.1, <2 x i64>* %P
ret void
-; CHECK: test:
+; CHECK-LABEL: test:
; CHECK-NOT: pshufd
; CHECK: punpcklbw
; CHECK: punpcklbw
diff --git a/test/CodeGen/X86/vec_splat-3.ll b/test/CodeGen/X86/vec_splat-3.ll
index cf0ecf40554d6..754cbf41867d1 100644
--- a/test/CodeGen/X86/vec_splat-3.ll
+++ b/test/CodeGen/X86/vec_splat-3.ll
@@ -1,11 +1,11 @@
-; RUN: llc <%s -march=x86 -mcpu=penryn -mattr=sse41 | FileCheck %s
+; RUN: llc <%s -march=x86 -mcpu=penryn -mattr=sse4.1 | FileCheck %s
; Splat test for v8i16
define <8 x i16> @shuf_8i16_0(<8 x i16> %T0, <8 x i16> %T1) nounwind readnone {
%tmp6 = shufflevector <8 x i16> %T0, <8 x i16> %T1, <8 x i32> <i32 0, i32 undef, i32 undef, i32 0, i32 undef, i32 undef, i32 undef, i32 undef>
ret <8 x i16> %tmp6
-; CHECK: shuf_8i16_0:
+; CHECK-LABEL: shuf_8i16_0:
; CHECK: pshuflw $0
}
@@ -13,7 +13,7 @@ define <8 x i16> @shuf_8i16_1(<8 x i16> %T0, <8 x i16> %T1) nounwind readnone {
%tmp6 = shufflevector <8 x i16> %T0, <8 x i16> %T1, <8 x i32> <i32 1, i32 1, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <8 x i16> %tmp6
-; CHECK: shuf_8i16_1:
+; CHECK-LABEL: shuf_8i16_1:
; CHECK: pshuflw $5
}
@@ -21,7 +21,7 @@ define <8 x i16> @shuf_8i16_2(<8 x i16> %T0, <8 x i16> %T1) nounwind readnone {
%tmp6 = shufflevector <8 x i16> %T0, <8 x i16> %T1, <8 x i32> <i32 2, i32 undef, i32 undef, i32 2, i32 undef, i32 2, i32 undef, i32 undef>
ret <8 x i16> %tmp6
-; CHECK: shuf_8i16_2:
+; CHECK-LABEL: shuf_8i16_2:
; CHECK: punpcklwd
; CHECK-NEXT: pshufd $-86
}
@@ -30,7 +30,7 @@ define <8 x i16> @shuf_8i16_3(<8 x i16> %T0, <8 x i16> %T1) nounwind readnone {
%tmp6 = shufflevector <8 x i16> %T0, <8 x i16> %T1, <8 x i32> <i32 3, i32 3, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <8 x i16> %tmp6
-; CHECK: shuf_8i16_3:
+; CHECK-LABEL: shuf_8i16_3:
; CHECK: pshuflw $15
}
@@ -38,7 +38,7 @@ define <8 x i16> @shuf_8i16_4(<8 x i16> %T0, <8 x i16> %T1) nounwind readnone {
%tmp6 = shufflevector <8 x i16> %T0, <8 x i16> %T1, <8 x i32> <i32 4, i32 undef, i32 undef, i32 undef, i32 4, i32 undef, i32 undef, i32 undef>
ret <8 x i16> %tmp6
-; CHECK: shuf_8i16_4:
+; CHECK-LABEL: shuf_8i16_4:
; CHECK: movhlps
}
@@ -46,7 +46,7 @@ define <8 x i16> @shuf_8i16_5(<8 x i16> %T0, <8 x i16> %T1) nounwind readnone {
%tmp6 = shufflevector <8 x i16> %T0, <8 x i16> %T1, <8 x i32> <i32 5, i32 undef, i32 undef, i32 5, i32 undef, i32 undef, i32 undef, i32 undef>
ret <8 x i16> %tmp6
-; CHECK: shuf_8i16_5:
+; CHECK-LABEL: shuf_8i16_5:
; CHECK: punpckhwd
; CHECK-NEXT: pshufd $85
}
@@ -55,7 +55,7 @@ define <8 x i16> @shuf_8i16_6(<8 x i16> %T0, <8 x i16> %T1) nounwind readnone {
%tmp6 = shufflevector <8 x i16> %T0, <8 x i16> %T1, <8 x i32> <i32 6, i32 6, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <8 x i16> %tmp6
-; CHECK: shuf_8i16_6:
+; CHECK-LABEL: shuf_8i16_6:
; CHECK: punpckhwd
; CHECK-NEXT: pshufd $-86
}
@@ -64,7 +64,7 @@ define <8 x i16> @shuf_8i16_7(<8 x i16> %T0, <8 x i16> %T1) nounwind readnone {
%tmp6 = shufflevector <8 x i16> %T0, <8 x i16> %T1, <8 x i32> <i32 7, i32 undef, i32 undef, i32 7, i32 undef, i32 undef, i32 undef, i32 undef>
ret <8 x i16> %tmp6
-; CHECK: shuf_8i16_7:
+; CHECK-LABEL: shuf_8i16_7:
; CHECK: punpckhwd
; CHECK-NEXT: pshufd $-1
}
@@ -74,7 +74,7 @@ define <16 x i8> @shuf_16i8_8(<16 x i8> %T0, <16 x i8> %T1) nounwind readnone {
%tmp6 = shufflevector <16 x i8> %T0, <16 x i8> %T1, <16 x i32> <i32 0, i32 undef, i32 undef, i32 0, i32 undef, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
ret <16 x i8> %tmp6
-; CHECK: shuf_16i8_8:
+; CHECK-LABEL: shuf_16i8_8:
; CHECK: punpcklbw
; CHECK-NEXT: punpcklbw
; CHECK-NEXT: pshufd $0
@@ -84,7 +84,7 @@ define <16 x i8> @shuf_16i8_9(<16 x i8> %T0, <16 x i8> %T1) nounwind readnone {
%tmp6 = shufflevector <16 x i8> %T0, <16 x i8> %T1, <16 x i32> <i32 1, i32 1, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef >
ret <16 x i8> %tmp6
-; CHECK: shuf_16i8_9:
+; CHECK-LABEL: shuf_16i8_9:
; CHECK: punpcklbw
; CHECK-NEXT: punpcklbw
; CHECK-NEXT: pshufd $85
@@ -94,7 +94,7 @@ define <16 x i8> @shuf_16i8_10(<16 x i8> %T0, <16 x i8> %T1) nounwind readnone {
%tmp6 = shufflevector <16 x i8> %T0, <16 x i8> %T1, <16 x i32> <i32 2, i32 undef, i32 undef, i32 2, i32 undef, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2>
ret <16 x i8> %tmp6
-; CHECK: shuf_16i8_10:
+; CHECK-LABEL: shuf_16i8_10:
; CHECK: punpcklbw
; CHECK-NEXT: punpcklbw
; CHECK-NEXT: pshufd $-86
@@ -104,7 +104,7 @@ define <16 x i8> @shuf_16i8_11(<16 x i8> %T0, <16 x i8> %T1) nounwind readnone {
%tmp6 = shufflevector <16 x i8> %T0, <16 x i8> %T1, <16 x i32> <i32 3, i32 undef, i32 undef, i32 3, i32 undef, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3>
ret <16 x i8> %tmp6
-; CHECK: shuf_16i8_11:
+; CHECK-LABEL: shuf_16i8_11:
; CHECK: punpcklbw
; CHECK-NEXT: punpcklbw
; CHECK-NEXT: pshufd $-1
@@ -115,7 +115,7 @@ define <16 x i8> @shuf_16i8_12(<16 x i8> %T0, <16 x i8> %T1) nounwind readnone {
%tmp6 = shufflevector <16 x i8> %T0, <16 x i8> %T1, <16 x i32> <i32 4, i32 undef, i32 undef, i32 undef, i32 4, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef >
ret <16 x i8> %tmp6
-; CHECK: shuf_16i8_12:
+; CHECK-LABEL: shuf_16i8_12:
; CHECK: pshufd $5
}
@@ -123,7 +123,7 @@ define <16 x i8> @shuf_16i8_13(<16 x i8> %T0, <16 x i8> %T1) nounwind readnone {
%tmp6 = shufflevector <16 x i8> %T0, <16 x i8> %T1, <16 x i32> <i32 5, i32 undef, i32 undef, i32 5, i32 undef, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5>
ret <16 x i8> %tmp6
-; CHECK: shuf_16i8_13:
+; CHECK-LABEL: shuf_16i8_13:
; CHECK: punpcklbw
; CHECK-NEXT: punpckhbw
; CHECK-NEXT: pshufd $85
@@ -133,7 +133,7 @@ define <16 x i8> @shuf_16i8_14(<16 x i8> %T0, <16 x i8> %T1) nounwind readnone {
%tmp6 = shufflevector <16 x i8> %T0, <16 x i8> %T1, <16 x i32> <i32 6, i32 undef, i32 undef, i32 6, i32 undef, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6>
ret <16 x i8> %tmp6
-; CHECK: shuf_16i8_14:
+; CHECK-LABEL: shuf_16i8_14:
; CHECK: punpcklbw
; CHECK-NEXT: punpckhbw
; CHECK-NEXT: pshufd $-86
@@ -143,7 +143,7 @@ define <16 x i8> @shuf_16i8_15(<16 x i8> %T0, <16 x i8> %T1) nounwind readnone {
%tmp6 = shufflevector <16 x i8> %T0, <16 x i8> %T1, <16 x i32> <i32 7, i32 undef, i32 undef, i32 7, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef >
ret <16 x i8> %tmp6
-; CHECK: shuf_16i8_15:
+; CHECK-LABEL: shuf_16i8_15:
; CHECK: punpcklbw
; CHECK-NEXT: punpckhbw
; CHECK-NEXT: pshufd $-1
@@ -153,7 +153,7 @@ define <16 x i8> @shuf_16i8_16(<16 x i8> %T0, <16 x i8> %T1) nounwind readnone {
%tmp6 = shufflevector <16 x i8> %T0, <16 x i8> %T1, <16 x i32> <i32 8, i32 undef, i32 undef, i32 8, i32 undef, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8>
ret <16 x i8> %tmp6
-; CHECK: shuf_16i8_16:
+; CHECK-LABEL: shuf_16i8_16:
; CHECK: punpckhbw
; CHECK-NEXT: punpcklbw
; CHECK-NEXT: pshufd $0
@@ -163,7 +163,7 @@ define <16 x i8> @shuf_16i8_17(<16 x i8> %T0, <16 x i8> %T1) nounwind readnone {
%tmp6 = shufflevector <16 x i8> %T0, <16 x i8> %T1, <16 x i32> <i32 9, i32 undef, i32 undef, i32 9, i32 undef, i32 9, i32 9, i32 9, i32 9, i32 9, i32 9, i32 9, i32 9, i32 9, i32 9, i32 9>
ret <16 x i8> %tmp6
-; CHECK: shuf_16i8_17:
+; CHECK-LABEL: shuf_16i8_17:
; CHECK: punpckhbw
; CHECK-NEXT: punpcklbw
; CHECK-NEXT: pshufd $85
@@ -173,7 +173,7 @@ define <16 x i8> @shuf_16i8_18(<16 x i8> %T0, <16 x i8> %T1) nounwind readnone {
%tmp6 = shufflevector <16 x i8> %T0, <16 x i8> %T1, <16 x i32> <i32 10, i32 undef, i32 undef, i32 10, i32 undef, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10>
ret <16 x i8> %tmp6
-; CHECK: shuf_16i8_18:
+; CHECK-LABEL: shuf_16i8_18:
; CHECK: punpckhbw
; CHECK-NEXT: punpcklbw
; CHECK-NEXT: pshufd $-86
@@ -183,7 +183,7 @@ define <16 x i8> @shuf_16i8_19(<16 x i8> %T0, <16 x i8> %T1) nounwind readnone {
%tmp6 = shufflevector <16 x i8> %T0, <16 x i8> %T1, <16 x i32> <i32 11, i32 undef, i32 undef, i32 11, i32 undef, i32 11, i32 11, i32 11, i32 11, i32 11, i32 11, i32 11, i32 11, i32 11, i32 11, i32 11>
ret <16 x i8> %tmp6
-; CHECK: shuf_16i8_19:
+; CHECK-LABEL: shuf_16i8_19:
; CHECK: punpckhbw
; CHECK-NEXT: punpcklbw
; CHECK-NEXT: pshufd $-1
@@ -193,7 +193,7 @@ define <16 x i8> @shuf_16i8_20(<16 x i8> %T0, <16 x i8> %T1) nounwind readnone {
%tmp6 = shufflevector <16 x i8> %T0, <16 x i8> %T1, <16 x i32> <i32 12, i32 undef, i32 undef, i32 12, i32 undef, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12, i32 12>
ret <16 x i8> %tmp6
-; CHECK: shuf_16i8_20:
+; CHECK-LABEL: shuf_16i8_20:
; CHECK: punpckhbw
; CHECK-NEXT: punpckhbw
; CHECK-NEXT: pshufd $0
@@ -203,7 +203,7 @@ define <16 x i8> @shuf_16i8_21(<16 x i8> %T0, <16 x i8> %T1) nounwind readnone {
%tmp6 = shufflevector <16 x i8> %T0, <16 x i8> %T1, <16 x i32> <i32 13, i32 undef, i32 undef, i32 13, i32 undef, i32 13, i32 13, i32 13, i32 13, i32 13, i32 13, i32 13, i32 13, i32 13, i32 13, i32 13>
ret <16 x i8> %tmp6
-; CHECK: shuf_16i8_21:
+; CHECK-LABEL: shuf_16i8_21:
; CHECK: punpckhbw
; CHECK-NEXT: punpckhbw
; CHECK-NEXT: pshufd $85
@@ -213,7 +213,7 @@ define <16 x i8> @shuf_16i8_22(<16 x i8> %T0, <16 x i8> %T1) nounwind readnone {
%tmp6 = shufflevector <16 x i8> %T0, <16 x i8> %T1, <16 x i32> <i32 14, i32 undef, i32 undef, i32 14, i32 undef, i32 14, i32 14, i32 14, i32 14, i32 14, i32 14, i32 14, i32 14, i32 14, i32 14, i32 14>
ret <16 x i8> %tmp6
-; CHECK: shuf_16i8_22:
+; CHECK-LABEL: shuf_16i8_22:
; CHECK: punpckhbw
; CHECK-NEXT: punpckhbw
; CHECK-NEXT: pshufd $-86
@@ -223,7 +223,7 @@ define <16 x i8> @shuf_16i8_23(<16 x i8> %T0, <16 x i8> %T1) nounwind readnone {
%tmp6 = shufflevector <16 x i8> %T0, <16 x i8> %T1, <16 x i32> <i32 15, i32 undef, i32 undef, i32 15, i32 undef, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15>
ret <16 x i8> %tmp6
-; CHECK: shuf_16i8_23:
+; CHECK-LABEL: shuf_16i8_23:
; CHECK: punpckhbw
; CHECK-NEXT: punpckhbw
; CHECK-NEXT: pshufd $-1
diff --git a/test/CodeGen/X86/vec_splat.ll b/test/CodeGen/X86/vec_splat.ll
index deedee8019676..543c96ef3d451 100644
--- a/test/CodeGen/X86/vec_splat.ll
+++ b/test/CodeGen/X86/vec_splat.ll
@@ -11,10 +11,10 @@ define void @test_v4sf(<4 x float>* %P, <4 x float>* %Q, float %X) nounwind {
store <4 x float> %tmp10, <4 x float>* %P
ret void
-; SSE2: test_v4sf:
+; SSE2-LABEL: test_v4sf:
; SSE2: pshufd $0
-; SSE3: test_v4sf:
+; SSE3-LABEL: test_v4sf:
; SSE3: pshufd $0
}
@@ -26,9 +26,9 @@ define void @test_v2sd(<2 x double>* %P, <2 x double>* %Q, double %X) nounwind {
store <2 x double> %tmp6, <2 x double>* %P
ret void
-; SSE2: test_v2sd:
+; SSE2-LABEL: test_v2sd:
; SSE2: shufpd $0
-; SSE3: test_v2sd:
+; SSE3-LABEL: test_v2sd:
; SSE3: movddup
}
diff --git a/test/CodeGen/X86/vec_split.ll b/test/CodeGen/X86/vec_split.ll
new file mode 100644
index 0000000000000..f9e7c20ba4e2e
--- /dev/null
+++ b/test/CodeGen/X86/vec_split.ll
@@ -0,0 +1,42 @@
+; RUN: llc -march=x86-64 -mcpu=corei7 < %s | FileCheck %s -check-prefix=SSE4
+; RUN: llc -march=x86-64 -mcpu=corei7-avx < %s | FileCheck %s -check-prefix=AVX1
+; RUN: llc -march=x86-64 -mcpu=core-avx2 < %s | FileCheck %s -check-prefix=AVX2
+
+define <16 x i16> @split16(<16 x i16> %a, <16 x i16> %b, <16 x i8> %__mask) {
+; SSE4-LABEL: split16:
+; SSE4: pminuw
+; SSE4: pminuw
+; SSE4: ret
+; AVX1-LABEL: split16:
+; AVX1: vpminuw
+; AVX1: vpminuw
+; AVX1: ret
+; AVX2-LABEL: split16:
+; AVX2: vpminuw
+; AVX2: ret
+ %1 = icmp ult <16 x i16> %a, %b
+ %2 = select <16 x i1> %1, <16 x i16> %a, <16 x i16> %b
+ ret <16 x i16> %2
+}
+
+define <32 x i16> @split32(<32 x i16> %a, <32 x i16> %b, <32 x i8> %__mask) {
+; SSE4-LABEL: split32:
+; SSE4: pminuw
+; SSE4: pminuw
+; SSE4: pminuw
+; SSE4: pminuw
+; SSE4: ret
+; AVX1-LABEL: split32:
+; AVX1: vpminuw
+; AVX1: vpminuw
+; AVX1: vpminuw
+; AVX1: vpminuw
+; AVX1: ret
+; AVX2-LABEL: split32:
+; AVX2: vpminuw
+; AVX2: vpminuw
+; AVX2: ret
+ %1 = icmp ult <32 x i16> %a, %b
+ %2 = select <32 x i1> %1, <32 x i16> %a, <32 x i16> %b
+ ret <32 x i16> %2
+}
diff --git a/test/CodeGen/X86/vec_ss_load_fold.ll b/test/CodeGen/X86/vec_ss_load_fold.ll
index c294df575a10c..80f12a2dec2cf 100644
--- a/test/CodeGen/X86/vec_ss_load_fold.ll
+++ b/test/CodeGen/X86/vec_ss_load_fold.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86 -mattr=+sse,+sse2,+sse41 | FileCheck %s
+; RUN: llc < %s -march=x86 -mattr=+sse,+sse2,+sse4.1 | FileCheck %s
target datalayout = "e-p:32:32"
target triple = "i686-apple-darwin8.7.2"
@@ -15,7 +15,7 @@ define i16 @test1(float %f) nounwind {
%tmp.upgrd.1 = tail call i32 @llvm.x86.sse.cvttss2si( <4 x float> %tmp59 ) ; <i32> [#uses=1]
%tmp69 = trunc i32 %tmp.upgrd.1 to i16 ; <i16> [#uses=1]
ret i16 %tmp69
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK: subss LCPI0_
; CHECK: mulss LCPI0_
; CHECK: minss LCPI0_
@@ -30,7 +30,7 @@ define i16 @test2(float %f) nounwind {
%tmp = tail call i32 @llvm.x86.sse.cvttss2si( <4 x float> %tmp59 ) ; <i32> [#uses=1]
%tmp69 = trunc i32 %tmp to i16 ; <i16> [#uses=1]
ret i16 %tmp69
-; CHECK: test2:
+; CHECK-LABEL: test2:
; CHECK: addss LCPI1_
; CHECK: mulss LCPI1_
; CHECK: minss LCPI1_
@@ -55,7 +55,7 @@ define <4 x float> @test3(<4 x float> %A, float *%b, i32 %C) nounwind {
%B = insertelement <4 x float> undef, float %a, i32 0
%X = call <4 x float> @llvm.x86.sse41.round.ss(<4 x float> %A, <4 x float> %B, i32 4)
ret <4 x float> %X
-; CHECK: test3:
+; CHECK-LABEL: test3:
; CHECK: roundss $4, (%eax), %xmm0
}
@@ -65,7 +65,7 @@ define <4 x float> @test4(<4 x float> %A, float *%b, i32 %C) nounwind {
%q = call <4 x float> @f()
%X = call <4 x float> @llvm.x86.sse41.round.ss(<4 x float> %q, <4 x float> %B, i32 4)
ret <4 x float> %X
-; CHECK: test4:
+; CHECK-LABEL: test4:
; CHECK: movss (%eax), %xmm
; CHECK: call
; CHECK: roundss $4, %xmm{{.*}}, %xmm0
@@ -77,7 +77,7 @@ entry:
%0 = tail call <2 x double> @llvm.x86.sse2.cvtsi2sd(<2 x double> <double
4.569870e+02, double 1.233210e+02>, i32 128) nounwind readnone
ret <2 x double> %0
-; CHECK: test5:
+; CHECK-LABEL: test5:
; CHECK: mov
; CHECK: mov
; CHECK: cvtsi2sd
diff --git a/test/CodeGen/X86/vec_uint_to_fp.ll b/test/CodeGen/X86/vec_uint_to_fp.ll
index fe7fa2fe67d58..ee20f1fcbd047 100644
--- a/test/CodeGen/X86/vec_uint_to_fp.ll
+++ b/test/CodeGen/X86/vec_uint_to_fp.ll
@@ -2,7 +2,7 @@
; Test that we are not lowering uinttofp to scalars
define <4 x float> @test1(<4 x i32> %A) nounwind {
-; CHECK: test1:
+; CHECK-LABEL: test1:
; CHECK-NOT: cvtsd2ss
; CHECK: ret
%C = uitofp <4 x i32> %A to <4 x float>
diff --git a/test/CodeGen/X86/vector-gep.ll b/test/CodeGen/X86/vector-gep.ll
index ec93ce0761cc2..b87d8447e543d 100644
--- a/test/CodeGen/X86/vector-gep.ll
+++ b/test/CodeGen/X86/vector-gep.ll
@@ -1,7 +1,7 @@
; RUN: llc < %s -march=x86 -mcpu=corei7-avx | FileCheck %s
; RUN: opt -instsimplify -disable-output < %s
-;CHECK: AGEP0:
+;CHECK-LABEL: AGEP0:
define <4 x i32*> @AGEP0(i32* %ptr) nounwind {
entry:
%vecinit.i = insertelement <4 x i32*> undef, i32* %ptr, i32 0
@@ -16,7 +16,7 @@ entry:
;CHECK: ret
}
-;CHECK: AGEP1:
+;CHECK-LABEL: AGEP1:
define i32 @AGEP1(<4 x i32*> %param) nounwind {
entry:
;CHECK: padd
@@ -27,7 +27,7 @@ entry:
;CHECK: ret
}
-;CHECK: AGEP2:
+;CHECK-LABEL: AGEP2:
define i32 @AGEP2(<4 x i32*> %param, <4 x i32> %off) nounwind {
entry:
;CHECK: pslld $2
@@ -39,7 +39,7 @@ entry:
;CHECK: ret
}
-;CHECK: AGEP3:
+;CHECK-LABEL: AGEP3:
define <4 x i32*> @AGEP3(<4 x i32*> %param, <4 x i32> %off) nounwind {
entry:
;CHECK: pslld $2
@@ -51,7 +51,7 @@ entry:
;CHECK: ret
}
-;CHECK: AGEP4:
+;CHECK-LABEL: AGEP4:
define <4 x i16*> @AGEP4(<4 x i16*> %param, <4 x i32> %off) nounwind {
entry:
; Multiply offset by two (add it to itself).
@@ -63,7 +63,7 @@ entry:
;CHECK: ret
}
-;CHECK: AGEP5:
+;CHECK-LABEL: AGEP5:
define <4 x i8*> @AGEP5(<4 x i8*> %param, <4 x i8> %off) nounwind {
entry:
;CHECK: paddd
@@ -74,7 +74,7 @@ entry:
; The size of each element is 1 byte. No need to multiply by element size.
-;CHECK: AGEP6:
+;CHECK-LABEL: AGEP6:
define <4 x i8*> @AGEP6(<4 x i8*> %param, <4 x i32> %off) nounwind {
entry:
;CHECK-NOT: pslld
diff --git a/test/CodeGen/X86/vector-variable-idx2.ll b/test/CodeGen/X86/vector-variable-idx2.ll
index d47df90e7e643..6e8ae2e42c942 100644
--- a/test/CodeGen/X86/vector-variable-idx2.ll
+++ b/test/CodeGen/X86/vector-variable-idx2.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86-64 -mattr=+sse41
+; RUN: llc < %s -march=x86-64 -mattr=+sse4.1
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
target triple = "x86_64-apple-darwin11.0.0"
diff --git a/test/CodeGen/X86/viabs.ll b/test/CodeGen/X86/viabs.ll
index f748a14836c8f..0be00da83fdf9 100644
--- a/test/CodeGen/X86/viabs.ll
+++ b/test/CodeGen/X86/viabs.ll
@@ -3,18 +3,18 @@
; RUN: llc < %s -march=x86-64 -mcpu=core-avx2 | FileCheck %s -check-prefix=AVX2
define <4 x i32> @test1(<4 x i32> %a) nounwind {
-; SSE2: test1:
+; SSE2-LABEL: test1:
; SSE2: movdqa
; SSE2: psrad $31
; SSE2-NEXT: padd
; SSE2-NEXT: pxor
; SSE2-NEXT: ret
-; SSSE3: test1:
+; SSSE3-LABEL: test1:
; SSSE3: pabsd
; SSSE3-NEXT: ret
-; AVX2: test1:
+; AVX2-LABEL: test1:
; AVX2: vpabsd
; AVX2-NEXT: ret
%tmp1neg = sub <4 x i32> zeroinitializer, %a
@@ -24,18 +24,18 @@ define <4 x i32> @test1(<4 x i32> %a) nounwind {
}
define <4 x i32> @test2(<4 x i32> %a) nounwind {
-; SSE2: test2:
+; SSE2-LABEL: test2:
; SSE2: movdqa
; SSE2: psrad $31
; SSE2-NEXT: padd
; SSE2-NEXT: pxor
; SSE2-NEXT: ret
-; SSSE3: test2:
+; SSSE3-LABEL: test2:
; SSSE3: pabsd
; SSSE3-NEXT: ret
-; AVX2: test2:
+; AVX2-LABEL: test2:
; AVX2: vpabsd
; AVX2-NEXT: ret
%tmp1neg = sub <4 x i32> zeroinitializer, %a
@@ -45,18 +45,18 @@ define <4 x i32> @test2(<4 x i32> %a) nounwind {
}
define <8 x i16> @test3(<8 x i16> %a) nounwind {
-; SSE2: test3:
+; SSE2-LABEL: test3:
; SSE2: movdqa
; SSE2: psraw $15
; SSE2-NEXT: padd
; SSE2-NEXT: pxor
; SSE2-NEXT: ret
-; SSSE3: test3:
+; SSSE3-LABEL: test3:
; SSSE3: pabsw
; SSSE3-NEXT: ret
-; AVX2: test3:
+; AVX2-LABEL: test3:
; AVX2: vpabsw
; AVX2-NEXT: ret
%tmp1neg = sub <8 x i16> zeroinitializer, %a
@@ -66,18 +66,18 @@ define <8 x i16> @test3(<8 x i16> %a) nounwind {
}
define <16 x i8> @test4(<16 x i8> %a) nounwind {
-; SSE2: test4:
+; SSE2-LABEL: test4:
; SSE2: pxor
; SSE2: pcmpgtb
; SSE2-NEXT: padd
; SSE2-NEXT: pxor
; SSE2-NEXT: ret
-; SSSE3: test4:
+; SSSE3-LABEL: test4:
; SSSE3: pabsb
; SSSE3-NEXT: ret
-; AVX2: test4:
+; AVX2-LABEL: test4:
; AVX2: vpabsb
; AVX2-NEXT: ret
%tmp1neg = sub <16 x i8> zeroinitializer, %a
@@ -87,18 +87,18 @@ define <16 x i8> @test4(<16 x i8> %a) nounwind {
}
define <4 x i32> @test5(<4 x i32> %a) nounwind {
-; SSE2: test5:
+; SSE2-LABEL: test5:
; SSE2: movdqa
; SSE2: psrad $31
; SSE2-NEXT: padd
; SSE2-NEXT: pxor
; SSE2-NEXT: ret
-; SSSE3: test5:
+; SSSE3-LABEL: test5:
; SSSE3: pabsd
; SSSE3-NEXT: ret
-; AVX2: test5:
+; AVX2-LABEL: test5:
; AVX2: vpabsd
; AVX2-NEXT: ret
%tmp1neg = sub <4 x i32> zeroinitializer, %a
@@ -108,12 +108,12 @@ define <4 x i32> @test5(<4 x i32> %a) nounwind {
}
define <8 x i32> @test6(<8 x i32> %a) nounwind {
-; SSSE3: test6:
+; SSSE3-LABEL: test6:
; SSSE3: pabsd
; SSSE3: pabsd
; SSSE3-NEXT: ret
-; AVX2: test6:
+; AVX2-LABEL: test6:
; AVX2: vpabsd {{.*}}%ymm
; AVX2-NEXT: ret
%tmp1neg = sub <8 x i32> zeroinitializer, %a
@@ -123,12 +123,12 @@ define <8 x i32> @test6(<8 x i32> %a) nounwind {
}
define <8 x i32> @test7(<8 x i32> %a) nounwind {
-; SSSE3: test7:
+; SSSE3-LABEL: test7:
; SSSE3: pabsd
; SSSE3: pabsd
; SSSE3-NEXT: ret
-; AVX2: test7:
+; AVX2-LABEL: test7:
; AVX2: vpabsd {{.*}}%ymm
; AVX2-NEXT: ret
%tmp1neg = sub <8 x i32> zeroinitializer, %a
@@ -138,12 +138,12 @@ define <8 x i32> @test7(<8 x i32> %a) nounwind {
}
define <16 x i16> @test8(<16 x i16> %a) nounwind {
-; SSSE3: test8:
+; SSSE3-LABEL: test8:
; SSSE3: pabsw
; SSSE3: pabsw
; SSSE3-NEXT: ret
-; AVX2: test8:
+; AVX2-LABEL: test8:
; AVX2: vpabsw {{.*}}%ymm
; AVX2-NEXT: ret
%tmp1neg = sub <16 x i16> zeroinitializer, %a
@@ -153,12 +153,12 @@ define <16 x i16> @test8(<16 x i16> %a) nounwind {
}
define <32 x i8> @test9(<32 x i8> %a) nounwind {
-; SSSE3: test9:
+; SSSE3-LABEL: test9:
; SSSE3: pabsb
; SSSE3: pabsb
; SSSE3-NEXT: ret
-; AVX2: test9:
+; AVX2-LABEL: test9:
; AVX2: vpabsb {{.*}}%ymm
; AVX2-NEXT: ret
%tmp1neg = sub <32 x i8> zeroinitializer, %a
@@ -168,12 +168,12 @@ define <32 x i8> @test9(<32 x i8> %a) nounwind {
}
define <8 x i32> @test10(<8 x i32> %a) nounwind {
-; SSSE3: test10:
+; SSSE3-LABEL: test10:
; SSSE3: pabsd
; SSSE3: pabsd
; SSSE3-NEXT: ret
-; AVX2: test10:
+; AVX2-LABEL: test10:
; AVX2: vpabsd {{.*}}%ymm
; AVX2-NEXT: ret
%tmp1neg = sub <8 x i32> zeroinitializer, %a
diff --git a/test/CodeGen/X86/vselect-minmax.ll b/test/CodeGen/X86/vselect-minmax.ll
index cf654b6f20599..25189f23e43a7 100644
--- a/test/CodeGen/X86/vselect-minmax.ll
+++ b/test/CodeGen/X86/vselect-minmax.ll
@@ -25,13 +25,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE4: test1:
+; SSE4-LABEL: test1:
; SSE4: pminsb
-; AVX1: test1:
+; AVX1-LABEL: test1:
; AVX1: vpminsb
-; AVX2: test1:
+; AVX2-LABEL: test1:
; AVX2: vpminsb
}
@@ -57,13 +57,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE4: test2:
+; SSE4-LABEL: test2:
; SSE4: pminsb
-; AVX1: test2:
+; AVX1-LABEL: test2:
; AVX1: vpminsb
-; AVX2: test2:
+; AVX2-LABEL: test2:
; AVX2: vpminsb
}
@@ -89,13 +89,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE4: test3:
+; SSE4-LABEL: test3:
; SSE4: pmaxsb
-; AVX1: test3:
+; AVX1-LABEL: test3:
; AVX1: vpmaxsb
-; AVX2: test3:
+; AVX2-LABEL: test3:
; AVX2: vpmaxsb
}
@@ -121,13 +121,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE4: test4:
+; SSE4-LABEL: test4:
; SSE4: pmaxsb
-; AVX1: test4:
+; AVX1-LABEL: test4:
; AVX1: vpmaxsb
-; AVX2: test4:
+; AVX2-LABEL: test4:
; AVX2: vpmaxsb
}
@@ -153,13 +153,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE2: test5:
+; SSE2-LABEL: test5:
; SSE2: pminub
-; AVX1: test5:
+; AVX1-LABEL: test5:
; AVX1: vpminub
-; AVX2: test5:
+; AVX2-LABEL: test5:
; AVX2: vpminub
}
@@ -185,13 +185,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE2: test6:
+; SSE2-LABEL: test6:
; SSE2: pminub
-; AVX1: test6:
+; AVX1-LABEL: test6:
; AVX1: vpminub
-; AVX2: test6:
+; AVX2-LABEL: test6:
; AVX2: vpminub
}
@@ -217,13 +217,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE2: test7:
+; SSE2-LABEL: test7:
; SSE2: pmaxub
-; AVX1: test7:
+; AVX1-LABEL: test7:
; AVX1: vpmaxub
-; AVX2: test7:
+; AVX2-LABEL: test7:
; AVX2: vpmaxub
}
@@ -249,13 +249,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE2: test8:
+; SSE2-LABEL: test8:
; SSE2: pmaxub
-; AVX1: test8:
+; AVX1-LABEL: test8:
; AVX1: vpmaxub
-; AVX2: test8:
+; AVX2-LABEL: test8:
; AVX2: vpmaxub
}
@@ -281,13 +281,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE2: test9:
+; SSE2-LABEL: test9:
; SSE2: pminsw
-; AVX1: test9:
+; AVX1-LABEL: test9:
; AVX1: vpminsw
-; AVX2: test9:
+; AVX2-LABEL: test9:
; AVX2: vpminsw
}
@@ -313,13 +313,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE2: test10:
+; SSE2-LABEL: test10:
; SSE2: pminsw
-; AVX1: test10:
+; AVX1-LABEL: test10:
; AVX1: vpminsw
-; AVX2: test10:
+; AVX2-LABEL: test10:
; AVX2: vpminsw
}
@@ -345,13 +345,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE2: test11:
+; SSE2-LABEL: test11:
; SSE2: pmaxsw
-; AVX1: test11:
+; AVX1-LABEL: test11:
; AVX1: vpmaxsw
-; AVX2: test11:
+; AVX2-LABEL: test11:
; AVX2: vpmaxsw
}
@@ -377,13 +377,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE2: test12:
+; SSE2-LABEL: test12:
; SSE2: pmaxsw
-; AVX1: test12:
+; AVX1-LABEL: test12:
; AVX1: vpmaxsw
-; AVX2: test12:
+; AVX2-LABEL: test12:
; AVX2: vpmaxsw
}
@@ -409,13 +409,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE4: test13:
+; SSE4-LABEL: test13:
; SSE4: pminuw
-; AVX1: test13:
+; AVX1-LABEL: test13:
; AVX1: vpminuw
-; AVX2: test13:
+; AVX2-LABEL: test13:
; AVX2: vpminuw
}
@@ -441,13 +441,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE4: test14:
+; SSE4-LABEL: test14:
; SSE4: pminuw
-; AVX1: test14:
+; AVX1-LABEL: test14:
; AVX1: vpminuw
-; AVX2: test14:
+; AVX2-LABEL: test14:
; AVX2: vpminuw
}
@@ -473,13 +473,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE4: test15:
+; SSE4-LABEL: test15:
; SSE4: pmaxuw
-; AVX1: test15:
+; AVX1-LABEL: test15:
; AVX1: vpmaxuw
-; AVX2: test15:
+; AVX2-LABEL: test15:
; AVX2: vpmaxuw
}
@@ -505,13 +505,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE4: test16:
+; SSE4-LABEL: test16:
; SSE4: pmaxuw
-; AVX1: test16:
+; AVX1-LABEL: test16:
; AVX1: vpmaxuw
-; AVX2: test16:
+; AVX2-LABEL: test16:
; AVX2: vpmaxuw
}
@@ -537,13 +537,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE4: test17:
+; SSE4-LABEL: test17:
; SSE4: pminsd
-; AVX1: test17:
+; AVX1-LABEL: test17:
; AVX1: vpminsd
-; AVX2: test17:
+; AVX2-LABEL: test17:
; AVX2: vpminsd
}
@@ -569,13 +569,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE4: test18:
+; SSE4-LABEL: test18:
; SSE4: pminsd
-; AVX1: test18:
+; AVX1-LABEL: test18:
; AVX1: vpminsd
-; AVX2: test18:
+; AVX2-LABEL: test18:
; AVX2: vpminsd
}
@@ -601,13 +601,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE4: test19:
+; SSE4-LABEL: test19:
; SSE4: pmaxsd
-; AVX1: test19:
+; AVX1-LABEL: test19:
; AVX1: vpmaxsd
-; AVX2: test19:
+; AVX2-LABEL: test19:
; AVX2: vpmaxsd
}
@@ -633,13 +633,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE4: test20:
+; SSE4-LABEL: test20:
; SSE4: pmaxsd
-; AVX1: test20:
+; AVX1-LABEL: test20:
; AVX1: vpmaxsd
-; AVX2: test20:
+; AVX2-LABEL: test20:
; AVX2: vpmaxsd
}
@@ -665,13 +665,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE4: test21:
+; SSE4-LABEL: test21:
; SSE4: pminud
-; AVX1: test21:
+; AVX1-LABEL: test21:
; AVX1: vpminud
-; AVX2: test21:
+; AVX2-LABEL: test21:
; AVX2: vpminud
}
@@ -697,13 +697,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE4: test22:
+; SSE4-LABEL: test22:
; SSE4: pminud
-; AVX1: test22:
+; AVX1-LABEL: test22:
; AVX1: vpminud
-; AVX2: test22:
+; AVX2-LABEL: test22:
; AVX2: vpminud
}
@@ -729,13 +729,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE4: test23:
+; SSE4-LABEL: test23:
; SSE4: pmaxud
-; AVX1: test23:
+; AVX1-LABEL: test23:
; AVX1: vpmaxud
-; AVX2: test23:
+; AVX2-LABEL: test23:
; AVX2: vpmaxud
}
@@ -761,13 +761,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE4: test24:
+; SSE4-LABEL: test24:
; SSE4: pmaxud
-; AVX1: test24:
+; AVX1-LABEL: test24:
; AVX1: vpmaxud
-; AVX2: test24:
+; AVX2-LABEL: test24:
; AVX2: vpmaxud
}
@@ -793,7 +793,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test25:
+; AVX2-LABEL: test25:
; AVX2: vpminsb
}
@@ -819,7 +819,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test26:
+; AVX2-LABEL: test26:
; AVX2: vpminsb
}
@@ -845,7 +845,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test27:
+; AVX2-LABEL: test27:
; AVX2: vpmaxsb
}
@@ -871,7 +871,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test28:
+; AVX2-LABEL: test28:
; AVX2: vpmaxsb
}
@@ -897,7 +897,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test29:
+; AVX2-LABEL: test29:
; AVX2: vpminub
}
@@ -923,7 +923,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test30:
+; AVX2-LABEL: test30:
; AVX2: vpminub
}
@@ -949,7 +949,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test31:
+; AVX2-LABEL: test31:
; AVX2: vpmaxub
}
@@ -975,7 +975,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test32:
+; AVX2-LABEL: test32:
; AVX2: vpmaxub
}
@@ -1001,7 +1001,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test33:
+; AVX2-LABEL: test33:
; AVX2: vpminsw
}
@@ -1027,7 +1027,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test34:
+; AVX2-LABEL: test34:
; AVX2: vpminsw
}
@@ -1053,7 +1053,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test35:
+; AVX2-LABEL: test35:
; AVX2: vpmaxsw
}
@@ -1079,7 +1079,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test36:
+; AVX2-LABEL: test36:
; AVX2: vpmaxsw
}
@@ -1105,7 +1105,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test37:
+; AVX2-LABEL: test37:
; AVX2: vpminuw
}
@@ -1131,7 +1131,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test38:
+; AVX2-LABEL: test38:
; AVX2: vpminuw
}
@@ -1157,7 +1157,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test39:
+; AVX2-LABEL: test39:
; AVX2: vpmaxuw
}
@@ -1183,7 +1183,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test40:
+; AVX2-LABEL: test40:
; AVX2: vpmaxuw
}
@@ -1209,7 +1209,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test41:
+; AVX2-LABEL: test41:
; AVX2: vpminsd
}
@@ -1235,7 +1235,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test42:
+; AVX2-LABEL: test42:
; AVX2: vpminsd
}
@@ -1261,7 +1261,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test43:
+; AVX2-LABEL: test43:
; AVX2: vpmaxsd
}
@@ -1287,7 +1287,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test44:
+; AVX2-LABEL: test44:
; AVX2: vpmaxsd
}
@@ -1313,7 +1313,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test45:
+; AVX2-LABEL: test45:
; AVX2: vpminud
}
@@ -1339,7 +1339,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test46:
+; AVX2-LABEL: test46:
; AVX2: vpminud
}
@@ -1365,7 +1365,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test47:
+; AVX2-LABEL: test47:
; AVX2: vpmaxud
}
@@ -1391,7 +1391,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test48:
+; AVX2-LABEL: test48:
; AVX2: vpmaxud
}
@@ -1417,13 +1417,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE4: test49:
+; SSE4-LABEL: test49:
; SSE4: pmaxsb
-; AVX1: test49:
+; AVX1-LABEL: test49:
; AVX1: vpmaxsb
-; AVX2: test49:
+; AVX2-LABEL: test49:
; AVX2: vpmaxsb
}
@@ -1449,13 +1449,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE4: test50:
+; SSE4-LABEL: test50:
; SSE4: pmaxsb
-; AVX1: test50:
+; AVX1-LABEL: test50:
; AVX1: vpmaxsb
-; AVX2: test50:
+; AVX2-LABEL: test50:
; AVX2: vpmaxsb
}
@@ -1481,13 +1481,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE4: test51:
+; SSE4-LABEL: test51:
; SSE4: pminsb
-; AVX1: test51:
+; AVX1-LABEL: test51:
; AVX1: vpminsb
-; AVX2: test51:
+; AVX2-LABEL: test51:
; AVX2: vpminsb
}
@@ -1513,13 +1513,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE4: test52:
+; SSE4-LABEL: test52:
; SSE4: pminsb
-; AVX1: test52:
+; AVX1-LABEL: test52:
; AVX1: vpminsb
-; AVX2: test52:
+; AVX2-LABEL: test52:
; AVX2: vpminsb
}
@@ -1545,13 +1545,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE2: test53:
+; SSE2-LABEL: test53:
; SSE2: pmaxub
-; AVX1: test53:
+; AVX1-LABEL: test53:
; AVX1: vpmaxub
-; AVX2: test53:
+; AVX2-LABEL: test53:
; AVX2: vpmaxub
}
@@ -1577,13 +1577,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE2: test54:
+; SSE2-LABEL: test54:
; SSE2: pmaxub
-; AVX1: test54:
+; AVX1-LABEL: test54:
; AVX1: vpmaxub
-; AVX2: test54:
+; AVX2-LABEL: test54:
; AVX2: vpmaxub
}
@@ -1609,13 +1609,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE2: test55:
+; SSE2-LABEL: test55:
; SSE2: pminub
-; AVX1: test55:
+; AVX1-LABEL: test55:
; AVX1: vpminub
-; AVX2: test55:
+; AVX2-LABEL: test55:
; AVX2: vpminub
}
@@ -1641,13 +1641,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE2: test56:
+; SSE2-LABEL: test56:
; SSE2: pminub
-; AVX1: test56:
+; AVX1-LABEL: test56:
; AVX1: vpminub
-; AVX2: test56:
+; AVX2-LABEL: test56:
; AVX2: vpminub
}
@@ -1673,13 +1673,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE2: test57:
+; SSE2-LABEL: test57:
; SSE2: pmaxsw
-; AVX1: test57:
+; AVX1-LABEL: test57:
; AVX1: vpmaxsw
-; AVX2: test57:
+; AVX2-LABEL: test57:
; AVX2: vpmaxsw
}
@@ -1705,13 +1705,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE2: test58:
+; SSE2-LABEL: test58:
; SSE2: pmaxsw
-; AVX1: test58:
+; AVX1-LABEL: test58:
; AVX1: vpmaxsw
-; AVX2: test58:
+; AVX2-LABEL: test58:
; AVX2: vpmaxsw
}
@@ -1737,13 +1737,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE2: test59:
+; SSE2-LABEL: test59:
; SSE2: pminsw
-; AVX1: test59:
+; AVX1-LABEL: test59:
; AVX1: vpminsw
-; AVX2: test59:
+; AVX2-LABEL: test59:
; AVX2: vpminsw
}
@@ -1769,13 +1769,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE2: test60:
+; SSE2-LABEL: test60:
; SSE2: pminsw
-; AVX1: test60:
+; AVX1-LABEL: test60:
; AVX1: vpminsw
-; AVX2: test60:
+; AVX2-LABEL: test60:
; AVX2: vpminsw
}
@@ -1801,13 +1801,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE4: test61:
+; SSE4-LABEL: test61:
; SSE4: pmaxuw
-; AVX1: test61:
+; AVX1-LABEL: test61:
; AVX1: vpmaxuw
-; AVX2: test61:
+; AVX2-LABEL: test61:
; AVX2: vpmaxuw
}
@@ -1833,13 +1833,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE4: test62:
+; SSE4-LABEL: test62:
; SSE4: pmaxuw
-; AVX1: test62:
+; AVX1-LABEL: test62:
; AVX1: vpmaxuw
-; AVX2: test62:
+; AVX2-LABEL: test62:
; AVX2: vpmaxuw
}
@@ -1865,13 +1865,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE4: test63:
+; SSE4-LABEL: test63:
; SSE4: pminuw
-; AVX1: test63:
+; AVX1-LABEL: test63:
; AVX1: vpminuw
-; AVX2: test63:
+; AVX2-LABEL: test63:
; AVX2: vpminuw
}
@@ -1897,13 +1897,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE4: test64:
+; SSE4-LABEL: test64:
; SSE4: pminuw
-; AVX1: test64:
+; AVX1-LABEL: test64:
; AVX1: vpminuw
-; AVX2: test64:
+; AVX2-LABEL: test64:
; AVX2: vpminuw
}
@@ -1929,13 +1929,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE4: test65:
+; SSE4-LABEL: test65:
; SSE4: pmaxsd
-; AVX1: test65:
+; AVX1-LABEL: test65:
; AVX1: vpmaxsd
-; AVX2: test65:
+; AVX2-LABEL: test65:
; AVX2: vpmaxsd
}
@@ -1961,13 +1961,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE4: test66:
+; SSE4-LABEL: test66:
; SSE4: pmaxsd
-; AVX1: test66:
+; AVX1-LABEL: test66:
; AVX1: vpmaxsd
-; AVX2: test66:
+; AVX2-LABEL: test66:
; AVX2: vpmaxsd
}
@@ -1993,13 +1993,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE4: test67:
+; SSE4-LABEL: test67:
; SSE4: pminsd
-; AVX1: test67:
+; AVX1-LABEL: test67:
; AVX1: vpminsd
-; AVX2: test67:
+; AVX2-LABEL: test67:
; AVX2: vpminsd
}
@@ -2025,13 +2025,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE4: test68:
+; SSE4-LABEL: test68:
; SSE4: pminsd
-; AVX1: test68:
+; AVX1-LABEL: test68:
; AVX1: vpminsd
-; AVX2: test68:
+; AVX2-LABEL: test68:
; AVX2: vpminsd
}
@@ -2057,13 +2057,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE4: test69:
+; SSE4-LABEL: test69:
; SSE4: pmaxud
-; AVX1: test69:
+; AVX1-LABEL: test69:
; AVX1: vpmaxud
-; AVX2: test69:
+; AVX2-LABEL: test69:
; AVX2: vpmaxud
}
@@ -2089,13 +2089,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE4: test70:
+; SSE4-LABEL: test70:
; SSE4: pmaxud
-; AVX1: test70:
+; AVX1-LABEL: test70:
; AVX1: vpmaxud
-; AVX2: test70:
+; AVX2-LABEL: test70:
; AVX2: vpmaxud
}
@@ -2121,13 +2121,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE4: test71:
+; SSE4-LABEL: test71:
; SSE4: pminud
-; AVX1: test71:
+; AVX1-LABEL: test71:
; AVX1: vpminud
-; AVX2: test71:
+; AVX2-LABEL: test71:
; AVX2: vpminud
}
@@ -2153,13 +2153,13 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; SSE4: test72:
+; SSE4-LABEL: test72:
; SSE4: pminud
-; AVX1: test72:
+; AVX1-LABEL: test72:
; AVX1: vpminud
-; AVX2: test72:
+; AVX2-LABEL: test72:
; AVX2: vpminud
}
@@ -2185,7 +2185,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test73:
+; AVX2-LABEL: test73:
; AVX2: vpmaxsb
}
@@ -2211,7 +2211,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test74:
+; AVX2-LABEL: test74:
; AVX2: vpmaxsb
}
@@ -2237,7 +2237,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test75:
+; AVX2-LABEL: test75:
; AVX2: vpminsb
}
@@ -2263,7 +2263,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test76:
+; AVX2-LABEL: test76:
; AVX2: vpminsb
}
@@ -2289,7 +2289,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test77:
+; AVX2-LABEL: test77:
; AVX2: vpmaxub
}
@@ -2315,7 +2315,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test78:
+; AVX2-LABEL: test78:
; AVX2: vpmaxub
}
@@ -2341,7 +2341,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test79:
+; AVX2-LABEL: test79:
; AVX2: vpminub
}
@@ -2367,7 +2367,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test80:
+; AVX2-LABEL: test80:
; AVX2: vpminub
}
@@ -2393,7 +2393,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test81:
+; AVX2-LABEL: test81:
; AVX2: vpmaxsw
}
@@ -2419,7 +2419,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test82:
+; AVX2-LABEL: test82:
; AVX2: vpmaxsw
}
@@ -2445,7 +2445,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test83:
+; AVX2-LABEL: test83:
; AVX2: vpminsw
}
@@ -2471,7 +2471,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test84:
+; AVX2-LABEL: test84:
; AVX2: vpminsw
}
@@ -2497,7 +2497,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test85:
+; AVX2-LABEL: test85:
; AVX2: vpmaxuw
}
@@ -2523,7 +2523,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test86:
+; AVX2-LABEL: test86:
; AVX2: vpmaxuw
}
@@ -2549,7 +2549,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test87:
+; AVX2-LABEL: test87:
; AVX2: vpminuw
}
@@ -2575,7 +2575,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test88:
+; AVX2-LABEL: test88:
; AVX2: vpminuw
}
@@ -2601,7 +2601,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test89:
+; AVX2-LABEL: test89:
; AVX2: vpmaxsd
}
@@ -2627,7 +2627,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test90:
+; AVX2-LABEL: test90:
; AVX2: vpmaxsd
}
@@ -2653,7 +2653,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test91:
+; AVX2-LABEL: test91:
; AVX2: vpminsd
}
@@ -2679,7 +2679,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test92:
+; AVX2-LABEL: test92:
; AVX2: vpminsd
}
@@ -2705,7 +2705,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test93:
+; AVX2-LABEL: test93:
; AVX2: vpmaxud
}
@@ -2731,7 +2731,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test94:
+; AVX2-LABEL: test94:
; AVX2: vpmaxud
}
@@ -2757,7 +2757,7 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test95:
+; AVX2-LABEL: test95:
; AVX2: vpminud
}
@@ -2783,6 +2783,6 @@ vector.body: ; preds = %vector.body, %vecto
for.end: ; preds = %vector.body
ret void
-; AVX2: test96:
+; AVX2-LABEL: test96:
; AVX2: vpminud
}
diff --git a/test/CodeGen/X86/vshift-1.ll b/test/CodeGen/X86/vshift-1.ll
index e775750bbea5f..b8a6767658689 100644
--- a/test/CodeGen/X86/vshift-1.ll
+++ b/test/CodeGen/X86/vshift-1.ll
@@ -5,7 +5,7 @@
define void @shift1a(<2 x i64> %val, <2 x i64>* %dst) nounwind {
entry:
-; CHECK: shift1a:
+; CHECK-LABEL: shift1a:
; CHECK: psllq
%shl = shl <2 x i64> %val, < i64 32, i64 32 >
store <2 x i64> %shl, <2 x i64>* %dst
@@ -14,7 +14,7 @@ entry:
define void @shift1b(<2 x i64> %val, <2 x i64>* %dst, i64 %amt) nounwind {
entry:
-; CHECK: shift1b:
+; CHECK-LABEL: shift1b:
; CHECK: movd
; CHECK: psllq
%0 = insertelement <2 x i64> undef, i64 %amt, i32 0
@@ -27,7 +27,7 @@ entry:
define void @shift2a(<4 x i32> %val, <4 x i32>* %dst) nounwind {
entry:
-; CHECK: shift2a:
+; CHECK-LABEL: shift2a:
; CHECK: pslld
%shl = shl <4 x i32> %val, < i32 5, i32 5, i32 5, i32 5 >
store <4 x i32> %shl, <4 x i32>* %dst
@@ -36,7 +36,7 @@ entry:
define void @shift2b(<4 x i32> %val, <4 x i32>* %dst, i32 %amt) nounwind {
entry:
-; CHECK: shift2b:
+; CHECK-LABEL: shift2b:
; CHECK: movd
; CHECK: pslld
%0 = insertelement <4 x i32> undef, i32 %amt, i32 0
@@ -50,7 +50,7 @@ entry:
define void @shift3a(<8 x i16> %val, <8 x i16>* %dst) nounwind {
entry:
-; CHECK: shift3a:
+; CHECK-LABEL: shift3a:
; CHECK: psllw
%shl = shl <8 x i16> %val, < i16 5, i16 5, i16 5, i16 5, i16 5, i16 5, i16 5, i16 5 >
store <8 x i16> %shl, <8 x i16>* %dst
@@ -60,18 +60,18 @@ entry:
; Make sure the shift amount is properly zero extended.
define void @shift3b(<8 x i16> %val, <8 x i16>* %dst, i16 %amt) nounwind {
entry:
-; CHECK: shift3b:
+; CHECK-LABEL: shift3b:
; CHECK: movzwl
; CHECK: movd
; CHECK-NEXT: psllw
%0 = insertelement <8 x i16> undef, i16 %amt, i32 0
%1 = insertelement <8 x i16> %0, i16 %amt, i32 1
- %2 = insertelement <8 x i16> %0, i16 %amt, i32 2
- %3 = insertelement <8 x i16> %0, i16 %amt, i32 3
- %4 = insertelement <8 x i16> %0, i16 %amt, i32 4
- %5 = insertelement <8 x i16> %0, i16 %amt, i32 5
- %6 = insertelement <8 x i16> %0, i16 %amt, i32 6
- %7 = insertelement <8 x i16> %0, i16 %amt, i32 7
+ %2 = insertelement <8 x i16> %1, i16 %amt, i32 2
+ %3 = insertelement <8 x i16> %2, i16 %amt, i32 3
+ %4 = insertelement <8 x i16> %3, i16 %amt, i32 4
+ %5 = insertelement <8 x i16> %4, i16 %amt, i32 5
+ %6 = insertelement <8 x i16> %5, i16 %amt, i32 6
+ %7 = insertelement <8 x i16> %6, i16 %amt, i32 7
%shl = shl <8 x i16> %val, %7
store <8 x i16> %shl, <8 x i16>* %dst
ret void
diff --git a/test/CodeGen/X86/vshift-2.ll b/test/CodeGen/X86/vshift-2.ll
index 9496893bd1a73..156649a31443e 100644
--- a/test/CodeGen/X86/vshift-2.ll
+++ b/test/CodeGen/X86/vshift-2.ll
@@ -5,7 +5,7 @@
define void @shift1a(<2 x i64> %val, <2 x i64>* %dst) nounwind {
entry:
-; CHECK: shift1a:
+; CHECK-LABEL: shift1a:
; CHECK: psrlq
%lshr = lshr <2 x i64> %val, < i64 32, i64 32 >
store <2 x i64> %lshr, <2 x i64>* %dst
@@ -14,7 +14,7 @@ entry:
define void @shift1b(<2 x i64> %val, <2 x i64>* %dst, i64 %amt) nounwind {
entry:
-; CHECK: shift1b:
+; CHECK-LABEL: shift1b:
; CHECK: movd
; CHECK: psrlq
%0 = insertelement <2 x i64> undef, i64 %amt, i32 0
@@ -26,7 +26,7 @@ entry:
define void @shift2a(<4 x i32> %val, <4 x i32>* %dst) nounwind {
entry:
-; CHECK: shift2a:
+; CHECK-LABEL: shift2a:
; CHECK: psrld
%lshr = lshr <4 x i32> %val, < i32 17, i32 17, i32 17, i32 17 >
store <4 x i32> %lshr, <4 x i32>* %dst
@@ -35,7 +35,7 @@ entry:
define void @shift2b(<4 x i32> %val, <4 x i32>* %dst, i32 %amt) nounwind {
entry:
-; CHECK: shift2b:
+; CHECK-LABEL: shift2b:
; CHECK: movd
; CHECK: psrld
%0 = insertelement <4 x i32> undef, i32 %amt, i32 0
@@ -50,7 +50,7 @@ entry:
define void @shift3a(<8 x i16> %val, <8 x i16>* %dst) nounwind {
entry:
-; CHECK: shift3a:
+; CHECK-LABEL: shift3a:
; CHECK: psrlw
%lshr = lshr <8 x i16> %val, < i16 5, i16 5, i16 5, i16 5, i16 5, i16 5, i16 5, i16 5 >
store <8 x i16> %lshr, <8 x i16>* %dst
@@ -60,18 +60,18 @@ entry:
; properly zero extend the shift amount
define void @shift3b(<8 x i16> %val, <8 x i16>* %dst, i16 %amt) nounwind {
entry:
-; CHECK: shift3b:
+; CHECK-LABEL: shift3b:
; CHECK: movzwl
; CHECK: movd
; CHECK: psrlw
%0 = insertelement <8 x i16> undef, i16 %amt, i32 0
%1 = insertelement <8 x i16> %0, i16 %amt, i32 1
- %2 = insertelement <8 x i16> %0, i16 %amt, i32 2
- %3 = insertelement <8 x i16> %0, i16 %amt, i32 3
- %4 = insertelement <8 x i16> %0, i16 %amt, i32 4
- %5 = insertelement <8 x i16> %0, i16 %amt, i32 5
- %6 = insertelement <8 x i16> %0, i16 %amt, i32 6
- %7 = insertelement <8 x i16> %0, i16 %amt, i32 7
+ %2 = insertelement <8 x i16> %1, i16 %amt, i32 2
+ %3 = insertelement <8 x i16> %2, i16 %amt, i32 3
+ %4 = insertelement <8 x i16> %3, i16 %amt, i32 4
+ %5 = insertelement <8 x i16> %4, i16 %amt, i32 5
+ %6 = insertelement <8 x i16> %5, i16 %amt, i32 6
+ %7 = insertelement <8 x i16> %6, i16 %amt, i32 7
%lshr = lshr <8 x i16> %val, %7
store <8 x i16> %lshr, <8 x i16>* %dst
ret void
diff --git a/test/CodeGen/X86/vshift-3.ll b/test/CodeGen/X86/vshift-3.ll
index b2b48b9da9351..0bdb32fcb86e1 100644
--- a/test/CodeGen/X86/vshift-3.ll
+++ b/test/CodeGen/X86/vshift-3.ll
@@ -8,7 +8,7 @@
; shift1a can't use a packed shift
define void @shift1a(<2 x i64> %val, <2 x i64>* %dst) nounwind {
entry:
-; CHECK: shift1a:
+; CHECK-LABEL: shift1a:
; CHECK: sarl
%ashr = ashr <2 x i64> %val, < i64 32, i64 32 >
store <2 x i64> %ashr, <2 x i64>* %dst
@@ -17,7 +17,7 @@ entry:
define void @shift2a(<4 x i32> %val, <4 x i32>* %dst) nounwind {
entry:
-; CHECK: shift2a:
+; CHECK-LABEL: shift2a:
; CHECK: psrad $5
%ashr = ashr <4 x i32> %val, < i32 5, i32 5, i32 5, i32 5 >
store <4 x i32> %ashr, <4 x i32>* %dst
@@ -26,7 +26,7 @@ entry:
define void @shift2b(<4 x i32> %val, <4 x i32>* %dst, i32 %amt) nounwind {
entry:
-; CHECK: shift2b:
+; CHECK-LABEL: shift2b:
; CHECK: movd
; CHECK: psrad
%0 = insertelement <4 x i32> undef, i32 %amt, i32 0
@@ -40,7 +40,7 @@ entry:
define void @shift3a(<8 x i16> %val, <8 x i16>* %dst) nounwind {
entry:
-; CHECK: shift3a:
+; CHECK-LABEL: shift3a:
; CHECK: psraw $5
%ashr = ashr <8 x i16> %val, < i16 5, i16 5, i16 5, i16 5, i16 5, i16 5, i16 5, i16 5 >
store <8 x i16> %ashr, <8 x i16>* %dst
@@ -49,18 +49,18 @@ entry:
define void @shift3b(<8 x i16> %val, <8 x i16>* %dst, i16 %amt) nounwind {
entry:
-; CHECK: shift3b:
+; CHECK-LABEL: shift3b:
; CHECK: movzwl
; CHECK: movd
; CHECK: psraw
%0 = insertelement <8 x i16> undef, i16 %amt, i32 0
%1 = insertelement <8 x i16> %0, i16 %amt, i32 1
- %2 = insertelement <8 x i16> %0, i16 %amt, i32 2
- %3 = insertelement <8 x i16> %0, i16 %amt, i32 3
- %4 = insertelement <8 x i16> %0, i16 %amt, i32 4
- %5 = insertelement <8 x i16> %0, i16 %amt, i32 5
- %6 = insertelement <8 x i16> %0, i16 %amt, i32 6
- %7 = insertelement <8 x i16> %0, i16 %amt, i32 7
+ %2 = insertelement <8 x i16> %1, i16 %amt, i32 2
+ %3 = insertelement <8 x i16> %2, i16 %amt, i32 3
+ %4 = insertelement <8 x i16> %3, i16 %amt, i32 4
+ %5 = insertelement <8 x i16> %4, i16 %amt, i32 5
+ %6 = insertelement <8 x i16> %5, i16 %amt, i32 6
+ %7 = insertelement <8 x i16> %6, i16 %amt, i32 7
%ashr = ashr <8 x i16> %val, %7
store <8 x i16> %ashr, <8 x i16>* %dst
ret void
diff --git a/test/CodeGen/X86/vshift-4.ll b/test/CodeGen/X86/vshift-4.ll
index 8e24fda1835d5..4363cd9399cfb 100644
--- a/test/CodeGen/X86/vshift-4.ll
+++ b/test/CodeGen/X86/vshift-4.ll
@@ -5,7 +5,7 @@
define void @shift1a(<2 x i64> %val, <2 x i64>* %dst, <2 x i64> %sh) nounwind {
entry:
-; CHECK: shift1a:
+; CHECK-LABEL: shift1a:
; CHECK: psllq
%shamt = shufflevector <2 x i64> %sh, <2 x i64> undef, <2 x i32> <i32 0, i32 0>
%shl = shl <2 x i64> %val, %shamt
@@ -16,7 +16,7 @@ entry:
; shift1b can't use a packed shift
define void @shift1b(<2 x i64> %val, <2 x i64>* %dst, <2 x i64> %sh) nounwind {
entry:
-; CHECK: shift1b:
+; CHECK-LABEL: shift1b:
; CHECK: shll
%shamt = shufflevector <2 x i64> %sh, <2 x i64> undef, <2 x i32> <i32 0, i32 1>
%shl = shl <2 x i64> %val, %shamt
@@ -26,7 +26,7 @@ entry:
define void @shift2a(<4 x i32> %val, <4 x i32>* %dst, <2 x i32> %amt) nounwind {
entry:
-; CHECK: shift2a:
+; CHECK-LABEL: shift2a:
; CHECK: pslld
%shamt = shufflevector <2 x i32> %amt, <2 x i32> undef, <4 x i32> <i32 1, i32 1, i32 1, i32 1>
%shl = shl <4 x i32> %val, %shamt
@@ -36,7 +36,7 @@ entry:
define void @shift2b(<4 x i32> %val, <4 x i32>* %dst, <2 x i32> %amt) nounwind {
entry:
-; CHECK: shift2b:
+; CHECK-LABEL: shift2b:
; CHECK: pslld
%shamt = shufflevector <2 x i32> %amt, <2 x i32> undef, <4 x i32> <i32 1, i32 undef, i32 1, i32 1>
%shl = shl <4 x i32> %val, %shamt
@@ -46,7 +46,7 @@ entry:
define void @shift2c(<4 x i32> %val, <4 x i32>* %dst, <2 x i32> %amt) nounwind {
entry:
-; CHECK: shift2c:
+; CHECK-LABEL: shift2c:
; CHECK: pslld
%shamt = shufflevector <2 x i32> %amt, <2 x i32> undef, <4 x i32> <i32 1, i32 1, i32 1, i32 1>
%shl = shl <4 x i32> %val, %shamt
@@ -56,7 +56,7 @@ entry:
define void @shift3a(<8 x i16> %val, <8 x i16>* %dst, <8 x i16> %amt) nounwind {
entry:
-; CHECK: shift3a:
+; CHECK-LABEL: shift3a:
; CHECK: movzwl
; CHECK: psllw
%shamt = shufflevector <8 x i16> %amt, <8 x i16> undef, <8 x i32> <i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6>
@@ -67,17 +67,17 @@ entry:
define void @shift3b(<8 x i16> %val, <8 x i16>* %dst, i16 %amt) nounwind {
entry:
-; CHECK: shift3b:
+; CHECK-LABEL: shift3b:
; CHECK: movzwl
; CHECK: psllw
%0 = insertelement <8 x i16> undef, i16 %amt, i32 0
%1 = insertelement <8 x i16> %0, i16 %amt, i32 1
- %2 = insertelement <8 x i16> %0, i16 %amt, i32 2
- %3 = insertelement <8 x i16> %0, i16 %amt, i32 3
- %4 = insertelement <8 x i16> %0, i16 %amt, i32 4
- %5 = insertelement <8 x i16> %0, i16 %amt, i32 5
- %6 = insertelement <8 x i16> %0, i16 %amt, i32 6
- %7 = insertelement <8 x i16> %0, i16 %amt, i32 7
+ %2 = insertelement <8 x i16> %1, i16 %amt, i32 2
+ %3 = insertelement <8 x i16> %2, i16 %amt, i32 3
+ %4 = insertelement <8 x i16> %3, i16 %amt, i32 4
+ %5 = insertelement <8 x i16> %4, i16 %amt, i32 5
+ %6 = insertelement <8 x i16> %5, i16 %amt, i32 6
+ %7 = insertelement <8 x i16> %6, i16 %amt, i32 7
%shl = shl <8 x i16> %val, %7
store <8 x i16> %shl, <8 x i16>* %dst
ret void
diff --git a/test/CodeGen/X86/vshift-5.ll b/test/CodeGen/X86/vshift-5.ll
index f6c311dee5211..562e520c55287 100644
--- a/test/CodeGen/X86/vshift-5.ll
+++ b/test/CodeGen/X86/vshift-5.ll
@@ -4,7 +4,7 @@
define void @shift5a(<4 x i32> %val, <4 x i32>* %dst, i32* %pamt) nounwind {
entry:
-; CHECK: shift5a:
+; CHECK-LABEL: shift5a:
; CHECK: movd
; CHECK: pslld
%amt = load i32* %pamt
@@ -18,7 +18,7 @@ entry:
define void @shift5b(<4 x i32> %val, <4 x i32>* %dst, i32* %pamt) nounwind {
entry:
-; CHECK: shift5b:
+; CHECK-LABEL: shift5b:
; CHECK: movd
; CHECK: psrad
%amt = load i32* %pamt
@@ -32,7 +32,7 @@ entry:
define void @shift5c(<4 x i32> %val, <4 x i32>* %dst, i32 %amt) nounwind {
entry:
-; CHECK: shift5c:
+; CHECK-LABEL: shift5c:
; CHECK: movd
; CHECK: pslld
%tmp0 = insertelement <4 x i32> undef, i32 %amt, i32 0
@@ -45,7 +45,7 @@ entry:
define void @shift5d(<4 x i32> %val, <4 x i32>* %dst, i32 %amt) nounwind {
entry:
-; CHECK: shift5d:
+; CHECK-LABEL: shift5d:
; CHECK: movd
; CHECK: psrad
%tmp0 = insertelement <4 x i32> undef, i32 %amt, i32 0
diff --git a/test/CodeGen/X86/vsplit-and.ll b/test/CodeGen/X86/vsplit-and.ll
index 3b7fdff84e3c2..c16b29493589e 100644
--- a/test/CodeGen/X86/vsplit-and.ll
+++ b/test/CodeGen/X86/vsplit-and.ll
@@ -14,7 +14,7 @@ define void @t0(<2 x i64>* %dst, <2 x i64> %src1, <2 x i64> %src2) nounwind read
define void @t2(<3 x i64>* %dst, <3 x i64> %src1, <3 x i64> %src2) nounwind readonly {
; CHECK: t2
-; CHECK-NOT: pand
+; CHECK: pand
; CHECK: ret
%cmp1 = icmp ne <3 x i64> %src1, zeroinitializer
%cmp2 = icmp ne <3 x i64> %src2, zeroinitializer
diff --git a/test/CodeGen/X86/warn-stack.ll b/test/CodeGen/X86/warn-stack.ll
new file mode 100644
index 0000000000000..5979f45b07d86
--- /dev/null
+++ b/test/CodeGen/X86/warn-stack.ll
@@ -0,0 +1,24 @@
+; RUN: llc -mtriple x86_64-apple-macosx10.8.0 -warn-stack-size=80 < %s 2>&1 >/dev/null | FileCheck %s
+; Check the internal option that warns when the stack size exceeds the
+; given amount.
+; <rdar://13987214>
+
+; CHECK-NOT: nowarn
+define void @nowarn() nounwind ssp {
+entry:
+ %buffer = alloca [12 x i8], align 1
+ %arraydecay = getelementptr inbounds [12 x i8]* %buffer, i64 0, i64 0
+ call void @doit(i8* %arraydecay) nounwind
+ ret void
+}
+
+; CHECK: warning: Stack size limit exceeded (104) in warn.
+define void @warn() nounwind ssp {
+entry:
+ %buffer = alloca [80 x i8], align 1
+ %arraydecay = getelementptr inbounds [80 x i8]* %buffer, i64 0, i64 0
+ call void @doit(i8* %arraydecay) nounwind
+ ret void
+}
+
+declare void @doit(i8*)
diff --git a/test/CodeGen/X86/weak_def_can_be_hidden.ll b/test/CodeGen/X86/weak_def_can_be_hidden.ll
new file mode 100644
index 0000000000000..f78f3571cec95
--- /dev/null
+++ b/test/CodeGen/X86/weak_def_can_be_hidden.ll
@@ -0,0 +1,26 @@
+; RUN: llc -mtriple=x86_64-apple-darwin -O0 < %s | FileCheck %s
+
+@v1 = linkonce_odr global i32 32
+; CHECK: .globl _v1
+; CHECK: .weak_def_can_be_hidden _v1
+
+define i32 @f1() {
+ %x = load i32 * @v1
+ ret i32 %x
+}
+
+@v2 = linkonce_odr global i32 32
+; CHECK: .globl _v2
+; CHECK: .weak_definition _v2
+
+@v3 = linkonce_odr unnamed_addr global i32 32
+; CHECK: .globl _v3
+; CHECK: .weak_def_can_be_hidden _v3
+
+define i32* @f2() {
+ ret i32* @v2
+}
+
+define i32* @f3() {
+ ret i32* @v3
+}
diff --git a/test/CodeGen/X86/wide-fma-contraction.ll b/test/CodeGen/X86/wide-fma-contraction.ll
index d93f33ba0e581..f51f917fbac9e 100644
--- a/test/CodeGen/X86/wide-fma-contraction.ll
+++ b/test/CodeGen/X86/wide-fma-contraction.ll
@@ -1,7 +1,10 @@
-; RUN: llc -march=x86 -mattr=+fma4 -mtriple=x86_64-apple-darwin < %s | FileCheck %s
+; RUN: llc -march=x86 -mcpu=bdver2 -mattr=-fma -mtriple=x86_64-apple-darwin < %s | FileCheck %s
+; RUN: llc -march=x86 -mcpu=bdver2 -mattr=-fma,-fma4 -mtriple=x86_64-apple-darwin < %s | FileCheck %s --check-prefix=CHECK-NOFMA
-; CHECK: fmafunc
+; CHECK-LABEL: fmafunc
+; CHECK-NOFMA-LABEL: fmafunc
define <16 x float> @fmafunc(<16 x float> %a, <16 x float> %b, <16 x float> %c) {
+
; CHECK-NOT: vmulps
; CHECK-NOT: vaddps
; CHECK: vfmaddps
@@ -10,11 +13,17 @@ define <16 x float> @fmafunc(<16 x float> %a, <16 x float> %b, <16 x float> %c)
; CHECK: vfmaddps
; CHECK-NOT: vmulps
; CHECK-NOT: vaddps
+
+; CHECK-NOFMA-NOT: calll
+; CHECK-NOFMA: vmulps
+; CHECK-NOFMA: vaddps
+; CHECK-NOFMA-NOT: calll
+; CHECK-NOFMA: vmulps
+; CHECK-NOFMA: vaddps
+; CHECK-NOFMA-NOT: calll
+
%ret = tail call <16 x float> @llvm.fmuladd.v16f32(<16 x float> %a, <16 x float> %b, <16 x float> %c)
ret <16 x float> %ret
}
declare <16 x float> @llvm.fmuladd.v16f32(<16 x float>, <16 x float>, <16 x float>) nounwind readnone
-
-
-
diff --git a/test/CodeGen/X86/widen_arith-1.ll b/test/CodeGen/X86/widen_arith-1.ll
index 661cde8bda3b2..6041356e6ac77 100644
--- a/test/CodeGen/X86/widen_arith-1.ll
+++ b/test/CodeGen/X86/widen_arith-1.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -mcpu=generic -march=x86 -mattr=+sse42 | FileCheck %s
+; RUN: llc < %s -mcpu=generic -march=x86 -mattr=+sse4.2 | FileCheck %s
define void @update(<3 x i8>* %dst, <3 x i8>* %src, i32 %n) nounwind {
entry:
diff --git a/test/CodeGen/X86/widen_arith-2.ll b/test/CodeGen/X86/widen_arith-2.ll
index d35abc308173a..1b81e9f889aaf 100644
--- a/test/CodeGen/X86/widen_arith-2.ll
+++ b/test/CodeGen/X86/widen_arith-2.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86 -mattr=+sse42 | FileCheck %s
+; RUN: llc < %s -march=x86 -mattr=+sse4.2 | FileCheck %s
; CHECK: padd
; CHECK: pand
diff --git a/test/CodeGen/X86/widen_arith-3.ll b/test/CodeGen/X86/widen_arith-3.ll
index d86042a44806f..d2b8e6ee9a753 100644
--- a/test/CodeGen/X86/widen_arith-3.ll
+++ b/test/CodeGen/X86/widen_arith-3.ll
@@ -1,7 +1,5 @@
-; RUN: llc < %s -mcpu=generic -march=x86 -mattr=+sse42 -post-RA-scheduler=true | FileCheck %s
-; CHECK: incl
-; CHECK: incl
-; CHECK: incl
+; RUN: llc < %s -mcpu=generic -march=x86 -mattr=+sse4.2 -post-RA-scheduler=true | FileCheck %s
+; CHECK: paddd
; Widen a v3i16 to v8i16 to do a vector add
diff --git a/test/CodeGen/X86/widen_arith-4.ll b/test/CodeGen/X86/widen_arith-4.ll
index 5931d639f19bd..5207e1fa9d7ba 100644
--- a/test/CodeGen/X86/widen_arith-4.ll
+++ b/test/CodeGen/X86/widen_arith-4.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86-64 -mattr=+sse42 | FileCheck %s
+; RUN: llc < %s -march=x86-64 -mattr=+sse4.2 | FileCheck %s
; CHECK: psubw
; CHECK-NEXT: pmullw
@@ -33,7 +33,7 @@ forbody: ; preds = %forcond
%arrayidx6 = getelementptr <5 x i16>* %tmp5, i32 %tmp4 ; <<5 x i16>*> [#uses=1]
%tmp7 = load <5 x i16>* %arrayidx6 ; <<5 x i16>> [#uses=1]
%sub = sub <5 x i16> %tmp7, < i16 271, i16 271, i16 271, i16 271, i16 271 > ; <<5 x i16>> [#uses=1]
- %mul = mul <5 x i16> %sub, < i16 2, i16 2, i16 2, i16 2, i16 2 > ; <<5 x i16>> [#uses=1]
+ %mul = mul <5 x i16> %sub, < i16 2, i16 4, i16 2, i16 2, i16 2 > ; <<5 x i16>> [#uses=1]
store <5 x i16> %mul, <5 x i16>* %arrayidx
br label %forinc
diff --git a/test/CodeGen/X86/widen_arith-5.ll b/test/CodeGen/X86/widen_arith-5.ll
index 7f2eff09f4730..70b6a8a239ab8 100644
--- a/test/CodeGen/X86/widen_arith-5.ll
+++ b/test/CodeGen/X86/widen_arith-5.ll
@@ -1,6 +1,6 @@
-; RUN: llc < %s -march=x86-64 -mattr=+sse42 | FileCheck %s
+; RUN: llc < %s -march=x86-64 -mattr=+sse4.2 | FileCheck %s
; CHECK: movdqa
-; CHECK: pmulld
+; CHECK: pslld $2
; CHECK: psubd
; widen a v3i32 to v4i32 to do a vector multiple and a subtraction
diff --git a/test/CodeGen/X86/widen_arith-6.ll b/test/CodeGen/X86/widen_arith-6.ll
index b983d141ddf69..329048ad77b77 100644
--- a/test/CodeGen/X86/widen_arith-6.ll
+++ b/test/CodeGen/X86/widen_arith-6.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86 -mattr=+sse42 | FileCheck %s
+; RUN: llc < %s -march=x86 -mattr=+sse4.2 | FileCheck %s
; CHECK: mulps
; CHECK: addps
diff --git a/test/CodeGen/X86/widen_cast-1.ll b/test/CodeGen/X86/widen_cast-1.ll
index 56c63644e02ef..d115929f5aab7 100644
--- a/test/CodeGen/X86/widen_cast-1.ll
+++ b/test/CodeGen/X86/widen_cast-1.ll
@@ -1,8 +1,8 @@
-; RUN: llc -march=x86 -mcpu=generic -mattr=+sse42 < %s | FileCheck %s
+; RUN: llc -march=x86 -mcpu=generic -mattr=+sse4.2 < %s | FileCheck %s
; RUN: llc -march=x86 -mcpu=atom < %s | FileCheck -check-prefix=ATOM %s
-; CHECK: paddd
; CHECK: movl
+; CHECK: paddd
; CHECK: movlpd
; Scheduler causes produce a different instruction order
diff --git a/test/CodeGen/X86/widen_cast-2.ll b/test/CodeGen/X86/widen_cast-2.ll
index 3979ce466d1e4..40b42fbf1460f 100644
--- a/test/CodeGen/X86/widen_cast-2.ll
+++ b/test/CodeGen/X86/widen_cast-2.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86 -mcpu=nehalem -mattr=+sse42 | FileCheck %s
+; RUN: llc < %s -march=x86 -mcpu=nehalem -mattr=+sse4.2 | FileCheck %s
; CHECK: pextrd
; CHECK: pextrd
; CHECK: movd
diff --git a/test/CodeGen/X86/widen_cast-3.ll b/test/CodeGen/X86/widen_cast-3.ll
index 87486d96611b5..40a8dc5b6aed0 100644
--- a/test/CodeGen/X86/widen_cast-3.ll
+++ b/test/CodeGen/X86/widen_cast-3.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86 -mattr=+sse42 | FileCheck %s
+; RUN: llc < %s -march=x86 -mattr=+sse4.2 | FileCheck %s
; CHECK: paddd
; CHECK: pextrd
; CHECK: pextrd
diff --git a/test/CodeGen/X86/widen_cast-4.ll b/test/CodeGen/X86/widen_cast-4.ll
index 5ea54267692a4..1bc06a77cbf7b 100644
--- a/test/CodeGen/X86/widen_cast-4.ll
+++ b/test/CodeGen/X86/widen_cast-4.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86 -mattr=+sse42 | FileCheck %s
+; RUN: llc < %s -march=x86 -mattr=+sse4.2 | FileCheck %s
; CHECK: psraw
; CHECK: psraw
diff --git a/test/CodeGen/X86/widen_cast-5.ll b/test/CodeGen/X86/widen_cast-5.ll
index 9086d3a9cfd2d..ccf0bd1d0b62e 100644
--- a/test/CodeGen/X86/widen_cast-5.ll
+++ b/test/CodeGen/X86/widen_cast-5.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86 -mattr=+sse42 | FileCheck %s
+; RUN: llc < %s -march=x86 -mattr=+sse4.2 | FileCheck %s
; CHECK: movl
; CHECK: movlpd
diff --git a/test/CodeGen/X86/widen_cast-6.ll b/test/CodeGen/X86/widen_cast-6.ll
index 39032347c0181..7c06ad8ca6648 100644
--- a/test/CodeGen/X86/widen_cast-6.ll
+++ b/test/CodeGen/X86/widen_cast-6.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86 -mattr=+sse41 | FileCheck %s
+; RUN: llc < %s -march=x86 -mattr=+sse4.1 | FileCheck %s
; CHECK: movd
; Test bit convert that requires widening in the operand.
diff --git a/test/CodeGen/X86/widen_conv-1.ll b/test/CodeGen/X86/widen_conv-1.ll
index 51f1c887b00d6..9f6778cff5927 100644
--- a/test/CodeGen/X86/widen_conv-1.ll
+++ b/test/CodeGen/X86/widen_conv-1.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86 -mattr=+sse42 | FileCheck %s
+; RUN: llc < %s -march=x86 -mattr=+sse4.2 | FileCheck %s
; CHECK: paddq
; truncate v2i64 to v2i32
diff --git a/test/CodeGen/X86/widen_conv-2.ll b/test/CodeGen/X86/widen_conv-2.ll
index 969cb512beb34..906f7cdafb958 100644
--- a/test/CodeGen/X86/widen_conv-2.ll
+++ b/test/CodeGen/X86/widen_conv-2.ll
@@ -1,6 +1,6 @@
-; RUN: llc < %s -march=x86 -mattr=+sse42 | FileCheck %s
-; CHECK: movswl
-; CHECK: movswl
+; RUN: llc < %s -march=x86 -mattr=+sse4.2 | FileCheck %s
+; CHECK: {{cwtl|movswl}}
+; CHECK: {{cwtl|movswl}}
; sign extension v2i32 to v2i16
diff --git a/test/CodeGen/X86/widen_conv-3.ll b/test/CodeGen/X86/widen_conv-3.ll
index a25fae9e1bc8d..a2f3d7b82b369 100644
--- a/test/CodeGen/X86/widen_conv-3.ll
+++ b/test/CodeGen/X86/widen_conv-3.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86 -mattr=+sse42 | FileCheck %s
+; RUN: llc < %s -march=x86 -mattr=+sse4.2 | FileCheck %s
; CHECK: cvtsi2ss
; sign to float v2i16 to v2f32
diff --git a/test/CodeGen/X86/widen_conv-4.ll b/test/CodeGen/X86/widen_conv-4.ll
index 1158e04553921..f633592f2ef85 100644
--- a/test/CodeGen/X86/widen_conv-4.ll
+++ b/test/CodeGen/X86/widen_conv-4.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86 -mcpu=nehalem -mattr=+sse42 | FileCheck %s
+; RUN: llc < %s -march=x86 -mcpu=nehalem -mattr=+sse4.2 | FileCheck %s
; CHECK-NOT: cvtsi2ss
; unsigned to float v7i16 to v7f32
diff --git a/test/CodeGen/X86/widen_extract-1.ll b/test/CodeGen/X86/widen_extract-1.ll
index 86727421ce032..6832de1dbb644 100644
--- a/test/CodeGen/X86/widen_extract-1.ll
+++ b/test/CodeGen/X86/widen_extract-1.ll
@@ -1,9 +1,9 @@
-; RUN: llc < %s -march=x86-64 -mcpu=nehalem -mattr=+sse42 | FileCheck %s
+; RUN: llc < %s -march=x86-64 -mcpu=nehalem -mattr=+sse4.2 | FileCheck %s
; widen extract subvector
define void @convert(<2 x double>* %dst.addr, <3 x double> %src) {
entry:
-; CHECK: convert:
+; CHECK-LABEL: convert:
; CHECK: unpcklpd {{%xmm[0-7]}}, {{%xmm[0-7]}}
; CHECK-NEXT: movapd
%val = shufflevector <3 x double> %src, <3 x double> undef, <2 x i32> < i32 0, i32 1>
diff --git a/test/CodeGen/X86/widen_load-1.ll b/test/CodeGen/X86/widen_load-1.ll
index dfaa3d6dc91a0..c59cc58f40fd3 100644
--- a/test/CodeGen/X86/widen_load-1.ll
+++ b/test/CodeGen/X86/widen_load-1.ll
@@ -9,8 +9,8 @@
; SSE: movaps %xmm0, (%rsp)
; SSE: callq killcommon
-; AVX: vmovapd compl+128(%rip), %xmm0
-; AVX: vmovapd %xmm0, (%rsp)
+; AVX: vmovaps compl+128(%rip), %xmm0
+; AVX: vmovaps %xmm0, (%rsp)
; AVX: callq killcommon
@compl = linkonce global [20 x i64] zeroinitializer, align 64 ; <[20 x i64]*> [#uses=1]
diff --git a/test/CodeGen/X86/widen_load-2.ll b/test/CodeGen/X86/widen_load-2.ll
index 224898c1a3e50..26815a422ec8d 100644
--- a/test/CodeGen/X86/widen_load-2.ll
+++ b/test/CodeGen/X86/widen_load-2.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -o - -mcpu=generic -march=x86-64 -mattr=+sse42 | FileCheck %s
+; RUN: llc < %s -o - -mcpu=generic -march=x86-64 -mattr=+sse4.2 | FileCheck %s
; Test based on pr5626 to load/store
;
@@ -73,10 +73,7 @@ define void @add12i32(%i32vec12* sret %ret, %i32vec12* %ap, %i32vec12* %bp) {
; CHECK: add3i16
%i16vec3 = type <3 x i16>
define void @add3i16(%i16vec3* nocapture sret %ret, %i16vec3* %ap, %i16vec3* %bp) nounwind {
-; CHECK: add3i16
-; CHECK: addl
-; CHECK: addl
-; CHECK: addl
+; CHECK: paddd
; CHECK: ret
%a = load %i16vec3* %ap, align 16
%b = load %i16vec3* %bp, align 16
@@ -88,7 +85,6 @@ define void @add3i16(%i16vec3* nocapture sret %ret, %i16vec3* %ap, %i16vec3* %bp
; CHECK: add4i16
%i16vec4 = type <4 x i16>
define void @add4i16(%i16vec4* nocapture sret %ret, %i16vec4* %ap, %i16vec4* %bp) nounwind {
-; CHECK: add4i16
; CHECK: paddd
; CHECK: movq
%a = load %i16vec4* %ap, align 16
@@ -137,9 +133,7 @@ define void @add18i16(%i16vec18* nocapture sret %ret, %i16vec18* %ap, %i16vec18*
; CHECK: add3i8
%i8vec3 = type <3 x i8>
define void @add3i8(%i8vec3* nocapture sret %ret, %i8vec3* %ap, %i8vec3* %bp) nounwind {
-; CHECK: addb
-; CHECK: addb
-; CHECK: addb
+; CHECK: paddd
; CHECK: ret
%a = load %i8vec3* %ap, align 16
%b = load %i8vec3* %bp, align 16
@@ -148,7 +142,7 @@ define void @add3i8(%i8vec3* nocapture sret %ret, %i8vec3* %ap, %i8vec3* %bp) no
ret void
}
-; CHECK: add31i8:
+; CHECK-LABEL: add31i8:
%i8vec31 = type <31 x i8>
define void @add31i8(%i8vec31* nocapture sret %ret, %i8vec31* %ap, %i8vec31* %bp) nounwind {
; CHECK: movdqa
diff --git a/test/CodeGen/X86/widen_shuffle-1.ll b/test/CodeGen/X86/widen_shuffle-1.ll
index 7bebb274f6ec0..803402b1f1f44 100644
--- a/test/CodeGen/X86/widen_shuffle-1.ll
+++ b/test/CodeGen/X86/widen_shuffle-1.ll
@@ -1,9 +1,9 @@
-; RUN: llc < %s -march=x86 -mattr=+sse42 | FileCheck %s
+; RUN: llc < %s -march=x86 -mattr=+sse4.2 | FileCheck %s
; widening shuffle v3float and then a add
define void @shuf(<3 x float>* %dst.addr, <3 x float> %src1,<3 x float> %src2) nounwind {
entry:
-; CHECK: shuf:
+; CHECK-LABEL: shuf:
; CHECK: extractps
; CHECK: extractps
%x = shufflevector <3 x float> %src1, <3 x float> %src2, <3 x i32> < i32 0, i32 1, i32 2>
@@ -17,7 +17,7 @@ entry:
; widening shuffle v3float with a different mask and then a add
define void @shuf2(<3 x float>* %dst.addr, <3 x float> %src1,<3 x float> %src2) nounwind {
entry:
-; CHECK: shuf2:
+; CHECK-LABEL: shuf2:
; CHECK: extractps
; CHECK: extractps
%x = shufflevector <3 x float> %src1, <3 x float> %src2, <3 x i32> < i32 0, i32 4, i32 2>
@@ -32,7 +32,7 @@ entry:
; opA with opB, the DAG will produce new operations with opA.
define void @shuf3(<4 x float> %tmp10, <4 x float> %vecinit15, <4 x float>* %dst) nounwind {
entry:
-; CHECK: shuf3:
+; CHECK-LABEL: shuf3:
; CHECK: shufps
%shuffle.i.i.i12 = shufflevector <4 x float> %tmp10, <4 x float> %vecinit15, <4 x i32> <i32 0, i32 1, i32 4, i32 5>
%tmp25.i.i = shufflevector <4 x float> %shuffle.i.i.i12, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
@@ -52,7 +52,7 @@ entry:
; PR10421: make sure we correctly handle extreme widening with CONCAT_VECTORS
define <8 x i8> @shuf4(<4 x i8> %a, <4 x i8> %b) nounwind readnone {
-; CHECK: shuf4:
+; CHECK-LABEL: shuf4:
; CHECK-NOT: punpckldq
%vshuf = shufflevector <4 x i8> %a, <4 x i8> %b, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
ret <8 x i8> %vshuf
@@ -61,7 +61,7 @@ define <8 x i8> @shuf4(<4 x i8> %a, <4 x i8> %b) nounwind readnone {
; PR11389: another CONCAT_VECTORS case
define void @shuf5(<8 x i8>* %p) nounwind {
-; CHECK: shuf5:
+; CHECK-LABEL: shuf5:
%v = shufflevector <2 x i8> <i8 4, i8 33>, <2 x i8> undef, <8 x i32> <i32 1, i32 1, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
store <8 x i8> %v, <8 x i8>* %p, align 8
ret void
diff --git a/test/CodeGen/X86/win32_sret.ll b/test/CodeGen/X86/win32_sret.ll
index 2bfe5fb1007b4..a24963a3f34ef 100644
--- a/test/CodeGen/X86/win32_sret.ll
+++ b/test/CodeGen/X86/win32_sret.ll
@@ -115,8 +115,8 @@ entry:
; Load the address of the result and put it onto stack
; (through %ecx in the -O0 build).
-; WIN32: leal {{[0-9]+}}(%esp), %eax
-; WIN32: movl %eax, (%e{{[sc][px]}})
+; WIN32: leal {{[0-9]+}}(%esp), %e{{[a-d]}}x
+; WIN32: movl %e{{[a-d]}}x, (%e{{([a-d]x)|(sp)}})
; The this pointer goes to ECX.
; WIN32-NEXT: leal {{[0-9]+}}(%esp), %ecx
diff --git a/test/CodeGen/X86/win64_alloca_dynalloca.ll b/test/CodeGen/X86/win64_alloca_dynalloca.ll
index cc11e4c28e212..aff53057a9547 100644
--- a/test/CodeGen/X86/win64_alloca_dynalloca.ll
+++ b/test/CodeGen/X86/win64_alloca_dynalloca.ll
@@ -1,10 +1,13 @@
-; RUN: llc < %s -mcpu=generic -mtriple=x86_64-mingw32 | FileCheck %s -check-prefix=M64
-; RUN: llc < %s -mcpu=generic -mtriple=x86_64-win32 | FileCheck %s -check-prefix=W64
-; RUN: llc < %s -mcpu=generic -mtriple=x86_64-win32-macho | FileCheck %s -check-prefix=EFI
+; RUN: llc < %s -mcpu=generic -enable-misched=false -mtriple=x86_64-mingw32 | FileCheck %s -check-prefix=M64
+; RUN: llc < %s -mcpu=generic -enable-misched=false -mtriple=x86_64-win32 | FileCheck %s -check-prefix=W64
+; RUN: llc < %s -mcpu=generic -enable-misched=false -mtriple=x86_64-win32-macho | FileCheck %s -check-prefix=EFI
; PR8777
; PR8778
-define i64 @foo(i64 %n, i64 %x) nounwind {
+define i64 @unaligned(i64 %n, i64 %x) nounwind {
+; M64-LABEL: unaligned:
+; W64-LABEL: unaligned:
+; EFI-LABEL: unaligned:
entry:
%buf0 = alloca i8, i64 4096, align 1
@@ -19,7 +22,7 @@ entry:
; W64: movq %rsp, %rbp
; W64: $4096, %rax
; W64: callq __chkstk
-; W64: subq $4096, %rsp
+; W64: subq %rax, %rsp
; Freestanding
; EFI: movq %rsp, %rbp
@@ -49,18 +52,18 @@ entry:
%r = call i64 @bar(i64 %n, i64 %x, i64 %n, i8* %buf0, i8* %buf1) nounwind
; M64: subq $48, %rsp
-; M64: leaq -4096(%rbp), %r9
; M64: movq %rax, 32(%rsp)
+; M64: leaq -4096(%rbp), %r9
; M64: callq bar
; W64: subq $48, %rsp
-; W64: leaq -4096(%rbp), %r9
; W64: movq %rax, 32(%rsp)
+; W64: leaq -4096(%rbp), %r9
; W64: callq bar
; EFI: subq $48, %rsp
-; EFI: leaq -[[B0OFS]](%rbp), %r9
; EFI: movq [[R64]], 32(%rsp)
+; EFI: leaq -[[B0OFS]](%rbp), %r9
; EFI: callq _bar
ret i64 %r
@@ -71,4 +74,51 @@ entry:
}
+define i64 @aligned(i64 %n, i64 %x) nounwind {
+; M64-LABEL: aligned:
+; W64-LABEL: aligned:
+; EFI-LABEL: aligned:
+entry:
+
+ %buf1 = alloca i8, i64 %n, align 128
+
+; M64: leaq 15(%{{.*}}), %rax
+; M64: andq $-16, %rax
+; M64: callq ___chkstk
+; M64: movq %rsp, [[R2:%r.*]]
+; M64: andq $-128, [[R2]]
+; M64: movq [[R2]], %rsp
+
+; W64: leaq 15(%{{.*}}), %rax
+; W64: andq $-16, %rax
+; W64: callq __chkstk
+; W64: subq %rax, %rsp
+; W64: movq %rsp, [[R2:%r.*]]
+; W64: andq $-128, [[R2]]
+; W64: movq [[R2]], %rsp
+
+; EFI: leaq 15(%{{.*}}), [[R1:%r.*]]
+; EFI: andq $-16, [[R1]]
+; EFI: movq %rsp, [[R64:%r.*]]
+; EFI: subq [[R1]], [[R64]]
+; EFI: andq $-128, [[R64]]
+; EFI: movq [[R64]], %rsp
+
+ %r = call i64 @bar(i64 %n, i64 %x, i64 %n, i8* undef, i8* %buf1) nounwind
+
+; M64: subq $48, %rsp
+; M64: movq [[R2]], 32(%rsp)
+; M64: callq bar
+
+; W64: subq $48, %rsp
+; W64: movq [[R2]], 32(%rsp)
+; W64: callq bar
+
+; EFI: subq $48, %rsp
+; EFI: movq [[R64]], 32(%rsp)
+; EFI: callq _bar
+
+ ret i64 %r
+}
+
declare i64 @bar(i64, i64, i64, i8* nocapture, i8* nocapture) nounwind
diff --git a/test/CodeGen/X86/win64_params.ll b/test/CodeGen/X86/win64_params.ll
index f9d4bf9c3094f..9718c86300c25 100644
--- a/test/CodeGen/X86/win64_params.ll
+++ b/test/CodeGen/X86/win64_params.ll
@@ -1,4 +1,5 @@
; RUN: llc < %s -mtriple=x86_64-pc-win32 | FileCheck %s
+; RUN: llc < %s -mtriple=x86_64-pc-linux | FileCheck %s -check-prefix=LINUX
; Verify that the 5th and 6th parameters are coming from the correct location
; on the stack.
@@ -6,6 +7,30 @@ define i32 @f6(i32 %p1, i32 %p2, i32 %p3, i32 %p4, i32 %p5, i32 %p6) nounwind re
entry:
; CHECK: movl 48(%rsp), %eax
; CHECK: addl 40(%rsp), %eax
+; LINUX: addl %r9d, %r8d
+; LINUX: movl %r8d, %eax
+ %add = add nsw i32 %p6, %p5
+ ret i32 %add
+}
+
+define x86_64_win64cc i32 @f7(i32 %p1, i32 %p2, i32 %p3, i32 %p4, i32 %p5, i32 %p6) nounwind readnone optsize {
+entry:
+; CHECK: movl 48(%rsp), %eax
+; CHECK: addl 40(%rsp), %eax
+; LINUX: movl 48(%rsp), %eax
+; LINUX: addl 40(%rsp), %eax
+ %add = add nsw i32 %p6, %p5
+ ret i32 %add
+}
+
+; Verify that even though we're compiling for Windows, parameters behave as
+; on other platforms here (note the x86_64_sysvcc calling convention).
+define x86_64_sysvcc i32 @f8(i32 %p1, i32 %p2, i32 %p3, i32 %p4, i32 %p5, i32 %p6) nounwind readnone optsize {
+entry:
+; CHECK: addl %r9d, %r8d
+; CHECK: movl %r8d, %eax
+; LINUX: addl %r9d, %r8d
+; LINUX: movl %r8d, %eax
%add = add nsw i32 %p6, %p5
ret i32 %add
}
diff --git a/test/CodeGen/X86/win64_vararg.ll b/test/CodeGen/X86/win64_vararg.ll
index 52bc50922c265..1a51b2a64a761 100644
--- a/test/CodeGen/X86/win64_vararg.ll
+++ b/test/CodeGen/X86/win64_vararg.ll
@@ -18,8 +18,9 @@ entry:
}
declare void @llvm.va_start(i8*) nounwind
+declare void @llvm.va_copy(i8*, i8*) nounwind
-; CHECK: f5:
+; CHECK-LABEL: f5:
; CHECK: pushq
; CHECK: leaq 56(%rsp),
define i8* @f5(i64 %a0, i64 %a1, i64 %a2, i64 %a3, i64 %a4, ...) nounwind {
@@ -30,7 +31,7 @@ entry:
ret i8* %ap1
}
-; CHECK: f4:
+; CHECK-LABEL: f4:
; CHECK: pushq
; CHECK: leaq 48(%rsp),
define i8* @f4(i64 %a0, i64 %a1, i64 %a2, i64 %a3, ...) nounwind {
@@ -41,7 +42,7 @@ entry:
ret i8* %ap1
}
-; CHECK: f3:
+; CHECK-LABEL: f3:
; CHECK: pushq
; CHECK: leaq 40(%rsp),
define i8* @f3(i64 %a0, i64 %a1, i64 %a2, ...) nounwind {
@@ -51,3 +52,62 @@ entry:
call void @llvm.va_start(i8* %ap1)
ret i8* %ap1
}
+
+; WinX86_64 uses char* for va_list. Verify that the correct amount of bytes
+; are copied using va_copy.
+
+; CHECK-LABEL: copy1:
+; CHECK: subq $16
+; CHECK: leaq 32(%rsp), [[REG_copy1:%[a-z]+]]
+; CHECK: movq [[REG_copy1]], 8(%rsp)
+; CHECK: movq [[REG_copy1]], (%rsp)
+; CHECK: addq $16
+; CHECK: ret
+define void @copy1(i64 %a0, ...) nounwind {
+entry:
+ %ap = alloca i8*, align 8
+ %cp = alloca i8*, align 8
+ %ap1 = bitcast i8** %ap to i8*
+ %cp1 = bitcast i8** %cp to i8*
+ call void @llvm.va_start(i8* %ap1)
+ call void @llvm.va_copy(i8* %cp1, i8* %ap1)
+ ret void
+}
+
+; CHECK-LABEL: copy4:
+; CHECK: subq $16
+; CHECK: leaq 56(%rsp), [[REG_copy4:%[a-z]+]]
+; CHECK: movq [[REG_copy4]], 8(%rsp)
+; CHECK: movq [[REG_copy4]], (%rsp)
+; CHECK: addq $16
+; CHECK: ret
+define void @copy4(i64 %a0, i64 %a1, i64 %a2, i64 %a3, ...) nounwind {
+entry:
+ %ap = alloca i8*, align 8
+ %cp = alloca i8*, align 8
+ %ap1 = bitcast i8** %ap to i8*
+ %cp1 = bitcast i8** %cp to i8*
+ call void @llvm.va_start(i8* %ap1)
+ call void @llvm.va_copy(i8* %cp1, i8* %ap1)
+ ret void
+}
+
+; CHECK-LABEL: arg4:
+; CHECK: pushq
+; va_start:
+; CHECK: leaq 48(%rsp), [[REG_arg4_1:%[a-z]+]]
+; CHECK: movq [[REG_arg4_1]], (%rsp)
+; va_arg:
+; CHECK: leaq 52(%rsp), [[REG_arg4_2:%[a-z]+]]
+; CHECK: movq [[REG_arg4_2]], (%rsp)
+; CHECK: movl 48(%rsp), %eax
+; CHECK: popq
+; CHECK: ret
+define i32 @arg4(i64 %a0, i64 %a1, i64 %a2, i64 %a3, ...) nounwind {
+entry:
+ %ap = alloca i8*, align 8
+ %ap1 = bitcast i8** %ap to i8*
+ call void @llvm.va_start(i8* %ap1)
+ %tmp = va_arg i8** %ap, i32
+ ret i32 %tmp
+}
diff --git a/test/CodeGen/X86/win_chkstk.ll b/test/CodeGen/X86/win_chkstk.ll
index e4e4483ff9491..3f522ea5682cd 100644
--- a/test/CodeGen/X86/win_chkstk.ll
+++ b/test/CodeGen/X86/win_chkstk.ll
@@ -45,3 +45,16 @@ entry:
%array128 = alloca [128 x i8], align 16 ; <[128 x i8]*> [#uses=0]
ret i32 0
}
+
+; Make sure we don't call __chkstk or __alloca on non-Windows even if the
+; caller has the Win64 calling convention.
+define x86_64_win64cc i32 @main4k_win64() nounwind {
+entry:
+; WIN_X32: calll __chkstk
+; WIN_X64: callq __chkstk
+; MINGW_X32: calll __alloca
+; MINGW_X64: callq ___chkstk
+; LINUX-NOT: call __chkstk
+ %array4096 = alloca [4096 x i8], align 16 ; <[4096 x i8]*> [#uses=0]
+ ret i32 0
+}
diff --git a/test/CodeGen/X86/x86-64-and-mask.ll b/test/CodeGen/X86/x86-64-and-mask.ll
index 07ccb2337e752..bc6c612482b07 100644
--- a/test/CodeGen/X86/x86-64-and-mask.ll
+++ b/test/CodeGen/X86/x86-64-and-mask.ll
@@ -1,10 +1,10 @@
-; RUN: llc < %s | FileCheck %s
+; RUN: llc -mcpu=corei7 < %s | FileCheck %s
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
target triple = "x86_64-apple-darwin8"
; This should be a single mov, not a load of immediate + andq.
-; CHECK: test:
+; CHECK-LABEL: test:
; CHECK: movl %edi, %eax
define i64 @test(i64 %x) nounwind {
@@ -14,7 +14,7 @@ entry:
}
; This copy can't be coalesced away because it needs the implicit zero-extend.
-; CHECK: bbb:
+; CHECK-LABEL: bbb:
; CHECK: movl %edi, %edi
define void @bbb(i64 %x) nounwind {
@@ -26,7 +26,7 @@ define void @bbb(i64 %x) nounwind {
; This should use a 32-bit and with implicit zero-extension, not a 64-bit and
; with a separate mov to materialize the mask.
; rdar://7527390
-; CHECK: ccc:
+; CHECK-LABEL: ccc:
; CHECK: andl $-1048593, %edi
declare void @foo(i64 %x) nounwind
@@ -38,9 +38,9 @@ define void @ccc(i64 %x) nounwind {
}
; This requires a mov and a 64-bit and.
-; CHECK: ddd:
+; CHECK-LABEL: ddd:
; CHECK: movabsq $4294967296, %r
-; CHECK: andq %rax, %rdi
+; CHECK: andq %r{{..}}, %r{{..}}
define void @ddd(i64 %x) nounwind {
%t = and i64 %x, 4294967296
diff --git a/test/CodeGen/X86/x86-64-pic-10.ll b/test/CodeGen/X86/x86-64-pic-10.ll
index 3ec172b2b656e..da8082b925186 100644
--- a/test/CodeGen/X86/x86-64-pic-10.ll
+++ b/test/CodeGen/X86/x86-64-pic-10.ll
@@ -9,4 +9,6 @@ entry:
ret void
}
-declare extern_weak i32 @f()
+define weak i32 @f() {
+ ret i32 42
+}
diff --git a/test/CodeGen/X86/x86-64-psub.ll b/test/CodeGen/X86/x86-64-psub.ll
new file mode 100644
index 0000000000000..183ddf446f3d1
--- /dev/null
+++ b/test/CodeGen/X86/x86-64-psub.ll
@@ -0,0 +1,220 @@
+; RUN: llc -mtriple=x86_64-pc-linux -mcpu=corei7 < %s | FileCheck %s
+
+; MMX packed sub opcodes were wrongly marked as commutative.
+; This test checks that the operands of packed sub instructions are
+; never interchanged by the "Two-Address instruction pass".
+
+declare { i64, double } @getFirstParam()
+declare { i64, double } @getSecondParam()
+
+define i64 @test_psubb() {
+entry:
+ %call = tail call { i64, double } @getFirstParam()
+ %0 = extractvalue { i64, double } %call, 0
+ %call2 = tail call { i64, double } @getSecondParam()
+ %1 = extractvalue { i64, double } %call2, 0
+ %__m1.0.insert.i = insertelement <1 x i64> undef, i64 %0, i32 0
+ %__m2.0.insert.i = insertelement <1 x i64> undef, i64 %1, i32 0
+ %2 = bitcast <1 x i64> %__m1.0.insert.i to <8 x i8>
+ %3 = bitcast <8 x i8> %2 to x86_mmx
+ %4 = bitcast <1 x i64> %__m2.0.insert.i to <8 x i8>
+ %5 = bitcast <8 x i8> %4 to x86_mmx
+ %6 = tail call x86_mmx @llvm.x86.mmx.psub.b(x86_mmx %3, x86_mmx %5) nounwind
+ %7 = bitcast x86_mmx %6 to <8 x i8>
+ %8 = bitcast <8 x i8> %7 to <1 x i64>
+ %retval.0.extract.i15 = extractelement <1 x i64> %8, i32 0
+ ret i64 %retval.0.extract.i15
+}
+
+; CHECK-LABEL: test_psubb:
+; CHECK: callq getFirstParam
+; CHECK: movq %rax, [[TEMP:%[a-z0-9]+]]
+; CHECK: callq getSecondParam
+; CHECK: movd [[TEMP]], [[PARAM1:%[a-z0-9]+]]
+; CHECK: movd %rax, [[PARAM2:%[a-z0-9]+]]
+; CHECK: psubb [[PARAM2]], [[PARAM1]]
+; CHECK: ret
+
+define i64 @test_psubw() {
+entry:
+ %call = tail call { i64, double } @getFirstParam()
+ %0 = extractvalue { i64, double } %call, 0
+ %call2 = tail call { i64, double } @getSecondParam()
+ %1 = extractvalue { i64, double } %call2, 0
+ %__m1.0.insert.i = insertelement <1 x i64> undef, i64 %0, i32 0
+ %__m2.0.insert.i = insertelement <1 x i64> undef, i64 %1, i32 0
+ %2 = bitcast <1 x i64> %__m1.0.insert.i to <4 x i16>
+ %3 = bitcast <4 x i16> %2 to x86_mmx
+ %4 = bitcast <1 x i64> %__m2.0.insert.i to <4 x i16>
+ %5 = bitcast <4 x i16> %4 to x86_mmx
+ %6 = tail call x86_mmx @llvm.x86.mmx.psub.w(x86_mmx %3, x86_mmx %5) nounwind
+ %7 = bitcast x86_mmx %6 to <4 x i16>
+ %8 = bitcast <4 x i16> %7 to <1 x i64>
+ %retval.0.extract.i15 = extractelement <1 x i64> %8, i32 0
+ ret i64 %retval.0.extract.i15
+}
+
+; CHECK-LABEL: test_psubw:
+; CHECK: callq getFirstParam
+; CHECK: movq %rax, [[TEMP:%[a-z0-9]+]]
+; CHECK: callq getSecondParam
+; CHECK: movd [[TEMP]], [[PARAM1:%[a-z0-9]+]]
+; CHECK: movd %rax, [[PARAM2:%[a-z0-9]+]]
+; CHECK: psubw [[PARAM2]], [[PARAM1]]
+; CHECK: ret
+
+
+define i64 @test_psubd() {
+entry:
+ %call = tail call { i64, double } @getFirstParam()
+ %0 = extractvalue { i64, double } %call, 0
+ %call2 = tail call { i64, double } @getSecondParam()
+ %1 = extractvalue { i64, double } %call2, 0
+ %__m1.0.insert.i = insertelement <1 x i64> undef, i64 %0, i32 0
+ %__m2.0.insert.i = insertelement <1 x i64> undef, i64 %1, i32 0
+ %2 = bitcast <1 x i64> %__m1.0.insert.i to <2 x i32>
+ %3 = bitcast <2 x i32> %2 to x86_mmx
+ %4 = bitcast <1 x i64> %__m2.0.insert.i to <2 x i32>
+ %5 = bitcast <2 x i32> %4 to x86_mmx
+ %6 = tail call x86_mmx @llvm.x86.mmx.psub.d(x86_mmx %3, x86_mmx %5) nounwind
+ %7 = bitcast x86_mmx %6 to <2 x i32>
+ %8 = bitcast <2 x i32> %7 to <1 x i64>
+ %retval.0.extract.i15 = extractelement <1 x i64> %8, i32 0
+ ret i64 %retval.0.extract.i15
+}
+
+; CHECK-LABEL: test_psubd:
+; CHECK: callq getFirstParam
+; CHECK: movq %rax, [[TEMP:%[a-z0-9]+]]
+; CHECK: callq getSecondParam
+; CHECK: movd [[TEMP]], [[PARAM1:%[a-z0-9]+]]
+; CHECK: movd %rax, [[PARAM2:%[a-z0-9]+]]
+; CHECK: psubd [[PARAM2]], [[PARAM1]]
+; CHECK: ret
+
+define i64 @test_psubsb() {
+entry:
+ %call = tail call { i64, double } @getFirstParam()
+ %0 = extractvalue { i64, double } %call, 0
+ %call2 = tail call { i64, double } @getSecondParam()
+ %1 = extractvalue { i64, double } %call2, 0
+ %__m1.0.insert.i = insertelement <1 x i64> undef, i64 %0, i32 0
+ %__m2.0.insert.i = insertelement <1 x i64> undef, i64 %1, i32 0
+ %2 = bitcast <1 x i64> %__m1.0.insert.i to <8 x i8>
+ %3 = bitcast <8 x i8> %2 to x86_mmx
+ %4 = bitcast <1 x i64> %__m2.0.insert.i to <8 x i8>
+ %5 = bitcast <8 x i8> %4 to x86_mmx
+ %6 = tail call x86_mmx @llvm.x86.mmx.psubs.b(x86_mmx %3, x86_mmx %5) nounwind
+ %7 = bitcast x86_mmx %6 to <8 x i8>
+ %8 = bitcast <8 x i8> %7 to <1 x i64>
+ %retval.0.extract.i15 = extractelement <1 x i64> %8, i32 0
+ ret i64 %retval.0.extract.i15
+}
+
+; CHECK-LABEL: test_psubsb:
+; CHECK: callq getFirstParam
+; CHECK: movq %rax, [[TEMP:%[a-z0-9]+]]
+; CHECK: callq getSecondParam
+; CHECK: movd [[TEMP]], [[PARAM1:%[a-z0-9]+]]
+; CHECK: movd %rax, [[PARAM2:%[a-z0-9]+]]
+; CHECK: psubsb [[PARAM2]], [[PARAM1]]
+; CHECK: ret
+
+define i64 @test_psubswv() {
+entry:
+ %call = tail call { i64, double } @getFirstParam()
+ %0 = extractvalue { i64, double } %call, 0
+ %call2 = tail call { i64, double } @getSecondParam()
+ %1 = extractvalue { i64, double } %call2, 0
+ %__m1.0.insert.i = insertelement <1 x i64> undef, i64 %0, i32 0
+ %__m2.0.insert.i = insertelement <1 x i64> undef, i64 %1, i32 0
+ %2 = bitcast <1 x i64> %__m1.0.insert.i to <4 x i16>
+ %3 = bitcast <4 x i16> %2 to x86_mmx
+ %4 = bitcast <1 x i64> %__m2.0.insert.i to <4 x i16>
+ %5 = bitcast <4 x i16> %4 to x86_mmx
+ %6 = tail call x86_mmx @llvm.x86.mmx.psubs.w(x86_mmx %3, x86_mmx %5) nounwind
+ %7 = bitcast x86_mmx %6 to <4 x i16>
+ %8 = bitcast <4 x i16> %7 to <1 x i64>
+ %retval.0.extract.i15 = extractelement <1 x i64> %8, i32 0
+ ret i64 %retval.0.extract.i15
+}
+
+; CHECK-LABEL: test_psubswv:
+; CHECK: callq getFirstParam
+; CHECK: movq %rax, [[TEMP:%[a-z0-9]+]]
+; CHECK: callq getSecondParam
+; CHECK: movd [[TEMP]], [[PARAM1:%[a-z0-9]+]]
+; CHECK: movd %rax, [[PARAM2:%[a-z0-9]+]]
+; CHECK: psubsw [[PARAM2]], [[PARAM1]]
+; CHECK: ret
+
+define i64 @test_psubusbv() {
+entry:
+ %call = tail call { i64, double } @getFirstParam()
+ %0 = extractvalue { i64, double } %call, 0
+ %call2 = tail call { i64, double } @getSecondParam()
+ %1 = extractvalue { i64, double } %call2, 0
+ %__m1.0.insert.i = insertelement <1 x i64> undef, i64 %0, i32 0
+ %__m2.0.insert.i = insertelement <1 x i64> undef, i64 %1, i32 0
+ %2 = bitcast <1 x i64> %__m1.0.insert.i to <8 x i8>
+ %3 = bitcast <8 x i8> %2 to x86_mmx
+ %4 = bitcast <1 x i64> %__m2.0.insert.i to <8 x i8>
+ %5 = bitcast <8 x i8> %4 to x86_mmx
+ %6 = tail call x86_mmx @llvm.x86.mmx.psubus.b(x86_mmx %3, x86_mmx %5) nounwind
+ %7 = bitcast x86_mmx %6 to <8 x i8>
+ %8 = bitcast <8 x i8> %7 to <1 x i64>
+ %retval.0.extract.i15 = extractelement <1 x i64> %8, i32 0
+ ret i64 %retval.0.extract.i15
+}
+
+; CHECK-LABEL: test_psubusbv:
+; CHECK: callq getFirstParam
+; CHECK: movq %rax, [[TEMP:%[a-z0-9]+]]
+; CHECK: callq getSecondParam
+; CHECK: movd [[TEMP]], [[PARAM1:%[a-z0-9]+]]
+; CHECK: movd %rax, [[PARAM2:%[a-z0-9]+]]
+; CHECK: psubusb [[PARAM2]], [[PARAM1]]
+; CHECK: ret
+
+define i64 @test_psubuswv() {
+entry:
+ %call = tail call { i64, double } @getFirstParam()
+ %0 = extractvalue { i64, double } %call, 0
+ %call2 = tail call { i64, double } @getSecondParam()
+ %1 = extractvalue { i64, double } %call2, 0
+ %__m1.0.insert.i = insertelement <1 x i64> undef, i64 %0, i32 0
+ %__m2.0.insert.i = insertelement <1 x i64> undef, i64 %1, i32 0
+ %2 = bitcast <1 x i64> %__m1.0.insert.i to <4 x i16>
+ %3 = bitcast <4 x i16> %2 to x86_mmx
+ %4 = bitcast <1 x i64> %__m2.0.insert.i to <4 x i16>
+ %5 = bitcast <4 x i16> %4 to x86_mmx
+ %6 = tail call x86_mmx @llvm.x86.mmx.psubus.w(x86_mmx %3, x86_mmx %5) nounwind
+ %7 = bitcast x86_mmx %6 to <4 x i16>
+ %8 = bitcast <4 x i16> %7 to <1 x i64>
+ %retval.0.extract.i15 = extractelement <1 x i64> %8, i32 0
+ ret i64 %retval.0.extract.i15
+}
+
+; CHECK-LABEL: test_psubuswv:
+; CHECK: callq getFirstParam
+; CHECK: movq %rax, [[TEMP:%[a-z0-9]+]]
+; CHECK: callq getSecondParam
+; CHECK: movd [[TEMP]], [[PARAM1:%[a-z0-9]+]]
+; CHECK: movd %rax, [[PARAM2:%[a-z0-9]+]]
+; CHECK: psubusw [[PARAM2]], [[PARAM1]]
+; CHECK: ret
+
+
+declare x86_mmx @llvm.x86.mmx.psubus.w(x86_mmx, x86_mmx) nounwind readnone
+
+declare x86_mmx @llvm.x86.mmx.psubus.b(x86_mmx, x86_mmx) nounwind readnone
+
+declare x86_mmx @llvm.x86.mmx.psubs.w(x86_mmx, x86_mmx) nounwind readnone
+
+declare x86_mmx @llvm.x86.mmx.psubs.b(x86_mmx, x86_mmx) nounwind readnone
+
+declare x86_mmx @llvm.x86.mmx.psub.d(x86_mmx, x86_mmx) nounwind readnone
+
+declare x86_mmx @llvm.x86.mmx.psub.w(x86_mmx, x86_mmx) nounwind readnone
+
+declare x86_mmx @llvm.x86.mmx.psub.b(x86_mmx, x86_mmx) nounwind readnone
diff --git a/test/CodeGen/X86/x86-64-sret-return.ll b/test/CodeGen/X86/x86-64-sret-return.ll
index bc8a543465808..2d001142d7a10 100644
--- a/test/CodeGen/X86/x86-64-sret-return.ll
+++ b/test/CodeGen/X86/x86-64-sret-return.ll
@@ -4,11 +4,11 @@
%struct.foo = type { [4 x i64] }
-; CHECK: bar:
+; CHECK-LABEL: bar:
; CHECK: movq %rdi, %rax
; For the x32 ABI, pointers are 32-bit so 32-bit instructions will be used
-; X32ABI: bar:
+; X32ABI-LABEL: bar:
; X32ABI: movl %edi, %eax
define void @bar(%struct.foo* noalias sret %agg.result, %struct.foo* %d) nounwind {
@@ -60,11 +60,11 @@ return: ; preds = %entry
ret void
}
-; CHECK: foo:
+; CHECK-LABEL: foo:
; CHECK: movq %rdi, %rax
; For the x32 ABI, pointers are 32-bit so 32-bit instructions will be used
-; X32ABI: foo:
+; X32ABI-LABEL: foo:
; X32ABI: movl %edi, %eax
define void @foo({ i64 }* noalias nocapture sret %agg.result) nounwind {
diff --git a/test/CodeGen/X86/x86-64-tls-1.ll b/test/CodeGen/X86/x86-64-tls-1.ll
index 8d3b300da3bfa..641786f5a9149 100644
--- a/test/CodeGen/X86/x86-64-tls-1.ll
+++ b/test/CodeGen/X86/x86-64-tls-1.ll
@@ -1,6 +1,10 @@
; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu | FileCheck %s
@tm_nest_level = internal thread_local global i32 0
define i64 @z() nounwind {
-; CHECK: movabsq $tm_nest_level@TPOFF, %rcx
+; FIXME: The codegen here is primitive at best and could be much better.
+; The add and the moves can be folded together.
+; CHECK-DAG: movq $tm_nest_level@TPOFF, %rcx
+; CHECK-DAG: movq %fs:0, %rax
+; CHECK: addl %ecx, %eax
ret i64 and (i64 ptrtoint (i32* @tm_nest_level to i64), i64 100)
}
diff --git a/test/CodeGen/X86/x86-shifts.ll b/test/CodeGen/X86/x86-shifts.ll
index 20bccab8ff78f..2f3adb8db9a01 100644
--- a/test/CodeGen/X86/x86-shifts.ll
+++ b/test/CodeGen/X86/x86-shifts.ll
@@ -6,8 +6,8 @@
define <4 x i32> @shl4(<4 x i32> %A) nounwind {
entry:
; CHECK: shl4
-; CHECK: padd
; CHECK: pslld
+; CHECK: padd
; CHECK: ret
%B = shl <4 x i32> %A, < i32 2, i32 2, i32 2, i32 2>
%C = shl <4 x i32> %A, < i32 1, i32 1, i32 1, i32 1>
@@ -67,8 +67,8 @@ entry:
define <8 x i16> @shl8(<8 x i16> %A) nounwind {
entry:
; CHECK: shl8
-; CHECK: padd
; CHECK: psllw
+; CHECK: padd
; CHECK: ret
%B = shl <8 x i16> %A, < i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2>
%C = shl <8 x i16> %A, < i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1>
@@ -156,7 +156,7 @@ entry:
define <16 x i8> @shl9(<16 x i8> %A) nounwind {
%B = shl <16 x i8> %A, <i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3>
ret <16 x i8> %B
-; CHECK: shl9:
+; CHECK-LABEL: shl9:
; CHECK: psllw $3
; CHECK: pand
; CHECK: ret
@@ -165,7 +165,7 @@ define <16 x i8> @shl9(<16 x i8> %A) nounwind {
define <16 x i8> @shr9(<16 x i8> %A) nounwind {
%B = lshr <16 x i8> %A, <i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3>
ret <16 x i8> %B
-; CHECK: shr9:
+; CHECK-LABEL: shr9:
; CHECK: psrlw $3
; CHECK: pand
; CHECK: ret
@@ -174,7 +174,7 @@ define <16 x i8> @shr9(<16 x i8> %A) nounwind {
define <16 x i8> @sra_v16i8_7(<16 x i8> %A) nounwind {
%B = ashr <16 x i8> %A, <i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7>
ret <16 x i8> %B
-; CHECK: sra_v16i8_7:
+; CHECK-LABEL: sra_v16i8_7:
; CHECK: pxor
; CHECK: pcmpgtb
; CHECK: ret
@@ -183,7 +183,7 @@ define <16 x i8> @sra_v16i8_7(<16 x i8> %A) nounwind {
define <16 x i8> @sra_v16i8(<16 x i8> %A) nounwind {
%B = ashr <16 x i8> %A, <i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3>
ret <16 x i8> %B
-; CHECK: sra_v16i8:
+; CHECK-LABEL: sra_v16i8:
; CHECK: psrlw $3
; CHECK: pand
; CHECK: pxor
diff --git a/test/CodeGen/X86/xmulo.ll b/test/CodeGen/X86/xmulo.ll
index 486dafeb5a242..71efac4e99a1f 100644
--- a/test/CodeGen/X86/xmulo.ll
+++ b/test/CodeGen/X86/xmulo.ll
@@ -8,7 +8,7 @@ declare i32 @printf(i8*, ...)
@.str = private unnamed_addr constant [10 x i8] c"%llx, %d\0A\00", align 1
define i32 @t1() nounwind {
-; CHECK: t1:
+; CHECK-LABEL: t1:
; CHECK: movl $0, 12(%esp)
; CHECK: movl $0, 8(%esp)
; CHECK: movl $72, 4(%esp)
@@ -22,7 +22,7 @@ define i32 @t1() nounwind {
}
define i32 @t2() nounwind {
-; CHECK: t2:
+; CHECK-LABEL: t2:
; CHECK: movl $0, 12(%esp)
; CHECK: movl $0, 8(%esp)
; CHECK: movl $0, 4(%esp)
@@ -36,7 +36,7 @@ define i32 @t2() nounwind {
}
define i32 @t3() nounwind {
-; CHECK: t3:
+; CHECK-LABEL: t3:
; CHECK: movl $1, 12(%esp)
; CHECK: movl $-1, 8(%esp)
; CHECK: movl $-9, 4(%esp)
diff --git a/test/CodeGen/X86/xor-icmp.ll b/test/CodeGen/X86/xor-icmp.ll
index fd1b0064046a1..dd1fcca48f615 100644
--- a/test/CodeGen/X86/xor-icmp.ll
+++ b/test/CodeGen/X86/xor-icmp.ll
@@ -4,14 +4,14 @@
define i32 @t(i32 %a, i32 %b) nounwind ssp {
entry:
-; X32: t:
+; X32-LABEL: t:
; X32: xorb
; X32-NOT: andb
; X32-NOT: shrb
; X32: testb $64
; X32: je
-; X64: t:
+; X64-LABEL: t:
; X64-NOT: setne
; X64: xorl
; X64: testb $64
@@ -37,7 +37,7 @@ declare i32 @foo(...)
declare i32 @bar(...)
define i32 @t2(i32 %x, i32 %y) nounwind ssp {
-; X32: t2:
+; X32-LABEL: t2:
; X32: cmpl
; X32: sete
; X32: cmpl
@@ -45,7 +45,7 @@ define i32 @t2(i32 %x, i32 %y) nounwind ssp {
; X32-NOT: xor
; X32: je
-; X64: t2:
+; X64-LABEL: t2:
; X64: testl
; X64: sete
; X64: testl
diff --git a/test/CodeGen/X86/xor.ll b/test/CodeGen/X86/xor.ll
index 996bfc40ee564..fd8e1b4cebaa4 100644
--- a/test/CodeGen/X86/xor.ll
+++ b/test/CodeGen/X86/xor.ll
@@ -7,7 +7,7 @@ define <4 x i32> @test1() nounwind {
%tmp = xor <4 x i32> undef, undef
ret <4 x i32> %tmp
-; X32: test1:
+; X32-LABEL: test1:
; X32: xorps %xmm0, %xmm0
; X32: ret
}
@@ -16,7 +16,7 @@ define <4 x i32> @test1() nounwind {
define i32 @test2() nounwind{
%tmp = xor i32 undef, undef
ret i32 %tmp
-; X32: test2:
+; X32-LABEL: test2:
; X32: xorl %eax, %eax
; X32: ret
}
@@ -28,13 +28,13 @@ entry:
%tmp4 = lshr i32 %tmp3, 1
ret i32 %tmp4
-; X64: test3:
+; X64-LABEL: test3:
; X64: notl
; X64: andl
; X64: shrl
; X64: ret
-; X32: test3:
+; X32-LABEL: test3:
; X32: movl 8(%esp), %eax
; X32: notl %eax
; X32: andl 4(%esp), %eax
@@ -57,10 +57,10 @@ bb:
bb12:
ret i32 %tmp3
-; X64: test4:
+; X64-LABEL: test4:
; X64: notl [[REG:%[a-z]+]]
; X64: andl {{.*}}[[REG]]
-; X32: test4:
+; X32-LABEL: test4:
; X32: notl [[REG:%[a-z]+]]
; X32: andl {{.*}}[[REG]]
}
@@ -79,10 +79,10 @@ bb:
br i1 %tmp10, label %bb12, label %bb
bb12:
ret i16 %tmp3
-; X64: test5:
+; X64-LABEL: test5:
; X64: notl [[REG:%[a-z]+]]
; X64: andl {{.*}}[[REG]]
-; X32: test5:
+; X32-LABEL: test5:
; X32: notl [[REG:%[a-z]+]]
; X32: andl {{.*}}[[REG]]
}
@@ -101,10 +101,10 @@ bb:
br i1 %tmp10, label %bb12, label %bb
bb12:
ret i8 %tmp3
-; X64: test6:
+; X64-LABEL: test6:
; X64: notb [[REG:%[a-z]+]]
; X64: andb {{.*}}[[REG]]
-; X32: test6:
+; X32-LABEL: test6:
; X32: notb [[REG:%[a-z]+]]
; X32: andb {{.*}}[[REG]]
}
@@ -123,10 +123,10 @@ bb:
br i1 %tmp10, label %bb12, label %bb
bb12:
ret i32 %tmp3
-; X64: test7:
+; X64-LABEL: test7:
; X64: xorl $2147483646, [[REG:%[a-z]+]]
; X64: andl {{.*}}[[REG]]
-; X32: test7:
+; X32-LABEL: test7:
; X32: xorl $2147483646, [[REG:%[a-z]+]]
; X32: andl {{.*}}[[REG]]
}
@@ -137,8 +137,47 @@ entry:
%t1 = sub i32 0, %a
%t2 = add i32 %t1, -1
ret i32 %t2
-; X64: test8:
+; X64-LABEL: test8:
; X64: notl {{%eax|%edi|%ecx}}
-; X32: test8:
+; X32-LABEL: test8:
; X32: notl %eax
}
+
+define i32 @test9(i32 %a) nounwind {
+ %1 = and i32 %a, 4096
+ %2 = xor i32 %1, 4096
+ ret i32 %2
+; X64-LABEL: test9:
+; X64: notl [[REG:%[a-z]+]]
+; X64: andl {{.*}}[[REG:%[a-z]+]]
+; X32-LABEL: test9:
+; X32: notl [[REG:%[a-z]+]]
+; X32: andl {{.*}}[[REG:%[a-z]+]]
+}
+
+; PR15948
+define <4 x i32> @test10(<4 x i32> %a) nounwind {
+ %1 = and <4 x i32> %a, <i32 4096, i32 4096, i32 4096, i32 4096>
+ %2 = xor <4 x i32> %1, <i32 4096, i32 4096, i32 4096, i32 4096>
+ ret <4 x i32> %2
+; X64-LABEL: test10:
+; X64: andnps
+; X32-LABEL: test10:
+; X32: andnps
+}
+
+define i32 @PR17487(i1 %tobool) {
+ %tmp = insertelement <2 x i1> undef, i1 %tobool, i32 1
+ %tmp1 = zext <2 x i1> %tmp to <2 x i64>
+ %tmp2 = xor <2 x i64> %tmp1, <i64 1, i64 1>
+ %tmp3 = extractelement <2 x i64> %tmp2, i32 1
+ %add = add nsw i64 0, %tmp3
+ %cmp6 = icmp ne i64 %add, 1
+ %conv7 = zext i1 %cmp6 to i32
+ ret i32 %conv7
+
+; X64-LABEL: PR17487:
+; X64: andn
+; X32-LABEL: PR17487:
+; X32: andn
+}
diff --git a/test/CodeGen/X86/zero-remat.ll b/test/CodeGen/X86/zero-remat.ll
index 5d25a2d749719..e3c3c5e31901e 100644
--- a/test/CodeGen/X86/zero-remat.ll
+++ b/test/CodeGen/X86/zero-remat.ll
@@ -11,12 +11,12 @@ define double @foo() nounwind {
call void @bar(double 0.0)
ret double 0.0
-;CHECK-32: foo:
+;CHECK-32-LABEL: foo:
;CHECK-32: call
;CHECK-32: fldz
;CHECK-32: ret
-;CHECK-64: foo:
+;CHECK-64-LABEL: foo:
;CHECK-64: xorps
;CHECK-64: call
;CHECK-64: xorps
@@ -28,12 +28,12 @@ define float @foof() nounwind {
call void @barf(float 0.0)
ret float 0.0
-;CHECK-32: foof:
+;CHECK-32-LABEL: foof:
;CHECK-32: call
;CHECK-32: fldz
;CHECK-32: ret
-;CHECK-64: foof:
+;CHECK-64-LABEL: foof:
;CHECK-64: xorps
;CHECK-64: call
;CHECK-64: xorps
diff --git a/test/CodeGen/X86/zext-extract_subreg.ll b/test/CodeGen/X86/zext-extract_subreg.ll
index 168b898f12bde..43e79c77acc2c 100644
--- a/test/CodeGen/X86/zext-extract_subreg.ll
+++ b/test/CodeGen/X86/zext-extract_subreg.ll
@@ -1,7 +1,7 @@
; RUN: llc < %s -mtriple=x86_64-apple-darwin | FileCheck %s
define void @t() nounwind ssp {
-; CHECK: t:
+; CHECK-LABEL: t:
entry:
br i1 undef, label %return, label %if.end.i
@@ -14,7 +14,7 @@ if.end: ; preds = %if.end.i
; CHECK: movl (%{{.*}}), [[REG:%[a-z]+]]
; CHECK-NOT: movl [[REG]], [[REG]]
; CHECK-NEXT: testl [[REG]], [[REG]]
-; CHECK-NEXT: xorb
+; CHECK-NEXT: xorl
%tmp138 = select i1 undef, i32 0, i32 %tmp7.i
%tmp867 = zext i32 %tmp138 to i64
br label %while.cond
diff --git a/test/CodeGen/X86/zext-fold.ll b/test/CodeGen/X86/zext-fold.ll
index ff93c68ff35a3..a10923f7a80f9 100644
--- a/test/CodeGen/X86/zext-fold.ll
+++ b/test/CodeGen/X86/zext-fold.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -mcpu=generic -march=x86 | FileCheck %s
+; RUN: llc < %s -mcpu=generic -march=x86 -enable-misched=false | FileCheck %s
;; Simple case
define i32 @test1(i8 %x) nounwind readnone {
@@ -10,7 +10,7 @@ define i32 @test1(i8 %x) nounwind readnone {
; CHECK: movzbl
; CHECK-NEXT: andl {{.*}}224
-;; Multiple uses of %x but easily extensible.
+;; Multiple uses of %x but easily extensible.
define i32 @test2(i8 %x) nounwind readnone {
%A = and i8 %x, -32
%B = zext i8 %A to i32
@@ -21,8 +21,8 @@ define i32 @test2(i8 %x) nounwind readnone {
}
; CHECK: test2
; CHECK: movzbl
-; CHECK: orl $63
; CHECK: andl $224
+; CHECK: orl $63
declare void @use(i32, i8)
diff --git a/test/CodeGen/X86/zext-sext.ll b/test/CodeGen/X86/zext-sext.ll
index 6432ae38ff3a4..5b2713dc6fc19 100644
--- a/test/CodeGen/X86/zext-sext.ll
+++ b/test/CodeGen/X86/zext-sext.ll
@@ -1,8 +1,9 @@
-; XFAIL: *
-; ...should pass. See PR12324: misched bringup
-; RUN: llc < %s -march=x86-64 | FileCheck %s
+; RUN: llc < %s -mtriple=x86_64-linux-gnu -mcpu=atom | FileCheck %s
; <rdar://problem/8006248>
+; This randomly started passing after an unrelated change, if it fails again it
+; might be worth looking at PR12324: misched bringup.
+
@llvm.used = appending global [1 x i8*] [i8* bitcast (void ([40 x i16]*, i32*, i16**, i64*)* @func to i8*)], section "llvm.metadata"
define void @func([40 x i16]* %a, i32* %b, i16** %c, i64* %d) nounwind {
@@ -32,10 +33,12 @@ entry:
%tmp11 = sext i32 %tmp4 to i64
%tmp12 = add i64 %tmp11, 5089792279245435153
-; CHECK: addl $2138875574, %e[[REGISTER_zext:[a-z]+]]
-; CHECK-NEXT: movslq %e[[REGISTER_zext]], [[REGISTER_tmp:%[a-z]+]]
-; CHECK: movq [[REGISTER_tmp]], [[REGISTER_sext:%[a-z]+]]
-; CHECK-NEXT: subq %r[[REGISTER_zext]], [[REGISTER_sext]]
+; CHECK: addl $2138875574, %e[[REGISTER_zext:[a-z0-9]+]]
+; CHECK: movslq %e[[REGISTER_zext]], [[REGISTER_sext:%r[a-z0-9]+]]
+; CHECK: cmpl $-8608074, %e[[REGISTER_zext]]
+; CHECK-NOT: [[REGISTER_zext]]
+; CHECK-DAG: testl %e[[REGISTER_zext]]
+; CHECK: subq %r[[REGISTER_zext]], [[REGISTER_sext]]
%tmp13 = sub i64 %tmp12, 2138875574
%tmp14 = zext i32 %tmp4 to i64
diff --git a/test/CodeGen/X86/zext-shl.ll b/test/CodeGen/X86/zext-shl.ll
index 928848e3f7a2f..ac3ecc85f2d90 100644
--- a/test/CodeGen/X86/zext-shl.ll
+++ b/test/CodeGen/X86/zext-shl.ll
@@ -2,7 +2,7 @@
define i32 @t1(i8 zeroext %x) nounwind readnone ssp {
entry:
-; CHECK: t1:
+; CHECK-LABEL: t1:
; CHECK: shll
; CHECK-NOT: movzwl
; CHECK: ret
@@ -14,7 +14,7 @@ entry:
define i32 @t2(i8 zeroext %x) nounwind readnone ssp {
entry:
-; CHECK: t2:
+; CHECK-LABEL: t2:
; CHECK: shrl
; CHECK-NOT: movzwl
; CHECK: ret
diff --git a/test/CodeGen/X86/zext-trunc.ll b/test/CodeGen/X86/zext-trunc.ll
index b9ffbe87b21b6..32afd6b96a8b7 100644
--- a/test/CodeGen/X86/zext-trunc.ll
+++ b/test/CodeGen/X86/zext-trunc.ll
@@ -2,7 +2,7 @@
; rdar://7570931
define i64 @foo(i64 %a, i64 %b) nounwind {
-; CHECK: foo:
+; CHECK-LABEL: foo:
; CHECK: leal
; CHECK-NOT: movl
; CHECK: ret