Rafael Espindola | 5d3e762 | 2007-08-27 10:18:20 +0000 | [diff] [blame^] | 1 | ; RUN: llvm-as < %s | llc -march=x86 | grep movs | count 1 |
| 2 | ; RUN: llvm-as < %s | llc -march=x86 | grep memcpy | count 2 |
Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame] | 3 | |
Rafael Espindola | 5d3e762 | 2007-08-27 10:18:20 +0000 | [diff] [blame^] | 4 | @A = global [32 x i32] zeroinitializer |
| 5 | @B = global [32 x i32] zeroinitializer |
Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame] | 6 | |
Rafael Espindola | 5d3e762 | 2007-08-27 10:18:20 +0000 | [diff] [blame^] | 7 | declare void @llvm.memcpy.i32(i8*, i8*, i32, i32) |
Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame] | 8 | |
Rafael Espindola | 5d3e762 | 2007-08-27 10:18:20 +0000 | [diff] [blame^] | 9 | define void @main() { |
Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame] | 10 | ; dword copy |
Rafael Espindola | 5d3e762 | 2007-08-27 10:18:20 +0000 | [diff] [blame^] | 11 | call void @llvm.memcpy.i32(i8* bitcast ([32 x i32]* @A to i8*), |
| 12 | i8* bitcast ([32 x i32]* @B to i8*), |
| 13 | i32 128, i32 4 ) |
Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame] | 14 | |
| 15 | ; word copy |
Rafael Espindola | 5d3e762 | 2007-08-27 10:18:20 +0000 | [diff] [blame^] | 16 | call void @llvm.memcpy.i32( i8* bitcast ([32 x i32]* @A to i8*), |
| 17 | i8* bitcast ([32 x i32]* @B to i8*), |
| 18 | i32 128, i32 2 ) |
Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame] | 19 | |
| 20 | ; byte copy |
Rafael Espindola | 5d3e762 | 2007-08-27 10:18:20 +0000 | [diff] [blame^] | 21 | call void @llvm.memcpy.i32( i8* bitcast ([32 x i32]* @A to i8*), |
| 22 | i8* bitcast ([32 x i32]* @B to i8*), |
| 23 | i32 128, i32 1 ) |
| 24 | |
Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame] | 25 | ret void |
| 26 | } |