13883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher// RUN: %clang_cc1 -emit-llvm -o - %s | llc -mtriple=x86_64-apple-darwin | FileCheck %s
23883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher// XFAIL: *
33883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher// XTARGET: x86,i386,i686
43883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher
53883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christophertypedef long long int64_t;
63883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christophertypedef unsigned char uint8_t;
73883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christophertypedef int64_t x86_reg;
83883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher
93883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christophervoid avg_pixels8_mmx2(uint8_t *block, const uint8_t *pixels, int line_size, int h)
103883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher{
113883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher	__asm__ volatile("# %0 %1 %2 %3"
123883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher     :"+g"(h), "+S"(pixels), "+D"(block)
133883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher     :"r" ((x86_reg)line_size)
143883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher     :"%""rax", "memory");
153883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher// CHECK: # %ecx %rsi %rdi %rdx
163883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher }
17