}
case X86::BI__builtin_ia32_shufpd: {
unsigned i = cast<ConstantInt>(Ops[2])->getZExtValue();
- return EmitShuffleVector(Ops[0], Ops[1], i & 1, (i & 2) + 2, "shufpd");
+ return EmitShuffleVector(Ops[0], Ops[1], i & 1,
+ ((i & 2) >> 1)+2, "shufpd");
}
case X86::BI__builtin_ia32_punpcklbw128:
return EmitShuffleVector(Ops[0], Ops[1], 0, 16, 1, 17, 2, 18, 3, 19,
// RUN: grep "st" %t1 &&
// RUN: grep "st(1)" %t1
-void f() {
+void test1() {
int d1, d2;
asm ("" : "=a" (d1), "=b" (d2) :
"c" (0), "d" (0), "S" (0), "D" (0), "t" (0), "u" (0));
}
+
+
+// rdar://6803924
+typedef double T __attribute__ ((__vector_size__ (16)));
+T test2(T va) {
+ return __builtin_ia32_shufpd(va, va, 3);
+}
+