Бабочка

Тема в разделе "WASM.A&O", создана пользователем persicum, 14 янв 2010.

  1. persicum

    persicum New Member

    Публикаций:
    0
    Регистрация:
    2 фев 2007
    Сообщения:
    947
    Murder, выручай в который раз!
    Как мне нa ммх запараллелить бабочку
    а=а+с
    b=b-d

    в регистрах лежат пары ab и cd
     
  2. J0E

    J0E New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2008
    Сообщения:
    621
    Адрес:
    Panama
    перевести в доп.код младшую половину перед сложением не пойдет?
     
  3. persicum

    persicum New Member

    Публикаций:
    0
    Регистрация:
    2 фев 2007
    Сообщения:
    947
    Если много работать с отдельными половинками, то квантовая запутанность регистров ммх пропадет а вместе с ним и смысл в ммх, тк ускорения не будет. Нужно усе параллельно делать.
     
  4. persicum

    persicum New Member

    Публикаций:
    0
    Регистрация:
    2 фев 2007
    Сообщения:
    947
    Сколько на это уйдет операций по маскированию и тд?
     
  5. J0E

    J0E New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2008
    Сообщения:
    621
    Адрес:
    Panama
    Дополнять до единицы, это один PXOR c константой 0x0000ffff. Дополнение до двух потребует еще PADDD. Можно ли вынести +1 куда-нибудь за скобочки и что такое бабочка я не знаю :)
     
  6. persicum

    persicum New Member

    Публикаций:
    0
    Регистрация:
    2 фев 2007
    Сообщения:
    947
    Бабочка это элементарный вычислительный акт в преобразованиях фурье уолша хаара и тд. Для ммх можно еще так
    mov eax, mmx0
    neg eax
    mov mmx0

    однако придется возится с масками чтобы можно было потом перенести на SSE2
    интересно что murder скажет, он такой мастак по sims
     
  7. persicum

    persicum New Member

    Публикаций:
    0
    Регистрация:
    2 фев 2007
    Сообщения:
    947
    Эврика! Как вариант можно сделать код для двух бабочек, а потом обменять половинки.
     
  8. persicum

    persicum New Member

    Публикаций:
    0
    Регистрация:
    2 фев 2007
    Сообщения:
    947
    Оказалось, что бабочки всегда парами ходят, что соответствует умножению на +i и -i, поэтому маскировать ничего не нужно, нужно одно парное сложение и одно парное вычитание для двойной бабочки.