Remove duplicated code from trans_intrinsics
Remove duplicated code from trans_intrinsics

Most arms of the huge match contain the same code, differing only in
small details like the name of the llvm intrinsic that is to be called.
Thus the duplicated code can be factored out into a few functions that
take some parameters to handle the differences.

Ryman/rust,zachwick/rust,servo/rust,michaelballantyne/rust-gpu,pelmers/rust,jbclements/rust,XMPPwocky/rust,stepancheg/rust-ide-rust,zachwick/rust,aturon/rust,fabricedesre/rust,seanrivera/rust,stepancheg/rust-ide-rust,barosl/rust,P1start/rust,fabricedesre/rust,untitaker/rust,rprichard/rust,victorvde/rust,P1start/rust,aturon/rust,AerialX/rust,krzysz00/rust,mdinger/rust,vhbit/rust,nwin/rust,AerialX/rust-rt-minimal,bombless/rust,ejjeong/rust,pythonesque/rust,waynenilsen/rand,miniupnp/rust,ktossell/rust,GBGamer/rust,quornian/rust,kwantam/rust,robertg/rust,barosl/rust,l0kod/rust,jbclements/rust,victorvde/rust,nham/rust,hauleth/rust,kimroen/rust,aneeshusa/rust,aepsil0n/rust,rohitjoshi/rust,mahkoh/rust,pczarn/rust,zaeleus/rust,mahkoh/rust,robertg/rust,pythonesque/rust,0x73/rust,victorvde/rust,aidancully/rust,aneeshusa/rust,AerialX/rust-rt-minimal,aepsil0n/rust,cllns/rust,AerialX/rust,rohitjoshi/rust,TheNeikos/rust,TheNeikos/rust,cllns/rust,TheNeikos/rust,pczarn/rust,mihneadb/rust,avdi/rust,P1start/rust,pelmers/rust,zaeleus/rust,bombless/rust,barosl/rust,erickt/rust,stepancheg/rust-ide-rust,zachwick/rust,kimroen/rust,vhbit/rust,pshc/rust,zubron/rust,avdi/rust,philyoon/rust,mihneadb/rust,XMPPwocky/rust,fabricedesre/rust,vhbit/rust,dwillmer/rust,avdi/rust,seanrivera/rust,GBGamer/rust,SiegeLord/rust,ruud-v-a/rust,carols10cents/rust,GBGamer/rust,XMPPwocky/rust,mitsuhiko/rust,andars/rust,nwin/rust,defuz/rust,philyoon/rust,dwillmer/rust,rprichard/rust,vhbit/rust,bombless/rust,pczarn/rust,zaeleus/rust,jbclements/rust,LeoTestard/rust,cllns/rust,erickt/rust,jashank/rust,aneeshusa/rust,mvdnes/rust,aturon/rust,jroesch/rust,ejjeong/rust,krzysz00/rust,krzysz00/rust,retep998/rand,SiegeLord/rust,richo/rust,AerialX/rust,l0kod/rust,jbclements/rust,ruud-v-a/rust,ejjeong/rust,andars/rust,miniupnp/rust,fabricedesre/rust,graydon/rust,nwin/rust,erickt/rust,hauleth/rust,dinfuehr/rust,jashank/rust,rprichard/rust,seanrivera/rust,quornian/rust,SiegeLord/rust,jashank/rust,bombless/rust,ktossell/rust,mahkoh/rust,dwillmer/rust,KokaKiwi/rust,miniupnp/rust,avdi/rust,pczarn/rust,P1start/rust,barosl/rust,servo/rust,kimroen/rust,kimroen/rust,servo/rust,mvdnes/rust,l0kod/rust,untitaker/rust,aepsil0n/rust,nwin/rust,miniupnp/rust,P1start/rust,victorvde/rust,AerialX/rust,krzysz00/rust,KokaKiwi/rust,erickt/rust,mitsuhiko/rust,bombless/rust-docs-chinese,nham/rust,SiegeLord/rust,ktossell/rust,ktossell/rust,XMPPwocky/rust,seanrivera/rust,omasanori/rust,P1start/rust,aneeshusa/rust,robertg/rust,mihneadb/rust,hauleth/rust,vhbit/rust,zubron/rust,pythonesque/rust,ejjeong/rust,TheNeikos/rust,zubron/rust,jbclements/rust,LeoTestard/rust,emk/rust,LeoTestard/rust,AerialX/rust,XMPPwocky/rust,avdi/rust,quornian/rust,servo/rust,michaelballantyne/rust-gpu,ktossell/rust,richo/rust,0x73/rust,0x73/rust,KokaKiwi/rust,hauleth/rust,Ryman/rust,stepancheg/rust-ide-rust,michaelballantyne/rust-gpu,graydon/rust,miniupnp/rust,emk/rust,graydon/rust,pshc/rust,l0kod/rust,KokaKiwi/rust,carols10cents/rust,AerialX/rust-rt-minimal,rohitjoshi/rust,huonw/rand,emk/rust,defuz/rust,zaeleus/rust,mitsuhiko/rust,jroesch/rust,l0kod/rust,cllns/rust,ejjeong/rust,philyoon/rust,mdinger/rust,gifnksm/rust,ruud-v-a/rust,aidancully/rust,mitsuhiko/rust,jroesch/rust,ebfull/rust,defuz/rust,nham/rust,aidancully/rust,jashank/rust,bluss/rand,Ryman/rust,seanrivera/rust,kwantam/rust,dwillmer/rust,kwantam/rust,0x73/rust,zachwick/rust,kwantam/rust,erickt/rust,barosl/rust,achanda/rand,jbclements/rust,untitaker/rust,erickt/rust,jroesch/rust,arthurprs/rand,mihneadb/rust,nwin/rust,miniupnp/rust,nham/rust,aidancully/rust,mihneadb/rust,barosl/rust,mitsuhiko/rust,richo/rust,philyoon/rust,graydon/rust,0x73/rust,bombless/rust,nham/rust,jashank/rust,andars/rust,vhbit/rust,dinfuehr/rust,andars/rust,aturon/rust,l0kod/rust,GBGamer/rust,kimroen/rust,aepsil0n/rust,shepmaster/rand,mdinger/rust,miniupnp/rust,fabricedesre/rust,zubron/rust,TheNeikos/rust,cllns/rust,AerialX/rust-rt-minimal,bombless/rust,servo/rust,pythonesque/rust,gifnksm/rust,reem/rust,zubron/rust,SiegeLord/rust,GBGamer/rust,robertg/rust,pshc/rust,mitsuhiko/rust,kimroen/rust,pelmers/rust,XMPPwocky/rust,defuz/rust,dwillmer/rust,jroesch/rust,pshc/rust,carols10cents/rust,mvdnes/rust,philyoon/rust,jashank/rust,mvdnes/rust,robertg/rust,pshc/rust,ebfull/rust,dinfuehr/rust,Ryman/rust,mahkoh/rust,sae-bom/rust,reem/rust,rprichard/rust,richo/rust,GBGamer/rust,0x73/rust,ruud-v-a/rust,krzysz00/rust,aturon/rust,omasanori/rust,ejjeong/rust,fabricedesre/rust,dwillmer/rust,carols10cents/rust,cllns/rust,michaelballantyne/rust-gpu,jbclements/rust,graydon/rust,rohitjoshi/rust,kwantam/rust,quornian/rust,jroesch/rust,aneeshusa/rust,Ryman/rust,aidancully/rust,dinfuehr/rust,carols10cents/rust,victorvde/rust,kimroen/rust,zaeleus/rust,andars/rust,nwin/rust,stepancheg/rust-ide-rust,sae-bom/rust,KokaKiwi/rust,nwin/rust,quornian/rust,Ryman/rust,ebfull/rust,emk/rust,dwillmer/rust,zachwick/rust,GrahamDennis/rand,michaelballantyne/rust-gpu,untitaker/rust,vhbit/rust,reem/rust,LeoTestard/rust,pythonesque/rust,SiegeLord/rust,stepancheg/rust-ide-rust,zaeleus/rust,GBGamer/rust,defuz/rust,servo/rust,emk/rust,untitaker/rust,pshc/rust,dinfuehr/rust,sae-bom/rust,GBGamer/rust,fabricedesre/rust,SiegeLord/rust,barosl/rust,gifnksm/rust,hauleth/rust,0x73/rust,zubron/rust,mihneadb/rust,nham/rust,pelmers/rust,robertg/rust,sae-bom/rust,P1start/rust,stepancheg/rust-ide-rust,seanrivera/rust,AerialX/rust-rt-minimal,AerialX/rust-rt-minimal,defuz/rust,victorvde/rust,aturon/rust,ebfull/rust,ruud-v-a/rust,erickt/rust,pshc/rust,TheNeikos/rust,gifnksm/rust,kwantam/rust,LeoTestard/rust,ebfull/rand,zubron/rust,emk/rust,mahkoh/rust,mvdnes/rust,mitsuhiko/rust,mdinger/rust,sae-bom/rust,andars/rust,aneeshusa/rust,carols10cents/rust,pythonesque/rust,hauleth/rust,LeoTestard/rust,gifnksm/rust,nham/rust,jroesch/rust,mahkoh/rust,rohitjoshi/rust,omasanori/rust,pczarn/rust,aidancully/rust,omasanori/rust,michaelballantyne/rust-gpu,jroesch/rust,jashank/rust,untitaker/rust,reem/rust,pczarn/rust,l0kod/rust,sae-bom/rust,quornian/rust,pczarn/rust,emk/rust,aepsil0n/rust,KokaKiwi/rust,nwin/rust,richo/rust,ebfull/rust,mdinger/rust,pythonesque/rust,aepsil0n/rust,LeoTestard/rust,ktossell/rust,zachwick/rust,rprichard/rust,Ryman/rust,AerialX/rust,reem/rust,bhickey/rand,quornian/rust,michaelballantyne/rust-gpu,dwillmer/rust,ebfull/rust,gifnksm/rust,philyoon/rust,krzysz00/rust,jbclements/rust,mdinger/rust,omasanori/rust,servo/rust,omasanori/rust,jashank/rust,dinfuehr/rust,graydon/rust,pshc/rust,richo/rust,ktossell/rust,avdi/rust,rprichard/rust,jbclements/rust,pelmers/rust,mvdnes/rust,vhbit/rust,aturon/rust,reem/rust,pelmers/rust,miniupnp/rust,l0kod/rust,zubron/rust,rohitjoshi/rust,ruud-v-a/rust