Home | History | Annotate | Download | only in X86
      1 ; RUN: llc < %s -march=x86-64 | grep "movzbl	%[abcd]h," | count 7
      2 
      3 ; Use h-register extract and zero-extend.
      4 
      5 define double @foo8(double* nocapture inreg %p, i64 inreg %x) nounwind readonly {
      6   %t0 = lshr i64 %x, 8
      7   %t1 = and i64 %t0, 255
      8   %t2 = getelementptr double* %p, i64 %t1
      9   %t3 = load double* %t2, align 8
     10   ret double %t3
     11 }
     12 define float @foo4(float* nocapture inreg %p, i64 inreg %x) nounwind readonly {
     13   %t0 = lshr i64 %x, 8
     14   %t1 = and i64 %t0, 255
     15   %t2 = getelementptr float* %p, i64 %t1
     16   %t3 = load float* %t2, align 8
     17   ret float %t3
     18 }
     19 define i16 @foo2(i16* nocapture inreg %p, i64 inreg %x) nounwind readonly {
     20   %t0 = lshr i64 %x, 8
     21   %t1 = and i64 %t0, 255
     22   %t2 = getelementptr i16* %p, i64 %t1
     23   %t3 = load i16* %t2, align 8
     24   ret i16 %t3
     25 }
     26 define i8 @foo1(i8* nocapture inreg %p, i64 inreg %x) nounwind readonly {
     27   %t0 = lshr i64 %x, 8
     28   %t1 = and i64 %t0, 255
     29   %t2 = getelementptr i8* %p, i64 %t1
     30   %t3 = load i8* %t2, align 8
     31   ret i8 %t3
     32 }
     33 define i8 @bar8(i8* nocapture inreg %p, i64 inreg %x) nounwind readonly {
     34   %t0 = lshr i64 %x, 5
     35   %t1 = and i64 %t0, 2040
     36   %t2 = getelementptr i8* %p, i64 %t1
     37   %t3 = load i8* %t2, align 8
     38   ret i8 %t3
     39 }
     40 define i8 @bar4(i8* nocapture inreg %p, i64 inreg %x) nounwind readonly {
     41   %t0 = lshr i64 %x, 6
     42   %t1 = and i64 %t0, 1020
     43   %t2 = getelementptr i8* %p, i64 %t1
     44   %t3 = load i8* %t2, align 8
     45   ret i8 %t3
     46 }
     47 define i8 @bar2(i8* nocapture inreg %p, i64 inreg %x) nounwind readonly {
     48   %t0 = lshr i64 %x, 7
     49   %t1 = and i64 %t0, 510
     50   %t2 = getelementptr i8* %p, i64 %t1
     51   %t3 = load i8* %t2, align 8
     52   ret i8 %t3
     53 }
     54