1dd6e106621992978e6eb928a502379f934f2a8e9David Tweed// REQUIRES: x86-64-registered-target 21f432eec1a4151c7a9bcb5e98ae32f36486ef4afDaniel Dunbar// RUN: %clang_cc1 -triple x86_64-unknown-unknown -O1 -S -o - %s | FileCheck %s 33883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher 43883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christophertypedef long long int64_t; 53883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christophertypedef unsigned char uint8_t; 63883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christophertypedef int64_t x86_reg; 73883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher 83883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christophervoid avg_pixels8_mmx2(uint8_t *block, const uint8_t *pixels, int line_size, int h) 93883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher{ 103883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher __asm__ volatile("# %0 %1 %2 %3" 113883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher :"+g"(h), "+S"(pixels), "+D"(block) 123883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher :"r" ((x86_reg)line_size) 133883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher :"%""rax", "memory"); 143883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher// CHECK: # %ecx %rsi %rdi %rdx 153883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher } 16