Home | History | Annotate | Download | only in PowerPC
      1 ; RUN: llc < %s -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr7 | FileCheck %s
      2 target datalayout = "E-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f128:64:128-n32"
      3 
      4 define void @foo1(i16* %p, i16* %r) nounwind {
      5 entry:
      6   %v = load i16* %p, align 1
      7   store i16 %v, i16* %r, align 1
      8   ret void
      9 
     10 ; CHECK: @foo1
     11 ; CHECK: lhz
     12 ; CHECK: sth
     13 }
     14 
     15 define void @foo2(i32* %p, i32* %r) nounwind {
     16 entry:
     17   %v = load i32* %p, align 1
     18   store i32 %v, i32* %r, align 1
     19   ret void
     20 
     21 ; CHECK: @foo2
     22 ; CHECK: lwz
     23 ; CHECK: stw
     24 }
     25 
     26 define void @foo3(i64* %p, i64* %r) nounwind {
     27 entry:
     28   %v = load i64* %p, align 1
     29   store i64 %v, i64* %r, align 1
     30   ret void
     31 
     32 ; CHECK: @foo3
     33 ; CHECK: ld
     34 ; CHECK: std
     35 }
     36 
     37 define void @foo4(float* %p, float* %r) nounwind {
     38 entry:
     39   %v = load float* %p, align 1
     40   store float %v, float* %r, align 1
     41   ret void
     42 
     43 ; CHECK: @foo4
     44 ; CHECK: lfs
     45 ; CHECK: stfs
     46 }
     47 
     48 define void @foo5(double* %p, double* %r) nounwind {
     49 entry:
     50   %v = load double* %p, align 1
     51   store double %v, double* %r, align 1
     52   ret void
     53 
     54 ; CHECK: @foo5
     55 ; CHECK: lfd
     56 ; CHECK: stfd
     57 }
     58 
     59 define void @foo6(<4 x float>* %p, <4 x float>* %r) nounwind {
     60 entry:
     61   %v = load <4 x float>* %p, align 1
     62   store <4 x float> %v, <4 x float>* %r, align 1
     63   ret void
     64 
     65 ; These loads and stores are legalized into aligned loads and stores
     66 ; using aligned stack slots.
     67 ; CHECK: @foo6
     68 ; CHECK-DAG: ld
     69 ; CHECK-DAG: ld
     70 ; CHECK-DAG: stdx
     71 ; CHECK: stdx
     72 }
     73 
     74