CUDA vector type が与えられたint4場合、定数メモリから 128 ビットのデータをロードするにはどうすればよいですか。
これはうまくいかないようです:
#include <stdio.h>
#include <cuda.h>
__constant__ int constant_mem[4];
__global__ void kernel(){
    int4 vec;
    vec = constant_mem[0];
}
int main(void){return 0;}
7 行目では、定数メモリ内の 4 つの整数値すべてを 128 ビットのベクトル型にロードしようとしています。この操作により、次のコンパイル エラーが発生します。
vectest.cu(7): error: no operator "=" matches these operands
            operand types are: int4 = int
また、次のように、キャストせずにベクター型に直接アクセスすることは可能ですか?
int data = vec[0];
PTX アセンブリの switch ステートメント:
    @%p1 bra    BB1_55;
    setp.eq.s32     %p26, %r1, 1;
    @%p26 bra   BB1_54;
    setp.eq.s32     %p27, %r1, 2;
    @%p27 bra   BB1_53;
    setp.ne.s32     %p28, %r1, 3;
    @%p28 bra   BB1_55;
    mov.u32     %r961, %r61;
    bra.uni     BB1_56;
BB1_53:
    mov.u32     %r961, %r60;
    bra.uni     BB1_56;
BB1_54:
    mov.u32     %r961, %r59;
    bra.uni     BB1_56;
BB1_55:
    mov.u32     %r961, %r58;
BB1_56: