SuccessChanges

Summary

  1. [NFC][CodeGenOptions] Refactor checking SanitizeCoverage options (details)
  2. [NFC][SanitizeCoverage] Test always_inline functions work (details)
  3. [SanitizeCoverage] Add support for NoSanitizeCoverage function attribute (details)
  4. [lldb] X-FAIL TestCPPStaticMembers on Windows (details)
  5. [lldb][NFC] Remove misleading ModulePass base class for IRForTarget (details)
  6. [NFC][LoopIdiom] Add tests for 'arithmetic right-shift until zero' idiom (details)
  7. [LoopIdiom] Support 'arithmetic right-shift until zero' idiom (details)
  8. [lldb] Fix that LLDB doesn't print NaN's sign on Darwin (details)
  9. [Dexter] Add DexDeclareFile command to Dexter (details)
  10. [AArch64][SVE] Add fixed length codegen for FP_TO_{S,U}INT/{S,U}INT_TO_FP (details)
  11. [AMDGPU][Libomptarget] Mark lambda_by_value test as XFAIL (details)
  12. [NFC][LoopIdiom] Add tests for 'left-shift until zero' idiom (details)
  13. [LoopIdiom] Support 'left-shift until zero' idiom (details)
  14. [dexter] Change --source-root-dir and add --debugger-use-relative-paths (details)
  15. [NFC] [Coroutines] Remove unused variable: UnreachableCache (details)
  16. [Dexter] Remove erroneously added diff file (details)
  17. [mlir] Disallow certain transfer ops in VectorToSCF (details)
  18. [InstCombine] add tests for cast-of-shuffle; NFC (details)
  19. [InstCombine] canonicalize cast before unary shuffle (details)
  20. [mlir][doc] Fix links and references in documentation of Rationale (details)
  21. [mlir] Support buffer hoisting on allocas (details)
  22. [mlir][doc] Fix links and references in documentation of Dialects (details)
  23. [VectorCombine] Use constant range info for index scalarization legality. (details)
  24. [Headers][WASM] adjust test that runs the optimizer; NFC (details)
  25. [VectorCombine] Add test that combines load & store scalarization. (details)
  26. [InstSimplify] Transform X * Y % Y --> 0 (details)
Commit ca6df734069ae590d1632e920ceba03bea317549 by elver
[NFC][CodeGenOptions] Refactor checking SanitizeCoverage options

Refactor checking SanitizeCoverage options into
CodeGenOptions::hasSanitizeCoverage().

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D102927
The file was modifiedclang/include/clang/Basic/CodeGenOptions.h
The file was modifiedclang/lib/CodeGen/BackendUtil.cpp
Commit 85feebf5a3401eab4c71288e2dc089faf547ab4c by elver
[NFC][SanitizeCoverage] Test always_inline functions work

Test that always_inline functions are instrumented as expected.

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D102929
The file was modifiedclang/test/CodeGen/sanitize-coverage.c
Commit 280333021e9550d80f5c1152a34e33e81df1e178 by elver
[SanitizeCoverage] Add support for NoSanitizeCoverage function attribute

We really ought to support no_sanitize("coverage") in line with other
sanitizers. This came up again in discussions on the Linux-kernel
mailing lists, because we currently do workarounds using objtool to
remove coverage instrumentation. Since that support is only on x86, to
continue support coverage instrumentation on other architectures, we
must support selectively disabling coverage instrumentation via function
attributes.

Unfortunately, for SanitizeCoverage, it has not been implemented as a
sanitizer via fsanitize= and associated options in Sanitizers.def, but
rolls its own option fsanitize-coverage. This meant that we never got
"automatic" no_sanitize attribute support.

Implement no_sanitize attribute support by special-casing the string
"coverage" in the NoSanitizeAttr implementation. To keep the feature as
unintrusive to existing IR generation as possible, define a new negative
function attribute NoSanitizeCoverage to propagate the information
through to the instrumentation pass.

Fixes: https://bugs.llvm.org/show_bug.cgi?id=49035

Reviewed By: vitalybuka, morehouse

Differential Revision: https://reviews.llvm.org/D102772
The file was modifiedllvm/include/llvm/AsmParser/LLToken.h
The file was modifiedllvm/utils/llvm.grm
The file was modifiedllvm/docs/BitCodeFormat.rst
The file was modifiedclang/include/clang/Basic/Attr.td
The file was modifiedclang/lib/Sema/SemaDeclAttr.cpp
The file was modifiedllvm/bindings/go/llvm/ir_test.go
The file was modifiedclang/docs/SanitizerCoverage.rst
The file was modifiedclang/lib/CodeGen/CodeGenFunction.cpp
The file was modifiedllvm/lib/IR/Verifier.cpp
The file was modifiedllvm/lib/Transforms/Utils/CodeExtractor.cpp
The file was modifiedllvm/lib/Bitcode/Reader/BitcodeReader.cpp
The file was modifiedllvm/lib/IR/Attributes.cpp
The file was modifiedllvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp
The file was modifiedllvm/test/Bitcode/compatibility.ll
The file was modifiedllvm/docs/LangRef.rst
The file was modifiedllvm/lib/AsmParser/LLParser.cpp
The file was modifiedllvm/lib/AsmParser/LLLexer.cpp
The file was modifiedllvm/test/Bitcode/attributes.ll
The file was modifiedllvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp
The file was modifiedllvm/include/llvm/IR/Attributes.td
The file was modifiedllvm/lib/Bitcode/Writer/BitcodeWriter.cpp
The file was modifiedclang/test/CodeGen/sanitize-coverage.c
The file was modifiedllvm/utils/emacs/llvm-mode.el
The file was modifiedllvm/include/llvm/Bitcode/LLVMBitCodes.h
The file was modifiedllvm/utils/vscode/llvm/syntaxes/ll.tmLanguage.yaml
The file was modifiedclang/include/clang/Basic/AttrDocs.td
The file was modifiedllvm/utils/vim/syntax/llvm.vim
Commit a3a95286a73fddc4027de930fac29728cd4259fc by Raphael Isemann
[lldb] X-FAIL TestCPPStaticMembers on Windows

This was originally failed because of llvm.org/pr21765 which describes that
LLDB can't call a debugee's functions, but I removed the (unnecessary)
function call in the rewrite. It seems that the actual bug here is that we
can't lookup static members at all, so let's X-FAIL the test for the right
reason.
The file was modifiedlldb/test/API/lang/cpp/static_members/TestCPPStaticMembers.py
Commit 1dee479ff632ef841ca7b28485779d898dd15e84 by Raphael Isemann
[lldb][NFC] Remove misleading ModulePass base class for IRForTarget

IRForTarget is never used by a pass manager or any other interface that requires
this class to inherit from `Pass`.

Also IRForTarget doesn't implement the current interface correctly because it
uses the `runOnModule` return value to indicate success/failure instead of
changed/not-changed, so if this ever ends up being used as a pass it would most
likely not work as intended.

Reviewed By: JDevlieghere

Differential Revision: https://reviews.llvm.org/D102677
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/IRForTarget.h
Commit 8a0e4ae7727d44998124c914a66329747c7dfdb8 by lebedev.ri
[NFC][LoopIdiom] Add tests for 'arithmetic right-shift until zero' idiom
The file was addedllvm/test/Transforms/LoopIdiom/X86/arithmetic-right-shift-until-zero.ll
The file was modifiedllvm/test/Transforms/LoopIdiom/X86/logical-right-shift-until-zero.ll
Commit f1c5f78d3813584f7796f8b84b92fa0725964c17 by lebedev.ri
[LoopIdiom] Support 'arithmetic right-shift until zero' idiom

This adds support for the "count active bits" pattern, i.e.:
```
int countActiveBits(signed val) {
    int cnt = 0;
    for( ; (val >> cnt) != 0; ++cnt)
        ;
    return cnt;
}
```
but a somewhat more general one:
```
int countActiveBits(signed val, int start, int off) {
    int cnt;
    for (cnt = start; val >> (cnt + off); cnt++)
        ;
    return cnt;
}
```

This directly matches the existing 'logical right-shift until zero' idiom.
alive2 is happy with all the tests there.

Note that, again, much like with the original unsigned case,
we don't require the `val != 0` guard.

The old `detectShiftUntilZeroIdiom()` already supports this pattern,
the idea here is that the `val` must be positive (have at least one
leading zero), because otherwise the loop is non-terminating,
but since it is not `while(1)`, that would have been UB.
The file was modifiedllvm/test/Transforms/LoopIdiom/X86/arithmetic-right-shift-until-zero.ll
The file was modifiedllvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
Commit ae58cf5f45a9c159afbf86e93c0c257a22c4ee02 by Raphael Isemann
[lldb] Fix that LLDB doesn't print NaN's sign on Darwin

It seems std::ostringstream ignores NaN signs on Darwin while it prints them on
Linux. This causes that LLDB behaves differently on those platforms which is
both confusing for users and it also means we have to deal with that in our
tests.

This patch manually implements the NaN/Inf printing (which are apparently
implementation defined) to make LLDB print the same thing on all platforms. The
only output difference in practice seems to be that we now print negative NaNs
as `-nan`, but this potentially also changes the output on other systems I
haven't tested this on.

Reviewed By: JDevlieghere

Differential Revision: https://reviews.llvm.org/D102845
The file was modifiedlldb/source/Core/DumpDataExtractor.cpp
The file was modifiedlldb/unittests/Core/DumpDataExtractorTest.cpp
Commit c2c2be44ed644199a5a9832bf9ac34fc3ef6b486 by Tom.Weaver
[Dexter] Add DexDeclareFile command to Dexter

DexDeclareFile allows test producers to write test files with .dex extensions
that contain pure dexter commands.

.dex file commands do not need to be commented out like they do when written
inline within test source files.

DexDeclareFile commands are declarative in behaviour, they state that any
Dexter command seen from this point on will have its path attribute set to the
path declared in the DexDeclareFile command.

Differential Revision: https://reviews.llvm.org/D99651
The file was addeddebuginfo-tests/dexter/feature_tests/commands/perfect/dex_declare_file/precompiled_binary_different_dir/dex_commands/commands.dex
The file was modifieddebuginfo-tests/dexter/dex/tools/test/Tool.py
The file was addeddebuginfo-tests/dexter/feature_tests/commands/perfect/dex_declare_file/windows_noncanonical_path/test.cfg
The file was addeddebuginfo-tests/dexter/feature_tests/commands/perfect/dex_declare_file/precompiled_binary/commands.dex
The file was addeddebuginfo-tests/dexter/feature_tests/commands/perfect/dex_declare_file/precompiled_binary/test.cpp
The file was addeddebuginfo-tests/dexter/feature_tests/commands/perfect/dex_declare_file/windows_noncanonical_path/source/test file.cpp
The file was modifieddebuginfo-tests/dexter/dex/tools/clang_opt_bisect/Tool.py
The file was addeddebuginfo-tests/dexter/feature_tests/commands/perfect/dex_declare_file/precompiled_binary_different_dir/lit.local.cfg.py
The file was addeddebuginfo-tests/dexter/feature_tests/commands/perfect/dex_declare_file/dex_and_source/test.cfg
The file was modifieddebuginfo-tests/dexter/dex/command/ParseCommand.py
The file was modifieddebuginfo-tests/dexter/dex/tools/TestToolBase.py
The file was addeddebuginfo-tests/dexter/dex/command/commands/DexDeclareFile.py
The file was addeddebuginfo-tests/dexter/feature_tests/commands/perfect/dex_declare_file/dex_and_source/test.cpp
The file was addeddebuginfo-tests/dexter/feature_tests/commands/perfect/dex_declare_file/precompiled_binary/lit.local.cfg.py
The file was addeddebuginfo-tests/dexter/feature_tests/commands/penalty/dex_declare_file.cpp
The file was addeddebuginfo-tests/dexter/feature_tests/commands/perfect/dex_declare_file/windows_noncanonical_path/lit.local.cfg.py
The file was addeddebuginfo-tests/dexter/feature_tests/commands/perfect/dex_declare_file/windows_noncanonical_path/test.dex
The file was addeddebuginfo-tests/dexter/feature_tests/commands/perfect/dex_declare_file/dex_and_source/lit.local.cfg.py
The file was modifieddebuginfo-tests/dexter/Commands.md
The file was addeddebuginfo-tests/dexter/d.diff
The file was addeddebuginfo-tests/dexter/feature_tests/commands/perfect/dex_declare_file/precompiled_binary_different_dir/source/test.cpp
The file was addeddebuginfo-tests/dexter/feature_tests/commands/perfect/dex_declare_file/dex_and_source/commands.dex
Commit f3c577ed38e55dca46692313f5b76688a115861a by bradley.smith
[AArch64][SVE] Add fixed length codegen for FP_TO_{S,U}INT/{S,U}INT_TO_FP

Depends on D102607

Differential Revision: https://reviews.llvm.org/D102777
The file was addedllvm/test/CodeGen/AArch64/sve-fixed-length-int-to-fp.ll
The file was addedllvm/test/CodeGen/AArch64/sve-fixed-length-fp-to-int.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.h
The file was removedllvm/test/CodeGen/AArch64/sve-fixed-length-fp-converts.ll
Commit b0d68c7141412edcc8a7ea1b09a956df15f2b197 by Pushpinder.Singh
[AMDGPU][Libomptarget] Mark lambda_by_value test as XFAIL

Reason: Missing printf definition

Reviewed By: JonChesterfield

Differential Revision: https://reviews.llvm.org/D103078
The file was modifiedopenmp/libomptarget/test/mapping/lambda_by_value.cpp
Commit 980e0107a169b686bb480e751337f487d819a32c by lebedev.ri
[NFC][LoopIdiom] Add tests for 'left-shift until zero' idiom
The file was modifiedllvm/test/Transforms/LoopIdiom/X86/arithmetic-right-shift-until-zero.ll
The file was modifiedllvm/test/Transforms/LoopIdiom/X86/logical-right-shift-until-zero.ll
The file was addedllvm/test/Transforms/LoopIdiom/X86/left-shift-until-zero.ll
Commit 8f4db14d1c8f12cade77873f8815497026d21f95 by lebedev.ri
[LoopIdiom] Support 'left-shift until zero' idiom

This adds support for the "count active bits" pattern, i.e.:
```
int countBits(unsigned val) {
    int cnt = 0;
    for( ; (val << cnt) != 0; ++cnt)
        ;
    return cnt;
}
```
but a somewhat more general one:
```
int countBits(unsigned val, int start, int off) {
    int cnt;
    for (cnt = start; val << (cnt + off); cnt++)
        ;
    return cnt;
}
```

alive2 is happy with all the tests there.

Note that, again, much like with the right-shift cases,
we don't require the `val != 0` guard.

This is the last pattern that was supported by
`detectShiftUntilZeroIdiom()`, which now becomes obsolete.
The file was modifiedllvm/test/Transforms/LoopIdiom/X86/left-shift-until-zero.ll
The file was modifiedllvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
Commit 4b55102aff29f5ce82b38a9e4a819b959e29ecd7 by orlando.hyams
[dexter] Change --source-root-dir and add --debugger-use-relative-paths

We want to use `DexDeclareFile` to specify paths relative to a project root
directory. The option `--source-root-dir`, prior to this patch, causes dexter
to strip the path prefix from commands before passing them to a debugger, and
appends the prefix to file paths returned from a debugger. This patch changes
the behviour of `--source-root-dir`. Relative paths in commands, made possible
with `DexDeclareFile(relative/path)`, are appended to the `--source-root-dir`
directory.

A new option, `--debugger-use-relative-paths`, can be used alongside
`--source-root-dir` to reproduce the old behaviour: all paths passed to the
debugger will be made relative to `--source-root-dir`.

I've added a regression test source_root_dir.dex for this new behaviour, and
modified the existing `--source-root-dir` regression and unit tests to use
`--debugger-use-relative-paths`.

Reviewed By: jmorse

Differential Revision: https://reviews.llvm.org/D100307
The file was modifieddebuginfo-tests/dexter/dex/command/ParseCommand.py
The file was addeddebuginfo-tests/dexter/feature_tests/commands/perfect/dex_declare_file/precompiled_binary_different_dir/dex_commands/source_root_dir.dex
The file was modifieddebuginfo-tests/dexter/dex/tools/test/Tool.py
The file was modifieddebuginfo-tests/dexter/dex/debugger/DebuggerBase.py
The file was modifieddebuginfo-tests/dexter/feature_tests/subtools/test/source-root-dir.cpp
The file was modifieddebuginfo-tests/dexter/dex/debugger/Debuggers.py
The file was modifieddebuginfo-tests/dexter/dex/tools/clang_opt_bisect/Tool.py
Commit 400a9d35015b1b8e56b5916e31c8be87851b799b by yedeng.yd
[NFC] [Coroutines] Remove unused variable: UnreachableCache
The file was modifiedllvm/lib/Transforms/Coroutines/CoroSplit.cpp
Commit fc0acd10c0ab43986303de4167e31b46f13367c2 by Tom.Weaver
[Dexter] Remove erroneously added diff file

Delete d.diff from debuginfo-tests/dexter directory.
The file was removeddebuginfo-tests/dexter/d.diff
Commit f718a53d7e13e7452a4bc9f265659bfb296cd4cc by springerm
[mlir] Disallow certain transfer ops in VectorToSCF

Disallow transfer ops that change the element type of the transfer. Such transfers could be supported in the future, if needed.

Differential Revision: https://reviews.llvm.org/D102746
The file was modifiedmlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp
Commit 06eae35689ee1a190cc3f2310e289b2659654755 by spatel
[InstCombine] add tests for cast-of-shuffle; NFC
The file was modifiedllvm/test/Transforms/InstCombine/vector-casts.ll
Commit 0bab0f6161193cd0cd24b7b0fc51590a60e810d2 by spatel
[InstCombine] canonicalize cast before unary shuffle

We could go either direction on this transform. VectorCombine already goes this
way for bitcasts (and handles more complicated cases using the cost model), so
let's try cast-first.

Deferring completely to VectorCombine is another possibility. But the backend
should be able to invert this easily when the vectors have the same shape, so
it doesn't seem like a transform that we need to avoid.

The motivating example from https://llvm.org/PR49081 has an int-to-float
sandwiched between 2 shuffles, and the backend currently does not reduce that,
so on x86, we get something like:

  pshufd $249, %xmm0, %xmm0]
  cvtdq2ps %xmm0, %xmm0
  shufps $144, %xmm0, %xmm0

...instead of just a single conversion instruction.

Differential Revision: https://reviews.llvm.org/D103038
The file was modifiedllvm/test/Transforms/InstCombine/shufflevec-bitcast.ll
The file was modifiedllvm/test/Transforms/InstCombine/X86/x86-f16c.ll
The file was modifiedllvm/test/Transforms/InstCombine/shufflevec-bitcast-inseltpoison.ll
The file was modifiedllvm/test/Transforms/InstCombine/vector-casts.ll
The file was modifiedllvm/test/Transforms/InstCombine/shuffle-cast-dist.ll
The file was modifiedllvm/test/Transforms/InstCombine/X86/x86-f16c-inseltpoison.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
Commit 5e2a302e37f14bcbd654f2cb3588075300658ddb by markus.boeck02
[mlir][doc] Fix links and references in documentation of Rationale

This patch is the second in a series of patches fixing markdown links and references inside the mlir documentation.

This patch addresses all broken references to other markdown files and sections inside the Rationale folder.

In addition to fixing the links and references like in the previous patch, I also changed references which are URLs to the mlir.llvm.org/docs website, to proper relative markdown references instead.

Differential Revision: https://reviews.llvm.org/D103013
The file was modifiedmlir/docs/Rationale/MLIRForGraphAlgorithms.md
The file was modifiedmlir/docs/Rationale/RationaleGenericDAGRewriter.md
The file was modifiedmlir/docs/Rationale/Rationale.md
The file was modifiedmlir/docs/Rationale/RationaleLinalgDialect.md
Commit 6054bfa8132ac06a140e1896d8cdd8dc79a01bd8 by tpopp
[mlir] Support buffer hoisting on allocas

This adds support for hoisting allocas in both BufferHoisting and
BufferLoopHoisting.

Differential Revision: https://reviews.llvm.org/D102681
The file was modifiedmlir/lib/Transforms/BufferOptimizations.cpp
The file was modifiedmlir/test/Transforms/buffer-loop-hoisting.mlir
Commit 9b99336d5daf9425f12c747fd746118457a80ed8 by markus.boeck02
[mlir][doc] Fix links and references in documentation of Dialects

This patch is the first in a series of patches fixing markdown links and references inside the mlir documentation. I chose to split it in a few reviews to be able to iterate quicker and to ease review.

This patch addresses all broken references to other markdown files and sections inside the Dialects folder.

One change that was also done was to insert '/' between the markdown files and section:
Example:
Builtin.md#integertype
was changed to:
Builtin.md/#integertype

After compilation, hugo then translates the later to jump directly to the integer type section, but not the former. Not inserting the slash would simply jump to just the Builtin page, instead of the integertype section. I therefore changed occurrences of the former version to the later as well.

Differential Revision: https://reviews.llvm.org/D103011
The file was modifiedmlir/docs/Dialects/Builtin.md
The file was modifiedmlir/docs/Dialects/SPIR-V.md
The file was modifiedmlir/docs/Dialects/Affine.md
The file was modifiedmlir/include/mlir/Dialect/MemRef/IR/MemRefOps.td
The file was modifiedmlir/include/mlir/IR/BuiltinTypes.td
The file was modifiedmlir/include/mlir/IR/BuiltinAttributes.td
The file was modifiedmlir/docs/Dialects/MemRef.md
The file was modifiedmlir/docs/Dialects/LLVM.md
The file was modifiedmlir/include/mlir/Dialect/Affine/IR/AffineOps.td
The file was modifiedmlir/docs/Dialects/Linalg.md
Commit 575e2aff5574550d10278d9a41fca2926a5b8409 by flo
[VectorCombine] Use constant range info for index scalarization legality.

We can only scalarize memory accesses if we know the index is valid.

This patch adjusts canScalarizeAcceess to fall back to
computeConstantRange to check if the index is known to be valid.

Reviewed By: nlopes

Differential Revision: https://reviews.llvm.org/D102476
The file was modifiedllvm/lib/Transforms/Vectorize/VectorCombine.cpp
The file was modifiedllvm/test/Transforms/VectorCombine/AArch64/load-extractelement-scalarization.ll
The file was modifiedllvm/test/Transforms/PhaseOrdering/AArch64/matrix-extract-insert.ll
The file was modifiedllvm/test/Transforms/VectorCombine/load-insert-store.ll
Commit 16e78ec0b43c33c818525ea9b5d39731022f1cbb by spatel
[Headers][WASM] adjust test that runs the optimizer; NFC

This broke with the LLVM change in 0bab0f616119
The file was modifiedclang/test/Headers/wasm.c
Commit a92376d2971a44344e7623295e7c2a204109956f by flo
[VectorCombine] Add test that combines load & store scalarization.
The file was addedllvm/test/Transforms/VectorCombine/AArch64/load-extract-insert-store-scalarization.ll
Commit 8607a023574f29cbb0b3fdd26f36872ca6b4af5e by spatel
[InstSimplify] Transform X * Y % Y --> 0

simplifyDiv already handles the case X * Y / Y --> X (barring overflow).
This adds the equivalent handling to simplifyRem.

Correctness:
https://alive2.llvm.org/ce/z/J2cUbS
https://alive2.llvm.org/ce/z/us9NUM
https://alive2.llvm.org/ce/z/AvaDGJ
https://alive2.llvm.org/ce/z/kq9ige

Extending the situations in which we apply this transform would not be
correct:
https://alive2.llvm.org/ce/z/Lf9V63
https://alive2.llvm.org/ce/z/6RPQK3
https://alive2.llvm.org/ce/z/p9UdxC
https://alive2.llvm.org/ce/z/A2zlhE
https://alive2.llvm.org/ce/z/vHTtLw
https://alive2.llvm.org/ce/z/lvpH42

Differential Revision: https://reviews.llvm.org/D102864
The file was modifiedllvm/test/Transforms/InstSimplify/rem.ll
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp