Farklı yönergelere karşılık geldiklerinden farklı iç öğeler vardır.
Farklı yükleme yönergeleri vardır; çünkü Intel, tek duyarlıklı vektörler veya tamsayı vektörleri olandan farklı bir fiziksel kayıt dosyası tarafından çift duyarlıklı vektörlerin desteklendiği bir işlemci tasarlama özgürlüğünü korumak veya farklı yürütme birimleri kullanmak ister. Bunlardan herhangi birinin uygun kayıt dosyasına veya iletme ağına yüklenmesi gerektiğini belirtmenin bir yolu yoksa, ek gecikme ekleyebilir.
Bunu düşünmenin bir yolu, farklı yönergelerin "aynı şeyi" gerçekleştirmesidir, ancak ek olarak, yüklenmekte olan verilerin gelecekteki yönergelere nasıl kullanılacağını anlatmak için işlemciye bir ipucu sağlar. Bu, işlemcinin, verilerin olabildiğince verimli bir şekilde kullanılacağından emin olmasını sağlayabilir veya işlemci tarafından göz ardı edilebilir.
Bunun yalnızca bir varsayım olmadığını unutmayın. Bir kayan nokta işlemi tarafından tüketilen veriyi yüklemek için bir tamsayı vektör yükünün (MOVDQA) kullanıldığı kayan nokta işlemi için veri elde etmek için kayan noktalı bir yük kullanmaktan daha fazla zaman gerektiren işlemciler vardır (ve tersi). . Konuyla ilgili daha fazla ayrıntı için Intel Optimizasyon Kılavuzu veya Agner Fog'un notlarına bakın. Gelecekte bu tür performans tehlikeleri riskini önlemek için verileri nasıl kullanacağınız ile eşleşen yükü kullanın.
'_mm_load_pd' için dönüş türü' __m128d' değil, '__m128' değil –
@ PaulR: Bu, tüm dünyadaki hissi verir. Bunu hiç fark etmedim. İşaret ettiğin için teşekkürler. :) – Mehrdad