Bob Wilson | 9f3e6b2 | 2013-11-15 19:09:27 +0000 | [diff] [blame] | 1 | ; fastisel should not fold add with non-pointer bitwidth |
| 2 | ; sext(a) + sext(b) != sext(a + b) |
| 3 | ; RUN: llc -mtriple=powerpc64-unknown-freebsd10.0 %s -O0 -o - | FileCheck %s |
| 4 | |
| 5 | define zeroext i8 @gep_promotion(i8* %ptr) nounwind uwtable ssp { |
| 6 | entry: |
| 7 | %ptr.addr = alloca i8*, align 8 |
| 8 | %add = add i8 64, 64 ; 0x40 + 0x40 |
David Blaikie | a79ac14 | 2015-02-27 21:17:42 +0000 | [diff] [blame^] | 9 | %0 = load i8*, i8** %ptr.addr, align 8 |
Bob Wilson | 9f3e6b2 | 2013-11-15 19:09:27 +0000 | [diff] [blame] | 10 | |
| 11 | ; CHECK-LABEL: gep_promotion: |
| 12 | ; CHECK: lbz {{[0-9]+}}, 0({{.*}}) |
David Blaikie | 79e6c74 | 2015-02-27 19:29:02 +0000 | [diff] [blame] | 13 | %arrayidx = getelementptr inbounds i8, i8* %0, i8 %add |
Bob Wilson | 9f3e6b2 | 2013-11-15 19:09:27 +0000 | [diff] [blame] | 14 | |
David Blaikie | a79ac14 | 2015-02-27 21:17:42 +0000 | [diff] [blame^] | 15 | %1 = load i8, i8* %arrayidx, align 1 |
Bob Wilson | 9f3e6b2 | 2013-11-15 19:09:27 +0000 | [diff] [blame] | 16 | ret i8 %1 |
| 17 | } |