Translate SIMD construction as `insertelement`s and a single store.
Translate SIMD construction as `insertelement`s and a single store.

This almost completely avoids GEPi's and pointer manipulation,
postponing it until the end with one big write of the whole vector. This
leads to a small speed-up in compilation, and makes it easier for LLVM
to work with the values, e.g. with `--opt-level=0`,

    pub fn foo() -> f32x4 {
        f32x4(0.,0.,0.,0.)
    }

was previously compiled to

    define <4 x float> @_ZN3foo20h74913e8b13d89666eaaE() unnamed_addr #0 {
    entry-block:
      %sret_slot = alloca <4 x float>
      %0 = getelementptr inbounds <4 x float>* %sret_slot, i32 0, i32 0
      store float 0.000000e+00, float* %0
      %1 = getelementptr inbounds <4 x float>* %sret_slot, i32 0, i32 1
      store float 0.000000e+00, float* %1
      %2 = getelementptr inbounds <4 x float>* %sret_slot, i32 0, i32 2
      store float 0.000000e+00, float* %2
      %3 = getelementptr inbounds <4 x float>* %sret_slot, i32 0, i32 3
      store float 0.000000e+00, float* %3
      %4 = load <4 x float>* %sret_slot
      ret <4 x float> %4
    }

but now becomes

    define <4 x float> @_ZN3foo20h74913e8b13d89666eaaE() unnamed_addr #0 {
    entry-block:
      ret <4 x float> zeroinitializer
    }

dwillmer/rust,l0kod/rust,ktossell/rust,zubron/rust,pelmers/rust,krzysz00/rust,l0kod/rust,zaeleus/rust,GBGamer/rust,ktossell/rust,ebfull/rust,hauleth/rust,victorvde/rust,reem/rust,reem/rust,AerialX/rust-rt-minimal,ebfull/rust,TheNeikos/rust,aidancully/rust,ejjeong/rust,dwillmer/rust,bombless/rust-docs-chinese,0x73/rust,mdinger/rust,ruud-v-a/rust,philyoon/rust,mahkoh/rust,aepsil0n/rust,ejjeong/rust,TheNeikos/rust,pshc/rust,nwin/rust,jashank/rust,XMPPwocky/rust,richo/rust,bombless/rust,kwantam/rust,defuz/rust,AerialX/rust-rt-minimal,nwin/rust,aidancully/rust,pelmers/rust,zachwick/rust,defuz/rust,defuz/rust,ruud-v-a/rust,aneeshusa/rust,kwantam/rust,pelmers/rust,mihneadb/rust,XMPPwocky/rust,richo/rust,carols10cents/rust,gifnksm/rust,dinfuehr/rust,untitaker/rust,andars/rust,TheNeikos/rust,miniupnp/rust,nwin/rust,sae-bom/rust,reem/rust,ebfull/rust,pelmers/rust,victorvde/rust,kimroen/rust,rohitjoshi/rust,sae-bom/rust,l0kod/rust,KokaKiwi/rust,robertg/rust,jashank/rust,nwin/rust,rohitjoshi/rust,avdi/rust,jashank/rust,dwillmer/rust,avdi/rust,defuz/rust,mihneadb/rust,emk/rust,bombless/rust,kwantam/rust,gifnksm/rust,aepsil0n/rust,nwin/rust,mdinger/rust,pshc/rust,ktossell/rust,rohitjoshi/rust,bombless/rust,vhbit/rust,kimroen/rust,vhbit/rust,KokaKiwi/rust,jashank/rust,ktossell/rust,jashank/rust,rprichard/rust,quornian/rust,reem/rust,ruud-v-a/rust,aidancully/rust,hauleth/rust,omasanori/rust,l0kod/rust,barosl/rust,seanrivera/rust,pshc/rust,miniupnp/rust,quornian/rust,zachwick/rust,graydon/rust,ejjeong/rust,emk/rust,cllns/rust,seanrivera/rust,ejjeong/rust,quornian/rust,cllns/rust,barosl/rust,cllns/rust,avdi/rust,zubron/rust,mvdnes/rust,AerialX/rust,pshc/rust,aidancully/rust,victorvde/rust,graydon/rust,aepsil0n/rust,aneeshusa/rust,krzysz00/rust,philyoon/rust,vhbit/rust,XMPPwocky/rust,mahkoh/rust,kimroen/rust,carols10cents/rust,ruud-v-a/rust,zaeleus/rust,aneeshusa/rust,ruud-v-a/rust,kimroen/rust,cllns/rust,richo/rust,richo/rust,pshc/rust,GBGamer/rust,0x73/rust,jashank/rust,mvdnes/rust,victorvde/rust,0x73/rust,dinfuehr/rust,mvdnes/rust,zubron/rust,mvdnes/rust,carols10cents/rust,mihneadb/rust,TheNeikos/rust,miniupnp/rust,zaeleus/rust,jroesch/rust,zubron/rust,aneeshusa/rust,GBGamer/rust,krzysz00/rust,GBGamer/rust,defuz/rust,robertg/rust,pshc/rust,dinfuehr/rust,andars/rust,ebfull/rust,0x73/rust,ruud-v-a/rust,carols10cents/rust,quornian/rust,seanrivera/rust,avdi/rust,aidancully/rust,jashank/rust,untitaker/rust,untitaker/rust,graydon/rust,zubron/rust,AerialX/rust,ebfull/rust,rprichard/rust,GBGamer/rust,kimroen/rust,barosl/rust,gifnksm/rust,aepsil0n/rust,vhbit/rust,pelmers/rust,mvdnes/rust,aneeshusa/rust,XMPPwocky/rust,l0kod/rust,GBGamer/rust,dinfuehr/rust,gifnksm/rust,quornian/rust,AerialX/rust,nwin/rust,quornian/rust,avdi/rust,rohitjoshi/rust,omasanori/rust,sae-bom/rust,bombless/rust,reem/rust,miniupnp/rust,dwillmer/rust,graydon/rust,hauleth/rust,miniupnp/rust,sae-bom/rust,mihneadb/rust,mahkoh/rust,barosl/rust,KokaKiwi/rust,pshc/rust,barosl/rust,barosl/rust,aneeshusa/rust,andars/rust,dinfuehr/rust,GBGamer/rust,gifnksm/rust,seanrivera/rust,rprichard/rust,jroesch/rust,dwillmer/rust,graydon/rust,0x73/rust,robertg/rust,dwillmer/rust,andars/rust,ejjeong/rust,graydon/rust,nwin/rust,pshc/rust,untitaker/rust,dwillmer/rust,omasanori/rust,zaeleus/rust,seanrivera/rust,jroesch/rust,ejjeong/rust,philyoon/rust,AerialX/rust,zubron/rust,reem/rust,philyoon/rust,vhbit/rust,zubron/rust,zachwick/rust,zachwick/rust,zubron/rust,ktossell/rust,omasanori/rust,mihneadb/rust,bombless/rust,0x73/rust,jroesch/rust,kimroen/rust,victorvde/rust,jroesch/rust,zachwick/rust,KokaKiwi/rust,seanrivera/rust,XMPPwocky/rust,zaeleus/rust,mdinger/rust,KokaKiwi/rust,hauleth/rust,l0kod/rust,nwin/rust,krzysz00/rust,ebfull/rust,robertg/rust,philyoon/rust,gifnksm/rust,quornian/rust,aepsil0n/rust,untitaker/rust,mahkoh/rust,dwillmer/rust,emk/rust,AerialX/rust-rt-minimal,GBGamer/rust,aepsil0n/rust,TheNeikos/rust,emk/rust,ktossell/rust,sae-bom/rust,rohitjoshi/rust,carols10cents/rust,kwantam/rust,barosl/rust,l0kod/rust,dinfuehr/rust,emk/rust,defuz/rust,miniupnp/rust,carols10cents/rust,rprichard/rust,jroesch/rust,avdi/rust,mahkoh/rust,0x73/rust,hauleth/rust,kimroen/rust,jroesch/rust,KokaKiwi/rust,rprichard/rust,TheNeikos/rust,ktossell/rust,l0kod/rust,kwantam/rust,vhbit/rust,mihneadb/rust,AerialX/rust,hauleth/rust,emk/rust,robertg/rust,robertg/rust,vhbit/rust,sae-bom/rust,rohitjoshi/rust,mahkoh/rust,kwantam/rust,AerialX/rust-rt-minimal,krzysz00/rust,andars/rust,aidancully/rust,andars/rust,emk/rust,victorvde/rust,AerialX/rust-rt-minimal,vhbit/rust,cllns/rust,AerialX/rust-rt-minimal,zaeleus/rust,richo/rust,omasanori/rust,krzysz00/rust,mvdnes/rust,mdinger/rust,untitaker/rust,richo/rust,bombless/rust,jroesch/rust,rprichard/rust,XMPPwocky/rust,miniupnp/rust,mdinger/rust,pelmers/rust,miniupnp/rust,omasanori/rust,jashank/rust,cllns/rust,AerialX/rust,mdinger/rust,zachwick/rust,philyoon/rust