[PATCH] Use vmovss to handle inserting an element into index 0 of a v8f32 vector of zeros.

Sanjay Patel spatel at rotateright.com
Tue Mar 3 08:59:41 PST 2015


Can we move the mask check into lower256BitVectorShuffle() ?

Otherwise, we'll need to duplicate the logic to catch the following cases:

  define <4 x i64> @mov_v4i64(i64* %ptr) {
    %val = load i64, i64* %ptr
    %i0 = insertelement <4 x i64> zeroinitializer, i64 %val, i32 0
    ret <4 x i64> %i0
  }
  
  define <8 x i32> @mov_v8i32(i32* %ptr) {
    %val = load i32, i32* %ptr
    %i0 = insertelement <8 x i32> zeroinitializer, i32 %val, i32 0
    ret <8 x i32> %i0
  }
  
  define <16 x i16> @mov_v16i16(i16* %ptr) {
    %val = load i16, i16* %ptr
    %i0 = insertelement <16 x i16> zeroinitializer, i16 %val, i32 0
    ret <16 x i16> %i0
  }
  
  define <32 x i8> @mov_v32i8(i8* %ptr) {
    %val = load i8, i8* %ptr
    %i0 = insertelement <32 x i8> zeroinitializer, i8 %val, i32 0
    ret <32 x i8> %i0
  }


http://reviews.llvm.org/D7898

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/






More information about the llvm-commits mailing list