вопрос программистам

Nov 25, 2010 22:20

итак, товарищи программисты, кто-то вплотную с SSE/SSE2 работал?
а из gcc?

задача - заставить gcc генерировать с -O3 -msse2 тот ассемблерный код, который я хочу, но без написания собственно ассемблерного кода :) в части случаев все отлично получается, а вот в части я не понимаю, ка кего заставить генеировать то, что мне надо.

it

Leave a comment

Comments 9

hiero November 25 2010, 18:52:09 UTC
А он и генерит, когда нужно, я сам видел :-) А если не генерит, то можно писать при помощи compiler intristics, вроде макроса, который раскрывается в ассемблерную команду или несколько команд.

Reply

nm_work November 25 2010, 19:19:25 UTC
ну тогда тебе вопрос :)

упрощенно -- есть

uint16_t a,b,c;
c = ((uint32_t)a*b) >> 16;

как записать это в векторной форме - я знаю.

собственно вопрос -- а как заставить компилятор сгенерировать pmulhw ?

другой вопрос - это как сделать операцию <<,>> на векторе?? в документации написано, что оно это умеет (vector << int), но компилятор на такую конструкцию ругается ;)

то, что можно писать intristics - я знаю, но я не хочу писать фактически cpu-зависимый код :)

я хочу C-шный код, который на intel/amd платформе будет кторываться в то, что мне нужно :) при включенной оптимизации :)

Reply

hiero November 25 2010, 19:33:34 UTC
Нет, этого я никогда не делал, не знаю :-) заинтересовало, может, поиграюсь немного попозже, дам знать, если будут результаты :-)

Reply

nm_work November 25 2010, 20:50:00 UTC
простейшие вещи - +,* - он неплохо сам делает. сдвиг тоже.

ааа. сдвиг он у меня сделал в простом примере и отказывается в сложном - пойму/исправлю. скорее всего кастинг где-то хромает :)

но вот более сложные команды - совершенно непонятно как заставлять генерировать ;)

Reply


hiero November 25 2010, 18:57:43 UTC
Да, еще возьми последнюю версию, они обычно с каждой версией компилятору ума добавляют..

Reply


tron_whoami November 25 2010, 20:02:03 UTC
принципиально чтоб gcc?
потому что forte оптимизирует реально. может и это умеет.

Reply

nm_work November 25 2010, 20:50:25 UTC
ну... да, в общем-то :)

Reply


Leave a comment

Up