[haskell-llvm] Examples that fail on LLVM-2.8

Henning Thielemann lemming at henning-thielemann.de
Sun Oct 10 10:54:07 EDT 2010


Some examples do no longer work with LLVM-2.8. E.g. there seem to be
problems with Vector instructions:


llvm/examples> Vector.exe
LLVM ERROR: Cannot yet select: 0x8a284f8: f32 = add 0x8a27c78, 0x8a2bed0
[ORD=2] [ID=38]
  0x8a27c78: f32,ch = CopyFromReg 0x8a1180c, 0x8a28030 [ORD=2] [ID=22]
    0x8a1180c: ch = EntryToken [ORD=2] [ID=0]
    0x8a28030: f32 = Register %reg16386 [ORD=2] [ID=1]
  0x8a2bed0: f32,ch = load 0x8a1180c, 0x8a27838,
0x8a2bdc0<LD4[ConstantPool]> [ID=33]
    0x8a1180c: ch = EntryToken [ORD=2] [ID=0]
    0x8a27838: i32 = X86ISD::Wrapper 0x8a2c5b8 [ID=28]
      0x8a2c5b8: i32 = TargetConstantPool<float 1.000000e+00> 0 [ID=21]
    0x8a2bdc0: i32 = undef [ID=16]



llvm/examples> DotProd.exe
LLVM ERROR: Cannot yet select: 0x8a35be0: f32 = add 0x8a2ffd0, 0x8a35718
[ID=43]
  0x8a2ffd0: f32 = extract_vector_elt 0x8a357a0, 0x8a30520 [ID=29]
    0x8a357a0: v4f32 = vector_shuffle 0x8a30740, 0x8a309e8<3,u,u,u> [ID=17]
      0x8a30740: v4f32,ch = CopyFromReg 0x8a120d4, 0x8a301f0 [ORD=9] [ID=12]
        0x8a120d4: ch = EntryToken [ORD=6] [ID=0]
        0x8a301f0: v4f32 = Register %reg16390 [ORD=9] [ID=4]
      0x8a309e8: v4f32 = undef [ID=8]
    0x8a30520: i32 = Constant<0> [ID=7]
  0x8a35718: f32 = mul 0x8a35f98, 0x8a362c8 [ID=39]
    0x8a35f98: f32 = extract_vector_elt 0x8a35f10, 0x8a30520 [ID=32]
      0x8a35f10: v4f32 = vector_shuffle 0x8a30960, 0x8a309e8<3,u,u,u>
[ID=21]
        0x8a30960: v4f32,ch = load 0x8a120d4, 0x8a30300,
0x8a30388<LD16[%lsr.iv1]> [ORD=6] [ID=13]
          0x8a120d4: ch = EntryToken [ORD=6] [ID=0]
          0x8a30300: i32,ch = CopyFromReg 0x8a120d4, 0x8a306b8 [ORD=6]
[ID=10]
            0x8a120d4: ch = EntryToken [ORD=6] [ID=0]
            0x8a306b8: i32 = Register %reg16388 [ORD=6] [ID=1]
          0x8a30388: i32 = undef [ORD=6] [ID=2]
        0x8a309e8: v4f32 = undef [ID=8]
      0x8a30520: i32 = Constant<0> [ID=7]
    0x8a362c8: f32 = extract_vector_elt 0x8a36240, 0x8a30520 [ID=35]
      0x8a36240: v4f32 = vector_shuffle 0x8a30168, 0x8a309e8<3,u,u,u>
[ID=25]
        0x8a30168: v4f32,ch = load 0x8a120d4, 0x8a30a70,
0x8a30388<LD16[%lsr.iv]> [ORD=7] [ID=14]
          0x8a120d4: ch = EntryToken [ORD=6] [ID=0]
          0x8a30a70: i32,ch = CopyFromReg 0x8a120d4, 0x8a2fec0 [ORD=7]
[ID=11]
            0x8a120d4: ch = EntryToken [ORD=6] [ID=0]
            0x8a2fec0: i32 = Register %reg16389 [ORD=7] [ID=3]
          0x8a30388: i32 = undef [ORD=6] [ID=2]
        0x8a309e8: v4f32 = undef [ID=8]
      0x8a30520: i32 = Constant<0> [ID=7]


llvm/examples> BrainF.exe
Should print '!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGH' on the next line:
Stack dump:
0.      Running pass 'X86 DAG->DAG Instruction Selection' on function
'@_fun1'
Segmentation fault




More information about the Haskell-llvm mailing list