Бабочка

Discussion in 'WASM.A&O' started by persicum, Jan 14, 2010.

  1. persicum

    persicum New Member

    Blog Posts:
    0
    Murder, выручай в который раз!
    Как мне нa ммх запараллелить бабочку
    а=а+с
    b=b-d

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

    J0E New Member

    Blog Posts:
    0
    перевести в доп.код младшую половину перед сложением не пойдет?
     
  3. persicum

    persicum New Member

    Blog Posts:
    0
    Если много работать с отдельными половинками, то квантовая запутанность регистров ммх пропадет а вместе с ним и смысл в ммх, тк ускорения не будет. Нужно усе параллельно делать.
     
  4. persicum

    persicum New Member

    Blog Posts:
    0
    Сколько на это уйдет операций по маскированию и тд?
     
  5. J0E

    J0E New Member

    Blog Posts:
    0
    Дополнять до единицы, это один PXOR c константой 0x0000ffff. Дополнение до двух потребует еще PADDD. Можно ли вынести +1 куда-нибудь за скобочки и что такое бабочка я не знаю :)
     
  6. persicum

    persicum New Member

    Blog Posts:
    0
    Бабочка это элементарный вычислительный акт в преобразованиях фурье уолша хаара и тд. Для ммх можно еще так
    mov eax, mmx0
    neg eax
    mov mmx0

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

    persicum New Member

    Blog Posts:
    0
    Эврика! Как вариант можно сделать код для двух бабочек, а потом обменять половинки.
     
  8. persicum

    persicum New Member

    Blog Posts:
    0
    Оказалось, что бабочки всегда парами ходят, что соответствует умножению на +i и -i, поэтому маскировать ничего не нужно, нужно одно парное сложение и одно парное вычитание для двойной бабочки.