@@ -1661,15 +1661,15 @@ define <4 x float> @insertps_from_broadcast_multiple_use(<4 x float> %a, <4 x fl
1661
1661
; X86-AVX1-NEXT: movl {{[0-9]+}}(%esp), %eax ## encoding: [0x8b,0x44,0x24,0x08]
1662
1662
; X86-AVX1-NEXT: movl {{[0-9]+}}(%esp), %ecx ## encoding: [0x8b,0x4c,0x24,0x04]
1663
1663
; X86-AVX1-NEXT: vbroadcastss (%ecx,%eax,4), %xmm4 ## encoding: [0xc4,0xe2,0x79,0x18,0x24,0x81]
1664
- ; X86-AVX1-NEXT: vinsertps $48 , %xmm4, %xmm0, %xmm0 ## encoding: [0xc4,0xe3,0x79,0x21 ,0xc4,0x30 ]
1665
- ; X86-AVX1-NEXT: ## xmm0 = xmm0[0,1,2],xmm4[0 ]
1666
- ; X86-AVX1-NEXT: vinsertps $48 , %xmm4, %xmm1, %xmm1 ## encoding: [0xc4,0xe3,0x71,0x21 ,0xcc,0x30 ]
1667
- ; X86-AVX1-NEXT: ## xmm1 = xmm1[0,1,2],xmm4[0 ]
1664
+ ; X86-AVX1-NEXT: vblendps $8 , %xmm4, %xmm0, %xmm0 ## encoding: [0xc4,0xe3,0x79,0x0c ,0xc4,0x08 ]
1665
+ ; X86-AVX1-NEXT: ## xmm0 = xmm0[0,1,2],xmm4[3 ]
1666
+ ; X86-AVX1-NEXT: vblendps $8 , %xmm4, %xmm1, %xmm1 ## encoding: [0xc4,0xe3,0x71,0x0c ,0xcc,0x08 ]
1667
+ ; X86-AVX1-NEXT: ## xmm1 = xmm1[0,1,2],xmm4[3 ]
1668
1668
; X86-AVX1-NEXT: vaddps %xmm1, %xmm0, %xmm0 ## encoding: [0xc5,0xf8,0x58,0xc1]
1669
- ; X86-AVX1-NEXT: vinsertps $48 , %xmm4, %xmm2, %xmm1 ## encoding: [0xc4,0xe3,0x69,0x21 ,0xcc,0x30 ]
1670
- ; X86-AVX1-NEXT: ## xmm1 = xmm2[0,1,2],xmm4[0 ]
1671
- ; X86-AVX1-NEXT: vinsertps $48 , %xmm4, %xmm3, %xmm2 ## encoding: [0xc4,0xe3,0x61,0x21 ,0xd4,0x30 ]
1672
- ; X86-AVX1-NEXT: ## xmm2 = xmm3[0,1,2],xmm4[0 ]
1669
+ ; X86-AVX1-NEXT: vblendps $8 , %xmm4, %xmm2, %xmm1 ## encoding: [0xc4,0xe3,0x69,0x0c ,0xcc,0x08 ]
1670
+ ; X86-AVX1-NEXT: ## xmm1 = xmm2[0,1,2],xmm4[3 ]
1671
+ ; X86-AVX1-NEXT: vblendps $8 , %xmm4, %xmm3, %xmm2 ## encoding: [0xc4,0xe3,0x61,0x0c ,0xd4,0x08 ]
1672
+ ; X86-AVX1-NEXT: ## xmm2 = xmm3[0,1,2],xmm4[3 ]
1673
1673
; X86-AVX1-NEXT: vaddps %xmm2, %xmm1, %xmm1 ## encoding: [0xc5,0xf0,0x58,0xca]
1674
1674
; X86-AVX1-NEXT: vaddps %xmm1, %xmm0, %xmm0 ## encoding: [0xc5,0xf8,0x58,0xc1]
1675
1675
; X86-AVX1-NEXT: retl ## encoding: [0xc3]
@@ -1679,16 +1679,16 @@ define <4 x float> @insertps_from_broadcast_multiple_use(<4 x float> %a, <4 x fl
1679
1679
; X86-AVX512-NEXT: movl {{[0-9]+}}(%esp), %eax ## encoding: [0x8b,0x44,0x24,0x08]
1680
1680
; X86-AVX512-NEXT: movl {{[0-9]+}}(%esp), %ecx ## encoding: [0x8b,0x4c,0x24,0x04]
1681
1681
; X86-AVX512-NEXT: vbroadcastss (%ecx,%eax,4), %xmm4 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x18,0x24,0x81]
1682
- ; X86-AVX512-NEXT: vinsertps $48, %xmm4, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe3,0x79,0x21,0xc4,0x30]
1683
- ; X86-AVX512-NEXT: ## xmm0 = xmm0[0,1,2],xmm4[0]
1684
- ; X86-AVX512-NEXT: vinsertps $48, %xmm4, %xmm1, %xmm1 ## EVEX TO VEX Compression encoding: [0xc4,0xe3,0x71,0x21,0xcc,0x30]
1685
- ; X86-AVX512-NEXT: ## xmm1 = xmm1[0,1,2],xmm4[0]
1682
+ ; X86-AVX512-NEXT: vblendps $8, %xmm4, %xmm0, %xmm0 ## encoding: [0xc4,0xe3,0x79,0x0c,0xc4,0x08]
1683
+ ; X86-AVX512-NEXT: ## xmm0 = xmm0[0,1,2],xmm4[3]
1684
+ ; X86-AVX512-NEXT: vblendps $8, %xmm4, %xmm1, %xmm1 ## encoding: [0xc4,0xe3,0x71,0x0c,0xcc,0x08]
1685
+ ; X86-AVX512-NEXT: ## xmm1 = xmm1[0,1,2],xmm4[3]
1686
+ ; X86-AVX512-NEXT: vblendps $8, %xmm4, %xmm2, %xmm2 ## encoding: [0xc4,0xe3,0x69,0x0c,0xd4,0x08]
1687
+ ; X86-AVX512-NEXT: ## xmm2 = xmm2[0,1,2],xmm4[3]
1688
+ ; X86-AVX512-NEXT: vblendps $8, %xmm4, %xmm3, %xmm3 ## encoding: [0xc4,0xe3,0x61,0x0c,0xdc,0x08]
1689
+ ; X86-AVX512-NEXT: ## xmm3 = xmm3[0,1,2],xmm4[3]
1686
1690
; X86-AVX512-NEXT: vaddps %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x58,0xc1]
1687
- ; X86-AVX512-NEXT: vinsertps $48, %xmm4, %xmm2, %xmm1 ## EVEX TO VEX Compression encoding: [0xc4,0xe3,0x69,0x21,0xcc,0x30]
1688
- ; X86-AVX512-NEXT: ## xmm1 = xmm2[0,1,2],xmm4[0]
1689
- ; X86-AVX512-NEXT: vinsertps $48, %xmm4, %xmm3, %xmm2 ## EVEX TO VEX Compression encoding: [0xc4,0xe3,0x61,0x21,0xd4,0x30]
1690
- ; X86-AVX512-NEXT: ## xmm2 = xmm3[0,1,2],xmm4[0]
1691
- ; X86-AVX512-NEXT: vaddps %xmm2, %xmm1, %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf0,0x58,0xca]
1691
+ ; X86-AVX512-NEXT: vaddps %xmm3, %xmm2, %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xe8,0x58,0xcb]
1692
1692
; X86-AVX512-NEXT: vaddps %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x58,0xc1]
1693
1693
; X86-AVX512-NEXT: retl ## encoding: [0xc3]
1694
1694
;
@@ -1712,32 +1712,32 @@ define <4 x float> @insertps_from_broadcast_multiple_use(<4 x float> %a, <4 x fl
1712
1712
; X64-AVX1-LABEL: insertps_from_broadcast_multiple_use:
1713
1713
; X64-AVX1: ## %bb.0:
1714
1714
; X64-AVX1-NEXT: vbroadcastss (%rdi,%rsi,4), %xmm4 ## encoding: [0xc4,0xe2,0x79,0x18,0x24,0xb7]
1715
- ; X64-AVX1-NEXT: vinsertps $48 , %xmm4, %xmm0, %xmm0 ## encoding: [0xc4,0xe3,0x79,0x21 ,0xc4,0x30 ]
1716
- ; X64-AVX1-NEXT: ## xmm0 = xmm0[0,1,2],xmm4[0 ]
1717
- ; X64-AVX1-NEXT: vinsertps $48 , %xmm4, %xmm1, %xmm1 ## encoding: [0xc4,0xe3,0x71,0x21 ,0xcc,0x30 ]
1718
- ; X64-AVX1-NEXT: ## xmm1 = xmm1[0,1,2],xmm4[0 ]
1715
+ ; X64-AVX1-NEXT: vblendps $8 , %xmm4, %xmm0, %xmm0 ## encoding: [0xc4,0xe3,0x79,0x0c ,0xc4,0x08 ]
1716
+ ; X64-AVX1-NEXT: ## xmm0 = xmm0[0,1,2],xmm4[3 ]
1717
+ ; X64-AVX1-NEXT: vblendps $8 , %xmm4, %xmm1, %xmm1 ## encoding: [0xc4,0xe3,0x71,0x0c ,0xcc,0x08 ]
1718
+ ; X64-AVX1-NEXT: ## xmm1 = xmm1[0,1,2],xmm4[3 ]
1719
1719
; X64-AVX1-NEXT: vaddps %xmm1, %xmm0, %xmm0 ## encoding: [0xc5,0xf8,0x58,0xc1]
1720
- ; X64-AVX1-NEXT: vinsertps $48 , %xmm4, %xmm2, %xmm1 ## encoding: [0xc4,0xe3,0x69,0x21 ,0xcc,0x30 ]
1721
- ; X64-AVX1-NEXT: ## xmm1 = xmm2[0,1,2],xmm4[0 ]
1722
- ; X64-AVX1-NEXT: vinsertps $48 , %xmm4, %xmm3, %xmm2 ## encoding: [0xc4,0xe3,0x61,0x21 ,0xd4,0x30 ]
1723
- ; X64-AVX1-NEXT: ## xmm2 = xmm3[0,1,2],xmm4[0 ]
1720
+ ; X64-AVX1-NEXT: vblendps $8 , %xmm4, %xmm2, %xmm1 ## encoding: [0xc4,0xe3,0x69,0x0c ,0xcc,0x08 ]
1721
+ ; X64-AVX1-NEXT: ## xmm1 = xmm2[0,1,2],xmm4[3 ]
1722
+ ; X64-AVX1-NEXT: vblendps $8 , %xmm4, %xmm3, %xmm2 ## encoding: [0xc4,0xe3,0x61,0x0c ,0xd4,0x08 ]
1723
+ ; X64-AVX1-NEXT: ## xmm2 = xmm3[0,1,2],xmm4[3 ]
1724
1724
; X64-AVX1-NEXT: vaddps %xmm2, %xmm1, %xmm1 ## encoding: [0xc5,0xf0,0x58,0xca]
1725
1725
; X64-AVX1-NEXT: vaddps %xmm1, %xmm0, %xmm0 ## encoding: [0xc5,0xf8,0x58,0xc1]
1726
1726
; X64-AVX1-NEXT: retq ## encoding: [0xc3]
1727
1727
;
1728
1728
; X64-AVX512-LABEL: insertps_from_broadcast_multiple_use:
1729
1729
; X64-AVX512: ## %bb.0:
1730
1730
; X64-AVX512-NEXT: vbroadcastss (%rdi,%rsi,4), %xmm4 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x18,0x24,0xb7]
1731
- ; X64-AVX512-NEXT: vinsertps $48, %xmm4, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe3,0x79,0x21,0xc4,0x30]
1732
- ; X64-AVX512-NEXT: ## xmm0 = xmm0[0,1,2],xmm4[0]
1733
- ; X64-AVX512-NEXT: vinsertps $48, %xmm4, %xmm1, %xmm1 ## EVEX TO VEX Compression encoding: [0xc4,0xe3,0x71,0x21,0xcc,0x30]
1734
- ; X64-AVX512-NEXT: ## xmm1 = xmm1[0,1,2],xmm4[0]
1731
+ ; X64-AVX512-NEXT: vblendps $8, %xmm4, %xmm0, %xmm0 ## encoding: [0xc4,0xe3,0x79,0x0c,0xc4,0x08]
1732
+ ; X64-AVX512-NEXT: ## xmm0 = xmm0[0,1,2],xmm4[3]
1733
+ ; X64-AVX512-NEXT: vblendps $8, %xmm4, %xmm1, %xmm1 ## encoding: [0xc4,0xe3,0x71,0x0c,0xcc,0x08]
1734
+ ; X64-AVX512-NEXT: ## xmm1 = xmm1[0,1,2],xmm4[3]
1735
+ ; X64-AVX512-NEXT: vblendps $8, %xmm4, %xmm2, %xmm2 ## encoding: [0xc4,0xe3,0x69,0x0c,0xd4,0x08]
1736
+ ; X64-AVX512-NEXT: ## xmm2 = xmm2[0,1,2],xmm4[3]
1737
+ ; X64-AVX512-NEXT: vblendps $8, %xmm4, %xmm3, %xmm3 ## encoding: [0xc4,0xe3,0x61,0x0c,0xdc,0x08]
1738
+ ; X64-AVX512-NEXT: ## xmm3 = xmm3[0,1,2],xmm4[3]
1735
1739
; X64-AVX512-NEXT: vaddps %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x58,0xc1]
1736
- ; X64-AVX512-NEXT: vinsertps $48, %xmm4, %xmm2, %xmm1 ## EVEX TO VEX Compression encoding: [0xc4,0xe3,0x69,0x21,0xcc,0x30]
1737
- ; X64-AVX512-NEXT: ## xmm1 = xmm2[0,1,2],xmm4[0]
1738
- ; X64-AVX512-NEXT: vinsertps $48, %xmm4, %xmm3, %xmm2 ## EVEX TO VEX Compression encoding: [0xc4,0xe3,0x61,0x21,0xd4,0x30]
1739
- ; X64-AVX512-NEXT: ## xmm2 = xmm3[0,1,2],xmm4[0]
1740
- ; X64-AVX512-NEXT: vaddps %xmm2, %xmm1, %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf0,0x58,0xca]
1740
+ ; X64-AVX512-NEXT: vaddps %xmm3, %xmm2, %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xe8,0x58,0xcb]
1741
1741
; X64-AVX512-NEXT: vaddps %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x58,0xc1]
1742
1742
; X64-AVX512-NEXT: retq ## encoding: [0xc3]
1743
1743
%1 = getelementptr inbounds float , float * %fb , i64 %index
0 commit comments