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