summaryrefslogtreecommitdiff
path: root/test/CodeGen/X86
diff options
context:
space:
mode:
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 0afddd8f876f..69266dc4e44b 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 6912351d7b7e..3d0946698500 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 a58c9b102d13..d7af1c3fdc71 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 24aa5b98d0bb..4ec703921e29 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 b0eb1c5441bf..cea4d9d272fc 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 b48ce845f902..cbc1bc47fb15 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 e2cd750e2cac..3e1786bef793 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 c3d7e8a05472..000000000000
--- 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 c5d2a46f92c2..638d399056a2 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 f7ffb9337ef8..88057c86fd9d 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 8091bd1bc1ca..d3a47aefb7d0 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 7a3d72dd4b07..1ec9c70d570c 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 39af9319c8d1..9b9b781cfa2e 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 b772d77f6405..000000000000
--- 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 8946415108f4..18b3714f851f 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 4eaca17c8861..86bce8e977ac 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 6e9a6298436d..d4805b4bb63e 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 fc38135032c2..da56ce7ab583 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 368af6d8abde..cd86ee188949 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 360ec73bc436..9324d5dfa3bb 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 c63c890add50..7cf9cb007708 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 534f99033372..59d1c7f77abf 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 890fd0f067cf..296f0ca135b8 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 d64c96658014..75496518afa6 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 68a9fafb6de8..764c2cdd6d99 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 351a1722a231..bbc1d341d4e0 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 5cb05e8a796f..e1930e012dd8 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 3cd54169745d..7c87598d0d9c 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 80b883582ce5..0268d817c70d 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 e41038d3fdcf..a936edc120d8 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 2ac688fd80af..fedb2a51f357 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 c2d9d84d4c5a..08a99e3f6618 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 07003234a993..b1664470551b 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 823e0ca465ef..65b70a7d4936 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 3d058bc28965..f9bf3109ea10 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 7dba332b1bec..f99e68242811 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 2113263c0ac3..4d4e8c197d87 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 d4a74c9e7e7a..060c535dd778 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 6a58e9e55182..a8c87fa2074a 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 9a5958e62a0e..5e86ecf42b11 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 7650a5c3be88..7faee993a7d1 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 6510ff17f7bb..c5736eb9b449 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 ee00dbacbf60..1114c8dc87bb 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 b764b0b34597..b45ac226a650 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 208e93e098e6..b49aec3af87a 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 96016cfe1c73..47e511f92098 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 91711bb758c3..91fec3beefcb 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 de0d216e266f..9aa41c32c366 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 1b339777f571..39d89e3d8276 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 8719f738b7cc..21ac7c9079e8 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 4d8d974f703e..5a407d3f9972 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 14fb3e493231..d5340300df54 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 771e4b3a0815..b77cc40acf3c 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 8673d7433fac..adcea5cf6159 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 0f18f0969bad..91cd208f0167 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 ce63c74fbdfd..5275b6889bff 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 7632034e13b5..aea53b3b9855 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 6d91109daafb..4e84e84c1aa9 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 a6f428fdacc3..89de648ca966 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 4daf6781495a..a67c3f338862 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 6c6d340fd1a4..434f88c14b6a 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 cd15f84605a8..72e672ac4f1f 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 8c09d97f08d2..e7d1e194d9cd 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 da734d4b6454..07a6910c65e0 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 6e83f6713ae4..6dea92b63071 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 180ca15a0ee2..1b8c12bc8e38 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 fcaabddd2cc5..df9823aa3825 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 dc3a08bb4daf..0183e107460e 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 39c213f00ab8..14643e4ba8b8 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 75efcf5ac47b..78cdfcf0e1f0 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 7e914984fe44..69d4b93bb78d 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 a883d7938b55..cd8a16f5732a 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 3ce7db6e4138..9eb59e41ef7d 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 477b4deba820..000000000000
--- 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 04659522d360..16706ae957f2 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 171c3f18dc8b..881fa37f99cb 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 4abdded38d8c..723302723b6b 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 2c7dfc8dfd45..1c39c747cdc8 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 000b853ab8f6..eba970e711ae 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 ed511567c32b..c03b923cadba 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 a65e6881540d..971e56d20ea2 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 ff6be369dc57..a5f64c5eaf55 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 9164eb9c6912..d41b43228b6c 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 a0fbbb2ff9ef..7befa6b4757d 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 df93c5647d95..5aec3d92c70f 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 f0c7781fafe9..0ff9d3951d5b 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 000000000000..3455b68fb0e6
--- /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 c51247ab925a..fafdfdb74811 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 912bdc215474..76fabbf0f6ae 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 a8ad0f1a28b2..ba763cf03ffc 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 000000000000..b32ceca63441
--- /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 44241a90d0e7..6d5f8aebe139 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 74a1049772a0..bc058354a21f 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 13a6444a496b..584e644ed51f 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 bb227a0185df..0ef3aa5b6f07 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 5982544f7a8c..51d0d1775c67 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 f8ae74f292d2..a8e3537fabe3 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 0383bd665b0f..f87b3821dde8 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 658ccaa71dc0..633e70f0285a 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 4e30f2b05a89..1513fcba774b 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 5fe08ed305f1..62a62a460bd7 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 000000000000..fc1a2cc61289
--- /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 000000000000..8f01dcff2bf9
--- /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 f92027998a40..d0a262d390da 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 a45284e10cf4..2b5a205086e9 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 3d76fb0aa25b..74b9470db752 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 38db88af12c2..70c24615a7e2 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 000000000000..cf6f6edb31a8
--- /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 000000000000..8109f879f217
--- /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 aaedf18481b5..4ba1e21b8a15 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 6c569d624e06..ebf585a39a28 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 6139da8c3685..0aa55556d8f3 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 44f972ec7198..47b185a15766 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 a3bbea3c996b..d1b52a4ec3bb 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 4612940445cb..79001e5de192 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 632781130d06..48f2d4c11346 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 000000000000..5cda2df432fc
--- /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 19482e13d8c8..1df1974dc494 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 0d97e8535824..fd18472bff8a 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 05e630be153c..aa057577a042 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 62f784f69608..1cfbc49ab1c9 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 d759beb2caa8..1687e07d57e0 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 6b3a6b224dba..bdd25e6a2a56 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 4aa337033df6..a9da1ec067ca 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 64c4627c47c3..1fd9085838df 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 ecc71be7c0dc..c9d828c1f6e2 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 188efe26d92a..a98e0761ce31 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 d52ae52e0b98..4313a1594fb2 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 a3aadde2bdd1..8beaac6a780b 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 055072098a25..7337815a39ac 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 eff92510348a..c94962b74ed1 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 b9c700051005..fb2287f52892 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 01eb7361e293..d79dfcc076b0 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 e203c4ed0298..78b4888cfa16 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 73faa1fe0d40..0956361c7e30 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 5c01c2cc5b50..5d0781531f4d 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 d0077366444d..58d0a356909b 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 b0932bdfced9..f73174dd2bc6 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 ad8365bb59c0..fa49f949b689 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 7f2f9d821dd5..b7f8d72e58c9 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 582537ea906f..75117463bc39 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 09f953835820..72bdd9d04729 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 3ce08dcc7370..f49718e4c8b6 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 000000000000..ee50c457fe8c
--- /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 a5bb1a8f8e44..3d4fcec6078e 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 53b9da32ae8e..83573dc7b260 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 4eac71d08b4f..3f9c95cfd070 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 1f192a0d323c..7fdbaaa39cbe 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 cf319cb7fe1d..0e6dd297f8df 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 b804233663d4..5610416d39a3 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 000000000000..5592e6c8a5f7
--- /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 000000000000..e27600ecd734
--- /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 000000000000..bc4560b3f3fc
--- /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 000000000000..ba52745e6c19
--- /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 000000000000..ed68ff7bcbdb
--- /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 000000000000..ce3d7590f396
--- /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 000000000000..d6926e2571ab
--- /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 000000000000..0321e950ef81
--- /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 000000000000..3f067401ed3f
--- /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 000000000000..5bdabf234990
--- /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 000000000000..ef5cb56d7284
--- /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 000000000000..91242b1cc125
--- /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 000000000000..d2d6681fb422
--- /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 000000000000..8cdcf8ad062f
--- /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 000000000000..c9e0c2b992d9
--- /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 000000000000..31db68cc582b
--- /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 000000000000..6f89d6ce2342
--- /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 000000000000..6ca5bcc3b862
--- /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 ceabcb71a78b..a1c0f5ae527c 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 46e0fd217646..6a79139d9bcf 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 48922b5f5a13..12aa863a37a1 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 e565da74a082..4f2060f7012b 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 271fb4250517..d3e05d6fbed2 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 b89e648c52d9..242075a878bb 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 fa6f6e85e9b8..a0a1c3646624 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 bc4032b13cc0..3ebe1a1d2357 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 c94261467c9d..614d0adc7271 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 000000000000..210bda136b57
--- /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 4d801891da5c..8124d6f52263 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 d69bfa6e7eb7..f8f154c0688f 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 d2d6f9099a1b..e6a456c39ddd 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 e28923bb21d2..f12a3543b072 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 9c137a7239bb..add65765e389 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 98a26e47ab76..42751d7dbc93 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 e69f8c1ebf79..ccb98fefae2a 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 000000000000..c88726e75a81
--- /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 1c5c113a7232..b45b404c0f3c 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 1f7f6ecafafb..be9e70919167 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 a3933e2e00a4..63733abc5f34 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 763079f3446f..6a6f5256f44d 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 ca91f9ea2c2b..768af943eb49 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 780746ab1ae4..cad8dd307b34 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 ed25c82fddac..215b86267a47 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 1855fe2fb89e..551d9bc6074b 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 19cd08cf3797..9be045271d8d 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 d9e0778102cb..cbcb89031b5b 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 1e5e8f780b70..53df90620204 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 e8ee07063531..316accfa41ac 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 b6ca1cedc22e..3aebc13f8740 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 000000000000..1dcd4276399a
--- /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 ef44a3d119b8..656c385e2bc7 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 8c4fa27da560..9d3a1257288c 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 9aa44a30af57..5eb0135277d3 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 d38ce91310b1..af5c86c451a0 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 a3a0c39905aa..c3e71180bb18 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 1cec25b3347b..b1e01f94c9e6 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 852b642de68d..051150e227aa 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 70301cd9bcc4..44205d6829dd 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 0a3dfca228c1..786f7f9b1cc8 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 eca8c8641a20..12a2e626687b 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 dae91d5ccdd6..cf631c353fce 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 000000000000..905cf052c39c
--- /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 592cf1bec2e5..f06d9f1dc4b9 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 48b8202bd5fa..000000000000
--- 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 719a526cc892..000000000000
--- 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 f72729c5fee1..000000000000
--- 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 5c2e62bc9168..000000000000
--- 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 f7e0c91cdff2..000000000000
--- 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 6ac397ac42e1..000000000000
--- 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 1bd3d77522a3..000000000000
--- 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 cc612b2ca53e..000000000000
--- 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 c381cd754cfe..000000000000
--- 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 30d03054a104..000000000000
--- 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 d1774cc7bcaf..000000000000
--- 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 b08d68a6643d..000000000000
--- 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 c63235e7ad65..000000000000
--- 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 acc360e90cd2..000000000000
--- 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 a6c3e13621c9..000000000000
--- 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 b068bbbe784a..000000000000
--- 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 9669d97cb7fa..98ae1d51db21 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 3bc2957963eb..3b4a8689060d 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 000000000000..993f4d2af75d
--- /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 000000000000..96c15d4a3658
--- /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 000000000000..858eabcb7dc6
--- /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 06d739ceed9e..cadc0fb723f9 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 af1867fc51cc..e330ee79430e 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 5121ed13228d..d9cfaa4c2656 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 b60b68bd388d..ac898e69dfe1 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 3159741cd9c4..42d2b8bed654 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 45494f139e24..0fd0561e2046 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 7aba7f7b7953..5828becb3c33 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 f63396e40ca4..3a4b2a685504 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 67fdad299369..8b38587164fe 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 f0375f86028c..4e47c7455c53 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 bea18a195006..9c042d30e78c 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 52b1e8564338..cd2dc1d02c8a 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 fd768cb9b336..0370d99f906c 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 000000000000..3d2a46c2bd1b
--- /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 0963c5201c25..f71abd2fec01 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 7ce7f676add0..000000000000
--- 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 ad1520ef8194..f7d2750b5b81 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 4caa3a039d6a..ba86e888cdde 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 705ab7bada7c..a362f8d1ca7e 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 000000000000..f87a34c4abde
--- /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 000000000000..5644509a86f7
--- /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 bd3514cc3f73..917eac0ca32d 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 6d98d59b3822..cfb598df634c 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 000000000000..04db2d76cd8c
--- /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 63e7d36ada25..0b27387b73bf 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 93baa0e0eee0..a5eb8b5de3a4 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 c1756d5e2e1a..e85d8f78c052 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 d8366654c01c..dde0a2d1c5d3 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 d850630a4d08..663e2afe22c7 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 2bde76efd2ae..60a6844b39b2 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 2ada194f891f..95defc83db1f 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 3468a457e95f..c3b2dfb5d6c6 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 60892a2352fb..2c50bd1be75a 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 287504801d04..07baca84804e 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 000000000000..cc76b43e8761
--- /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 000000000000..7f772d11da9a
--- /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 b3ec5388d704..9a1337ab6cdb 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 000000000000..a6bd2a51c9a5
--- /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 0729dda4a12b..cbcc62a7011a 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 72a50961b2ff..5f48b1e32b16 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 d89e9dca33d1..fcc4e9f0b89b 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 0e65cfdbae30..4dba2c086329 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 fcf7e1797ad8..403391e81658 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 194f59765e5b..d8743ac31814 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 968a9e88c0e9..68e8c605f678 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 a19fca555811..3f549d26c2fe 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 cdc75af92e43..6a5ccaa1e76f 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 903c4538aba7..7254325a9265 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 488444c15d3b..91acb7d5bb1c 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 5f1f4fd8f76d..9feb5f6ea6e7 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 a8aede52accd..25a87b905bc1 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 fcb74fc9de52..a072cb08c99d 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 76d17a09d54e..b34417ebf69b 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 5dbb5a25cbeb..27e1c723a8f7 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 ff3c5c803c90..2f16423600c9 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 72e17c065b63..01d1b8c034e3 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 e9d30d67019e..8cfda85ce46d 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 ab5cdda0ce22..89cd495aa8b6 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 000000000000..d8096197b0df
--- /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 9196cce1ae5a..f47bd7b2defb 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 000000000000..a5686730cee9
--- /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 66c27ac87712..d17e04dd7949 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 747a5891cf04..31fb190daf83 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 51ea843712d1..45f4d2f38a46 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 2249618c8a9e..e83c065632dc 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 6653cfb14ed8..e4610e360257 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 83674361a773..a74e3f20c41a 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 000000000000..d2f062832e0c
--- /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 d2755331fe8d..458f19dfc4f7 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 0e34222b945f..d4174539f2f9 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 000000000000..5cf4661f8ff9
--- /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 21128096e6e7..82cefb728c6e 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 3f32fd27c5c1..9480600312ce 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 542135529f1d..93cfe4611b44 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 607dc72e2fa3..1bb3c7519146 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 71ef2d3152f8..64460bb91186 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 019f8a32b6c0..7e3c6fdf9514 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 66074fb3682c..083ae0875e39 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 9d285bf4e238..1637fa46536a 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 000000000000..85fd7f03ef62
--- /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 9765faeecadc..5ce771f14ab2 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 000000000000..5bbd41dad9d2
--- /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 db91961e0410..73e10127c065 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 4bd162b45294..a81ceb902ab4 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 d1de0510a046..d4a7ac7da12d 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 8a81f70a8a2a..e7d74a924075 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 1311a73fd32c..40c041ab6b09 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 b2aea90500c4..1bac790f57f9 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 2faa24a9a544..ff83f8540946 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 8e97b991d076..f04e111714ae 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 d171fd5f1d9f..409147b1d1f1 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 a7b036e9b658..4a4d178f6e41 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 7796f0e9a19e..0b3334d19f89 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 41f96e8856c9..db72e0871c8e 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 1ef5a971bab3..a82cfc431ba4 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 723d1d89427e..cb0797d3eb33 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 630c0ed1a33c..6ae7807810e9 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 3372a4adc5ee..88b6cfd2295f 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 b2bd72bb312b..d0a3c7a74bce 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 df9de5dfaf22..d77a7ed38165 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 000000000000..940688c6252f
--- /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 ded4b73d0931..72b69400ffa1 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 2184d9e96036..1900802ac9b3 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 0450cfb53908..4485b8a244a8 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 000000000000..859d92d6978b
--- /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 15e8a0ad6f4b..5454b7cf780a 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 4dc95c5e9326..23b561f6e5db 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 b348512b5798..3a0fb95711e5 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 a8d33f43da01..aabdd53b09d6 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 206cb33494cf..9e8f5bf53363 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 bafc75444d91..c7c6e75a5071 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 3d3d8cf19b79..3f459be70d2a 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 bb42734833dd..71b0723c429e 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 928ad037c1ce..25206621077b 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 5048a93ad302..5e7ba37b39c0 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 a404f34b9caa..40b976014a77 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 7822453add4f..30387925b34d 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 18f110821bd5..89ae3f1a3353 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 866514ed9a2f..79050720d8e7 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 57164f2bcaf9..efb02f8832e6 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 000000000000..9206e9f398eb
--- /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 62d73b0732e7..e13edf26cad7 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 627f7da9f707..991cd4ed7363 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 000000000000..8a15817bcfe9
--- /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 000000000000..cceaac47122d
--- /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 f72965877ddb..546a1365f26a 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 000000000000..f852caeeea21
--- /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 000000000000..8fad39bcbf72
--- /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 cddff3f2753b..291379eeaec9 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 fc9ba010e19d..a7cee2dd8211 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 8f1eabde7423..ec35d2981a16 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 3e720844c437..fc43e81bf9b5 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 d092916ac6fc..1b653736ad3b 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 f866e419c304..6bea864027bd 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 116d4c71814a..4df9a2284cb7 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 6875fb339242..ec6564d7e2eb 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 23005c77c13d..39ff69a43f48 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 000000000000..d534639953b3
--- /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 0bab78907635..adae8acd0432 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 a3799807b384..b3d4f585f45d 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 000000000000..884ee7c2ba28
--- /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 606a9be68bd4..f73ebb944dcd 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 62d85f7ee7c7..17e7e1dfdcf7 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 2a20e7ad6f15..6eb97c3cd7ab 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 fc0630991c9c..7bb127eae930 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 16e9c28fcdef..f0e468f53cb3 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 d8c27f25043a..07979f61ddd8 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 da4af81959dc..7bf8a618fa77 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 be527aed9a98..3db0f73954d7 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 430214c73b13..e9350de101f6 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 01d6cbef1ee5..946b8362122d 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 7191d6949c18..0ec22a08e440 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 ed3e7c528052..12bdba9fa595 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 342c1d63e192..30ce2979e8e1 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 6963fe515898..9fa83ce17b55 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 087b8d7539ec..81aaf91f2688 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 f29e50e29a3b..8b30596cd8ac 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 1c9316365959..8e5eca2b2c21 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 505e3b5cf262..16f20d0500a1 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 d76b912fd8e2..2f7c720386be 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 9b0ef83ab042..c348fec54674 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 000000000000..ecf6218aeb38
--- /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 000000000000..1f73a4d43600
--- /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 000000000000..6d55d99a6ac4
--- /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 000000000000..174fa5ca3fcf
--- /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 000000000000..98f951f1b10c
--- /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 000000000000..7a3fd6d1810b
--- /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 000000000000..e3860b88bf4f
--- /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 000000000000..4c6f8cfce732
--- /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 000000000000..b7af51618047
--- /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 000000000000..523e47db5eee
--- /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 02a36054d88c..94429b265d97 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 63676d9d2ce1..a4a48210d358 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 f7af927d6136..7264bcd12c42 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 b792ffa09fb9..70135d43f49b 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 efb51913c5c1..d6571acbbb7e 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 000000000000..2ec1892dd183
--- /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 484afc9b5af3..c02d19319a49 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 3c91d740c86d..963bc1c2927a 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 0bf601bc1c42..5089bd761a80 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 98f407776381..48182d029eb2 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 35de7ebf7430..c219b4ad27ec 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 d99a7a4bc4ad..cce71f5d4cfd 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 3e9c7909a366..c7e855b011b3 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 1b2af4b87a32..000000000000
--- 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 394070ecdf23..733b7942a6d5 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 f89cd330803d..9e8d8f665031 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 000000000000..4d7ee622a37e
--- /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 778e4722cd95..091fd5398496 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 000000000000..10bd3b673be7
--- /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 97721250377e..ee6333e61e88 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 9291200f0110..9228ea1f621f 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 de23dcb78f10..0293f4e21123 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 e95a734e048d..7bdd606e9cbb 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 7fa982d83b61..e19a35da1cd6 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 51fcf6418429..69f4bfb9f47d 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 5a23cf136d85..b8c364e2961c 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 e99ea9356a64..5807d5babfff 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 48bb8836e896..4f8d3f05351b 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 d68b00b69a2b..e17076215d5e 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 5407b87418f3..08a98ef51ec4 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 09ca07b31a10..cdd258d92031 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 5b2409d2396f..a6c2377e0366 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 000000000000..25cb2c822c5b
--- /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 000000000000..d36e678c6048
--- /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 c37e15d24f34..2454af926aae 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 574769b43084..64de0aee70d3 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 58c93229a2c0..2753e8766294 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 a128af9950f0..e0c8ff9b5e08 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 000000000000..bf81e9938ec8
--- /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 1de915164f0c..d487368431b0 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 d1f321f17738..7615754a042a 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 4f27e97fb390..5241042d0c55 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 7d961e8a9c04..88b86100794a 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 51f83036c23d..113dedb4a00c 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 c518cdd3aa4e..ea9002c397b8 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 10d489b9a8a6..0a5d047d23d3 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 83e1eb5c39e7..4762b13b516f 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 8d4b07f9d9b0..bb892011e2d6 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 f8a746563b51..1b9d2db47c37 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 f97abe002957..9fcb4603a9d1 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 1499e6688024..980b0f797ee1 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 937817e45647..c479030508a9 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 000000000000..c9dff6b73d2a
--- /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 ceb79ea927a1..589e9ec10524 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 000000000000..ccd8292bcdb3
--- /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 333c4663eb0b..2dc8816f840f 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 734f48ae329f..8f0e6f1edf66 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 2aca5b897d35..64f5311792db 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 2d0b2f7aa91d..cefbda64751b 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 980f18c8b911..4d59b9cc2f63 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 000000000000..fc79e31e72ee
--- /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 71a42f4db34a..2351fd6fa77b 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 22cd7723068c..98e75b56e891 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 336bf06e557d..1800a6eea61b 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 000000000000..65d44bfb5ba8
--- /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 0ba02155a657..5122c44131a4 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 9b2e05b5bedd..47c6429b1814 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 30a0fbe7d6de..1ac983254eaf 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 000000000000..ff6c10bfe5a8
--- /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 0466d60ec301..e066368dc73e 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 000000000000..462def980a91
--- /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 36a0fd91bd87..9147c22dd375 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 000000000000..dbd14b805fb5
--- /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 48638b3b696c..6d5b19243e45 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 a2a0debf9e95..a32f5de30a6c 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 000000000000..37eff43b28c4
--- /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 c6f9f0c873af..c15e24ccc96b 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 000000000000..5ca800982827
--- /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 c7875238ec86..db51d9973688 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 8b3a69bcaaf8..b39e76c78eb7 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 076e21336492..165d47639d7a 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 655f75800cff..2c16a554aebb 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 000000000000..728cbc9b60dd
--- /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 74945e5bb1bd..87bb85fad83e 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 0ddb2378ef2f..eafb7c29fa0a 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 000000000000..bd27ac347690
--- /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 000000000000..7d499f9abd74
--- /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 1e9ca1d2c24d..265ec80682bf 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 000000000000..ed9558302848
--- /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 8e33c30bf293..8f522cda284a 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 0dd228eb145f..7557f255658d 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 070cccdb87dd..bbeb7443c07f 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 6e4fe90053f1..705fdcdc13af 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 db8313cecdce..baaee3541108 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 ee5ea1d0fb6e..3cf79a3deca2 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 04d4a7199632..000000000000
--- 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 58a5c0338547..a80002bc97cc 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 0fdd56d4e1d3..207e0b3f707b 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 000000000000..17ebe997c8c1
--- /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 1d7eb2e29876..84d561dcd8c3 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 000000000000..119610430b18
--- /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 6e20af5866e4..73d93ff993c6 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 60fe77661797..deab1dcc7eb9 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 000000000000..c748bcef36dc
--- /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 a80b90f9eee2..a51bc889924b 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 b628f5e537f0..1fd2d72dc570 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 e9b8721e6608..f5662d97d13f 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 762160202c2d..75a6d874da37 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 04c4e95710c5..9ef0d27f7de6 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 000000000000..1bc617541edb
--- /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 000000000000..79eea10af3ae
--- /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 97db1b340e81..19fbaafc194f 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 5bc28ecbc48c..c9b76c88c1a2 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 0e6f6363cb89..bf6debf17542 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 2b26a89e3c87..4e6be71238ab 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 c5fd16bbec22..4841e52c5b0e 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 7c527e210a90..8e3e95886ad8 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 b823f0af2cdf..0c79da6667a1 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 3fca9f5a3791..d1e09c2442f7 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 8cdecd81bff5..76a840260b9a 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 92dac3096629..66e2f819ee24 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 000000000000..4f793051836f
--- /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 3f44be0b500c..149c667c8cb7 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 1d22a185def3..d230f1f7e2c6 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 92b6859d1dc4..0ed634774ab3 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 9d58019b1a99..b5ca0275d8d6 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 7536fb8f52c4..c5a61c3779bf 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 e5858de6ed71..ba5a790f4380 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 000000000000..154ce9e324d6
--- /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 e02e3b54752b..d7ae46939035 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 000000000000..d0915e244eeb
--- /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 a0448ecee4fa..fd57f5ca8d2d 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 8655c6c8ea54..fca4da66a85e 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 569586af4983..334211132f14 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 ba5483329169..f2bebf57d4dc 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 000000000000..052c4c3c61b8
--- /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 8cbfb5d7243a..5da6e9636ebe 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 31b9c2eb4c77..b3d85fd6ec7b 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 08eb16f6313b..5f6e7a853a33 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 b4a4a4cfa7af..084d61134206 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 fd5c234bb160..365fe92220b5 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 42d7f27f7d60..3cb519adf4f8 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 2c8796bc4ff7..88f5a585b9fd 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 863712ff48b3..7ec07ae0f959 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 dee91fd01468..fe20a474f59a 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 a18cd86489cc..a8713398e955 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 471cc1611fce..5cb9f694bd61 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 268b5c4bf972..6d4f8287cab6 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 650951cc9e5e..917832c40adb 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 e5a7ccc5ef94..5f2e676ef1ae 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 4e5d445ff623..0ed8f1052366 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 000000000000..baa2f58631d4
--- /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 349868a87f53..56855d3c44eb 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 66056d0add9c..41061ae7ac23 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 6979f6bb1c26..a73909097c11 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 133f23b42d90..052da30a6bb8 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 7f5f8dd213a5..53d880b4bbdd 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 000000000000..fc8a56de7917
--- /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 9ef7fbdb0c50..e2fe45cf9724 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 f0cfc44ab19a..8f2519728b77 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 09d4c1a64a01..9aeb94289c87 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 ebc8c5b34a90..f2f96ba94af1 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 d9b2388809aa..3f42a132ef2b 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 4c56f848dedb..00e8e73e184e 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 0aff822850c0..c9b2fb51d78f 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 9a06015745ed..f1d0f939e60c 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 ee8d2d5e0b3e..8fd9a5cd023e 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 5c668b7e5a5b..9d82f97dca1c 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 cf0ecf40554d..754cbf41867d 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 deedee801967..543c96ef3d45 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 000000000000..f9e7c20ba4e2
--- /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 c294df575a10..80f12a2dec2c 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 fe7fa2fe67d5..ee20f1fcbd04 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 ec93ce0761cc..b87d8447e543 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 d47df90e7e64..6e8ae2e42c94 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 f748a14836c8..0be00da83fdf 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 cf654b6f2059..25189f23e43a 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 e775750bbea5..b8a676765868 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 9496893bd1a7..156649a31443 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 b2b48b9da935..0bdb32fcb86e 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 8e24fda1835d..4363cd9399cf 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 f6c311dee521..562e520c5528 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 3b7fdff84e3c..c16b29493589 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 000000000000..5979f45b07d8
--- /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 000000000000..f78f3571cec9
--- /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 d93f33ba0e58..f51f917fbac9 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 661cde8bda3b..6041356e6ac7 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 d35abc308173..1b81e9f889aa 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 d86042a44806..d2b8e6ee9a75 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 5931d639f19b..5207e1fa9d7b 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 7f2eff09f473..70b6a8a239ab 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 b983d141ddf6..329048ad77b7 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 56c63644e02e..d115929f5aab 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 3979ce466d1e..40b42fbf1460 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 87486d96611b..40a8dc5b6aed 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 5ea54267692a..1bc06a77cbf7 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 9086d3a9cfd2..ccf0bd1d0b62 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 39032347c018..7c06ad8ca664 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 51f1c887b00d..9f6778cff592 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 969cb512beb3..906f7cdafb95 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 a25fae9e1bc8..a2f3d7b82b36 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 1158e0455392..f633592f2ef8 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 86727421ce03..6832de1dbb64 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 dfaa3d6dc91a..c59cc58f40fd 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 224898c1a3e5..26815a422ec8 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 7bebb274f6ec..803402b1f1f4 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 2bfe5fb1007b..a24963a3f34e 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 cc11e4c28e21..aff53057a954 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 f9d4bf9c3094..9718c86300c2 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 52bc50922c26..1a51b2a64a76 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 e4e4483ff949..3f522ea5682c 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 07ccb2337e75..bc6c612482b0 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 3ec172b2b656..da8082b92518 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 000000000000..183ddf446f3d
--- /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 bc8a54346580..2d001142d7a1 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 8d3b300da3bf..641786f5a914 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 20bccab8ff78..2f3adb8db9a0 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 486dafeb5a24..71efac4e99a1 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 fd1b0064046a..dd1fcca48f61 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 996bfc40ee56..fd8e1b4cebaa 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 5d25a2d74971..e3c3c5e31901 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 168b898f12bd..43e79c77acc2 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 ff93c68ff35a..a10923f7a80f 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 6432ae38ff3a..5b2713dc6fc1 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 928848e3f7a2..ac3ecc85f2d9 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 b9ffbe87b21b..32afd6b96a8b 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