| Hal Finkel | 8d7fbc9 | 2013-03-15 15:27:13 +0000 | [diff] [blame] | 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 | 
| Hal Finkel | 2651f97 | 2013-11-30 19:52:28 +0000 | [diff] [blame] | 68 | ; CHECK-DAG: ld | 
|  | 69 | ; CHECK-DAG: ld | 
|  | 70 | ; CHECK-DAG: stdx | 
|  | 71 | ; CHECK: stdx | 
| Hal Finkel | 8d7fbc9 | 2013-03-15 15:27:13 +0000 | [diff] [blame] | 72 | } | 
|  | 73 |  |