Reed Kotler | b0ee97a | 2013-06-09 23:23:46 +0000 | [diff] [blame] | 1 | ; RUN: llc -march=mipsel -mcpu=mips16 -relocation-model=pic < %s | FileCheck %s -check-prefix=cmp16 |
| 2 | |
Reed Kotler | 71f28bf | 2013-06-22 19:35:08 +0000 | [diff] [blame] | 3 | target datalayout = "e-p:32:32:32-i1:8:8-i8:8:32-i16:16:32-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-n32-S64" |
| 4 | target triple = "mipsel--linux-gnu" |
Reed Kotler | b0ee97a | 2013-06-09 23:23:46 +0000 | [diff] [blame] | 5 | |
Reed Kotler | 71f28bf | 2013-06-22 19:35:08 +0000 | [diff] [blame] | 6 | %struct.StorablePicture = type { i32, i32, i32, i32 } |
Reed Kotler | b0ee97a | 2013-06-09 23:23:46 +0000 | [diff] [blame] | 7 | |
Reed Kotler | 71f28bf | 2013-06-22 19:35:08 +0000 | [diff] [blame] | 8 | |
| 9 | |
| 10 | define void @getSubImagesLuma(%struct.StorablePicture* nocapture %s) #0 { |
Reed Kotler | b0ee97a | 2013-06-09 23:23:46 +0000 | [diff] [blame] | 11 | entry: |
Reed Kotler | 71f28bf | 2013-06-22 19:35:08 +0000 | [diff] [blame] | 12 | %size_y = getelementptr inbounds %struct.StorablePicture* %s, i32 0, i32 1 |
Manman Ren | aef1b37 | 2013-09-30 18:17:35 +0000 | [diff] [blame] | 13 | %0 = load i32* %size_y, align 4 |
Reed Kotler | 71f28bf | 2013-06-22 19:35:08 +0000 | [diff] [blame] | 14 | %sub = add nsw i32 %0, -1 |
| 15 | %add5 = add nsw i32 %0, 20 |
| 16 | %cmp6 = icmp sgt i32 %add5, -20 |
| 17 | br i1 %cmp6, label %for.body, label %for.end |
Reed Kotler | b0ee97a | 2013-06-09 23:23:46 +0000 | [diff] [blame] | 18 | |
Reed Kotler | 71f28bf | 2013-06-22 19:35:08 +0000 | [diff] [blame] | 19 | for.body: ; preds = %entry, %for.body |
| 20 | %j.07 = phi i32 [ %inc, %for.body ], [ -20, %entry ] |
| 21 | %call = tail call i32 bitcast (i32 (...)* @iClip3 to i32 (i32, i32, i32)*)(i32 0, i32 %sub, i32 %j.07) #2 |
| 22 | %inc = add nsw i32 %j.07, 1 |
Manman Ren | aef1b37 | 2013-09-30 18:17:35 +0000 | [diff] [blame] | 23 | %1 = load i32* %size_y, align 4 |
Reed Kotler | 71f28bf | 2013-06-22 19:35:08 +0000 | [diff] [blame] | 24 | %add = add nsw i32 %1, 20 |
| 25 | %cmp = icmp slt i32 %inc, %add |
| 26 | br i1 %cmp, label %for.body, label %for.end |
Reed Kotler | b0ee97a | 2013-06-09 23:23:46 +0000 | [diff] [blame] | 27 | |
Reed Kotler | 71f28bf | 2013-06-22 19:35:08 +0000 | [diff] [blame] | 28 | for.end: ; preds = %for.body, %entry |
Reed Kotler | b0ee97a | 2013-06-09 23:23:46 +0000 | [diff] [blame] | 29 | ret void |
| 30 | } |
| 31 | |
Reed Kotler | 71f28bf | 2013-06-22 19:35:08 +0000 | [diff] [blame] | 32 | ; cmp16: .ent getSubImagesLuma |
| 33 | ; cmp16: .end getSubImagesLuma |
| 34 | declare i32 @iClip3(...) #1 |
Reed Kotler | b0ee97a | 2013-06-09 23:23:46 +0000 | [diff] [blame] | 35 | |
Bill Wendling | 80075c4 | 2013-08-22 21:28:54 +0000 | [diff] [blame] | 36 | attributes #0 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" } |
| 37 | attributes #1 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" } |
Reed Kotler | 71f28bf | 2013-06-22 19:35:08 +0000 | [diff] [blame] | 38 | attributes #2 = { nounwind } |